Příklad 9.

GYMNÁZIUM, VLAŠIM, TYLOVA

logo

 Autor Ing. Marta Bechyňová
Číslo materiálu 4_1_INF_16
K dispozici na http://www.ivt.mzf.cz/algoritmizace-a-programovani/uvod-do-algoritmu/8-resene-priklady/priklad-9/
Datum vytvoření
  1. 10. 2012
Druh učebního materiálu webová stránka
Ročník 1.
Anotace webová stránka pro vytvoření vývojového diagramu a programu v Pascalu pro určení největšího společného dělitele pomocí Euklidova algoritmu
Klíčová slova algoritmus, Euklidův algoritmus
Vzdělávací oblast Informační a komunikační technologie
Očekávaný výstup Studenti se naučí vytvořit vývojový diagram a program v Pascalu pro určení největšího společného dělitele pomocí Euklidova algoritmu.
Zdroje a citace
  • dum

  • Formulace problému

Sestavte algoritmus, který hledá největšího společného dělitele dvou čísel. Vychází ze známého Euklidova algoritmu, kdy menší číslo se odečítá od většího tak dlouho, dokud si obě nejsou rovna. Výsledná hodnota je pak hledaným největším společným dělitelem.

  • Analýza úlohy

Vstupní údaje: dvě celá kladná čísla A, B

Výstupní údaje: největší společný dělitel

Analýza: Odečítej menší číslo od většího, dokud si obě nebudou rovna.

  • Sestavení algoritmu

1. Čti A, B

2. Je A <> B ?

ANO – jdi na 3.

NE – jdi na 8.

3.  Je A > B?

ANO – jdi na 4.

NE – jdi na 6.

4.   A := A – B

5.  Jdi na 2.

6.   B := B –  A

7.   Jdi na 2.

8.   Piš A

Vývojový diagram:

 

 

Program v Pascalu:
var A, B : integer;

begin

   write('Zadej dvě čísla: ');

   read(A, B);

      while A <> B do

         if A > B then
             A:= A – B
         else
             B := B – A;

   write( 'Největší společný dělitel je ' , A);

   readln;readln

end.

Příklady:

  1. Napište program, který donutí uživatele zadat kladné číslo a pak vytiskne jeho odmocninu. V případě zadání čísla záporného program v klidu vyžaduje (i opakovaně) zadání správné, tedy kladné vstupní hodnoty. Modifikace: počítejte počet pokusů, které uživatel potřeboval pro zadání kladného čísla.
  2. Vytiskněte čísla od 1 do n, použijte cyklus repeat, while, for, k názvu programu přidejte písmena a,b,c.