Zufällige Kopfrechenaufgaben mit C erstellen

Status
Für weitere Antworten geschlossen.

PSNIK

Cadet 3rd Year
Registriert
Feb. 2010
Beiträge
47
Hallo liebe Forum-Gemeinde,
mein Sohn soll für die Schule bis Montag ein Programm in C basteln, dass 10 zufällige Rechenaufgaben ausgibt, die im Konsolenfenster beantwortet werden können. Es soll Addition, Subtraktion, Division und Multiplikation darin vorkommen.
Am Ende des Programms soll die Anzahl der richtigen Antworten in Prozent angegeben werden.

Um ehrlich zu sein empfinde ich die Komplexität der Aufgabe als ziemlich hoch.
Er hatte bisher 3 Tage hintereinander C im Unterricht (Berufsschule Informatik) und soll nun diese Aufgabe lösen.

Bei mir liegt das letzte mal mit C arbeiten auch schon etwas länger zurück, weshalb meine Vorstellungskraft sich in Grenzen hält.
Das man mit der funktion "rand" Zufallszahlen erzeugen kann, das weiß ich noch und habe mich deshalb mal an einer reinen Ausgabe von Zufallszahlen versucht.

#include <stdio.h>
#include <stdlib.h>


int main(void)
{

int variable;
for(int i = 0; i < 10; i++)
{
variable = rand() % 100;
printf("Die Zahl lautet %d\n", variable);
}

return 0;

}

Meine Überlegung ist jetzt, dass die Zufallszahlen in Variablen gespeichert werden, diese bilden dann die Aufgaben, deren Lösung dann vom Benutzer eingegeben und vom Computer überprüft werden muss.

Wie wir das verwirklichen sollen, keine Ahnung, daher würde ich mich sehr über Ideen und Lösungsvorschläge freuen.

liebe Grüße!
 
Prinzipiell benötigst du folgende Bestandteile:
  1. Schleife, um 10 Rechenaufgaben durchzugehen
  2. Zufällige Erzeugung der ersten Zahl
  3. Zufällige Erzeugung des Rechenzeichens
  4. Zufällige Erzeugung der zweiten Zahl
  5. Berechnung des korrekten Ergebnisses
  6. Ausgabe der Aufgabe
  7. Input einer Usereingabe
  8. Prüfung ob Usereingabe korrekt
  9. Wenn korrekt, einen Zähler (berechnungKorrekt) um eins hochzählen
  10. Durchspielen von (2-9), bis Schleife vollständig
  11. Prüfung ob berechnungKorrekt != 0
  12. Berechnung Prozent (berechnungKorrekt / 10 * 100)
  13. Ausgabe Prozent
Für ein erstes Programm empfinde ich das als nicht sonderlich schwer. Die Schritte erkennen und das googeln lernt man hiermit aber ;)
 
  • Gefällt mir
Reaktionen: Poati und Raijin
Random Zahl A, Random 1-4 mit Switch Case fürs Rechenzeichen, Random Zahl B, Prozedur, ob User dasselbe Ergebnis bekommt wie PC (A Rechenzeichen B=X), bei richtig Counter i um eins erhöhen, next in der Schleife. Am Schluss i/10 als Prozent ausgeben.
 
Zusatzpunkte gibt es, wenn du bei der Division prüfst, dass der Divisor ungleich Null ist.
 
division mit zufallszahlen kann ohne prüfung auf null sonst auch echt lustig werden. sollte aber mit nem einzelnen if zu machen sein.
 
PSNIK schrieb:
MEIN SOHN soll für die Schule bis Montag ein Programm in C basteln !!!

PSNIK schrieb:
Um ehrlich zu sein empfinde ich die Komplexität der Aufgabe als ziemlich hoch.

liegt vielleicht daran

PSNIK schrieb:
Bei mir liegt das letzte mal mit C arbeiten auch schon etwas länger zurück...





PSNIK schrieb:
Er hatte bisher 3 Tage hintereinander C im Unterricht (Berufsschule Informatik) und soll nun diese Aufgabe lösen.

lass ihn doch mal mit den Mitschriften der drei Tage an dem Problem arbeiten, bissel tüffteln darf ruhig sein. In dem Du die Aufgabe vom Forum lösen lässt, nimmst Du ihm auch die Chance, das selbst zu schaffen. Jeder, der in einem Spiel schon mal gecheatet hat, weiß, dass dassich nicht wirklich wie ein Erfolg anfühlt...
 
  • Gefällt mir
Reaktionen: rg88, BeBur, DieMuellermilch und 2 andere
Erstmal einen dicken Daumen hoch für @diamdomi für die abstrakte Lösungshilfe ohne gleich konkreten Code vorzubeten!

Die einzelnen Schritte sollte man auch als Neuling gut in Code packen können. In der Berufsschule Informatik geht man eben davon aus, dass die Schüler bereits gewisse Vorkenntnisse haben und/oder die Fähigkeiten haben, sich mit etwas Nachdenken da reinzufuchsen. Es ist ja nicht so, dass man heutzutage in der regulären Schule gar keine Berührungspunkte mit Programmiersprachen hat. Selbst vor ~30 Jahren haben wir mit TurboPascal TurtleGrafiken gemalt, auch mit Schleifen, Texteingabe und so.

Zudem wird kaum eine Aufgabe gestellt werden, deren Komponenten in diesen 3 Tagen nicht behandelt wurden. Und wenn doch, dann ist das vielleicht Teil der Aufgabe, um etwas Eigeninitiative hervorzukitzeln. Manchmal geht es bei einer Aufgabe auch darum, explizit in eine Falle zu tappen, für den Lerneffekt - beispielsweise wie oben schon erwähnt die Division durch null oder auch die Genauigkeit wenn zB per Zufall 1/3 berechnet werden soll und man 0,33333333 eingibt obwohl der Computer noch viel mehr Stellen berechnet.....
 
Ich kenne es zumindest ausm Studium noch so, dass man mit eigenem Code, der auch gerne Fehler enthalten darf, wesentlich besser fährt, als mit einer nicht selbst erarbeiteten Lösung. Auch wenn man diese am Ende nachvollziehen und erklären kann. Daher mein Rat, lass ihn möglichst lange mit dem Problem alleine. Wenn er gar nicht weiter kommt, setzt ihr euch am Sonntag nochmal zusammen.

@diamdomi hat das "Kochrezept" fürs Programm ja schon sehr schön aufgeschrieben. Dies würde ich deinem Sohn auch noch gar nicht zeigen! Genau um diese Schritte wird es bei der Aufgabe gehen. Die einzelnen Punkte bekommt man dann mit etwas Recherche leicht gelöst.
 
  • Gefällt mir
Reaktionen: Raijin
Status
Für weitere Antworten geschlossen.
Zurück
Oben