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

~MoNeY~

unregistriert

21

03.06.2010, 16:20

Genau so ist es. ;)

TGGC

1x Rätselkönig

Beiträge: 1 799

Beruf: Software Entwickler

  • Private Nachricht senden

22

03.06.2010, 21:38

Vielleicht mag ja auch jemand mal den DMC Sourcecode bewerten? ;-)

little_Progger

Treue Seele

Beiträge: 188

Wohnort: Nähe Bielefeld

Beruf: Azubi

  • Private Nachricht senden

23

04.06.2010, 15:20

So viel Zeit hab ich nich :P
Da brauch ich ja Tage um mich in den COde ein zu arbeiten :D

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

24

04.06.2010, 19:42

So viel Zeit hab ich nich :P
Da brauch ich ja Tage um mich in den COde ein zu arbeiten :D

Du musst ihn ja nicht komplett nachvollziehen können, um ihn bewerten zu können. (Ausser vielleicht für Design Entscheide)

Ich denke, dass er eher was zum Stil hören will.. Ansonsten müsste man sich tatsächlich komplett durch den gesamten Code und alle Abhängigkeiten hangeln, um gross etwas dazu sagen zu können.

little_Progger

Treue Seele

Beiträge: 188

Wohnort: Nähe Bielefeld

Beruf: Azubi

  • Private Nachricht senden

25

04.06.2010, 21:26

Achso :D

Naja also ich find ihn recht Übersichtlich aber ich bin nicht so der Held in Sachen "Guter Programmier Stil" also ist mein Urteil nicht von Wert :P

tb_chris

Frischling

Beiträge: 46

Beruf: Fachinformatiker

  • Private Nachricht senden

26

28.03.2011, 18:28

Hab den Thread hier grad gefunden und wollte auch mal etwas posten ;)
Bin grad mit Kapitel 4 von Heiko Kalistas Buch angekommen und hab ein kleines Geometrie-Programm geschrieben. Ich will eure ehrliche Meinung hören:

main.cpp:

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
//Geometrie V 1.0
//
//Programm zur Berechnung von Flaecheninhalten

#include <iostream>
#include "geometrie.h"

using namespace std;

//Hauptfunktion
int main ()
{
    //Variablen
    char wahl;

    //Ueberschrift
    cout << "=========" << endl;
    cout << "Geometrie" << endl;
    cout << "=========" << endl;
    
    

        do 
        {
            //Hauptmenue
        cout << "MENUE"<< endl;
        cout << "-----"<<endl;
        cout << endl;
        cout << "Welche Figur wollen sie berechnen lassen?" << endl;
        cout << "(Q)uader" << endl;
        cout << "(R)echteck" << endl;
        cout << "(D)reieck" << endl;
        cout << "(K)reis" << endl;
        cout <<  endl;
        cout << "(I)nfo" << endl;
        cout << "(B)eenden"<< endl;

        //Auswahl
        cout << "Auswahl: ";
        cin >> wahl;
        switch(wahl)
        {
        case ('q'):
        case ('Q'):

            {
                quader (1, 1);
            } break;
        case ('r'):
        case ('R'):
            {
                rechteck (1, 1, 1);
            } break;
        case ('d'):
        case ('D'):
            {
                dreieck (1, 1, 1);
            } break;

        case ('k'):
        case ('K'):
            {
                kreis (1, 1);
            } break;
        case ('i'):
        case ('I'):
            {
                info();
            } break;
        case ('b'):
        case ('B'):

            {
                cout << "Programm wird beendet..." << endl;
            } break;

        default:
            {
                cout << "Falschen Eingabe!" << endl;
            }
    
        }
    
    } while (wahl != 'b' && wahl != 'B');
    cin.sync();
    cin.get();
return 0;
        }


formeln.cpp

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

using namespace std;

int quader (double a, double ergebnis)
{
    cout << "Bitte Seitenlaenge eingeben: ";
    cin >> a;
    ergebnis = a * a;
    cout << "Flaeche: " << ergebnis << endl;
    return ergebnis;
}

int rechteck (double a, double b, double ergebnis)
{
    cout << "Bitte Laenge der Seite a eingeben: ";
    cin >> a;
    cout << "Bitte Laenge der Seite b eingeben: ";
    cin >> b;

    ergebnis = a*b;
    cout << "Flaeche: " << ergebnis << endl;
    return ergebnis;
}
int dreieck (double g, double h, double ergebnis)
{
    cout << "Bitte Laenge der Grundseite eingeben: ";
    cin >> g;
    cout << "Bitte Hoehe des Dreiecks eingeben: ";
    cin >> h;

    ergebnis = (g * h)/2;

        cout << "Flaeche: " << ergebnis << endl;
    return ergebnis;
}

