Rechenprogramm



  • Hallo, ich bin das erste mal hier in diesem Server. Ich hoffe, ich habe trotzdem das richtige Forum gefunden. Nun, ich kann mit den Programmiersprachen php, html, css, js... schon umgehen. Aber in dem Gebiet des NICHTinternets bin ich leider noch vollkommen unbewandert. Dies ist ungefähr die 4-5 Stunde, die ich mit C/C++ verbringe. Nun, ich habe eine frage, die ich selber nicht beantworten konnte:

    #include <stdio.h>
    #include <stdlib.h>
    
    void main()
        {
        int zahl1;
        int zahl2;
    
        printf("Zahl eins: ");
        scanf("%d", &zahl1);
        printf("Zahl zwei: "); 
        scanf("%d", &zahl2); 
    
        printf("\n\n");
    
        printf("Summe     %d + %d = %d", zahl1, zahl2, zahl1 + zahl2); 
        printf("Differenz %d - %d = %d", zahl1, zahl2, zahl1 - zahl2);
        printf("Produkt   %d * %d = %d", zahl1, zahl2, zahl1 * zahl2);
    	}
    

    Dieses Programm verlässt sowohl der Compiler C++ als auch der Compiler MV C++
    nachdem die abfragen der beiden Zahlen abgeschickt wurden. Was kann ich da tun um diesen fehler zu beseitigen? In dem Buch C/C++ von Ulrich Kaiser habe ich genau diesen Quellcode abgeschrieben. Hat jemand eine Lösung?





  • Eingabeaufforderung starten und das Programm dort starten.



  • #include <conio.h>
    ...
    while(getchar()!='\0');
    getch();
    ....

    system("PAUSE");

    usw. faq siehe oben



  • Stelfer schrieb:

    #include <conio.h>
    ...
    while(getchar()!='\0');
    getch();
    ....

    system("PAUSE");

    usw. faq siehe oben

    FAQ: wieso man die Funktion system meiden soll
    Und conio geht auch nur mit Windows, is also kein Standard



  • danke schonmal für eure Tipps. Aber das Problem ist noch nicht behoben. Ich habe es jetzt wiefolgt erweitert:

    #include <stdio.h>
    #include <stdlib.h>
    
    # define WAIT for(;;)
    void main()
        {
        int zahl1;
        int zahl2;
    
        printf("Zahl eins: ");
        scanf( "%d", &zahl1);
        printf("Zahl zwei: "); 
        scanf( "%d", &zahl2); 
    
        printf("Summe     %d + %d = %d", zahl1, zahl2, zahl1 + zahl2); 
        printf("Differenz %d - %d = %d", zahl1, zahl2, zahl1 - zahl2);
        printf("Produkt   %d * %d = %d", zahl1, zahl2, zahl1 * zahl2);
    
        WAIT;
        }
    


  • THX 1138 schrieb:

    Stelfer schrieb:

    #include <conio.h>
    ...
    while(getchar()!='\0');
    getch();
    ....

    system("PAUSE");

    usw. faq siehe oben

    FAQ: wieso man die Funktion system meiden soll
    Und conio geht auch nur mit Windows, is also kein Standard

    dass man die meiden soll ist schon klar, aber am anfang der programmierkarriere ist das wohl das beste, lieber etwas "dummen" code schreiben den man später ändert als ein code zu schreiben den man garnicht versteht, siehe faq

    es geht zwar aber lerneffekt = 0

    oder verlangst du von einem der gerade anfängt zu programmieren bestimmte defines und makros zu können, anfänger -> niveau senken



  • wieso sachen falsch machen, die man richtig machen koennte?

    (1) einfach den krempel von der konsole ausfuehren. dort laesst man ja auch den compiler laufen.

    (2) und wer den compiler nicht aus der konsole laufen laesst, der laesst ihn durch die IDE laufen. das heisst, dass die IDE auch das ausfuehren des programms beschert und geschickterweise gleich eine pause einarbeitet (mit shell script o.ae.).

    (3) und wer den compiler z.b. durch seinen editor (als tool, o.ae.) ausfuehrt, weiss was er macht und sollte anfangen es wie in 1 zu machen oder seinem editor die faehigkeiten aus 2 beibringen.



  • raubritter schrieb:

    danke schonmal für eure Tipps. Aber das Problem ist noch nicht behoben.

    Dann solltest du die Tipps auch mal durchlesen - die erste Anwort (von THX) enthält einen Link zu einer ausführlichen Lösung.



  • meine wette: "sorry. soll ich etwa auf den link klicken??"



  • @Stelfer: Ich hab eine allgemein gültige Lösung verlinkt, die wohl nicht ohne Grund in der FAQ steht. Warum sollte ein Anfänger nicht lernen nach Standard zu programmieren? Ist auch nicht schwerer zu verstehn und die Funktionen kann er nachschlagen.



  • stimmt, aber ich glaube 85% der user von ansi c erlernen es nur um später umsteigen zu können, also wozu 100 verschiedene arten lernen um portabel zu programmieren (programm wird auch nicht verkauft o.ä.) es soll ja ihm nur anzeigen was rauskommt (schneller als mit der konsole durch compiler)

    natürlich kann man alles nachschlagen aber dann kann man gleich mit api anfangen und befehl für befehl nachschlagen sowie eine schleife.

    es ist übertrieben aber das ist die realität, am anfang will man nur seinen code sehen und wenn man es kann will man es erst portabel machen, oder interessiert es dich ob einer linux hat wenn du ein programm für dich schreibst und du nur windows benutzt



  • Stelfer schrieb:

    ... also wozu 100 verschiedene arten lernen um portabel zu programmieren

    Weil Programmieren lernen bedeutet, nicht herumzufrickeln. Sich Gedanken darüber zu machen warum Lösung A besser ist als Lösung B.

    Sicher ist man als Anfänger nicht darauf angewiesen superportablen Code zu schreiben und sich in Syntaxzucker zu wälzen. Aber schaden kann es nicht. Außerdem heisst dieses Forum ANSI C. Alles andere steht nicht zur Debatte.



  • Stelfer schrieb:

    stimmt, aber ich glaube 85% der user von ansi c erlernen es nur um später umsteigen zu können, also wozu 100 verschiedene arten lernen um portabel zu programmieren (programm wird auch nicht verkauft o.ä.) es soll ja ihm nur anzeigen was rauskommt (schneller als mit der konsole durch compiler)

    natürlich kann man alles nachschlagen aber dann kann man gleich mit api anfangen und befehl für befehl nachschlagen sowie eine schleife.

    es ist übertrieben aber das ist die realität, am anfang will man nur seinen code sehen und wenn man es kann will man es erst portabel machen, oder interessiert es dich ob einer linux hat wenn du ein programm für dich schreibst und du nur windows benutzt

    Stimmt, aber wenn man kein Konsolenprogramm ausführen kann, sollte mans vielleicht sein lassen, auch unter Windows.



  • also: mein Programm ging einfach nicht weiter. auch, wenn es sich danach nicht schloss. Naja egal. Es wird ja erstmal nicht weiter benötitgt. wenn ihr keinen anderen fehler entdeckt liegt es wohl am compiler oder so.

    Nun: ich finde, dass man lernt am besten, wenn man sich irgendwas vornimmt, dass man machen will. Ich habe neben mir ein buch liegen. In dem wird beschrieben wie man in C zum Quadrat rechnet...
    Das alles brauche ich derzeit doch alles nicht. Da mein ziel in richtung 3d Grafiken geht habe ich mir einfach einen Code genommen: diesmal von Tetris und ihn so lange verändert (alte sachen gelöscht und namen geändert) bis ich ein Fenster bekommen habe, dass im Titel ein Icon hat, dann einen Namen und unten ein paar unterpunkte. Durch diese art von in anderen codes stöbern und dann die sachen für sich zurecht legen bin ich bis jetzt recht gut vorran gekommen.



  • TactX schrieb:

    Stelfer schrieb:

    ... also wozu 100 verschiedene arten lernen um portabel zu programmieren

    Weil Programmieren lernen bedeutet, nicht herumzufrickeln. Sich Gedanken darüber zu machen warum Lösung A besser ist als Lösung B.

    Sicher ist man als Anfänger nicht darauf angewiesen superportablen Code zu schreiben und sich in Syntaxzucker zu wälzen. Aber schaden kann es nicht. Außerdem heisst dieses Forum ANSI C. Alles andere steht nicht zur Debatte.

    ok das ist ein argument 😃



  • Stelfer schrieb:

    stimmt, aber ich glaube 85% der user von ansi c erlernen es nur um später umsteigen zu können...

    wohin umsteigen? 😕
    man hat doch nix davon, wenn man erst C lernt, weil man später mal in pascal, java, oder sonstwas coden will.
    ...und um programmieren überhaupt zu lernen, gibt es einfachere sachen als C



  • ich kanns mir nicht vorstellen mit api zu beginnen, darum c oder c++



  • Stelfer schrieb:

    ich kanns mir nicht vorstellen mit api zu beginnen, darum c oder c++

    welche api?
    du sprichst in rätseln... 😕



  • winapi -.-


Log in to reply