Zadání:
Sestavte program, který vytiskne ze tří zadaných hodnot prostřední hodnotu, např. z hodnot 8,2,5 vytiskne hodnotu 5.
Řešení:
Metod řešení je více. Asi nejjednodušší je porovnat první dvě hodnoty a jejich hodnoty uložit do proměnných min
a max podle velikosti. Dalším krokem je porovnat třetí číslo s hodnotou max a min a do proměnné stred vložit hodnotu,
která je prostřední.
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils;
var a,b,c,min,max,stred:real;
begin
writeln('Zadejte prvni cislo:');
readln(a);
writeln('Zadejte druhe cislo:');
readln(b);
writeln('Zadejte treti cislo:');
readln(c);
if a>b then
begin
max:=a;
min:=b;
end
else
begin
max:=b;
min:=a;
end;
if c>max then stred:=max
else
if c<min then stred:=min
else stred:=c;
writeln('Prostredni hodnota=',stred:0:3);
readln;
end.
program ke stažení
Pro studenty:
Nejhorší metoda řešení je porovnávat všechny tři hodnoty navzájem, např.:
if (c<a) and (a<b) then writeln(a);
if (c<b) and (b<a) then writeln(b);
if (b<c) and (c<a) then writeln(c);
Tato porovnávání totiž neřeší variantu, kdy jsou některé ze zadávaných hodnot shodné, např. a=5, b=5 a c=8. Pokud bychom
porovnávali i shodné hodnoty, dostaneme se na neúnosný počet podmínek (zkuste odvodit, kolik).