Navigace: Hlavní stránka -> PASCAL -> 03 Podmínky -> 03.03 Vytiskne ze zadaných 3 čísel prostřední hodnotu

MENU

03.03 Vytiskne ze zadaných 3 čísel prostřední hodnotu

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).