Vorstellung meiner Programme geschlossen 

  • Ersteller Ersteller Johannes
  • Erstellt am Erstellt am
Status
Für weitere Antworten geschlossen.
J

Johannes

Hallo!
Ich wollte mal fragen, was ihr von diesen Quelltexten haltet,
es sind zwei meiner ersten Programme.

PHP:
/*******************************************************************/
/* Prgoramm zur Berechnung eines Rechtwinkligen Dreiecks */
/* */
/* */
/* */
/* ©2005 Björn Johannes */
/* */
/*******************************************************************/

#include 
#include 

#define PI 3.14159265

main()
{

double alpha, beta, gamma = 90.00; //Erstellen der Variablen
double a, b, c; //Erstellen der Variablen

int check_winkel = 0;
int check_seiten = 0;

alpha = 0;
beta = 0;

a = 0;
b = 0;
c = 0;


//Ausgeben der Überschrift
printf("\n\t\tProgramm zum Berechnen eines Rechtwinkligen Dreieckes.");
printf("\n\t\t\t\270Dezember 2005 Bj\224rn Johannes\n");



//Einlesen des Winkels alpha
printf("\nWenn der Winkel alpha bekannt ist, bitte eingeben,\n"
"ansonsten 0 eingeben: ");
scanf("%lf", &alpha);

//Einlesen des Winkels beta
printf("\nWenn der Winkel beta bekannt ist, bitte eingeben,\n"
"ansonsten 0 eingeben: ");
scanf("%lf", &beta);

//Einlesen der Seite a
printf("\n\nWenn die Seitenl\204nge a bekannt ist, bitte eingeben,\n"
"ansonsten 0 eingeben: ");
scanf("%lf", &a);

//Einlesen der Seite b
printf("\nWenn die Seitenl\204nge b bekannt ist, bitte eingeben,\n"
"ansonsten 0 eingeben: ");
scanf("%lf", &b);

//Einlesen der Seite c
printf("\nWenn die Seitenl\204nge c bekannt ist, bitte eingeben,\n"
"ansonsten 0 eingeben: ");
scanf("%lf", &c);

//Anzeige der eingegebenen zahlen
printf("\n Sie haben eingegeben:"
"\n a = %.2lfcm alpha = %.2lf\370"
"\n b = %.2lfcm beta = %.2lf\370"
"\n c = %.2lfcm gamma = %.2lf\370\n\n", a, alpha, b, beta, c, gamma);


if (alpha > 0 && beta > 0)
{
printf("\n\n\n\t\a\aFehler bei der Eingabe, es d\201rfen nicht\n"
"zwei Winkel eingegeben werden!");
printf("\n\tDr\201cken Sie [Enter]");
getchar();
getchar();
exit(0);
}

if (alpha > 0)
check_winkel ++ ;

if (beta > 0)
check_winkel ++ ;

if (a > 0)
check_seiten ++ ;

if (b > 0)
check_seiten ++ ;

if (c > 0)
check_seiten ++ ;

if (check_seiten > 2 || check_seiten < 1)
{
printf("\n\n\n\t\a\aFehler bei der Eingabe!");
printf("\n\tDr\201cken Sie [Enter]");
getchar();
getchar();
exit(0);
}

if (check_seiten == 2 && check_winkel > 0)
{
printf("\n\n\n\t\a\aFehler bei der Eingabe!");
printf("\n\tDr\201cken Sie [Enter]");
getchar();
getchar();
exit(0);
}

if (alpha > 89 || beta > 89)
{
printf("\n\n\n\t\a\aFehler bei der Eingabe!");
getchar();
getchar();
exit(0);
}



if (alpha == 0)
{
if (beta > 0)
alpha = 90 - beta;

else
{
if (a > 0)
{
if (b > 0)
alpha = atan (a / b) * 180 / PI;

else if (c > 0)
alpha = asin (a / c) * 180 / PI;
}

else if (b > 0 && c > 0)
alpha = acos (b / c) * 180 / PI;
}
}

if (beta == 0)
{
if (alpha > 0)
beta = 90 - alpha;

else
{
if (a > 0)
{
if (b > 0)
beta = atan (a / b) * 180 / PI;

else if (c > 0)
beta = acos (a / c) * 180 / PI;
}

else if (b > 0 && c > 0)
beta = asin (b / c) * 180 / PI;
}
}


if (a == 0)
{
if (b > 0)
{
a = b * tan (alpha * PI / 180);

if (c > 0)
a = sqrt((c * c) - (b * b));
}

else if (c > 0)
a = c * cos (beta * PI / 180);
}

if (b == 0)
{
if (a > 0)
{
b = a / tan (beta * PI / 180);

if (c > 0)
b = sqrt((c * c) - (a * a));
}

else if (c > 0)
b = c * cos (alpha * PI / 180);
}

if (c == 0)
{
if (a > 0)
{
c = a / sin (alpha * PI / 180);

if (b > 0)
c = sqrt((a * a) + (b * b));

else if (b > 0)
c = b / sin (beta * PI / 180);
}



//Anzeigen der Ergebnisse
printf("\n die Ergebnisse:"
"\n a = %.3lfcm alpha = %.3lf\370"
"\n b = %.3lfcm beta = %.3lf\370"
"\n c = %.3lfcm gamma = %.3lf\370\n", a, alpha, b, beta, c, gamma);
}
}