int kreis (double r, double ergebnis)
{
    cout << "Bitte Radius des Kreises eingeben: ";
    cin >> r;

    ergebnis = 3.1415 * (r*r);

    cout << "Flaeche: " << ergebnis << endl;

    return ergebnis;
}

int info()
{
    cout << "-------------------------" << endl;
    cout << "Geometrie V 1.0" << endl;
    cout << "Erstellt von Christian D." << endl;
    cout << "-------------------------" << endl;
    return 0;
}


geometrie.h:

C-/C++-Quelltext

1
2
3
4
5
int quader (double, double);
int rechteck (double, double, double);
int dreieck (double, double, double);
int kreis (double, double);
int info ();

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

27

28.03.2011, 18:36

sieht schonmal nicht schelcht aus.
bei der funktionsdeklaration solltest du die parameternamen mit angeben(damit man weiß was man zu übergeben hat)
aber ich sehe, dass du deine parameter garnicht nutzt. ich glaube du hast da was falsch verstanden. schau dir nochmal die kapitel mit den variablen und funktionsparametern an.

mal ein beispiel:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
double rechteck ()
{
double a, b;
    cout << "Bitte Laenge der Seite a eingeben: ";
    cin >> a;
    cout << "Bitte Laenge der Seite b eingeben: ";
    cin >> b;

    double ergebnis = a*b;
    cout << "Flaeche: " << ergebnis << endl;
    return ergebnis;
}

das würde reichen.
parameter bräuchtest du wenn du die werte ausserhalb der funktion abfragen würdest. das hätte den vorteil, dass du die funktionen auch nutzen könntest wenn du die werte nicht vom user abfragst sondern sie schon hast(als ergebnis einer anderen berechnung zum beispiel)

edit: Architekt hat gerade gemerkt, dass es mein 1700ster post ist xD
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

tb_chris

Frischling

Beiträge: 46

Beruf: Fachinformatiker

  • Private Nachricht senden

28

28.03.2011, 18:39

okay, danke. :D
hab ich wohl was "überlesen". ;)
ich schau mir das nochmal an. :D :D

GameProggD3D

Frischling

Beiträge: 67

Wohnort: Walding

Beruf: Schüler

  • Private Nachricht senden

29

28.03.2011, 18:41

Wieso willst du Ergebnis und die Zahlen als Parameter übergeben, wenn du die Zahlen sowieso einliest? Das hat überhaupt keinen Sinn... ?(
Besser wär es die zahlen entweder in der Funktion als Variablen zu deklarieren oder das Ausgeben und Einlesen dem Hauptprogramm zu überlassen.

Und das Ergbenis kannst du wenn du das so willst, auch direkt in die return Anweisung schreiben.
Außerdem denke ich, dass für die meisten Zahlen, die Nutzer eingeben, eine float-Variable sicher ausreicht.


Viel besser wäre es, du würdest die Funktion(en) so schreiben:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
double dreieck (){ //Edit: Double statt int ^^
double g, h;
    cout << "Bitte Laenge der Grundseite eingeben: ";
    cin >> g;
    cout << "Bitte Hoehe des Dreiecks eingeben: ";
    cin >> h;

return g*h/2; }


Und im Case die Ausgabe:

C-/C++-Quelltext

1
cout << "Fläche: " << dreieck()
Programmiere Zombie-Spiel mit nem Freund

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »GameProggD3D« (29.03.2011, 15:31)


Fred

Supermoderator

Beiträge: 2 121

Beruf: Softwareentwickler

  • Private Nachricht senden

30

29.03.2011, 04:50

übersichtlicher vielleicht schon, allerdings könnte man den Code dann halt nicht mehr lesen. Daher halte ich es so schon für die beste Lösung ;).

Zum Code gibt es in erster Linie das zu sagen, was die anderen schon angemerkt haben. Vor allem die Parameter sind schon etws sinnlos verwendet. Ansonsten fällt mir noch auf, dass ein »Quader« nicht das ist, was du da berechnest. Du berechnest ein Quadrat. Ein Quader ist allerding ein volumetrischer Körper.

Aber Orientiere dich lieber am Code von NachoMan. Bei GameProggD3D wird die Fläche als Integer zurückgegeben. Das dürfte ziemlich sicher ungenau werden ;). Allerdings ist die Idee, die Ausgabe im Case-Block zu handhaben, keine schlecht. So macht dein Programm auch wirklich nur das, was man von der Funktion erwartet. Nämlich die Berechnung einer bestimmten Fläche. Und wenn nun der Nutzer eine Bibliothek mit diesen Funktionen verwenden wollte, wäre es ärgerlich, wenn sich nun jede Funktion um die eigene Ausgabe kümmert. Das darf der Nutzer übernehmen. Vielleicht will man das Rechteck ja auch mal ohne Ausgabe berechnen, um beispielsweise die Fläche eines Hauses(Rechteck + Dreieck) zu bestimmen.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Fred« (29.03.2011, 05:05)


Werbeanzeige