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

24.12.2006, 11:08

;) Naja so ähnlich...

Aber dein Code könnte man wesentlich kürzer und besser machen ... versuch das mal noch anzupassen ...
Devil Entertainment :: Your education is our inspiration
Der Spieleprogrammierer :: Community Magazin
Merlin - A Legend awakes :: You are a dedicated C++ (DirectX) programmer and you have ability to work in a team? Contact us!
Siedler II.5 RttR :: The old settlers-style is comming back!

Also known as (D)Evil

Sn3aK87

Treue Seele

  • »Sn3aK87« ist der Autor dieses Themas

Beiträge: 110

Wohnort: Freiberg, nähe Dresden

Beruf: Informatikstudent TU Dresden ab 1.10.2007

  • Private Nachricht senden

12

24.12.2006, 11:37

Zitat von »"Deviloper"«

;) Naja so ähnlich...

Aber dein Code könnte man wesentlich kürzer und besser machen ... versuch das mal noch anzupassen ...


So hier vllt --> gleiche funktionsweise aber halb so langer code^^

C-/C++-Quelltext

1
// Siehe ganz ganz unten^^

big_muff

Alter Hase

Beiträge: 460

Wohnort: Schweiz

Beruf: Informatikstudent (4. Semester)

  • Private Nachricht senden

13

24.12.2006, 12:26

Sieht schon viel eleganter aus.
Einen kleinen Fehler hats aber noch:
Bei einer falschen Eingabe wird das ganze "Term:" und "Das Ergebnis lautet:" trotzdem ausgegeben, allerdings ist das Ergebnis dabei undefiniert (sprich: "Irgend ein Schwachsinn")
Nur Idioten halten Ordnung, ein Genie beherrscht das Chaos.[size=7]

[/size]HardFate - Ein Start, Ein Ziel, Viele Wege[size=7]

[/size]Ein Mitglied der VEGeiCoUndGraSonMaWiGeS Bewegung.

Sn3aK87

Treue Seele

  • »Sn3aK87« ist der Autor dieses Themas

Beiträge: 110

Wohnort: Freiberg, nähe Dresden

Beruf: Informatikstudent TU Dresden ab 1.10.2007

  • Private Nachricht senden

14

24.12.2006, 12:51

Zitat von »"big_muff"«

Sieht schon viel eleganter aus.
Einen kleinen Fehler hats aber noch:
Bei einer falschen Eingabe wird das ganze "Term:" und "Das Ergebnis lautet:" trotzdem ausgegeben, allerdings ist das Ergebnis dabei undefiniert (sprich: "Irgend ein Schwachsinn")


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
#include <iostream>
#include <math.h>

using namespace std;

int main()
{
    int Auswahl;

    do
    {
        system("cls");
    
        cout << "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"<< endl;
        cout << " Kleines Taschenrechnerprogramm" << endl;
        cout << endl;
        cout << "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"<< endl;
        cout << endl;
        cout << " 1 - Start " << endl;
        cout << " 2 - Beenden " << endl;
        cout << endl;
        cout << " -------------" << endl;
        cout << " Option: ";
        cin >> Auswahl;

        if (Auswahl == 1)
        {
            system ("cls");
            float a, b, Ergebnis;
            char Operator;

            cout << "Bitte geben Sie zwei Zahlen ein: " << endl;
            cout << endl;
            cout << "a = ";
            cin >> a;
            cout << "b = ";
            cin >> b;
            cout << "Rechenoperation durchführen: " << endl;;
            cout << "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" << endl;
            cout << "Operator angeben: +, -, /, *, %, p (p für Potenz)" << endl;
            cout << "Auswahl: ";
            cin >> Operator;

            switch (Operator)
            {
                case '+': { Ergebnis = a + b; } break;
                case '-': { Ergebnis = a - b; } break;
                case '*': { Ergebnis = a * b; } break;
                case 'p': { Ergebnis = pow(a,b); } break;
                case '/': 
                    { 
                        if (b == 0)
                        {
                            cout << endl;
                        }
                        else
                        {   Ergebnis = a/b; }
                    
                    } break;
                case '%':
                    { 
                        int iA = a;
                        int iB = b;

                        if (b == 0)
                        {
                            cout << endl;
                        }
                        else
                        { Ergebnis = iA % iB; }
                 
                    } break;

                default: { cout << "Falsche Eingabe" << endl; }
            

            }
            
            if ((b == 0 && Operator == '/') || (b == 0 && Operator == '%'))
            {
                system ("cls");
                cout << endl;
                cout << "Falsche eingabe" << endl;
                cin.ignore();
                cin.get();  
            }
            else
            {
                system ("cls");
                cout << endl;
                cout << "~~~~~~~~~~~~~~~~~~~~~~~~~" << endl;
                cout << "Term: " << a << Operator << b << endl;
                cout << "Das Ergebnis lautet: " << Ergebnis << endl;
                cin.ignore();
                cin.get();  
            }
            
        }
    
    } while (Auswahl != 2);

return 0;
}


jetzt dürften keine fehler mehr vorhanden sein... "außer man gibt keine zahl ein...^^

15

24.12.2006, 13:45

