Hilfe bei TurboPascal
Frage: Hilfe bei TurboPascal(21 Antworten)
Hallo! ich hab ein großes problem. Thema: SUMMENBERECHNUNG Aufg.: nach eingabe einer Zahl zwischen 1 und eine zahl Ihrer Wahl soll der rechner die Summe aller Zahlen zwischen 1 und dieser Zahl bilden und ausgeben. (mit Wiederholungsanweisung) -------------------------------------- also z.B. wenn ich eine Zahl (z.B. 10) eingebe, soll der Rechner mir das anzeigen in folgender Weise: 1+1=2 2+2=4 4+3=7 7+4=11 11+5=16 16+6=22 22+7=29 29+8=37 37+9=46 46+10=56. (bin 11. Klasse!) vielen Danke für eure Hilfe! |
Frage von Nivdil (ehem. Mitglied) | am 10.05.2006 - 10:24 |
Antwort von GAST | 10.05.2006 - 10:48 |
Also TurboPAscal is bissl Lange her, bei mir^^ Programmiere nur noch mit Java, soweit ich mich erinnere ist dort der Lösungsweg jedoch der Gleiche: Also du Initalisierst summe als integer. Dann die eingegebene hzahl als integer. Dann bastels dir ne Schleife die "zahl" mal durchlaufen wird. dann ne hilfszahl i in der schleife sagst dann: sum = sum + i i++ schleife wieder durchlaufen dann gibst das alles aus und ferig ;) |
Antwort von GAST | 10.05.2006 - 11:42 |
TurboPascal hatte ich nie, aber im Prinzip sind ja alle Programmiersprachen gleich ;) nur die Befehle bzw. die Syntax ist etwas anders... Also: 1. Variablen definieren (z.B.): Var zahl,summe,i : integer; summe=0; 2. Benutzer gibt Zahl ein (z.B.): zahl=prompt("Bis zu welcher Zahl soll addiert werden?"); 3. Diese Zahl gilt als "obere Grenze" (z.B.): for i=1 to i==zahl do summe=summe+i; 4. Ausgabe des Ergebnisses (z.B.): echo "Die Summe der Zahlen von 1 bis "; echo zahl; echo " ist: "; echo summe; Ihr müsst das doch irgendwie gelernt haben oder nicht? ;) Das mit den Ein-,Ausgabe- und Schleifenbefehlen musst du noch übertragen, genauso wie die Variablenzuweisung. Außerdem kann es sein, dass du bei TurboPascal noch mit "Begin" und "End" arbeiten musst. Hoffe ich konnte nen kleinen Anhaltspunkt geben :-) |
Antwort von GAST | 10.05.2006 - 11:55 |
Habe mir nochma die mÜhe gemacht und versucht das Programm zu schreiben, ohne garantie und nicht getestet: Program Test; uses crt; var sum : integer; var zahl : integer; begin write(` Bitte geben Sie eine Zahl ein: `); read(zahl); for i := 0 to zahl do begin sum := sum + i; i := i + i; end; write(zahl); end. |
Antwort von GAST | 10.05.2006 - 12:26 |
Am Ende aber wenn schon write(sum); ;) |
Antwort von GAST | 10.05.2006 - 12:28 |
oh ja klar^^ kleiner flüchtigkeitsfehlker |
Antwort von Nivdil (ehem. Mitglied) | 10.05.2006 - 12:36 |
danke sehr für eure mühe! aber leider klappt das irgendwie nicht.. ? hab kein plan.. es rechnet die zahlen nicht, z.B. 1+1=2 usw.. ? |
Antwort von GAST | 10.05.2006 - 12:40 |
aehm hast du bei der write(zahl) auch das ersetzt durch write(sum)? was gibt er dnen aus? |
Antwort von Nivdil (ehem. Mitglied) | 10.05.2006 - 12:42 |
ja habe ich aber es geht trotzdem nicht.. wenn ich das ausführe steht das nur: geben Sie eien Zahl ein .. gebe ich. aber es rechnet nicht.. ? |
Antwort von GAST | 10.05.2006 - 12:45 |
a ich habe die dekleration von i vergessen füge obe nochmal ne var i: integer; ein |
Antwort von Nivdil (ehem. Mitglied) | 10.05.2006 - 12:47 |
das hab ich auch schon gesehen! |
Antwort von Nivdil (ehem. Mitglied) | 10.05.2006 - 12:47 |
geht leider nicht :( |
Antwort von Nivdil (ehem. Mitglied) | 10.05.2006 - 12:49 |
geht leider nicht :( trotzdem DANKE! |
Antwort von Nivdil (ehem. Mitglied) | 10.05.2006 - 13:13 |
Du hattest recht- ist richtig wie du es meinst, das ist nur ein kleiner fehler. Vielleicht erkennst du den fehler besser als ich. Guck es dir bitte an. wäre lieb :D Program Test; uses crt; var sum, zahl, i: integer; begin write(` Bitte geben Sie eine Zahl ein: `); readln(zahl); for i := 0 to zahl do begin (hier fängt der fehler an!) write (1+1=sum); sum := sum + i; i := i + i; end; write(sum); readln; end. |
Antwort von GAST | 10.05.2006 - 13:19 |
hoe? ich sehe den Fehler nicht so wirklich... du hast lediglich, ein write mehr rein genommen ansonsten is der spaß doc hidentisch... |
Antwort von Nivdil (ehem. Mitglied) | 10.05.2006 - 13:24 |
der lehrer meinte gerade dass da noch readln dazu muss und das alles richtig ist, außer einem fehler? wenn wir den fehler finden und korrigieren sind wir fertig! weiter will er uns auch nicht heflen- das wird als eine klausur bewertet.. |
Antwort von GAST | 10.05.2006 - 13:33 |
hmm "write (1+1=sum);" Für mich sieht es so aus, als ob du nen Text und keine Variable ausgibst ;) |
Antwort von GAST | 10.05.2006 - 13:35 |
Was soll das ReadIn am Ende bewirken? Ich denke das ist zum Einlesen einer Variable gedacht? |
Antwort von Nivdil (ehem. Mitglied) | 10.05.2006 - 16:05 |
ja deswegen ist das readln da.. also da soll ein ganz kleiner fehler sein.. den finde ich aber nicht.. ich habe auch 1+1=sum geschrieben... aber der fehler ist trotzdem immer noch da?! |
Antwort von GAST | 10.05.2006 - 16:10 |
was gibt denn das programm aus? |
Antwort von Nivdil (ehem. Mitglied) | 10.05.2006 - 16:12 |
also wenn ich das ausführe steht da der Satz: GEBEN SIE BITTE EINE ZAHL EIN. ich gebe ein, aber es wird nicht gerechnet.. z.B. ich gebe 10 ein und weiter passiert nix. bleibt stehen. |
Verstoß melden