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

m3xx

Alter Hase

  • »m3xx« ist der Autor dieses Themas

Beiträge: 434

Beruf: Student

  • Private Nachricht senden

1

24.02.2013, 16:09

Aufgabe gut gelöst?

Ich wollte mal Fragen ist die Aufgabe so gut gelöst? Was hättet ihr anders gemacht. Wo sind unschöne Stellen etc?

Die Aufgabe war es einen einfachen Counter in Form einer Schleife zu basteln. Dieser Countdown akzeptiert jedoch nur ungerade Werte und soll eine Meldung ausgeben, wann die Hälfte vorbei ist.

Bin halt wieder dabei C++ zu lernen, da ich es ja letztes Jahr aus Zeitgründen und fehlender Lust abgerochen habe. (SEHR dummer fehler ._.)

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
// C++ für Spieleprogrammierer
// Listing 3.8
// Aufgabenstellung
//
#include <iostream>

using namespace std;

int main()
{
    int Zahl;

    cout << "Zahl eingeben: ";
    cin >> Zahl;

    if(Zahl%2!=0)
    {
        for(int i=Zahl;i>0;i--)
        {
            cout << i << endl;
            if(i==Zahl/2+1)
            {
                cout << "Die Haelfte ist vorbei" << endl;
            }
        }
    }
    else
    {
        cout << "Bitte eine ungerade Zahl eingeben!" << endl;
    }

    return 0;
}

Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von »m3xx« (25.02.2013, 15:27) aus folgendem Grund: Danke dot, Formatierung des Codes


dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

2

24.02.2013, 16:12

EDIT: Wieso nimmt der iwie die Zeilenumbrüche nicht wahr? Ich benutze Google Chrome falls das zur Sache tut.

Das passiert offenbar in dem Browser wenn man Postings im Editor-Modus verfasst. Nimm den Quellcode Modus. ;)

m3xx

Alter Hase

  • »m3xx« ist der Autor dieses Themas

Beiträge: 434

Beruf: Student

  • Private Nachricht senden

3

24.02.2013, 16:16

Welcher Quellcode Modus O.o

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

4

24.02.2013, 16:19



;)

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

5

24.02.2013, 17:01

Was deinen Code betrifft: Sieht gut aus, einzige Kritik wär wohl, dass es kein Countdown ist, sondern ein Countup... ;)

Den Test auf ungerade Zahlen würd ich eher als Zahl % 2 != 0 formulieren und nicht als Zahl % 2 == true, da letzteres den mathematischen Zusammenhang imo verschleiert. Macht jetzt aber auch keinen großen Unterschied...

DeKugelschieber

Community-Fossil

Beiträge: 2 641

Wohnort: Rheda-Wiedenbrück

Beruf: Software-Entwickler

  • Private Nachricht senden

6

24.02.2013, 17:09

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
int main()
{
    int Zahl;

    cout << "Zahl eingeben: ";
    cin >> Zahl;

    if(!Zahl%2)
    {
        cout << "Bitte eine ungerade Zahl eingeben!" << endl;
        return 0;
    }

    for(int i=0;i<Zahl;i++)
    {
        cout << i+1 << endl;
        
        if(i == Zahl/2)
        {
            cout << "Die Haelfte ist vorbei" << endl;
        }
    }

    return 0;
}


Ist noch etwas schöner. Und es wäre angenehmer das Programm nicht neu starten zu müssen wenn der Benutzer eine falsche Zahl eingibt. Das könntest du lösen indem du statt der if oben eine while benutzt und die Zahl neu abfragst.

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

7

24.02.2013, 17:10

Außerdem würde ich eine weitere Schleife um alles setzen. Wenn man eine gerade Zahl eingibt, kommt der Hinweis, dass man bitte eine ungerade Zahl eingeben soll. Dann ist das Programm zu Ende. Schöner wäre es ja, wenn man nun noch mal eine weitere Zahl eingeben kann.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

m3xx

Alter Hase

  • »m3xx« ist der Autor dieses Themas

Beiträge: 434

Beruf: Student

  • Private Nachricht senden

8

25.02.2013, 15:12

Ja, finde ich persönlich auch, aber hätte sagen sollen das es Teil der Aufgabe war, dass sich das Programm beendet^^

War jetz aber noch ne etwas einfachere Aufgabe ich werde mich das nächste mal Melden, wenn etwas schwereres drankommt oder ich irgendwo Hilfe brauche. :)
Wollte halt nur wissen, ob es so stimmt, brauch ja seine Zeit bis man wieder ordentlich reinkommt.

@dot: jo merke ich mir fürs nächste mal. :D
Wobei ich zugeben muss, es ist wirklich nicht so sauber lesbar.
Und danke für den Hinweis, ich habe festgestellt es hätte ein wirklicher Countdown und kein Countup sein müssen. Natürlich ist dies bereits im obersten Post korrigiert. ;D

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »m3xx« (25.02.2013, 15:29)


Werbeanzeige