Navigace: Hlavní stránka -> PASCAL -> 03 Podmínky -> 03.05 Vytiskne zadané 3 hodnoty ve vzestupném pořadí

MENU

03.05 Vytiskne zadané 3 hodnoty ve vzestupném pořadí

Zadání:
Sestavte program, který vytiskne tři zadané hodnoty ve vzestupném pořadí.

Řešení:
Při řešení programu použijeme tři pomocné proměnné min, stred a max.
Nejprve porovnáme první dvě hodnoty a podle jejich hodnoty je rozřadíme do proměnných min a max.
Poté porovnáme třetí zadanou hodnotu s hodnotami proměnných min a max a dosadíme do proměnné stred
příslušnou hodnotu.
program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var a,b,c,min,stred,max: integer;

begin

   write('Zadejte prvni cislo: ');
   readln(a);
   write('Zadejte druhe cislo: ');
   readln(b);
   write('Zadejte treti cislo: ');
   readln(c);

   if a>b then
   begin
      max:=a;
      min:=b;
   end
   else
   begin
      min:=a;
      max:=b;
   end;

   if c>max then
   begin
      stred:=max;
      max:=c;
   end
   else
      if c<min then
      begin
         stred:=min;
         min:=c;
      end
      else stred:=c;

    writeln(min:3,stred:3,max:3);

    readln;

end.
program ke stažení
Pro studenty:
Asi by vás napadlo použít jednodušší metodu řešení, např.:
if (a<b) and (b<c) then writeln(a,b,c);
if (b<a) and (a<c) then writeln(b,a,c);
if (c<b) and (b<a) then writeln(c,b,a);
.
.
.
Je velmi jednoduché na některou z variant zapomenout. A pozor! Tento zápis neřeší, pokud budou některé ze zadávaných hodnot shodné. Pokud zahrnete do podmínek i shodnost hodnot, bude podmínek velké množství.

Pro učitele:
Navrhněte studentům, aby se zamysleli nad modifikací programu, která vytiskne hodnoty v sestupném pořadí.