Sehr schön.
Version 5.0 mit zusätzlich Modulo, Prozentsatz, Wurzelziehen, Fakultät, Bildschirminhalt löschen und Hilfetext erneut anzeigen... sowie Syntaxhervorhebung.
#include<stdio.h>
#include<math.h>
#include<conio.h>
#include<stdlib.h> /*Header werden eingebunden*/
float zahl1,zahl2,endwert;double ergebnis;char operato;int zaehlvar=1,div0,end,abfrage,help,clear; /*Variablen werden definiert*/
float add(float wert1,float wert2) {endwert = wert1 + wert2; return endwert;} /*Addition wird defiert*/
float sub(float wert1,float wert2) {endwert = wert1 - wert2; return endwert;} /*Subtraktion wird definiert*/
float mul(float wert1,float wert2) {endwert = wert1 * wert2; return endwert;} /*Multiplikation wird definiert*/
float div(float wert1,float wert2) {endwert = wert1 / wert2; return endwert;} /*Division wird definiert*/
float mod(float wert1,float wert2) {endwert = (int)wert1 % (int)wert2; return endwert;} /*Modulo wird definiert*/
float per(float wert1,float wert2) {if(wert1==0||wert2==0) return 0;else return((fabs(wert1)*100.0) / fabs(wert2));} /*Prozentsatz wird definiert*/
float wur(float wert2) {endwert = sqrt(wert2); return endwert;} /*Wurzelziehen wird definiert*/
float fak(float wert2) {if(wert2==0){endwert=1;}else{endwert=wert2*fak(wert2-1);}return endwert;} /*Fakultät wird definiert*/
main()
{
printf("\nWillkommen. Moeglich sind : Addition : +\n"); /*Instruktionen*/
printf(" Subtraktion : -\n");
printf(" Multiplikation : *\n");
printf(" Division : /\n");
printf(" Prozentsatz : p\n");
printf(" Modulo : %%\n");
printf(" Sqrt : 2w\n");
printf(" Fakultaet(INT!): 1f\n\n");
printf("q als Operator zum beenden, also z.b.: 1q1 \n");
printf("h als Operator, um diesen Text erneut anzuzeigen!\n");
printf("c als Operator, um Bildschirminhalt zu loeschen.");
do
{
help=0;
ergebnis=0;
clear=0;
printf("\n\n--------- %d.Rechnung ---------\n\n\n",zaehlvar);
scanf("%f",&zahl1);scanf("%c",&operato);scanf("%f",&zahl2); /*Werte werden eingelesen*/
switch(operato) /*Berechnung*/
{
case '+': ergebnis=add(zahl1,zahl2);
break;
case '-': ergebnis=sub(zahl1,zahl2);
break;
case '*': ergebnis=mul(zahl1,zahl2);
break;
case '/': if(zahl2==0){div0=1;}else ergebnis=div(zahl1,zahl2);
break;
case '%': ergebnis=mod(zahl1,zahl2);
break;
case 'p': ergebnis=per(zahl1,zahl2);
break;
case 'w': ergebnis=wur(zahl2);
break;
case 'f': ergebnis=fak(zahl2);
break;
case 'h': printf("\nWillkommen. Moeglich sind : Addition : +\n"); /*Hilfe*/
printf(" Subtraktion : -\n");
printf(" Multiplikation : *\n");
printf(" Division : /\n");
printf(" Prozentsatz : p\n");
printf(" Modulo : %%\n");
printf(" Sqrt : 2w\n");
printf(" Fakultaet(INT!): 1f\n\n");
printf("q als Operator zum beenden, also z.b.: 1q1 \n");
printf("h als Operator, um diesen Text erneut anzuzeigen!\n");
help=1;
break;
case 'c': system("cls");
clear=1;
break;
default: end=1;
}
zaehlvar++;
if(help!=1)
{
if(clear!=1)
{
if(end!=1)
{
if(div0!=1)
{
printf("\n\n= %f\n",ergebnis); /*Ausgabe*/
}
else
{
printf("\n\nDIVISON DURCH 0!");
}
}
}
}
}
while(end!=1);
abfrage=getch(); /*Beliebiger Tastendruck*/
}
if(help!=1)
{
if(clear!=1)
{
if(end!=1)
{
if(div0!=1)
{
printf("\n\n= %f\n",ergebnis); /*Ausgabe*/
}
else
{
printf("\n\nDIVISON DURCH 0!");
}
}
}
}
}
Hier würd ich mal überlegen ob du nicht einfach if(bRechnungErfolg){}
einführst spart auch wieder ne ganze latte und das rückt nicht jedesmal tiefer wenn dir neue Optionen einfallen
« Delphie lernen! | 4523 BG-Entwickler gesucht » | ||