Ja schon um einiges besser. Geht noch kürzer und schöner :)
Devil Entertainment :: Your education is our inspiration
Der Spieleprogrammierer :: Community Magazin
Merlin - A Legend awakes :: You are a dedicated C++ (DirectX) programmer and you have ability to work in a team? Contact us!
Siedler II.5 RttR :: The old settlers-style is comming back!

Also known as (D)Evil

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

16

24.12.2006, 13:50

was passiert wenn du teilen willst und b = 0 ist? Gut in nachhinein fängst du es ab, aber dann ist Divison durch Null schon längst passiert. Gibt es da keine Fehlermeldung?
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

Sn3aK87

Treue Seele

  • »Sn3aK87« ist der Autor dieses Themas

Beiträge: 110

Wohnort: Freiberg, nähe Dresden

Beruf: Informatikstudent TU Dresden ab 1.10.2007

  • Private Nachricht senden

17

24.12.2006, 14:13

Zitat von »"Nox"«

was passiert wenn du teilen willst und b = 0 ist? Gut in nachhinein fängst du es ab, aber dann ist Divison durch Null schon längst passiert. Gibt es da keine Fehlermeldung?


Ja keine ahnung, eigentlich sollte der den fehler bringen aber macht er nicht... auch wenn ich es durchlaufen lasse.. keine ahnung was der hat^^

Sn3aK87

Treue Seele

  • »Sn3aK87« ist der Autor dieses Themas

Beiträge: 110

Wohnort: Freiberg, nähe Dresden

Beruf: Informatikstudent TU Dresden ab 1.10.2007

  • Private Nachricht senden

18

24.12.2006, 14:16

Zitat von »"Deviloper"«

Ja schon um einiges besser. Geht noch kürzer und schöner :)


Inwiefern kürzer? und schöner?
naja ich könnte auch mit MFC jetzt anfangen... dann hätten wir es schonmal schöner^^ aber viel kürzer schreiben gehts ne... oder hastn beispiel parat?
ich meine du kannst auch einfach einen string eingeben und dann abfragen was eine zahl ist und was ein operator ist und dann das ergebnis berechnen lassen (aber einen parser wollt ich nicht programmieren) nene^^
du könntest mir ja mal ein von dir erwarteten "kurzen und schönen code" posten :)

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
#include <iostream>
#include <math.h>

using namespace std;

int main()
{
    int Auswahl;

    do
    {
        system("cls");
    
        cout << "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"<< endl;
        cout << " Kleines Taschenrechnerprogramm" << endl;
        cout << endl;
        cout << "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"<< endl;
        cout << endl;
        cout << " 1 - Start " << endl;
        cout << " 2 - Beenden " << endl;
        cout << endl;
        cout << " -------------" << endl;
        cout << " Option: ";
        cin >> Auswahl;

        if (Auswahl == 1)
        {
            system ("cls");
            float a, b, Ergebnis;
            char Operator;

            cout << "Bitte geben Sie zwei Zahlen ein: " << endl;
            cout << endl;
            cout << "a = ";
            cin >> a;
            cout << "b = ";
            cin >> b;
            cout << "Rechenoperation durchführen: " << endl;;
            cout << "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" << endl;
            cout << "Operator angeben: +, -, /, *, %, p (p für Potenz)" << endl;
            cout << "Auswahl: ";
            cin >> Operator;

            switch (Operator)
            {
                case '+': { Ergebnis = a + b; } break;
                case '-': { Ergebnis = a - b; } break;
                case '*': { Ergebnis = a * b; } break;
                case 'p': { Ergebnis = pow(a,b); } break;
                case '/': 
                    { 
                        if (b == 0)
                        {
                            cout << endl;
                        }
                        else
                        {   Ergebnis = a/b; }
                    
                    } break;
                case '%':
                    { 
                        int iA = a;
                        int iB = b;

                        if (b == 0)
                        {
                            cout << endl;
                        }
                        else
                        { Ergebnis = iA % iB; }
                 
                    } break;

                default: { cout << "Falsche Eingabe" << endl; }
            

            }
            
            if ((b == 0 && Operator == '/') || (b == 0 && Operator == '%'))
            {
                system ("cls");
                cout << endl;
                cout << "Falsche eingabe" << endl;
                cin.ignore();
                cin.get();  
            }
            else
            {
                system ("cls");
                cout << endl;
                cout << "~~~~~~~~~~~~~~~~~~~~~~~~~" << endl;
                cout << "Term: " << a << Operator << b << endl;
                cout << "Das Ergebnis lautet: " << Ergebnis << endl;
                cin.ignore();
                cin.get();  
            }
            
        }
    
    } while (Auswahl != 2);

return 0;
}

19

24.12.2006, 14:44

Naja ... in einem anderen Forum hab ich und jemand anderes mal ne schöne Lösung jeweils gepostet ... hmm die von dem anderen ist diese wobei er da nen paar Schönheitsfehler drin hatte ...
Devil Entertainment :: Your education is our inspiration
Der Spieleprogrammierer :: Community Magazin
Merlin - A Legend awakes :: You are a dedicated C++ (DirectX) programmer and you have ability to work in a team? Contact us!
Siedler II.5 RttR :: The old settlers-style is comming back!

Also known as (D)Evil

20

18.01.2007, 22:47

ich hab da auch mal einen taschenrechner programmiert ... bzw. als übung stand zur wahl taschenrechner oder verschiebe-spiel, ich konnte mich nicht entscheiden : TRSlide

Werbeanzeige