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

matzelarts

unregistriert

1

23.01.2009, 00:33

Listing 3.12 - Rechteck mit Kreuz -> anderer Vorschlag

Es soll ein Rechteck mit X-Zeichen ausgegeben werden mittels Angaben für Höhe und Breite vom Benutzer. Gleichzeitig soll auch ein zentriertes Kreuz mit -Zeichen hineingesetzt werden. Hinzu gekommen sind noch ein paar Abfragen für die Benutzerführung.

Wieder eine andere Lösung, die zum selben Ergebnis führt. :D

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
//Verschachtelte Schleifen

//Rechteck mit Kreuz zeichnen lassen

#include <iostream>
using namespace std;
//hauptfunktion

int main(){
    //variablen

    int Breite, Hoehe;
    char auswahl;
    int abfrage=1;
    char buchstabe;
    //programm ausführen

    while(abfrage==1){
        cout <<"\nWollen sie ein Rechteck mit Kreuz zeichnen lassen? (j/n):";
        cin >>auswahl;
        switch(auswahl){
            //ja bitte 

            case('j'):{
                cout <<"Breite: ";
                cin >>Breite;
                cout <<"Hoehe: ";
                cin >>Hoehe;
                //wenn reste null sind, also werte ungerade sind 

                if((Breite%2!=0) && (Hoehe%2!=0)){
                    //für jede zeile

                    for (int y=0; y<Hoehe; y++){
                        //soviele X-Zeichen ausgeben

                        for (int x=0; x<Breite; x++){
                            //bei vertikaler mitte - setzen

                            if(x==Breite/2){
                                buchstabe='-';
                            }else{
                                buchstabe='X';
                                //bei vertikaler mitte - setzen

                                if(y==Hoehe/2){
                                    buchstabe='-';
                                }
                            }
                            cout <<buchstabe;
                        }
                        //zeile ist abgeschlossen, neue beginnen

                        cout <<endl;
                    }
                }else{
                    //falsche Eingabe

                    //wenn Rest null ist also gerade Zahl eingegeben wurde

                    if(Hoehe%2==0){
                        cout <<"Hoehe ist nicht ungerade!\n" <<endl;
                    }
                    if(Breite%2==0){
                        cout <<"Breite ist nicht ungerade!\n" <<endl;
                    }
                }
            }break;
            //nein danke

            case('n'):{
                cout<<"Wer nicht will der hat schon. Das Programm wird geschlossen." <<endl;
                //programm beenden

                abfrage=0;
            }break;
            default:{
                cout<<"Leider eine falsche Eingabe. Bitte gebe ein j oder n ein.\n" <<endl;
            }
        }
        
    }
    return 0;
}

trash52

Treue Seele

Beiträge: 86

Wohnort: Dresden

  • Private Nachricht senden

2

23.01.2009, 21:31

irgendwie bin ich gerade etwas irritiert, wie ist deine Frage dazu?

3

23.01.2009, 22:38

Anscheinend gehts darum einen weiteren Lösungsvorschlag darzubieten... (Vielleicht auch Meinungen dazu anzuhören?)

4

23.01.2009, 23:36

Ich denke er will einfach eine andere Lösungsmöglichkeit darbieten und von uns bewertet haben.

Was mich ehrlichgesagt stört ist der unüberichtliche Codestil. Es gibt keine Leerzeilen und alles sieht irgendwie zusammengequetscht aus. Das ist echt schwer zu lesen obwohl nur ein paar if/else, switch/case Bedingungen und for/while Schlaufen drinn sind.

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

5

24.01.2009, 10:36

Zitat von »"raXor"«


Was mich ehrlichgesagt stört ist der unüberichtliche Codestil. Es gibt keine Leerzeilen und alles sieht irgendwie zusammengequetscht aus. Das ist echt schwer zu lesen obwohl nur ein paar if/else, switch/case Bedingungen und for/while Schlaufen drinn sind.


Das sehe ich auch so. Auf die verschiedenen Lösungen kommst du irgendwann.
Aber schlechten Code Stil sollte man sich von Anfang an abgewöhnen. Das hilft dir auch schon ein Haufen Anfängerfehler im vornherein zu unterdrücken.

trash52

Treue Seele

Beiträge: 86

Wohnort: Dresden

  • Private Nachricht senden

6

24.01.2009, 10:44

aso, ist das.

@matzelarts: wenn du deinen Code etwas mehr einrückst wird die lesbarkeit gleich verbessert.

also die Klammern sollten schon untereinander stehen und jedes mal wenn du einen neue klammer öffnest solltest du mit hilfe von tabs den code einrücken.

LG Trasch52

Werbeanzeige