pondělí 14. prosince 2009

Vysvědčení: procedury, podmínka...

tento program testuje, zda 4 dosažené známky odpovídají vyznamenání nebo znamenají, že student prospěl
rozšiřte tento program tak, aby testoval, zda student nepropadl
všimněte si vcelku elegantního využití pomocné proměnné zde označené jako NE:

na vyznamenání musíte současně splnit tyto podmínky: průměr do 1,5 včetně a zároveň žádná trojka či horší
do proměnné NE se ukládá každé porušení předchozích podmínek, pro udělení vyznamenání musí být NE rovno nule, tak jak bylo nastaveno na začátku





program vysvedceni;
uses crt;
var ne, anglina, matyka, cestina, nemcina, klavesa:integer;
    prumer: real;

procedure dotaz_cj;
begin
    writeln ('co si dostal s cetyny?');
    readln (cestina);
end;

procedure dotaz_nj;
begin
    writeln ('co si dostal s nemcyny?');
    readln (nemcina);
end;

procedure dotaz_aj;
begin
    writeln ('co si dostal s ajyny?');
    readln (anglina);
end;

procedure dotaz_m;
begin
    writeln ('co si dostal s matyky?');
    readln (matyka);
end;

procedure vyznamenani;
begin
    writeln ('ty vogo vzornak s vyznamenanim, prumer ma ',prumer);
end;

procedure prospel;
begin
    writeln ('ty voo debil prospel, ale bez vyznamenani, prumer ma ',prumer);
end;


procedure vysledek;
begin
     prumer:=(cestina+anglina+nemcina+matyka)/4;
     if prumer>=1.5 then ne:=ne+1;
     if cestina>=3 then ne:=ne+1;
     if nemcina>=3 then ne:=ne+1;
     if anglina>=3 then ne:=ne+1;
     if matyka>=3 then ne:=ne+1;
     if ne=0 then vyznamenani else prospel
end;

BEGIN
   repeat
      ne:=0;
     dotaz_cj;
     dotaz_nj;
     dotaz_aj;
     dotaz_m;
     vysledek;
     writeln ('pokracovat 1/0?');
     readln (klavesa);
    until klavesa<>1





END.

...a řešení úkolu from D. Č.:

program vysvedceni;
uses crt;
var ne, anglina, matyka, cestina, nemcina, neprospel, klavesa:integer;
    prumer: real;

procedure dotaz_cj;
begin
    writeln ('co si dostal s cetyny?');
    readln (cestina);
end;

procedure dotaz_nj;
begin
    writeln ('co si dostal s nemcyny?');
    readln (nemcina);
end;

procedure dotaz_aj;
begin
    writeln ('co si dostal s ajyny?');
    readln (anglina);
end;

procedure dotaz_m;
begin
    writeln ('co si dostal s matyky?');
    readln (matyka);
end;

procedure vyznamenani;
begin
    writeln ('ty vogo vzornak s vyznamenanim, prumer ma ',prumer);
end;

procedure prospel;
begin
    writeln ('ty voo debil prospel, ale bez vyznamenani, prumer ma ',prumer);
end;
procedure neudelal;
begin
    writeln ('neprospel, nejvetsi dement,prumer ma ',prumer);
end;


procedure vysledek;
begin
     prumer:=(cestina+anglina+nemcina+matyka)/4;
     if prumer>=1.5 then ne:=ne+1;
     if cestina>=3 then ne:=ne+1;
     if nemcina>=3 then ne:=ne+1;
     if anglina>=3 then ne:=ne+1;
     if matyka>=3 then ne:=ne+1;
          if prumer>=1.5 then ne:=ne+1;
     if cestina>=5 then ne:=ne+1000;
     if nemcina>=5 then ne:=ne+1000;
     if anglina>=5 then ne:=ne+1000;
     if matyka>=5 then ne:=ne+1000;
     if ne=0 then vyznamenani;
     if ne>=1000 then neudelal else   prospel;
end;

BEGIN
   repeat
     ne:=0;
     dotaz_cj;
     dotaz_nj;
     dotaz_aj;
     dotaz_m;
     vysledek;
     writeln ('pokracovat 1/0?');
     readln (klavesa);
    until klavesa<>1
END.

Žádné komentáře:

Okomentovat