Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   FreePascal (https://www.delphipraxis.net/74-freepascal/)
-   -   Testauswertungsprogramm (https://www.delphipraxis.net/135482-testauswertungsprogramm.html)

FreePascal 11. Jun 2009 16:35


Testauswertungsprogramm
 
Hallo, ich hab ein kleines Programm in FreePascal programmiert
Folgendes:
Delphi-Quellcode:
program testauswertung
uses crt;
var nr, summe, punkte:integer;


begin
     clrscr;
     summe:=0;
              FOR nr:=1 TO 4 DO
              begin
                  writeln('Aufgabe: ',nr);
                  readln(punkte);
                  summe:=summe+punkte;
              end;


              writeln('Gesamtpunktezahl: ',summe);


              readln;


end.
SO weit, so gut, es funktioniert. Jetzt will ich aber, dass am Ende die Gesamtpunktezahl einer Note zugeordnet wird und diese dann halt ausgegeben wird.
Note 4: 24-29 Punkte
Note 3: 29-37 Punkte
Note 2: 38-44 Punkte
Note 1: 45-50 Punkte

Ich habe mir folgendes überlegt, wie ich es angehen könnte: Die Gesamtpunktezahl ist ja summe, ich habe dann mir folgendes ausgedacht:
Delphi-Quellcode:
writeln('Gesamtpunktezahl: ',summe);
IF (summe>23) AND (summe<=29) THEN writeln('Sie haben ein Genügend erreicht!');
ELSE IF (summe>29) AND (summe<=37) THEN writeln('Sie haben ein Befriedigend erreicht!');
ELSE IF (summe>37) AND (summe<=44) THEN writeln('Sie haben ein Gut erreicht!');
ELSE (summe>44) AND (summe<=50) THEN writeln('Sie haben ein Sehr GUt erreicht!');
readln;
end.

Das haut aber nicht ganz hin, habt ihr eine andere Idee wie ich es vielleicht lösen könnte?
Danke, Martin

Lannes 11. Jun 2009 16:53

Re: Testauswertungsprogramm
 
Hallo,

schau Dir mal case an. :wink:

FreePascal 11. Jun 2009 16:57

Re: Testauswertungsprogramm
 
Du meinst eine Case summe OF
Verknüpfung anstatt der verschachtelten IF THEN ELSE :?:
Gruß, Martin

haentschman 11. Jun 2009 16:59

Re: Testauswertungsprogramm
 
Hallo...

case ist da wesentlich eleganter und übersichtlicher. Das merkst du schnell selbst :thumb:

:hi:

thkerkmann 11. Jun 2009 17:15

Re: Testauswertungsprogramm
 
Warum nicht erst mal die Fehler beheben:
Delphi-Quellcode:
writeln('Gesamtpunktezahl: ',summe);
IF (summe>23) AND (summe<=29) THEN writeln('Sie haben ein Genügend erreicht!');  <<<<<<<<<<<< semi weg
ELSE IF (summe>29) AND (summe<=37) THEN writeln('Sie haben ein Befriedigend erreicht!');  <<< semi weg
ELSE IF (summe>37) AND (summe<=44) THEN writeln('Sie haben ein Gut erreicht!'); <<<<<<<<<<<<< semi weg
ELSE (summe>44) AND (summe<=50) THEN writeln('Sie haben ein Sehr GUt erreicht!');
readln;
end.
und schon gehts - Grundlagen von if then else - das war nämlich C style.

Gruss

Der.Kaktus 11. Jun 2009 17:21

Re: Testauswertungsprogramm
 
Hallo,
Case waer einfacher(wie schon vor mir geschrieben)

Delphi-Quellcode:
writeln('Gesamtpunktezahl: ',summe);
Case Summe of
  23..29:writeln('Sie haben ein Genügend erreicht!');  
  30..37:writeln('Sie haben ein Befriedigend erreicht!');  
  38..44:writeln('Sie haben ein Gut erreicht!');
  45..50:writeln('Sie haben ein Sehr Gut erreicht!');
end;
readln;
end.

FreePascal 11. Jun 2009 17:42

Re: Testauswertungsprogramm
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo, hab es jetzt doch mit IF THEN ELSE gemacht:
Delphi-Quellcode:
program testauswertung
uses crt;
var nr, summe, punkte:integer;


begin
     clrscr;
     summe:=0;
              FOR nr:=1 TO 4 DO
              begin
                  writeln('Aufgabe: ',nr);
                  readln(punkte);
                  summe:=summe+punkte;
              end;



  writeln('Gesamtpunktezahl: ',summe);
IF (summe>23) AND (summe<=29) THEN writeln('Sie haben ein Genügend erreicht!')
ELSE IF (summe>29) AND (summe<=37) THEN writeln('Sie haben ein Befriedigend erreicht!')  
ELSE IF (summe>37) AND (summe<=44) THEN writeln('Sie haben ein Gut erreicht!')
ELSE (summe>44) AND (summe<=50) THEN writeln('Sie haben ein Sehr GUt erreicht!');
readln;
end.
So hab ich zwei Fehler drinne, sagt der debug mod., und zwar bei 19,35 sagt er:
19,35: Illegal Expression
19,35: Fatal:Syntax Error, ";" expected but "THEN" found.



Ich lade das Programm mal hoch, vlt könnte jemand schauen und es dann wieder hochladen...
Danke, Martin

SimStar001 11. Jun 2009 17:45

Re: Testauswertungsprogramm
 
Schreibe deinen Code doch bitte auf case um. Das ist wirklich tausendmal besser. Dann findest du auch schnell selbst fehler!

FreePascal 11. Jun 2009 17:59

Re: Testauswertungsprogramm
 
Delphi-Quellcode:
program testauswertung
uses crt;
var nr, summe, punkte:integer;


begin
     clrscr;
     summe:=0;
              FOR nr:=1 TO 4 DO
              begin
                  writeln('Aufgabe: ',nr);
                  readln(punkte);
                  summe:=summe+punkte;
              end;
writeln('Gesamtpunktezahl: ',summe);
IF summe=>24<=29 OR summe=>29<=37 OR summe=>37<=44 OR summe=<44
THEN
begin
     CASE summe OF
     >24<=29:begin
    writeln('Genügend');
      end;
      >29<=37:begin
      writeln('Befriedigend');
      end;
      >37<=44:begin
      writeln('GUt');
      end;
      >44:begin
      writeln('Sehr gut');
      end;

end;

end
ELSE
writeln('Falsche Eingabe.Progr.abbr.');
readln;
end.
So, umgeschrieben.

inherited 11. Jun 2009 18:01

Re: Testauswertungsprogramm
 
Schau Dir den Beitrag von "Der Kaktus" nochmal an...


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:11 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz