Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Histogramm (Länge der Wörter)

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
22.08.2006, 10:31 Uhr
~FlyingHorse
Gast


Hi,

ich brauche Hilfe beim erstellen eines Histogramm.
Das Histogramm soll die Länge der eingegebenen Wörter ausgeben, Horizontal.
Bin für Hilfe dankbar.

gruss
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
22.08.2006, 10:52 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


na einfach ein feld nehmen mit der größe der darzustellenden klassen und dann halt zählen wie oft welche wortlänge vorkommt...
Mir schwant wir haben da auch schon was fertiges in der Rästelecke...
--
...fleißig wie zwei Weißbrote

Dieser Post wurde am 22.08.2006 um 10:53 Uhr von Windalf editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
22.08.2006, 12:06 Uhr
~FlyingHorse
Gast


Ich habe echt keine Ahnung wie das gehen soll kannste mir net den Queltext einfach geben, ich wäre dir sehr dankbar.

gruss
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
22.08.2006, 12:09 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


Ich kann dir bei der Entwicklung des Quelltextes helfen aber geschenkt bekommst du den nicht.
Zeig mal erstmal was du hast aber nen bisschen Eigeninitiative dürfte wohl nicht schaden...
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
22.08.2006, 12:11 Uhr
~FlyingHorse
Gast


Hehehe ok kein Thema, hier:


C++:
#include <stdio.h>

main()
{

int i,c,nl,nc;
int histo[10];


for(i = 0 ;i<10; ++i)
    histo[i];

while ((c=getchar())!=EOF)
    if (c >= '0' && c <= '9')
        ++histo[c-'0'];
else if (c==' '||c=='\t'||c=='\n')
    ++nl;    
else ++nc;
        
    for(i = 0; i <10; ++i)    
        printf("%c", histo[i]);
        printf("%d  %d",nl,nc);
    }


Dieser Post wurde am 22.08.2006 um 12:26 Uhr von Windalf editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
22.08.2006, 12:30 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


Beschreib mal erstmal genauer wie die Eingabe und die Ausgabe erfolgen soll. Die Werte für das Histgramm selbst sind ja eher nen Witz, aber die Aufgabenstellung selbst ist mir zumindest noch relativ unklar.

Da rufst du einfach strlen auf den String auf und bekommst als Anzahl wieviele zeichen der hat (der rückgabewert von strlen sagt dir also welchen teil von histo du inkrementieren musst)

So ich muss jetzt leider ein bisschen arbeiten. Kann wahrscheinlich erst heute abend wieder reinschauen. Wenn dann nicht jemand anders was dazu geschrieben hat bastel ich da kurz was zu. (wenn ich dann weiß was ganz genau du überhaupt willst)
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
22.08.2006, 14:40 Uhr
~FlyingHorse
Gast


Sorry für das "wirr warr"

Die Aufgabenstellung ist folgende:

Schreiben sie ein Programm, das ein Histogramm der Längen der eingegebenen Wörter ausgibt.

1) Ich habe versucht zuerst die Zeichen zu zählen und sie auf einer Variable abgelegt.

2) Danach habe ich die "Blanks" gezählt um sie auch auf einer Variable abzulegen.

3) Dann wollte ich die Werte mittels, Vektor (histo[i]) auf den Bildschirm bringen.

#include <stdio.h>

main()
{

int i,c,zz,nother;
int histo[10];

zz=0;
nother=0;



for(i = 0 ;i<10; ++i)
histo[i];

while ((c=getchar())!=EOF){
++zz;
if (c==' ')
++nother;
else
for (i =0;i<10; ++i)
printf("%d", histo[i]);
}
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
22.08.2006, 21:09 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


so auf die schnelle nicht groß getestet


C++:
size_t min(size_t a, size_t b){return a<b?a:b;}

void paintHist(size_t *values,size_t n, size_t maxheight){
    
    size_t i;

    putchar('|');
    for(i=0;i<n;++i){
        printf("%3d",values[i]);
    }
    putchar('\n');
    

    while(--maxheight){
        putchar('|');
        for(i=0;i<n;++i){
            printf("  ");
            putchar(values[i]>=maxheight?'*':' ');
        }
        putchar('\n');
    
    }

    putchar('+');
    for(i=0;i<n;++i)
        printf("--+");
    putchar('\n');
    
    putchar(' ');
    for(i=0;i<n;++i)
        printf("%3d",i);
    putchar('\n');
    

}



void fillHist(char a_str[300][30], size_t a_n, size_t *hist, size_t n){

    size_t i;
    for(i=0;i<a_n;++i)
        ++hist[min(strlen(a_str[i]),n-1)];


}


int main(){

    char stringarray [300][30];
    size_t i,x[]={0,0,0,0,0,0,0,0,0,0};

    i = 0;
    strcpy(stringarray[i++],"Hao");
    strcpy(stringarray[i++],"Hao");
    strcpy(stringarray[i++],"Hao");
    strcpy(stringarray[i++],"Halo");
    strcpy(stringarray[i++],"a");
    
    strcpy(stringarray[i++],"Hallo");
    strcpy(stringarray[i++],"Hallo");
    strcpy(stringarray[i++],"Hallo");
    strcpy(stringarray[i++],"Hallo");
    strcpy(stringarray[i++],"Hallo");
    strcpy(stringarray[i++],"Hallo1");
    strcpy(stringarray[i++],"Hallo11");
    strcpy(stringarray[i++],"Hallo111");
    strcpy(stringarray[i++],"Hallo1111");
    strcpy(stringarray[i++],"Hallo11111");
    strcpy(stringarray[i++],"Hallo111111");
    strcpy(stringarray[i++],"Hallo1111111");

    fillHist(stringarray,i,x,sizeof(x)/sizeof(*x));
    paintHist(x,sizeof(x)/sizeof(*x),20);
}




Eingabe fehlt noch. würd ich aus ner Datei einlesen lassen sonst wird man ja blöd beim testen...
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: