Navigace: Hlavní stránka -> PASCAL -> 03 Podmínky -> 03.04 Určí, kolik ze zadaných 3 čísel má stejnou hodnotu

MENU

03.04 Určí, kolik ze zadaných 3 čísel má stejnou hodnotu

Zadání:
Sestavte program, který určí, kolik ze tří zadaných hodnot je stejných.
Řešení:
Postupně porovnáváme dvě čísla, podle rovnosti či nerovnosti větvíme program následnými podmínkami.
Proměnná pocet slouží pro evidenci shod, na závěr je vyhodnocena příkazem case.
program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var a,b,c,pocet:integer;

begin

   writeln('Zadejte prvni celociselnou hodnotu:');
   readln(a);
   writeln('Zadejte druhou celociselnou hodnotu:');
   readln(b);
   writeln('Zadejte treti celociselnou hodnotu:');
   readln(c);

   if a=b then
      if b=c then pocet:=3
      else pocet:=2
   else
      if a=c then pocet:=2
      else
         if b=c then pocet:=2
         else pocet:=0;

   case pocet of
      0: writeln('Hodnoty si nejsou rovny');
      2: writeln('Dve hodnoty jsou si rovny');
      3: writeln('Vsechny hodnoty jsou si rovny');
   end;

   readln;

end.
program ke stažení
Pro studenty:
Není vhodné porovnávat všechny tři čísla najednou, např.:
if (a=b) and (a=c) then writeln('Vsechny cisla rovna');
if (a=b) and (b<>c) and then writeln('Dve cisla rovna');
if (a<>b) and (b=c) and then writeln('Dve cisla rovna');
if (a=c) and (b<>c) and then writeln('Dve cisla rovna');
.
.
.
Variant je mnoho a většinou se stane, že autor programu na nějakou zapomene.