Was ist mein Fehler?

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
snoopy219
Beiträge: 11
Registriert: So 28. Okt 2012, 12:20

Was ist mein Fehler?

Beitrag von snoopy219 »

hey!
ich habe eine hausaufgabe, aber irgendwie ist da ein Fehler drin den ich nicht finde..könnt ihr mir bitte helfen?

die Aufgabe ist im Anhang


mein Quelltext:

Code: Alles auswählen

 var bpersonen,neuerkrankungen,geimpft,gpersonen,erkrankungen,geimpftep,summekpersonen,summeupersonen,tag:longword;
begin
  writeln('--- Simulation einer Epedemie ---');
 
  write('Anzahl der betroffenen Personen       : '); readln(bpersonen);
  write('Neuerkrankungen in %                  : '); readln(neuerkrankungen);
  write('Anzahl der geimpften Personen pro Tag : '); readln(geimpft);
 
  gpersonen:=0;
  erkrankungen:=0;
  geimpftep:=0;
  summekpersonen:=0;
  summeupersonen:=0;
  tag :=0;
  writeln(' Tag - gefaehrdete Personen - Erkrankungen - geimpft - Summe Erkrankter - Summe ungefaehrdeter');
  writeln(  tag,        gpersonen,       erkrankungen,  geimpftep, summekpersonen,      summeupersonen);
 
  repeat
    geimpftep:=geimpft;
    gpersonen:=bpersonen;
    erkrankungen:=gpersonen/neuerkrankungen;
    gpersonen:=gpersonen-(erkrankungen+geimpftep);
    summekpersonen:=summekpersonen+erkrankungen;
    summeupersonen:=summeupersonen+geimpftep;
    tag:=tag+1;
 
  until geimpftep>erkrankungen ;
  readln;
end;                   


wäre echt nett, wenn ihr mir helfen könnten. danke. ;)
Dateianhänge
Epedemie.pdf
(46 KiB) 58-mal heruntergeladen
Zuletzt geändert von Lori am So 28. Okt 2012, 16:52, insgesamt 1-mal geändert.
Grund: Bitte den Highlighter benutzen

Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2807
Registriert: Fr 22. Sep 2006, 19:32
OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
CPU-Target: x86, x64, arm
Wohnort: Berlin
Kontaktdaten:

Re: Was ist mein Fehler?

Beitrag von m.fuchs »

Möchtest du uns auch noch sagen, wie sich der Fehler äußert?
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

snoopy219
Beiträge: 11
Registriert: So 28. Okt 2012, 12:20

Re: Was ist mein Fehler?

Beitrag von snoopy219 »

in der repeat schleife wird folgendes markiert:

erkrankungen:=gpersonen/neuerkrankungen;

gocher
Beiträge: 298
Registriert: Di 23. Nov 2010, 23:41
OS, Lazarus, FPC: Ubuntu/Win, Lazarus trunk, FPC trunk
CPU-Target: 32Bit/64Bit
Wohnort: Geldern
Kontaktdaten:

Re: Was ist mein Fehler?

Beitrag von gocher »

Dein Problem ist das es keine zum Teil infizierten Menschen gibt, also z.B. 8,6 Kranke!
Dein programmiertechnisches Problem besteht darin das Du diese zum Teil infizierten dann auch noch in eine Variable packst die nur GANZ infizierte fassen kann! :)

Also überlege Dir ob Du auch zum Teil infizierte haben willst, dann muss die Variable "erkrankungen" vom Typ Float sein, oder Du musst mit DIV, MOD oder Round arbeiten!
MfG Gocher
akt. Projekt: Webserver(HTTPS HTTP/2) mit integrierten CMS in Free Pascal - www.gocher.me

Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2807
Registriert: Fr 22. Sep 2006, 19:32
OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
CPU-Target: x86, x64, arm
Wohnort: Berlin
Kontaktdaten:

Re: Was ist mein Fehler?

Beitrag von m.fuchs »

Es hilft sich mal die Fehlermeldungen anzuschauen, in diesem Falle sollten sie genug Ansatzpunkte geben:

Code: Alles auswählen

Hint: use DIV instead to get an integer result
Error: Incompatible types: got "Extended" expected "LongInt"
Kurz gesagt: es gibt zwei Arten wie Zahlen als Variablen gespeichert werden. Als Ganzzahlund als Gleitkommamzahl.
Und es gibt zwei Arten von Divisionsoperatoren:
  • / liefert ein Ergebnis als Gleitkommazahl
  • div eines als Ganzzahl
Du setzt / willst das Ergebnis aber in einer Ganzzahlvariable speichern.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

snoopy219
Beiträge: 11
Registriert: So 28. Okt 2012, 12:20

Re: Was ist mein Fehler?

Beitrag von snoopy219 »

ahh! danke, der fehler ist wohl geklärt. :)
den nächsten werde ich erstmal selber versuchen zu berichtigen.

Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2807
Registriert: Fr 22. Sep 2006, 19:32
OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
CPU-Target: x86, x64, arm
Wohnort: Berlin
Kontaktdaten:

Re: Was ist mein Fehler?

Beitrag von m.fuchs »

snoopy219 hat geschrieben:den nächsten werde ich erstmal selber versuchen zu berichtigen.
Das ist immer ein guter Ansatz. :wink:

Meine Anmerkung sollst du aber auch nicht als negative Kritik auffassen, eher als Hilfestellung wie du selber schnell zum Ziel kommst. Grundsätzlich sind Anfängerfragen hier immer gerne gesehen, solang sie sich an ein Mindestmaß an Höflichkeit halten. Das ist ja bei dir gegeben.

Ein paar Tipps vielleicht noch, für zukünftige Fragen:
  • Benutze den Highlighter um Code in deinen Beitrag einzufügen, das macht das Lesen einfacher.
  • Versuche möglichst eine genaue Fehlerbeschreibung abzugeben. In welcher Zeile kracht es und mit welchem Fehler.
  • Gib an, welche Version von Lazaurs (und auf welchem OS) du nutzt. Das kann manchmal entscheidend sein.
Ansonsten viel Spaß mit Lazarus und bis zur nächsten Frage.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

Antworten