Wie findet ihr meinen Taschenrechner?
-
Hi,
musste heute in der Schule einen Taschenrechner erstellen.
Ich bin ITA am machen auf dem BKTM, hab also nicht so die ahnung.
Könnt ihr mir sagen ob mein Programm vorerst ok ist oder oob es verbesserungen geben könnte?!Danke Pashalis Grammatikas (EW03B @ BKT Moers)
#include <stdio.h> #include <math.h> #include <stdlib.h> void main (void) { int i,x=0,y, zahl1,zahl2=2,zahl3=16, rest[30], fakultaet, zahl; double a,b,c,p,q, ausgabe, erg; unsigned char dual1,dual2; char j; do { system("cls"); printf("Wählen Sie die Rechenart aus:\n\n"); printf("(1) Grundrechenarten (+-*/)\n"); printf("(2) Wurzeln und Potenzen (Exp, x^2, x^3,x^y,1/x, Wurzel x)\n"); printf("(3) Funktionen (sin,cos,tan,log,lg)\n"); printf("(4) Fakultaet(N!)\n"); printf("(5) Ausgabe von x als Dual oder Hexadezimalzahl\n"); printf("(6) Logisches Rechnen (And,Or,Nor,Nand)\n"); printf("(7) Ende \n"); printf("\n"); scanf("%d",&i); switch(i) { case 1: system("cls"); printf("Zahl1: "); fflush(stdin); scanf("%lf",&a); printf("Zahl2: "); fflush(stdin); scanf("%lf",&b); printf("Addieren (1)\n"); printf("Subtrahieren (2)\n"); printf("Multiplizieren (3)\n"); printf("Dividieren (4)\n"); scanf("%d",&y); switch(y) { case 1: c = a + b; break; case 2: c = a - b; break; case 3: c = a * b; break; case 4: c = a / b; } printf("%lf\n\n\n",c); break; case 2: system("cls"); printf("Wählen Sie die gewünschte Funktion: \n"); printf("Exp (1)\n"); printf("x^2 (2)\n"); printf("x^3 (3)\n"); printf("x^y (4)\n"); printf("1/x (5)\n"); printf("Wurzel (6)\n"); scanf("%d",&y); switch (y) { case 1: printf("geben sie eine Zahl x ein, von der e berechnet werden soll:\n"); scanf("%lf",&p); ausgabe = exp(p); printf("Ergebnis:\n"); printf("%lf",ausgabe); printf("\n"); break; case 2: printf("geben sie eine Zahl x ein, die quadriert werden soll:\n"); scanf("%d",&x); x=x*x; printf("Ergebnis:\n"); printf("%d",x); printf("\n"); break; case 3: printf("geben sie eine Zahl x ein, die hoch 3 genommen werden soll:\n"); scanf("%d",&x); x=x*x*x; printf("Ergebnis:\n"); printf("%d",x); printf("\n"); break; case 4: printf("geben sie eine Zahl x ein, und die Zahl y, mit der sîe hochgenommen wird:\n"); printf("x\n"); scanf("%lf",&p); printf("y\n"); scanf("%lf",&q); ausgabe = pow(p,q); printf("Ergebnis:\n"); printf("%lf",ausgabe); printf("\n"); break; case 5: printf("geben sie eine Zahl x ein, die 1 teilt:\n"); scanf("%lf",&a); fflush(stdin); erg=1/a; printf("Ergebnis:\n"); printf("%lf",erg); printf("\n"); break; case 6: printf("geben sie eine Zahl x ein, von der die Wurzel berechnet werden soll:\n"); scanf("%lf",&p); ausgabe = sqrt(p); printf("Ergebnis:\n"); printf("%lf",ausgabe); printf("\n"); break; } printf(""); break; case 3: system("cls"); printf("Wählen Sie die gewünschte Funktion: \n"); printf("Sinus (1)\n"); printf("Cosinus (2)\n"); printf("Tangens (3)\n"); printf("log (4)\n"); printf("lg (5)\n"); scanf("%d",&y); switch (y) { case 1: printf("geben sie eine Zahl x ein, von der der Sinus berechnet werden soll:\n"); scanf("%lf",&p); ausgabe = sin(p); printf("Ergebnis:\n"); printf("%lf",ausgabe); printf("\n"); break; case 2: printf("geben sie eine Zahl x ein, von der der Cosinus berechnet werden soll:\n"); scanf("%lf",&p); ausgabe = cos(p); printf("Ergebnis:\n"); printf("%lf",ausgabe); printf("\n"); break; case 3: printf("geben sie eine Zahl x ein, von der der Tangens berechnet werden soll:\n"); scanf("%lf",&p); ausgabe = tan(p); printf("Ergebnis:\n"); printf("%lf",ausgabe); printf("\n"); break; case 4: printf("geben sie eine Zahl x ein, von der der natürliche Logarithmus berechnet werden soll:\n"); scanf("%lf",&p); ausgabe = log(p); printf("Ergebnis:\n"); printf("%lf",ausgabe); printf("\n"); break; case 5: printf("geben sie eine Zahl x ein, von der der Logarithmus zur Basis 10 berechnet werden soll:\n"); scanf("%lf",&p); ausgabe = log10(p); printf("Ergebnis:\n"); printf("%lf",ausgabe); printf("\n"); break; } printf(""); break; case 4: system("cls"); printf("Geben Sie eine Zahl ein, von der die Fakultaet berechnet werden soll: \n"); scanf("%d",&zahl); fakultaet = 1; for(i=zahl;i>0;i--) { fakultaet = fakultaet*i; } printf("Ergebnis:\n"); printf("%d",fakultaet); printf("\n"); break; case 5: system("cls"); printf("Geben Sie eine Zahl ein, die umgerechnet werden soll: \n"); scanf("%d",&zahl1); printf("Wählen Sie zwischen Dualer (1) oder Hexadezimaler (2) Ausgabe: \n"); scanf("%d",&i); if (i==1) do { rest[x]=zahl1%zahl2; zahl1=zahl1/zahl2; x=x+1; } while (zahl1 !=0); else do { rest[x] = zahl1%zahl3; zahl1=zahl1/zahl3; x=x+1; } while (zahl1 !=0); ; printf("\n\n"); printf("Ergebnis: "); for (y= x-1;y>=0;y--) { if (i==2) printf("%x", rest[y]); else printf("%d",rest[y]); } printf("\n\n"); break; case 6: system("cls"); printf("And (1)\n"); printf("Or (2)\n"); printf("Nand(3)\n"); printf("Nor (4)\n"); scanf("%d",&i); fflush(stdin); system("cls"); printf("Erste Duale Zahl (1,0) \n"); fflush(stdin); scanf("%uc",&dual1); printf("Zweite Duale Zahl (1,0) \n"); fflush(stdin); scanf("%uc",&dual2); switch(i) { case 1: printf("Ergebnis: "); printf("%d \n", dual1 & dual2); break; case 2: printf("Ergebnis: "); printf("%d\n", dual1 | dual2); break; case 3: printf("Ergebnis: "); printf("%d \n", !(dual1 & dual2)); break; case 4: printf("Ergebnis: "); printf("%d\n", !(dual1 | dual2)); break; } printf(""); break; case 7: system("cls"); return; break; } printf("Wollen Sie ins Hauptmenue? (j/n)"); fflush(stdin); scanf("%c",&j); } while(j=='j'); }
-
Erste Verbesserung; benutze C#/.NET Elemente, wenn du schon hier was reinschreibst, ansonsten Forum "Ansi C"
-
Falsches Forum, aber sonst ganz niedlich
-
void main (void)