Frage zu einem Pascal Programm

Dieses Thema im Forum "Programmieren" wurde erstellt von Croyda, 24. November 2004.

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. Croyda

    Croyda Byte

    Registriert seit:
    24. November 2004
    Beiträge:
    8
    Hallo,
    wir haben in der Schule ein Programm geschrieben (Pascal):


    program Epidemie;

    uses wincrt;

    const n=100;

    var p,k:real;
    i,j: integer;

    begin

    write ('Anteil der Infizierten p= ');
    readln (p);
    write ('Ansteckungsrate: k= ');
    readln (k);
    clrscr;
    writeln ('Verlaud der Epidemie')
    writeln;
    writeln ('Zeit Infizierte')
    writeln ('-----------------')
    for i=1 to 1 do
    begin
    p:=p+k*p(1-p);
    for j:=1 to 1 do
    begin
    writeln (i:3, ' ',p:10:4);
    readln;
    end;
    end;
    end.


    So, ich verstehe eigentlich alles bis auf folgenden Block:

    for i=1 to 1 do
    begin
    p:=p+k*p(1-p);
    for j:=1 to 1 do
    begin
    writeln (i:3, ' ',p:10:4);
    readln;
    end;
    end;

    für was steht das denn alles? Ihr könnt mir da doch sicherlich helfen, oder? Dankeschön!
     
  2. Sumo

    Sumo Kbyte

    Registriert seit:
    30. August 2000
    Beiträge:
    178
    So ganz fit bin ich in Pascal nicht mehr. Aber ein paar Dinge kann ich schon noch sagen.
    Code:
    for i=1 to 1 do begin
      p:=p+k*p(1-p);
      for j:=1 to 1 do begin
        writeln (i:3, ' ',p:10:4);
        readln;
      end;
    end;
    
    Die For-Schleifen sind hier eigentlich völlig fehl am Platz. Sie tun nichts anderes als den folgenden Programmblock einmal auszuführen. Es reicht deshalb nur die Befehle für die Berechnung und die Ausgabe hinzuschreiben.
    Code:
    p:=p+k*p(1-p);
    writeln (i:3, ' ',p:10:4);
    readln;
    
    p:=... ist eine Zuweisung. Ihr hattet in der Schule sicher die Formel für die Berechnung irgendwie hergeleitet oder so gesagt bekommen. Jedenfalls rechnet p:=p+k*p(1-p) den Wert für die eingegebenen Daten p und k aus.
    Bei writeln (i:3, ' ',p:10:4) bin ich mir nicht mehr ganz sicher. Der Doppelpunkt und die nachfolgenden Zahlen bewirkten bei Fliesskommazahlen glaube ich, dass die Zahl nach x stellen abgeschnitten wird.
    readln; wartet so lange bis der Benutzer die Eingabetaste drückt. Das wird eigentlich dafür benutzt, damit die DOS-Box nach der Ausgabe des Ergebnisses nicht sofort zu geht.
     
  3. Croyda

    Croyda Byte

    Registriert seit:
    24. November 2004
    Beiträge:
    8
    Aja, okay danke!
     
Status des Themas:
Es sind keine weiteren Antworten möglich.

Diese Seite empfehlen