Das war das erste, und jetzt kommt das zweite.
PHP:
#include 
#include 
#define clrscr() system("cls")


main()
{
int zufallszahl;
int i;
int eingabe;
char nochnspiel;

printf("\n\tEin kleines Zahlenrat-Spiel");
printf("\n\t\270 Januar 2006 Bjoern Johannes");

anfang:

printf("\n\nSie haben drei Versuche, eine Zahl zwischen 1 und 10 zu erraten,");
printf("\ndie der Computer sich ausdenkt!");

srand(time(NULL));
zufallszahl=rand()%10+1;

for (i = 1; i < 4; i ++)
{
printf("\n\nVersuch %d", i);
printf("\nIhre Eingabe: ");
scanf("%d", &eingabe);
fflush(stdin);

if (eingabe == zufallszahl)
{
printf("\n\n\tErraten!\n");
goto nochnspiel_;
}

if (eingabe < zufallszahl)
printf("\n\tDie gesuchte zahl ist gr\224sser als die Eingegebene!");

if (eingabe > zufallszahl)
printf("\n\tDie gesuchte zahl ist kleiner als die Eingegebene!");
}

printf("\n\nDie Zahl lautete: %d", zufallszahl);
nochnspiel_:
printf("\n\nNoch ein Spiel? Dr\201cke  f\201r ja,  f\201 nein: ");
scanf("%c", &nochnspiel);

if (nochnspiel == 'j')
{
clrscr();
goto anfang;
}

if (nochnspiel == 'n')
exit(0);

}

Gruß aus dem Norden,
Johannes
 
Schön das Ihr Kritik üben könnt, aber grade ein Anfänger würde sich bestimmt wünschen das man ihm zeigt was denn leichter ginge :-) und was mann tun kann damit es nicht mehr "wirr" ist ;)
 
Genau,
Danke CSioli!
Vllt. kann jmd von euch ja mal sagen, was denn "Wirr" ist.

Gruß aus dem Norden,
Johannes
 
na gut dann...

Beim ersten Beispiel ist es zwar super das du Kommentare hinzugefügt hast aber Sie sind an der falschen Stelle.

Das einlesen dürfte auch nach längerem nicht bearbeiten des Programms klar sein, aber bei den if´s wo man sicher bald nicht mehr weis um was es geht sollte vermehrt kommentiert werden.

musst du schon PI beim ersten Prog. bestimmen ist das nicht in der math.h?

Statt den vielen If´s könntest du auch switch-> case anweisungen nehmen

mfg marx
 
Für den Anfang doch garnicht schlecht, der durchblick dauert etwas wegen der größe (geht einfacher) aber mach weiter so!

mfg mrgame

p.s. mach doch eine Main und eine Funktion dann kommt man besser zurecht ;)
 
also verständlich sind se ja,
aber nen flushf vor jedem scanf killt vom benutzer ausversehen eingegebene sachen...nur so als tip
 
