Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

11

27.11.2007, 22:07

Aja. Ok danke!

Sei mir nicht böse wenn ich das nur zur hälfte ferstehe.

Wie muss ich das jetzt in mein quellcode einbinden?
Wenn ich die while schleife vor meinem code setze spuckt der compiler einen fehler aus!?

Ich verwende den 6.0er zum schreiben und den 05 express zum kompilen (für die fertige release version).
Das liegt daran, dass der 6.0er immer eine mitteilung vor dem starten ausgibt, dass das Programm unter lizenz etc. steht. Und weil ich das zum schreiben verwende hat auch einen Sinn: Im Buch von Heiko Kalista wird das Programm hauptsächlich erklärt...


Sry das ich das alles nicht kapier aber ich bin echt ein newbie.
Aber nett das es Leute gibt die einem helfen!!!
THX

grek40

Alter Hase

Beiträge: 1 491

Wohnort: Dresden

  • Private Nachricht senden

12

27.11.2007, 23:23

Zitat von »"raXor"«


Sei mir nicht böse wenn ich das nur zur hälfte ferstehe.

Wie muss ich das jetzt in mein quellcode einbinden?
Wenn ich die while schleife vor meinem code setze spuckt der compiler einen fehler aus!?

Alles was innerhalb der {} von dieser Schleife steht wird wiederholt -> also packst du die Schleife weder davor noch dahinter sondern so ungefähr rundrum.
Wenn du damit Probleme hast dann lies erstmal bis zum Kapitel mit den Schleifen oder find dich vorerst damit ab, dass dein Prog startet, fragt ob mach rechnen oder die Hilfe sehen will und dann nach entsprechender Reaktion wieder beendet. Alles was mit 'nochmal rechnen' zu tun hat verlangt entweder sinnloses Codegefrickel oder halt Schleifen.

13

28.11.2007, 17:16

ich hab jetzt nur exit befehl gelesen was ich dazu sagen kann ist:

exit(1);
return 0;

wie du willst.

14

28.11.2007, 18:05

Hallo,
ich habe jetzt mein code extrem vereinfacht...
aber immer noch nicht will es funktionieren...
Die Schleife funtioniert, aber es wird einfach nichts mehr ausgewählt... ?!

Hier der Code:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
/*
Einfaches Rechenprogramm 
C++ für Spieleprogrammierer
*/

#include <iostream>
using namespace std;

//Hauptprogramm

