hallo brauche dringend hilfe beim programmieren
-
hallo zuasammen,
ich mache zur zeit meinen techniker in elektro. jetzt habe ich ein problem mit einem c++ programm. ich muss das programm bis dienstag fertig haben bis jetzt habe ich es selber nicht geschafft und hoffe das mir jemand hier helfen kann, das wäre aufjedenfall super nett. ich stelle mal die aufgabenstellung rein.Es ist ein Programm zum Üben der Subtraktion im Zahlenbereich von 1 bis 100 gemäß folgender Vorgaben zu entwickeln:
Nach Start des Programms stellt der Rechner eine zufällige Subtraktionsaufgabe mit Werten zwischen 1 und 100. Es ist sicherzustellen, dass das Ergebnis der Subtraktion immer größer oder gleich null ist. D.h.: Der Minuend ist größer oder gleich dem Subtrahend.
Der Benutzer gibt die Lösung ein. Der Rechner meldet, ob die Lösung richtig oder falsch war.
Bei falscher Lösung wird dieselbe Aufgabe wieder gestellt, bis das Ergebnis richtig ist.
Die Anzahl der Fehler wird gezählt und am Ende ausgegeben
Bei richtiger Lösung wird die nächste zufällige Aufgabe gestellt.
Nach 10 gelösten Aufgaben wird eine Bewertung vom Rechner ausgeführt:
0 Fehler "sehr gut"
1 Fehler "gut"
2 oder 3 Fehler "befriedigend"
4 oder 5 Fehler "ausreichend"
6 oder 7 Fehler "mangelhaft"
mehr als 7 Fehler "ungenügend"
Nach Ausgabe der Bewertung fragt der Rechner, ob eine neue Aufgabenrunde erfolgen soll. Bei Betätigung der 'ESC'-Taste wird das Programm beendet
Entwerfen Sie ein Struktogramm und ein C-Programm!mfg
sero
-
Nur ein paar Anmwerkungen (eine Komplette Lösung wirst Du hier vermutlich nicht bekommen, da es ja schliesslich DEINE Hausaufgaben sind):
- Zufallszahlen: srand/rand (Du musst Dir hlt überlegen, was rand zurückliefert und dann mittels 3-Satz entsprechend den Bereich setzen...
- Zur Ein-Ausgabe vermutlich cin/cout
- Um die Aufgabe zu wiederholen (wennflsch), brauchst Du eine Schleife... z.B. do...while
- Für die nächste Aufgabe brauchst Du dann vermutlich nochmals eine Schleife (for... 1 bis 10)
- Die Ausgabe der Fehler entweder mit swicth/case oder mit if...
- Für die neue Aufgabenrunde wirst Du vermutlich dannnochmals eine Schleife brauchen (do...while)Alternativ kannst Du natürlich einzelne Bereiche auch in Funktionen packen...
-
das ich keine komplette aufgaben lösung erhalte ist ja schon klar.
kannst du mir bitte sagen diesen ansatz den ich gerade habe ob er richtig ist, ab da weiss ich auch nicht méhr weiter.
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <time.h>
int main ()
{
srand ((unsigned)time(NULL));//Zufallsgenerator initialieren
int minuend,subtrahend,ergebnis,fehler,zufallszahl=1;
while (zufallszahl<100)
{
minuend=(rand()%100)+1;
subtrahend=(rand()%100)+1;
while (subtrahend<=minuend)
{
if (zufallszahl%minuend==10)
{
minuend<subtrahend;break;
}
-
Hier auch mal Beispiel für die Ausgabe von Zufallszahlen.
Es wird einfach ein dynamisches integer Feld reserviert und dieses dann mit den Zufallszahlen gefüllt.#include <iomanip> #include <iostream> #include <ctime> using namespace std; void main() { int anz; cout<< "Anzahl Daten:"; cin>>anz; if(anz<=0) exit(0); int *pFeld= new int[anz]; long t; srand(time(&t)); for(int i=0;i<anz; i++) { *(pFeld+i)=rand()%100+1; } for(i=0;i<anz;i++) { cout<<setw(4)<<*pFeld++; } }
-
erstmal falsche Kategorie, gehört eher zu ANSI-C (denke mal ihr sollts in C und nicht C++ machen).
ich würde prüfen ob subtrahend größer minuend ist und dann beide tauschen
int tauscher; if (subtrahend > minuend) { tauscher = minuend; minuend = subtrahend; subtrahend = tauscher; } /*berechnung*/ ergebnis = minuend - subtrahend; /*Solange Eingabe bis Ergebnis richtig*/ do { /*Ausgabe*/ cout << minuend << " - " << subtrahend << " = "; (ich mache nichts mit cout, rüfen!) /*Eingabe*/ cin >> eingabe; (prüfen!) if (ergebnis == eingabe) cout << "Richtig"; else { cout << "Falsch"; fehler++; } } while (ergebnis <> eingabe)
-
dass ganze in eine Schleife für 10 Aufgaben (for) und nochmal in eine Schleife für ESC
int zaehler; /*Schleife bis ESC*/ do { for (zaehler=1; zaehler <= 10; zaehler++) { //Hier berechnung von oben } /*Ausgabe der Fehlerauswertung*/ switch (fehler) { case 1: cout << "Gut"; break; case 2: /*da hier kein "break;" mache das was in "case 3" steht*/ case 3: cout << "befriedigend"; break; .... default: cout << "ungenügend"; } cout << "Drücke ESC zum Beenden oder andere Taste für nochmal"; } while (getchar() <> 27); /*27 = ESC*/Update: Am Beginn der do-while Schleife fehler auf 0 setzen!
-
Dieser Thread wurde von Moderator/in Unix-Tom aus dem Forum MFC (Visual C++) in das Forum C++ verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Softwaremaker schrieb:
dass ganze in eine Schleife für 10 Aufgaben (for) und nochmal in eine Schleife für ESC
do { } while (getchar() <> 27); /*27 = ESC*/ //??Ich bin der Meinung das das in C++ nicht gehtDieser Vergleich ist in C++ nicht möglich.Wenn müsste es
!=Ich hab davon noch nix gesehen?Kenne diesen Schrecklichen syntax nur aus vba/vb.
-
Dafür geht aber:
do { } while ( getchar() not_eq 27 );
-
David_pb schrieb:
Dafür geht aber:
do { } while ( getchar() not_eq 27 );
Genau, super Idee :p Da hat es ein != doch wesentlich einfacher getan 
-
Mir gefällt jetzt != auch besser. Aber ich glaube, den Flamewar Operator vs. Operatorschlüsselwort hatten wir schon mal...
