Hi, ich habe ein Art Flaschenautomatprogramm geschrieben und wenn der Käufer erfolgreich seine Flasche bekommen hat soll das Programm von vorne starten. Kann man das Programm mit irgendwie "return" von vorne starten? Danke und Gruß
Simon Name schrieb: > Kann man das Programm mit irgendwie "return" von vorne starten? Ja, das wäre möglich.
Beispielsweise so, wie SkyperHH es beschrieben hat. Welche Sprache nutzt du?
Hmm, wenn Du ein Programm / Ablauf geschrieben hast, hast Du sehr wahrscheinlich auch Schleifen verwendet. Und die dürfen selbstverständlich auch endlos, also immer wieder von von laufen: main() { while (true) { FlaschenAutomatProgramm(); } }
Die Beispiele sind in C... Simon Name schrieb: > Ups sicherlich zu erwähnen: C > Kannst du mal ein Beispiel machen?
>ich habe ein Art Flaschenautomatprogramm geschrieben
glaube ich nicht ...
Simon Name schrieb: > Ein konkreteres Was bitte ist an
1 | ....
|
2 | |
3 | |
4 | while( 1 ) { |
5 | |
6 | mach deine Automatenlogik |
7 | |
8 | }
|
unkonrekt. Sobald der Teil 'Mach deine Automatenlogik' fertig ist, geht durch die Schleife alles wieder von vorne los. Abgesehen davon: Bei einem Flaschenautomat als Zustandsmaschine ausgeführt, stellt sich diese Frage überhaupt nicht, denn da ist der Grundzustand der 'Maschine' ein Zustand wie jeder andere, in den die Maschine wechseln kann. Insbesonders, wenn sie ihre Transaktion durchgeführt hat, wechselt sie halt wieder in diesen zustand. Statemachine
ok habe es jetzt ausprobiert: geht aber nicht. Ich habe while (1) und dann in geschweiften Klammern meinen Code geschrieben. Das Programm läuft schon nur es startet nicht von vorne
Simon Name schrieb: > ok habe es jetzt ausprobiert: geht aber nicht. Dann hast du irgendwo einen Fehler gemacht > Ich habe while (1) und dann in geschweiften Klammern meinen Code > geschrieben. DIe Frage ist, ob dein Code auch so gebaut ist, dass das funktioniert. Aber: wir können noch tagelang dahin raten. Solange du deinen Code nicht zeigst, kann dir auch keiner konkret helfen
1 | #include <stdio.h> |
2 | |
3 | int main(){ |
4 | while(1){ |
5 | int summe=0; |
6 | int anzahl; |
7 | int wahl; |
8 | int kosten_wasser; |
9 | int kosten_bier; |
10 | int kosten_fanta; |
11 | |
12 | printf("Getreankeautomat /\ Version 0.1"); |
13 | printf("Sorten:\nWasser:1Euro\nBier:2Euro\nFante:1.50Euro\n"); |
14 | scanf("%d", &wahl); |
15 | |
16 | if(wahl==1){ |
17 | printf("Bitte geben sie 1 Euro ein:"); |
18 | scanf("%d", &summe); |
19 | while(summe!=1){ |
20 | printf("Bitte geben sie den vollen Betrag ein:"); |
21 | scanf("%d", &summe); |
22 | }
|
23 | if(summe==1){ |
24 | printf("Bitte entnehmen Sie Ihr Getreank"); |
25 | }
|
26 | return 0; |
27 | }
|
28 | if(wahl==2){ |
29 | printf("Bitte geben sie 2 Euro ein:"); |
30 | scanf("%d", &summe); |
31 | while(summe!=2){ |
32 | printf("Bitte geben sie den vollen Betrag ein:"); |
33 | scanf("%d", &summe); |
34 | }
|
35 | if(summe==2){ |
36 | printf("Bitte entnehmen Sie Ihr Getreank"); |
37 | }
|
38 | return 0; |
39 | }
|
40 | if(wahl==3){ |
41 | printf("Bitte geben sie 1 Euro ein:"); |
42 | scanf("%d", &summe); |
43 | while(summe!=1){ |
44 | printf("Bitte geben sie den vollen Betrag ein:"); |
45 | scanf("%d", &summe); |
46 | }
|
47 | if(summe==1){ |
48 | printf("Bitte entnehmen Sie Ihr Getreank"); |
49 | }
|
50 | return 0; |
51 | }
|
52 | }
|
53 | }
|
wenn du hier
1 | if(wahl==1){ |
2 | printf("Bitte geben sie 1 Euro ein:"); |
3 | scanf("%d", &summe); |
4 | while(summe!=1){ |
5 | printf("Bitte geben sie den vollen Betrag ein:"); |
6 | scanf("%d", &summe); |
7 | }
|
8 | if(summe==1){ |
9 | printf("Bitte entnehmen Sie Ihr Getreank"); |
10 | }
|
11 | return 0; |
einen return machst, dann gehts aus main raus. Unabhängig davon, ob da noch eine while Schleife drüber liegt oder nicht.
Das Ganze mag ja eine ganze Menge an Text produzieren, aber funktionieren wird's mit Sicherheit nicht. Da fängt schon damit an, dass ein Automat am Anfang einen Selbsttest macht. Das sind z.B. so einfache Sachen wie: - "Seid Ihr auch alle da"? - Ich wäre z. B. sauer, wenn ich Geld für etwas einwerfe, was schon lange leer ist. Möglichweise bin ich aber auch die Ausnahme. - "Was passiert, wenn ich mein Geld vergessen habe, aber schon gewählt wurde"? - "Wechselgeld vorhanden"? - Übrigens. Wenn die Geldkassette voll ist geht auch nichts mehr. - Hat mein Vorgänger seine Flasche nicht entnommen, so bekomme ich 2 X klebrige Scherben. - Ist die Flasche erst gar nicht unten angekommen, so ist ein weiterer Verkauf auch nicht das Gelbe vom Ei. Ein Automat sieht von außen nach nichts aus, ist aber eine relativ komplexe und überwachungsbedürftige Anlage. Die oben angeführten Punkte kratzen noch nicht mal an der Oberfläche. Ich habe die Erfahrung gemacht, dass der eigentliche Ablauf Pipifax ist, die Sonderfälle aber sehr viel Programmierzeit erfordern. Du kannst natürlich auch die telefonische Referenz entfernen, damit die Hotline nicht doch noch ihrem Namen alle Ehre macht.
Amateur schrieb: > Das Ganze mag ja eine ganze Menge an Text produzieren, aber > funktionieren wird's mit Sicherheit nicht. Es sei ihm als Anfänger als Erfolgserlebnis gegönnt. Du hast natürlich in allen Punkten recht, dass er von einem ordentlichen Programm noch Lichtjahre entfernt ist. Womit wir wieder beim Zustandsautomaten und einer ordentlichen Programmplanung sind, die vor der ersten geschriebenen Zeile Code zu erfolgen hat.
Ganz Ruhig Amateur :) Ich habe seit langen wieder C programmiert und wollte es einfach jetzt noch mal testen, aber gleich auf höherem Niveau :) Das ist sozusagen jetzt ne Basis auf das was du geschrieben hast. Danke für die Vorschläge ;)
Simon Name schrieb: > ich habe ein Art Flaschenautomatprogramm geschrieben ... Tut mir Leid, wenn du noch nicht einmal das Konzept der Schleifen kennst, hast du dich noch nie ernsthaft auch nur mit irgendeiner Programmiersprache beschäftigt. Daher kann ich mir beim besten Willen nicht vorstellen, dass das Programm von dir sein soll. ... und entgegen allen Ratschlägen: Hier Troll, hast n Keks.
LassWonadersDefinen schrieb: > Simon Name schrieb: >> ich habe ein Art Flaschenautomatprogramm geschrieben ... > > Tut mir Leid, wenn du noch nicht einmal das Konzept der Schleifen > kennst, hast du dich noch nie ernsthaft auch nur mit irgendeiner > Programmiersprache beschäftigt. Ist ja gut. > Daher kann ich mir beim besten Willen > nicht vorstellen, dass das Programm von dir sein soll. genausogut könnte ich sagen, dass ich mir beim besten Willen nicht vorstellen kann, dass du jemals einen Schüler gehabt hast, den du von 0 weg betreut hast. Irgendwo muss man als Schüler anfangen und alles gleichzeitig lernen geht nicht. Deswegen darf man trotzdem auf seine ersten Machwerke stolz sein, selbst wenn die im Grund nur aus "BItte geben sie eine Zahl ein" und "Sie haben xy eingegeben" bestehen. Auch da gibt es schon Stolpersteine genug.
LassWonadersDefinen schrieb: > ... und entgegen allen Ratschlägen: Hier Troll, hast n Keks. Cool, einen alten Thread ausgegraben nur um den TO zu trollen. Da ist jemand wirklich bemüht...
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.