Hallo, meinst Du, das etwa so?
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43:
| program notenberechnung;
{$APPTYPE CONSOLE}
uses SysUtils;
var Summe, Note,Anzahl: integer; Mittelwert: real; wdhl: string;
begin
repeat Anzahl := 0; Summe := 0; writeln('Notenberechnung'); writeln('Alle - auch doppelte - Klassenarbeitsnoten eingeben!!'); repeat writeln('Bitte geben Sie die Note '+IntToStr(Anzahl+1)+' ein: (Abbruch mit 0) '); readln(Note); if note<>0 then begin Summe := Summe + Note; Inc(Anzahl); end; until Note=0; writeln('Es wurden '+IntToStr(Anzahl)+' Noten wurden eingegeben.'); if Anzahl = 0 then begin writeln('Es wurden keine Noten eingegeben, daher keine Mittelwertbildung möglich.'); end else begin Mittelwert:=Summe/Anzahl; writeln('Ihr Durchschnitt beträgt: ',IntToStr(Round(Mittelwert))); end; writeln('Nocheinmal? (j/n) : '); readln(wdhl); until wdhl='n'; end. |
Das sollte das tun, was Du wünschst. Die Alternativausgabe des Durchschnitts ist - fals Du auch nicht ganze Noten ausgeben als Mittelwert möchtest.
Anmerkuing: Bei der Variablenbenennung gut überlegen, wie sie heißen sollen. i z.B. wird vielfach als Schleifenvariablename verwendet, ist also für eine Summe ungeeignet. Ich habe die Variablen so benannt, wie sie für mich sinnvoll erscheinen