int main ()
{
    //Variablen

    float plus1 = 0.1f;
    float plus2 = 0.1f;
    float Gesamtpunkteplus = 0.1f;
    float minus1 = 0.2f;
    float minus2 = 0.2f;
    float Gesamtpunkteminus = 0.2f;
    float mal1 = 0.3f;
    float mal2 = 0.3f;
    float Gesamtpunktemal;
    float geteilt1 = 0.4f;
    float geteilt2 = 0.4f;
    float Gesamtpunktegeteilt = 0.4f;
    int befehl = 0;
    char rechnen;
    int Auswahl = 0;

    while (Auswahl != 4)
    {
    //Anfangsbildschirm

    cout << "Willkommen bei dem Rechenprogramm!\n1: Rechenvorgang starten\n2: Verfuegbare Befehle anzeigen\n3: Informationen anzeigen\n4: Programm beenden\n";
    cin >> befehl;
    //help Befehl

    if (befehl == '2')
    {
        cout << "\n1: Rechenvorgang starten\n2: Verfuegbare Befehle anzeigen\n3: Informationen anzeigen\n4: Programm beenden\n";
        cin >> befehl;
    }
    //info Befehl

    if (befehl == '3')
    {
         cout << "(c) by Uwe Collmer\nThanks for downloading and using\nVersion 0.5\nMade in about 3 hours\n";
         cin >> befehl;
    } 
    //Ausgabe der Rechenmöglichkeiten

    if (befehl == '1')
    {
        cout << "Wollen Sie (a)ddieren, (s)ubtrahieren, (m)ultiplizieren oder (d)ividieren: ";
        cin >> rechnen;
    }
    //Addition

    if ((rechnen == 'a') || (rechnen == 'A'))
    {
        cout << "Bitte die erste Zahl fuer das Additionsverfahren angeben: ";
        cin >> plus1;
        cout << "Bitte die zweite Zahl fuer das Additionsverfahren angeben: ";
        cin >> plus2;
        //Berechnung der Gesamtpunktezahl:

        Gesamtpunkteplus = plus1 + plus2;
        cout << "Gesamtergebnis: " << Gesamtpunkteplus << endl;
    }
    //Subtraktion

    if ((rechnen == 's') || (rechnen == 'S'))
    {
        cout << "Bitte die erste Zahl fuer das Subtraktionsverfahren eingeben: ";
        cin >> minus1;
        cout << "Bitte die zweite Zahl fuer das Subtraktionsverfahren eingeben: ";
        cin >> minus2;
        //Berechnung Gesamtpunktezahl

        Gesamtpunkteminus = minus1 - minus2;
        cout << "Gesamtergebnis: " << Gesamtpunkteminus << endl;
    }
    //Multiplikation

    if ((rechnen == 'm') || (rechnen == 'M'))
    {
        cout << "Bitte die erste Zahl fuer das Multiplikationsverfahren eingeben: ";
        cin >> mal1;
        cout << "Bitte die zweite Zahl fuer das Multiplikationsverfahren eingeben: ";
        cin >> mal2;
        //Berechnung Gesamtpunktezahl

        Gesamtpunktemal = mal1 * mal2;
        cout << "Gesamtergebnis: " << Gesamtpunktemal << endl;
    }
    //Division

    if ((rechnen == 'd') || (rechnen == 'D'))
    {
        cout << "Bitte die erste Zahl fuer das Divisionsverfahren eingeben: ";
        cin >> geteilt1;
        cout << "Bitte die zweite Zahl fuer das Divisionsverfahren eingeben: ";
        cin >> geteilt2;
        //Berechnung Gesamtpunktezahl

        Gesamtpunktegeteilt = geteilt1 / geteilt2;
        cout << "Gesamtergebnis: " << Gesamtpunktegeteilt << endl;
    }
    

    }
    

            return 0;
}


Weiß jemand Rat?
thx
LG

grek40

Alter Hase

Beiträge: 1 491

Wohnort: Dresden

  • Private Nachricht senden

15

28.11.2007, 18:38

da dein 'befehl' jetzt auf einmal den Typ 'int' hat solltest du für den Vergleich nicht mehr mit Zeichen sondern ebenfalls mit Zahlen hantieren:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
if (befehl == 1)
{
  // ...

}
else if (befehl == 2)
{
  // ...

}
else if (befehl == 3)
{
  // ...

}
// ...

16

28.11.2007, 19:28

Meinst du so?:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
/*
Einfaches Rechenprogramm 
C++ für Spieleprogrammierer
*/

#include <iostream>
using namespace std;

//Hauptprogramm

