Fehlersuche in einem Quelltext - Schulnote



  • das /* am anfang würde den ganzen code kommentiren(nutzlos machen) also noch ein */dran 😉



  • Ich lerne IT-Systemelektroniker.. da muss man sowas können... gerade erst angefangen, grundlagen...

    Die Arbeit hab ich aus der parallel - klasse... der schreibt immer die gleichen...



  • /*Testprogramm.cpp

    #include <stdio.h> 
    float MwstSatz, Nettowarenwert; Auszeichnungspreis;  // Semikolon statt Komma
    char Wahl="w";     // Zeichen muss in '' stehen, nicht in ""
    void main()   // hm, Int main vllt?
    {  
      printf("==========Rechnungspreis========= /n"); 
      while (Wahl !='e')   
     {                             // geschweifte klammer müsste wohl weg              
     do                            // kein do, es sei denn bei C ist das so...
     { printf (Nettowarenwert: "; 
       scanf(" %f",&Nettowarenwert); 
     } 
     while(Nettowarenwert<=o); 
     do { 
      printf("Mehrwertsteuer: ); 
      scanf("%f", MwstSatz); 
     } while (MwstSatz<=0) 
     Auszeichnungspreis == Nettowarenwert * MwstSatz;   // kein doppeltes =
     printf(" Auszeichnungspreis= 6.2f", Auszeichungspreis); 
     Printf("\n\n Ende mit (E) -> "; 
     scanf(" %c ",&Wahl); 
    
    } 
    }
    

    Cool hab nur 6 Fehler...ich fühl mich schlecht, ich geh weinen
    Aber gut, von C hab ich auch keine Ahnung^^



  • Sonnenblume schrieb:

    Hallo schreiben morgen eine Arbeit in C++, ua. ist folgende Aufgabe dran:

    Welche Zeilen des Programmes sind fehlerhaft (12F) und warum
    (jeweilige Stelle in der zeile unterstreichen bzw. ausbessern)

    /*Testprogramm.cpp                                 // Kommentarabschluss fehlt
    #include <stdio.h>
    float MwstSatz, Nettowarenwert; Auszeichnungspreis;  // hinter Netto.. ein , statt ;
    char Wahl="w";                                       // 'w' muss es heissen 
    void main()
    {  printf("==========Rechnungspreis========= /n");
      while (Wahl !='e')
     {
     do
     { printf (Nettowarenwert: ";                       // Klammer vergessen
       scanf(" %f",&Nettowarenwert);
     }
     while(Nettowarenwert<=o);                          // eine 0 statt o
     do {
      printf("Mehrwertsteuer: );                        // " vergessen
      scanf("%f", MwstSatz);
     } while (MwstSatz<=0)
     Auszeichnungspreis == Nettowarenwert * MwstSatz;   // ein = zuviel
     printf(" Auszeichnungspreis= 6.2f", Auszeichungspreis);
     Printf("\n\n Ende mit (E) -> ";               // print f klein (?)
     scanf(" %c ",&Wahl);
    
    }
    }                            // } eine zuviel
    

    Natürlich sind ein paar ganz offensichtliche Fehler drin.

    Wäre super wenn jmd. mit "suchen" hilft! Brauch unbedingt ne 1 😃

    Danke im v******!



  • Gott bin ich schlecht, stimmt ja^^ Dämlich... -.-



  • aber jetzt fehlen mir halt noch einige ... erst 8 😞



  • /*Testprogramm.cpp//fehlendes kommentarende
    #include <stdio.h>//#include <cstdio>
    float MwstSatz, Nettowarenwert; Auszeichnungspreis;//, statt ;
    char Wahl="w";//'w'
    void main()//int main
    {  
      printf("==========Rechnungspreis========= /n");
      while (Wahl !='e')
      {
        do
        { 
          printf (Nettowarenwert: ";//fehlende " fehlende )
          scanf(" %f",&Nettowarenwert);
        }
        while(Nettowarenwert<=o);//o statt 0
    
        do
        {
          printf("Mehrwertsteuer: );//fehlende "
          scanf("%f", MwstSatz);
        }
        while (MwstSatz<=0)//fehlendes ;
    
        Auszeichnungspreis == Nettowarenwert * MwstSatz;//== statt =
        printf(" Auszeichnungspreis= 6.2f", Auszeichungspreis);//damit ist irgendwas ganz falsch^^
        Printf("\n\n Ende mit (E) -> ";//Printf statt printf fehlende )
        scanf(" %c ",&Wahl);
    
      }
    }
    

    mist, komm auf 14^^



  • Gleich noch was:

    Ist der quellcode korrekt:

    #include <stdio.h>
    #include <iostream.h>
    #include <conio.h.>
    
    void main()
    {
     int Anlagendauer;
     float zins, Kapital;
     float zinssatz1=0.06;
     float zinssatz2=0.02;
     cout << "bitte Kapital eingeben";
     cin >> Kapital;
     cout << "bitte Anlagendauer eingeben";
     cin >> Anlagendauer;
     if(Anlagendauer>=6)
       {
       zins=Kapital*zinssatz1;
       }
     else
       {
       zins=Kapital*zinssatz2;
       }
     cout << zins;
       Kapital= Kapital+zins;
     cout << Kapital;
     }
    getch()
    


  • cout << Kapital; 
     }  //muss ans ende
    getch()
    

    Ahjo und @ otze
    wieso auf 14? Hab bei dir nur 10 Kommentare gezählt 😃



  • Häää... was programmiert ihr überhaupt? C oder C++? Das vorhin war C, und nun kommst du mit C++. Die C++ Header mit .h sind veraltet und sollten nicht verwendet werden. Wenn ihr es aber sicher so gelernt habt ist es zwar dumm, aber mach es besser auch so in der Arbeit 👎

    Gruß



  • Naja also der offiziele Deckmantel ist C++... veralterte lehrer.. weiss ni ob das so richtig was wird 🙂



  • Nö, ich würds nicht so in der Arbeit machen. Wenn der Lehrer dir das hinterher als falsch anstreicht, kannst du ihn mal richtig fertig machen, denn schließlich geht es ja darum, richtige Antworten hinzuschreiben und nicht was der Lehrer hören will.
    Wenn er ne Frage stellt und du antwortest mit einer völlig korrekten Antwort drauf, die sogar noch korrekter ist als seine, weil er veraltete Header-Datein benutzt, dann kann es wohl kaum ein Fehler sein 😉



  • milo51 schrieb:

    cout << Kapital; 
     }  //muss ans ende
    getch()
    

    Ahjo und @ otze
    wieso auf 14? Hab bei dir nur 10 Kommentare gezählt 😃

    es soll ja leute geben, die in eine zeile 2 fehler packen...

    und btw sinds 12 kommentare, nur 2 sind nicht grün dargestellt, da der code da nen fehler hat 😉



  • kleiner Nachschlag:

    scanf("%f", MwstSatz); // Ampersand fehlt
    
    //#include <stdio.h>  // brauchst du nicht, und wenn, waere es <cstdio>
    #include <iostream>   // dies ist der Standard-Header
    //#include <conio.h.> // wozu? fuer getch? schau in die Konsolen-FAQ...
    
    using std::cout;
    using std::cin;
    
    int main() // void main ist ganz, ganz boese :)
    {
      int Anlagendauer;
      float zins, Kapital; // eine Deklaration pro Zeile waere schoener
      float zinssatz1=0.06f;
      float zinssatz2=0.02f;
      cout << "bitte Kapital eingeben";
      cin >> Kapital;
      cout << "bitte Anlagendauer eingeben";
      cin >> Anlagendauer;
      if (Anlagendauer>=6)
      {
        zins=Kapital*zinssatz1;
      }
      else
      {
        zins=Kapital*zinssatz2;
      }
      cout << zins;
      Kapital += zins; //
      // fehlt hier ein newline oder so was?
      cout << Kapital;
    }
    //getch()
    


  • Vielen Dank!



  • milo51 schrieb:

    Nö, ich würds nicht so in der Arbeit machen. Wenn der Lehrer dir das hinterher als falsch anstreicht, kannst du ihn mal richtig fertig machen, denn schließlich geht es ja darum, richtige Antworten hinzuschreiben und nicht was der Lehrer hören will.
    Wenn er ne Frage stellt und du antwortest mit einer völlig korrekten Antwort drauf, die sogar noch korrekter ist als seine, weil er veraltete Header-Datein benutzt, dann kann es wohl kaum ein Fehler sein 😉

    Ach man ist immer der Arsch... Vor allem weil sich viele Lehrer so aufspielen und meinen sie wären es, haben aber in Wirklichkeit keine Ahnung, weil sie eigentlich nur Mathe oder Physik oder so unterrichten und man eben nen Lehrer gesucht hat.... Keine Ahnung wieviele Minuten dann so eine Fortbildung geht, aber es sind wohl zu wenige. Ich hoffe ich sprech hier nicht für die Mehrheit der Lehrer, bei uns an der Schule (IT-Gymansium) ist es aber so...

    Beispiel:

    Lehrer: "... und was passiert wenn wir keinen Konstruktor schreiben?"
    Schüler: "Der Compiler erstellt einen Standard Konstruktor, bei dem ... "
    Lehrer (unterbricht mich): "Falsch, ohne Konstruktor ist die Klasse eine abstrakte Klasse und kann nicht instanziert werden."

    Villeicht schreib ich ja noch nen Buch 😡

    Gruß



  • Lol wie dumm???
    Und da gibst du schon auf? 😃 Ey, der hätte was von mir zu hören bekommen, aber nee, vor allem hätte ichs ganz einfach gelöst: am nächsten Tag das Buch mitbringen, ihm die entsprechende Seite zeigen und ihn dann auslachen... 😃
    Irgendwie so.

    Edit: Irgendwie interessiert mich, wie dein Satz weiter gehen würde: ...erstellt einen Standard-Konstruktur, bei dem...?? ^^



  • Hallo Alle,

    wenn ich mal die Tatsache, dass es sich hier um C und nicht C++ handelt und die mangelhafte Einrückung nicht als Fehler zähle, so komme ich immerhin noch auf mindestens 17 Fehler.
    Bietet jemand mehr?

    Gruß
    Werner



  • ..., bei dem für alle nicht built-in-types der Standardkonstruktor aufgerufen wird.

    lustiges anderes Beispiel: Wir erste Klasse: TKlasse. Ich weiß zwar selber nicht genau warum Borland ein T und MS ein C davor hat, aber ich vermute es ist einfach um Namenskonflikte zu verwenden, da es damals noch keine Namespaces gab. Auf jede Fall freut es unseren Lehrer immer da ein T davor zu schreiben...

    Nun wollen wir unsere Klasse natürlich testen. Stolz erzählt er uns dass man auch den Konstruktor überladen kann, und dass man dann noch Werte übergeben kann. Ohne Werte siehts anscheinend so aus:

    TKlasse klasse();
    

    Nach ca. 5min schweigen haben wir ihn drauf Aufmerksam gemacht dass er einen Funktionsprototyp und keine Variable deklariert hat. Antwort seinerseits: "achja, stimmt"

    Ich dreh noch durch...

    Gruß



  • 😃 😃 😃 man man

    Ja bei unserer 1. praktischen Informatikstunde (leider Delphi............) schreibt der Lehrer: TForm1.color = cBlue;

    Auch gleich 2 Fehler drin, die ich dann korrigieren durfte^^


Anmelden zum Antworten