AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Testauswertungsprogramm

Ein Thema von FreePascal · begonnen am 11. Jun 2009 · letzter Beitrag vom 11. Jun 2009
Antwort Antwort
Seite 1 von 2  1 2      
FreePascal

Registriert seit: 31. Mai 2009
39 Beiträge
 
#1

Testauswertungsprogramm

  Alt 11. Jun 2009, 17:35
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
  Mit Zitat antworten Zitat
Benutzerbild von Lannes
Lannes

Registriert seit: 30. Jan 2005
Ort: Münster
745 Beiträge
 
Delphi 3 Professional
 
#2

Re: Testauswertungsprogramm

  Alt 11. Jun 2009, 17:53
Hallo,

schau Dir mal case an.
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
  Mit Zitat antworten Zitat
FreePascal

Registriert seit: 31. Mai 2009
39 Beiträge
 
#3

Re: Testauswertungsprogramm

  Alt 11. Jun 2009, 17:57
Du meinst eine Case summe OF
Verknüpfung anstatt der verschachtelten IF THEN ELSE
Gruß, Martin
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.388 Beiträge
 
Delphi 12 Athens
 
#4

Re: Testauswertungsprogramm

  Alt 11. Jun 2009, 17:59
Hallo...

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

  Mit Zitat antworten Zitat
Benutzerbild von thkerkmann
thkerkmann

Registriert seit: 7. Jan 2006
Ort: Pulheim Brauweiler
464 Beiträge
 
Delphi 2010 Professional
 
#5

Re: Testauswertungsprogramm

  Alt 11. Jun 2009, 18:15
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
Thomas Kerkmann
Ich hab noch einen Koffer in Borland.
http://thomaskerkmann.wordpress.com/
  Mit Zitat antworten Zitat
Benutzerbild von Der.Kaktus
Der.Kaktus

Registriert seit: 22. Jan 2008
Ort: Erfurt
958 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Testauswertungsprogramm

  Alt 11. Jun 2009, 18:21
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.
Gruss Kaki

Repeat Until true=false;
  Mit Zitat antworten Zitat
FreePascal

Registriert seit: 31. Mai 2009
39 Beiträge
 
#7

Re: Testauswertungsprogramm

  Alt 11. Jun 2009, 18:42
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
Angehängte Dateien
Dateityp: pas test_auswertung_1_669.pas (680 Bytes, 0x aufgerufen)
  Mit Zitat antworten Zitat
SimStar001

Registriert seit: 18. Jan 2008
594 Beiträge
 
#8

Re: Testauswertungsprogramm

  Alt 11. Jun 2009, 18:45
Schreibe deinen Code doch bitte auf case um. Das ist wirklich tausendmal besser. Dann findest du auch schnell selbst fehler!
  Mit Zitat antworten Zitat
FreePascal

Registriert seit: 31. Mai 2009
39 Beiträge
 
#9

Re: Testauswertungsprogramm

  Alt 11. Jun 2009, 18:59
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.
  Mit Zitat antworten Zitat
Benutzerbild von inherited
inherited

Registriert seit: 19. Dez 2005
Ort: Rosdorf
2.022 Beiträge
 
Turbo Delphi für Win32
 
#10

Re: Testauswertungsprogramm

  Alt 11. Jun 2009, 19:01
Schau Dir den Beitrag von "Der Kaktus" nochmal an...
Nikolai Wyderka

SWIM SWIM HUNGRY!
Neuer Blog: hier!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:14 Uhr.
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