Programmieren nach Flussdiagramm, Ansätze?



  • 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



  • Ein Flussdiagramm ist ein Pseudocode und damit gültig für alle Programmiersprachen. Er kann das Programmieren stark vereinfachen und schult das abstrakte Denken für das, was ein Programm machen soll. Wenn Du nur eine Note für einen Test brauchst ist hier jede Hilfe eigentlich überfrlüssig. Du sollst ja etwas lernen!



  • Danke danke, dass weiß ich jetzt mittlerweile auch schon. Und ich machs nochmal deutlich, ich will von euch keine Lösung! Ich finde das ich halt andere Ansichten habe als bei einigen von euch. Liegt vllt an der unterschiedlichen Zielstellung.

    Wenn ich dann frage, was verkehrt ist, andem was ich programmiert habe, dann würd ich solche Antworten wie ... guck doch nochmal da und da nach, guck mal in deinen Materialien nach dem und dem Stichwort nach... , aber was ich nicht toll finde, dass einige von euch denken, der möchte nur ne Lösung, also erst mal rumpöbeln und Sachen verdrehen, 2. nur noch um heißen Brei drumherum reden....

    Das ist nicht Ok. Ich hab geschrieben das die Programme bis zum Tag der Prüfungen laufen müssen. was nicht heißen soll dass Ihr mir nen fertiges Programm servieren sollt, war nie meine Absicht. Ich sitze nach meinem Studium noch Abends bis in die Nacht hinein wegen so ein Programm, und bei Problemen googelt man, guckt in den Materialien und wenn alles nichts nützt landet man halt hier, seien die Problerme/Fehler für euch auch noch sooo simple.

    MFG



  • Dann sag doch bitte mal, wo jetzt noch dein Problem ist..
    Ein Flussdiagramm ist ja die (auch für nicht-Programmierer) verständliche Form eines Programmes. Und sollte keine grossen Probleme bereiten das in einer Programmiersprache umzusetzen, da es ziemlich genau das aussagt, was im Code steht. (if,else,loops usw.) Einfach in grafischer Form.



  • kein Problem, ich war nur verunsichert, Probleme beziehen sich jetzt eher auf das Programm



  • mein problem is recht simple, nur versteh ich es nicht so ganz, und zwar:

    Int zahl
    

    Warnung: Die nicht initialisierte lokale Variable "zahl" wurde verwendet.

    D.h ich muss Zahl einen Wert zuweisen wie zB Zahl=1;

    geht aber nicht, da Zahl eingegeben werden soll.

    cin <<zahl;
    


  • SuperTalent schrieb:

    Warnung: Die nicht initialisierte lokale Variable "zahl" wurde verwendet.

    Das Problem ist (unter anderem), das du die Variable zahl bereits in deinem Code benutzt bevor ihr ein Wert zugewiesen wurde. Hier nochmal der Anfang deines Codes:

    #include <iostream> 
    #include <math.h> // verwende besser <cmath>
    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) // Endlosschleife: Schau dir bitte mal genau den Schleifenrumpf an
    { 
        rahmenzahl=1; 
        rahmenzahl+=1; 
    }        
                while(33>zahl)(zahl<126); //Hier verwendest du bereits die Variable 'zahl',
                                          // aber ihr wurde noch kein Wert zugewiesen und es müsste while(zahl >= 33 && zahl <= 126) heißen
                { 
                    cout << "Geben Sie bitte eine  ganze Zahl fuer einen ASCII-Wert ein.!\n"
                         << "Die 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; 
                }
    /* ... */
    

    Bitte schau dir meine Kommentare dazu an :).



  • Ja danke, die Endlosschleife mach ich später 🙂

    zu dem Thema Zahl:

    cout << "\n\nGeben Sie bitte eine ganze Zahl fuer einen ASCII-Wert ein.!\nDie von Ihnen eingegebene ganze Zahl muss zwischen 33\nund 126 liegen, wobei die Werte 33 und 126 selbst auch\nzulässig sind\n\n";
    				cin >> zahl;
    				while(zahl>33 && zahl<126)
    

    bzw

    cout << "\n\nGeben Sie bitte eine ganze Zahl fuer einen ASCII-Wert ein.!\nDie von Ihnen eingegebene ganze Zahl muss zwischen 33\nund 126 liegen, wobei die Werte 33 und 126 selbst auch\nzulässig sind\n\n";
    				cin >> zahl;
    				while(zahl>33 && zahl<126)
    				{cout << "\n\nGeben Sie bitte eine ganze Zahl fuer einen ASCII-Wert ein.!\nDie von Ihnen eingegebene ganze Zahl muss zwischen 33\nund 126 liegen, wobei die Werte 33 und 126 selbst auch\nzulässig sind\n\n";
    					cin >> zahl;
    				}
    

    Also theorethisch muss das ja danach kommen, ist aber so wie hier nicht umsetzbar..


Anmelden zum Antworten