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