unser Dozent hat uns mal als regel gesagt...

pro Funktion/Methode bloß eine Seite

schau die mal Unterprogrammtechnik an, dein Prog kannst dui schön aufteilen in Unterprogramme z.B. Eingabe, rechnen, Ausgabe...
 
ich findes recht gut, ich programmiere auch die ersten Schritte. :-) ich glaub bei mir wäre es ähnlich ausgefallen oder nur umständlicher. Welches Tut oder Buch haste du benutzt? Ich nutze das Buch "C Programmieren von Anfang an" und eine C/C++ Referenzen vom Grabbeltisch.
 
Also ich finde das Programm in dieser Ausführung als in Ordnung.

Weiter so.

Mfg.
Anton
 
Könntest natürlich auch ein hauptprogramm mit einem eingabe und einem ausgabeprogramm und globale variablen verwenden, macht die ganze sache noch übersichtlicher. Wobei glaub ich lohnt sich des für so ein prog net, aber ist unverzichtbar für größere progs.

viel spaß weiterhin beim programmieren!!!

greetz friezy
 
Also es gibt da n paar sachen zum verbessern:
PHP:
 double alpha, beta, gamma = 90.00; //Erstellen der Variablen
double a, b, c; //Erstellen der Variablen

int check_winkel = 0;
int check_seiten = 0;

alpha = 0;
beta = 0;

a = 0;
b = 0;
c = 0;

mach draus:
PHP:
double alpha = 0, beta = 0, gamma = 90.00, a=0, b=0, c=0;
int check_winkel = 0, check_seiten = 0;
und dann zum zweiten:
kein goto verwenden... Für das gibt schleifen

Gruss

lukas
 
Hi Johannes,
ich habe mal dein Ratespiel verbessert.
Es gibt jetzt keine gotos mehr, was es sehr übersichtlich macht.
Das fflush() habe ich durch ein getchar() ersetzt. Das getchar() holt dir den Zeilenumbruch aus dem Tastaturkanal.
Das while ('j' == nochnspiel) ersetz deine gotos. Durch das Schreiben der Variable rechts vom Gleichheitszeichen kann es nicht passieren, dass du versehentliche eine Zuweißung machts (= statt ==).
Wenn du ein Buch zum lernen suchst kann ich dir noch den Kernighan & Ritchie "The C Programming Language" empfehlen. Gibt es auch auf Deutsch.
PHP:
#include  
#include  
#define clrscr() system("cls") 


int main(void) 
{ 
int zufallszahl; 
int i; 
int eingabe; 
char nochnspiel='j'; 

printf("\n\tEin kleines Zahlenrat-Spiel"); 
printf("\n\t\270 Januar 2006 Bjoern Johannes"); 


while('j' == nochnspiel)
{
printf("\n\nSie haben drei Versuche, eine Zahl zwischen 1 und 10 zu erraten,"); 
printf("\ndie der Computer sich ausdenkt!");

srand(time(NULL)); 
zufallszahl=rand()%10+1; 

for (i = 1; i < 4; i ++) 
{ 
printf("\n\nVersuch %d", i); 
printf("\nIhre Eingabe: "); 
scanf("%d", &eingabe); 
getchar(); 

if (eingabe == zufallszahl) 
printf("\n\n\tErraten!\n");
else if (eingabe < zufallszahl) 
printf("\n\tDie gesuchte zahl ist gr\224sser als die Eingegebene!"); 
else 
printf("\n\tDie gesuchte zahl ist kleiner als die Eingegebene!");
} 

printf("\n\nDie Zahl lautete: %d", zufallszahl); 

printf("\n\nNoch ein Spiel? Dr\201cke  f\201r ja,  f\201 nein: "); 
scanf("%c", &nochnspiel); 
getchar();
clrscr();
}
return 0;
}
 
da seit Mai 2006 hier nix mehr passiert ist, wird hier dicht gemacht...

die letzten beiden Beitraege bleiben stehen, da der Thread davor unnoetigerweise hochgeholt wurde um Postings zu sammeln...

--- closed ---

Teschnofan
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben Unten