1/12 ALGO – Algoritmizace 5. cvičení 1.ročník, ZS Ing. Zdena DOBEŠOVÁ, Ph.D.
2/12 Pole prvky pole: čísla, text, datum, příznak (A/N) PoleZnak(I) Jmeno(I) Jmeno(1)=„Labe“ Jmeno(N)=„Dyje“ Labe Smrk Sněžka … … …. Dyje A N A A N
3/12 Dvojrozměrné pole matice prvků index udává číslo řádku a číslo sloupce smíšené datové typy Brno45 Úvaly17 Písek21 Rtyně , ,
4/12 Příklad Sestavte algoritmus, který zjistí četnost čísel ve vstupní posloupnosti A 50 čísel. Posloupnost obsahuje přirozená čísla v intervalu. Výsledek: dvojrozměrné pole Cetnost(2,10) Cetnost (m,j) A(I)
5/12 Příklad řešení načtení vstupních čísel For I = 1 to I = 50 Step L = 1 Do Vstup A(I) End For naplnění četnosti – prvního řádku J – číslo sloupce For J = 1 to J = 10 Step L = 1 Do Cetnost(1,J)= J End For druhý řádek zatím prázdný
6/12 Příklad 5.1 – řešení pokr. Průchod posloupností A(I) For I = 1 to I = 50 Step L = 1 Do Select Case A(I) = 1 Cetnost(2,1)= Cetnost(2,1)+ 1 Case A(I) = 2 Cetnost(2,2)= Cetnost(2,2)+ 1 Case A(I) = 3 Cetnost(2,3)= Cetnost(2,3) Case A(I) = 10 Cetnost(2,10)= Cetnost(2,10)+ 1 End Select Next I
7/ pokr. tisk pole Cetnost A(I) For I = 1 to I = 10 Step L = 1 Do Tisk Cetnost(1,I) Tisk Cetnost(2,I) Next I
8/12 Příklad 5.2 Sestavte algoritmus, který zjistí četnost písmen ve vstupní posloupnosti ZN obsahující 50 znaků. Posloupnost obsahuje znaky A až Z bez diakritiky. Výsledek: dvojrozměrné pole CetnostZN(2,26) CetnostZN(2,26) ABC.. Z
9/ načtení vstupních znaku For I = 1 to I = 50 Step L = 1 Do Vstup ZN(I) End For 2. sekce /telo naplnění četnosti – prvního řádku CetnostZN(1,1) = “A” CetnostZN (1,2) = “B” CetnostZN (1,3) = “C” CetnstZN (1,4) = “D” ……………… CetnstZN (1,26) = “Z” druhý řádek zatím prázdný
10/ řešení - pokr. 2. sekce /telo – pokr. For I = 1 to I = 50 Step L = 1 Do For J = 1 to J = 26 IF ZN(I) = CetnostZN(1,J) Then CetnostZN(2,J)= CetnostZN(2,J) +1 Skip – vyskočení z vnitřního cyklu End IF End For J End For I 3. Sekce - tisk For J = 1 to J = 26 Tisk CetnsotZN(1,J) Tisk CetnsotZN(2,J) End For J Lze zapsat pomocí Select – Case? – SAMOSTATNĚ End For
11/12 Příklad 5.3 – rotace doprava Sestavte algoritmus, který posune všechny prvky pole o jednu pozici doprava. Využijte pomocnou proměnnou POM. RUSAKO ORUSAK
12/ řešení 1.načtení vstupních čísel For I = 1 to I = 50 Step L = 1 Do Vstup ZN(I) End For 2. posun For I = 1 to I = 50 Step L = 1 Do ????? ŘEŠENÍ ZA DÚ ????? End For 3. tisk výsledné zrotované posloupnosti