int main ()
{
    //Variablen

    float plus1 = 0.1f;
    float plus2 = 0.1f;
    float Gesamtpunkteplus = 0.1f;
    float minus1 = 0.2f;
    float minus2 = 0.2f;
    float Gesamtpunkteminus = 0.2f;
    float mal1 = 0.3f;
    float mal2 = 0.3f;
    float Gesamtpunktemal;
    float geteilt1 = 0.4f;
    float geteilt2 = 0.4f;
    float Gesamtpunktegeteilt = 0.4f;
    int befehl = 0;
    int auswahl = 0;
    int rechnen = 0;


    while (auswahl != 4)
    {
    //Anfangsbildschirm

    cout << "Willkommen bei dem Rechenprogramm!\n1: Rechenvorgang starten\n2: Verfuegbare Befehle anzeigen\n3: Informationen anzeigen\n4: Programm beenden\n";
    cin >> befehl;
    //help Befehl

    if (befehl == '2')
    {
        cout << "\n1: Rechenvorgang starten\n2: Verfuegbare Befehle anzeigen\n3: Informationen anzeigen\n4: Programm beenden\n";
        cin >> befehl;
    }
    //info Befehl

    if (befehl == '3')
    {
         cout << "(c) by Uwe Collmer\nThanks for downloading and using\nVersion 0.5\nMade in about 3 hours\n";
         cin >> befehl;
    } 
    //Ausgabe der Rechenmöglichkeiten

    if (befehl == '1')
    {
        cout << "Wollen Sie\n1: addieren\n2: subtrahieren\n3: multiplizieren\n4: dividieren: ";
        cin >> rechnen;
    }
    //Addition

    if (rechnen == '1')
    {
        cout << "Bitte die erste Zahl fuer das Additionsverfahren angeben: ";
        cin >> plus1;
        cout << "Bitte die zweite Zahl fuer das Additionsverfahren angeben: ";
        cin >> plus2;
        //Berechnung der Gesamtpunktezahl:

        Gesamtpunkteplus = plus1 + plus2;
        cout << "Gesamtergebnis: " << Gesamtpunkteplus << endl;
    }
    //Subtraktion

    if (rechnen == '2')
    {
        cout << "Bitte die erste Zahl fuer das Subtraktionsverfahren eingeben: ";
        cin >> minus1;
        cout << "Bitte die zweite Zahl fuer das Subtraktionsverfahren eingeben: ";
        cin >> minus2;
        //Berechnung Gesamtpunktezahl

        Gesamtpunkteminus = minus1 - minus2;
        cout << "Gesamtergebnis: " << Gesamtpunkteminus << endl;
    }
    //Multiplikation

    if (rechnen == '3')
    {
        cout << "Bitte die erste Zahl fuer das Multiplikationsverfahren eingeben: ";
        cin >> mal1;
        cout << "Bitte die zweite Zahl fuer das Multiplikationsverfahren eingeben: ";
        cin >> mal2;
        //Berechnung Gesamtpunktezahl

        Gesamtpunktemal = mal1 * mal2;
        cout << "Gesamtergebnis: " << Gesamtpunktemal << endl;
    }
    //Division

    if (rechnen == '4')
    {
        cout << "Bitte die erste Zahl fuer das Divisionsverfahren eingeben: ";
        cin >> geteilt1;
        cout << "Bitte die zweite Zahl fuer das Divisionsverfahren eingeben: ";
        cin >> geteilt2;
        //Berechnung Gesamtpunktezahl

        Gesamtpunktegeteilt = geteilt1 / geteilt2;
        cout << "Gesamtergebnis: " << Gesamtpunktegeteilt << endl;
    }
    

    }

    

            return 0;
}


tja, das funktioniert leider immer noch nicht...

Too_noobish

Treue Seele

Beiträge: 165

Wohnort: Wels - Aut

  • Private Nachricht senden

17

28.11.2007, 20:35

Es sollte auch eine do-while Schleife sein.

C-/C++-Quelltext

1
2
3
do
{
} while (x != 10)


Du hast in deinem Code aber nur eine while-Schleife.
www.mymuesli.com !!

18

28.11.2007, 20:44

Macht iwie trozdem kein unterschied ??!!!

grek40

Alter Hase

Beiträge: 1 491

Wohnort: Dresden

  • Private Nachricht senden

19

28.11.2007, 21:20

jup Too_noobish, mit der aktuellen Konstellation von Initialisierung und Abbruchbedingung ist eine while-Schleife voll ok ;)

raXor, ich hab dir grad erklärt, dass wenn du 'befehl' als int definierst du auch so damit umgehen sollst (befehl war ja irgendwann mal nen char). Zu diesem Zeitpunkt war 'rechnen' noch ein char und damit waren die Auswahlbedingungen im Zusammenhang mit 'rechnen' auch noch ok. Da du jetzt aber auf einmal 'rechnen' auch zu einem int gemacht hast brauchst du dich nicht wundern, dass weiterhin Ablauffehler vorliegen.

20

28.11.2007, 21:46

ja, aber ich habw doch alles daran angepasst, oder?
wenn nicht sagt mir doch bitte mal wo der fehler liegt...
ich bin schliesslich ein absoluter anfänger und kann zu 0 % sagen wie ich jetzt vorgehen soll?!

thx
lg

//edit: Achso!
Hab mir jetzt nochmal den quelltext sehr fraglich angeschaut:
Muss ich jetzt einfach die "int Auswahl = 0" Variable löschen und "while (auswahl != 4)" in "while (befehl != 4)" umbenennen?

Werbeanzeige