Programmieren nach Flussdiagramm, Ansätze?



  • Hallo,

    ich soll nach diesem Flussdiagramm ein C++ Programm programmieren, hatte jeodoch immer leichtere Digramme, mit genaueren Angaben wie ZB. Welche Variablen, float, double etc..

    Bei diesem hier ist das nicht der Fall.. ein Paar Tipps oder Ansätze wären mir ganz recht, damit ich Morgen dann loslegen kann 😃

    > http://i10.photobucket.com/albums/a110/Eisi_86/F-dia.jpg <<

    MFG



  • Der Code steht doch eh schon quasi als Bild da

    Folge einfach dem Verlauf und bau entsprechende Verzweigungen oder Schleifen ein



  • #include <iostream>
    #include <math.h>
    using namespace std;
    int main(void)
    {
    int rahmenzahl=0, wdhlg=0, zahl, zaehler, j;
    	cout << "A U S G A B E   V O N   A S C I I  -  Z E I C H E N\n\n";
    while(wdhlg==j)
    {
    while(rahmenzahl<9)
    {
    	rahmenzahl=1;
        rahmenzahl+=1;
    }		
    			while(33>zahl)(zahl<126);
    			{
    				cout << "Geben Sie bitte eine  ganze Zahl fuer einen ASCII-Wert ein.!\nDie von Ihnen eingegebene ganze Zahl muss zwischen 33\n und 126 liegen, wobei die Werte 33 und 126 selbst auch\n zulässig sind\n\n";
    				cin >> zahl;
    			}
    
    zaehler=1;		
    
    			if(zaehler<65)
    			{
    				cin >> rahmenzahl;
    				zaehler=zaehler+1;
    			}
    
    			cout << "Das zu der Zahl" << zahl << "gehoerende ASCII - Zeichen ist: \n\n";
    
    zaehler=1;
    			if(zaehler<65)
    			{
    				cin >> rahmenzahl;
    				zaehler=zaehler+1;
    			}
    cout << "Wenn Sie die Eingabe einer ganzen Zahl fuer ein ASCII - Zeichen\n wiederholen wollen, dann geben Sie bitte ein 'j' ein, sonst ein 'n'\n\n";
    cin >> wdhlg; 
    }
    return 0;
    }
    

    Wie schreib ich denn while(33>zahl<126)

    muss ick doch anders schreiben ne?



  • Wie schreib ich denn while(33>zahl<126)

    muss ick doch anders schreiben ne?

    Genauso?

    while(zahl<33 && zahl<126)
    

    Ich nehm an du meintest dass die Zahl zw. 33 und 126 liegt weil (33>zahl<126) bedeutet dass die zahl kleiner als 126 und kleiner als 33 ist - was die 126 reichlich sinnlos macht

    while(33<zahl && zahl<<126)
    

    Dein Programm solltest du nochmal überdenken



  • oh ja meinte 33>zahl<126



  • error Nummer 1
    Die nicht initialisierte lokale Variable "j" wurde verwendet.

    error Nummer 2
    Die nicht initialisierte lokale Variable "zahl" wurde verwendet.



  • Wir haben ja nun schon mehrere deiner Threads gesehen...bitte schau dir endlich ein Tutorial an



  • das dauert allet zulange, brauch C++ doch ehh nur fürn Testat, deshalb wärs schön mir direkt zu helfen



  • SuperTalent schrieb:

    das dauert allet zulange, brauch C++ doch ehh nur fürn Testat, deshalb wärs schön mir direkt zu helfen

    Das soll also heißen wir sollen dir zu einer guten Note verhelfen? Ok, was kriege ich dafür? 😡



  • Ich krieg darauf keine Note.. bestanden oder nicht... Prüfungsvorleistung... und das soll nicht heißen, ihr sollt mir hier allet vorzeigen, bzw meine Programme schreiben, hab bis jetzt min 85% selber gelöst (10 programme) und lediglich 3 Threads aufgemacht wegen simplen Dingen, so und jetzt nicht vom Thema abweichen 😃

    , die 2 Beiträge die du geschrieben hast, hätten mir bestimt schon zur Lösung verholfen -.-*



  • Egal wo dus lernst-da brauchst dus auch sicher mal ohne Hilfe ausm Inet.



  • Achja und ich hab ja selber Vorlesungsmanuskripte und Ebooks usw.. hab dit schon nen bisschen studiert, aber ich denk mal, bevor ich ich jetzt nach den 2 Fehlern in den Unterlagen suche, frag ich euch lieber



  • Es geht nicht um die zwei Fehler sondern darum dass der Code so aussieht als hättest du noch nie ein Tutorial o.Ä. gemacht.
    Du musst die Grundlagen schon ein wenig beherrschen um keine weiteren Fehler dieser Art zu produzieren.

    Davon abgesehen dass sich schon aus der Fehlerbeschreibung ergründet was die Lösung ist, wirst du wohl auch kaum was dazu in deinen Unterlagen finden



  • Ok, nach was sollt ich denn deiner meinung nach im Tut nachschauen??



  • SuperTalent schrieb:

    Ok, nach was sollt ich denn deiner meinung nach im Tut nachschauen??

    Du solltest dir mal ansehen was in der Fehlermeldung steht und in welcher Zeile sie auftritt.

    Du hast vergessen den besagten Variablen einen Wert zuzuweisen bevor du diesen abgefragt hast.

    Wenn nix drin steht, kann auch wohl kaum was gescheites bei der Abfrage herauskommen



  • #include <math.h>
    

    Hierzu hatte ich dir schon im letzten Thread was gesagt... (übrigens danke dafür an swordfish 😉 )

    int rahmenzahl=0, wdhlg=0, zahl, zaehler, j;
    
    while(wdhlg==j)
    /* ... */
    cout << "Wenn Sie die Eingabe einer ganzen Zahl fuer ein ASCII - Zeichen\n"
         << "wiederholen wollen, dann geben Sie bitte ein 'j' ein, sonst ein 'n'\n\n";
    cin >> wdhlg;
    

    Also hier läuft einiges verkehrt. Zum einen vergleichst du in deiner ersten while -Schleife zwei int -Variablen miteinander, was sich für mich nicht ganz erschließt. Und zum anderen wünschst du dir von deinem Benutzer, das dieser einen Buchstaben (j oder n) eingibt, um zu bestimmen ob dein Programm wiederholt werden soll. Der Fehler daran ist, das du die Benutzereingabe in eine int -Variable einliest, die kurz gesagt eigentlich für ganzzahlige Werte bestimmt ist.

    while(rahmenzahl<9)
    {
    	rahmenzahl=1;
        rahmenzahl+=1;
    }
    

    Das Thema "Endlosschleife" hatten wir schon in dem anderen Thread, weshalb ich nicht verstehe, wieso du hier schon wieder eine Endlosschleife geschrieben hast.

    if(zaehler<65)
    {
        cin >> rahmenzahl;
        zaehler=zaehler+1;
    }
    

    Die Variable rahmenzahl willst du vermutlich dazu verwenden, um einen Rahmen um die Ausgabe des Ergebnisses auszugeben. Der Wert dieser Variablen sollte sich eigentlich durch die Anzahl der Programmdurchläufe ergeben und nicht vom Benutzer eingegeben werden.

    Und zum Schluss: In deinem Programm soll ja unter anderem ein ASCII-Zeichen ausgegeben werden. Wie wäre es also wenn du an geeigneter Stelle deines Codes auch eine char -Variable verwendest?



  • da scheint noch mehr falsch zu sein, selbst wenn ich j und Zahl den Wert 0 gebe kommt gerade mal die Überschrift, danach gleich

    ...drücken Sie eine beliebige Taste



  • SuperTalent schrieb:

    da scheint noch mehr falsch zu sein

    Das ist auch der Grund dafür warum es nichts bringt dich auf die Fehler hinzuweisen, wenn du den Sinn dahinter noch nicht für dich erschlossen hast



  • SuperTalent schrieb:

    aber ich denk mal, bevor ich ich jetzt nach den 2 Fehlern in den Unterlagen suche, frag ich euch lieber

    Hm. Selber nicht bereit, ein Bisschen Zeit in eigene Recherche zu stecken, aber erwarten, dass andere für deine Faulheit gradstehn und dir ihre Zeit opfern? Nenn uns einen guten Grund... *plonk*

    http://www.tty1.net/smart-questions_de.html#before



  • Naja werd dann mal selber nach der Lösung forschen und mir nochmal einige tut anschauen, dann meld ich mich hier wieder mit eigenen Ansätzen


Anmelden zum Antworten