Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Naučte se myslet jako programátor

V minulé lekci, Eratosthenovo síto, jsme si ukázali algoritmus, který najde všechna prvočísla v intervalu od 2 do N.

Vítejte v mém dalším článku, zde si budeme trénovat programátorské myšlení. Budeme se učit sestavovat algoritmy pro nějaké (na oko banální) úlohy. Bohužel programovací jazyk není tak dokonalý jako lidský mozek a tak se to programu musí celé vysvětlit jako naprostému hlupákovi, aby vůbec věděl, co má dělat :) Tyto úlohy jsem našel na disku ještě ze školy :) Takže to není můj výtvor avšak všechny tyto úlohy mám napsané v jazyce C#.

Pokud se doopravdy chcete něčemu naučit, tak nepodvádějte a zkuste si každou úlohu udělat poctivě a sami. Výsledky pak můžete vkládat ve formě zdrojové kódu nebo obrázku do komentářů. Nezapomeňte uvést číslo úlohy, kterou jste vyřešili :)

Zde máte úvod do teorie algoritmů

  1. Program dostane na vstup posloupnost 30 celých čísel. Sestavte vývojový diagram k algoritmu, podle kterého program nalezne a vypíše druhé nejmenší ze zadaných čísel. Vyplňte tabulku obsahu proměnných pro vstup začínající čísly 8, -2, 1, -5, ...
  2. Program dostane na vstup posloupnost celých kladných čísel; zadávání je ukončeno nulou. Sestavte vývojový diagram k algoritmu, podle kterého program nalezne a vypíše druhé největší ze zadaných čísel. Vyplňte tabulku obsahu proměnných pro vstup začínající čísly 8, 3, 5, 15, ...
  3. Program dostane na vstup 2 kladná celá čísla. Sestavte vývojový diagram k algoritmu, podle kterého program nalezne a vypíše největší společný dělitel zadaných čísel. Vyplňte tabulku obsahu proměnných pro čísla 12 a 18.
  4. Program dostane na vstup 2 kladná celá čísla. Sestavte vývojový diagram k algoritmu, podle kterého program nalezne a vypíše nejmenší společný násobek zadaných čísel. Vyplňte tabulku obsahu proměnných pro čísla 12 a 8.
  5. Sestavte vývojový diagram k algoritmu, podle kterého program rozhodne, zda zadané číslo je nebo není prvočíslo. Vyplňte tabulku obsahu proměnných pro číslo 15.
  6. Program dostane na vstup posloupnost 30 celých čísel. Sestavte vývojový diagram k algoritmu, podle kterého program rozhodne a vypíše, zda zadaná posloupnost je nebo není rostoucí. Vyplňte tabulku obsahu proměnných pro vstup začínající čísly 2, 3, 1, 5, ...
  7. Program dostane na vstup posloupnost celých čísel; zadávání je zakončeno nulou. Sestavte vývojový diagram k algoritmu, podle kterého program rozhodne a vypíše, zda zadaná posloupnost je nebo není klesající. Vyplňte tabulku obsahu proměnných pro vstup začínající čísly 18, 13, 15, 9, ...
  8. Program dostane na vstup posloupnost 40 celých čísel. Sestavte vývojový diagram k algoritmu, podle kterého program spočítá a vypíše, kolik bylo mezi zadanými čísly kladných, záporných a nulových hodnot. Vyplňte tabulku obsahu proměnných pro vstup začínající čísly 0, 13, -15, -9, ...
  9. Program dostane na vstup posloupnost celých čísel; zadávání je zakončeno nulou. Sestavte vývojový diagram k algoritmu, podle kterého program nalezne a vypíše největší číslo, nejmenší číslo a aritmetický průměr ze zadaných čísel. Vyplňte tabulku obsahu proměnných pro vstup začínající čísly 10, 13, -15, -9, ...
  10. Program dostane na vstup číslo X a poté posloupnost 50 čísel. Sestavte vývojový diagram k algoritmu, podle kterého program nalezne a vypíše to číslo z posloupnosti, které je hodnotou nejblíže zadanému číslu X. Vyplňte tabulku obsahu proměnných pro vstup začínající čísly 20, 33, 2, 15, ...
  11. Sestavte vývojový diagram k algoritmu, podle kterého program spočítá hodnotu N!(N faktoriál) pro zadané přirozené číslo N. Vyplňte tabulku obsahu proměnných pro zadané číslo 4.Pozn. N! = N.(N-1).(N-2). ... .3.2.1 (např. 5! = 5.4.3.2.1 = 120)
  12. Sestavte vývojový diagram k algoritmu, podle kterého program vyřeší kvadratickou rovnici Ax2+Bx+C=0. Program dostane na vstup koeficienty A, B a C. Pokud je zadávaný koeficient A roven nule, program vypíše upozornění a nechá si zadávat jinou hodnotu tak dlouho, dokud nebude různá od nuly. Vyplňte tabulku obsahu proměnných pro zadaná čísla 0, 0, 1, 2, 1.
  13. Program dostane na vstup 2 celá čísla A a B a jedno přirozené číslo X. Sestavte vývojový diagram k algoritmu, podle kterého program vypíše z intervalu <A;B> všechna čísla dělitelná číslem X. Vyplňte tabulku obsahu proměnných pro zadaná čísla 3, 20, 5.
  14. Sestavte vývojový diagram k algoritmu, podle kterého program rozhodne, zda zadané přirozené číslo je nebo není tzv. dokonalým číslem. Vyplňte tabulku obsahu proměnných pro zadané číslo 12. Pozn. Dokonalé číslo je takové číslo, které je rovno součtu všech svých dělitelů kromě sebe sama. Například 28 je dokonalé číslo, protože 28 = 1 + 2 + 4 + 7 + 14.
  15. Sestavte vývojový diagram k algoritmu, podle kterého program rozhodne, zda zadaná přirozená čísla jsou nebo nejsou tzv. spřátelená čísla. Vyplňte tabulku obsahu proměnných pro zadaná čísla 12 a 16. Pozn. Spřátelenými čísly se nazývají dvě různá přirozená čísla a, b takových vlastností, že se součet všech vlastních dělitelů čísla a rovná číslu b a naopak. Příkladem spřátelených čísel je dvojice čísel 220 a 284.
  16. Sestavte vývojový diagram k algoritmu, podle kterého program převede zadané číslo z desítkové soustavy do dvojkové. Vyplňte tabulku obsahu proměnných pro zadané číslo 9.
  17. Je dán počet dní v měsíci (tj. číslo z rozmezí 28 až 31) a informace, na který den v týdnu připadá první den v měsíci (ve tvaru pořadového čísla: pondělí = 1, úterý = 2, …, neděle = 7). Sestavte vývojový diagram k algoritmu, který zjistí a vypíše kolik je v daném měsíci pátků. Vyplňte tabulku obsahu proměnných pro vstup: 30, 6.
  18. Je dán počet dní v měsíci (tj. číslo z rozmezí 28 až 31) a informace, na který den v týdnu připadá první den v měsíci (ve tvaru pořadového čísla: pondělí = 1, úterý = 2, …, neděle = 7). Sestavte vývojový diagram k algoritmu, který zjistí a vypíše kolik je v daném měsíci pracovních dní. Vyplňte tabulku obsahu proměnných pro vstup: 29, 3.
  19. Sestavte vývojový diagram k algoritmu, podle kterého program převede zadané číslo z  dvojkové soustavy do desítkové. Vyplňte tabulku obsahu proměnných pro zadané číslo 11010.
  20. Sestavte vývojový diagram k algoritmu, který spočítá a vypíše ciferný součet daného přirozeného čísla. Vyplňte tabulku obsahu proměnných pro zadané číslo 3059.
  21. Hodnotu Ludolfova čísla pí lze aproximovat nekonečnou řadou pí = 4 . (1 – 1/3 + 1/5 – 1/7 + 1/9 - …) Sestavte vývojový diagram k algoritmu, který vypočítá pomocí této řady hodnotu pí s libovolnou přesností (zadá uživatel). Vyplňte tabulku obsahu proměnných pro zadanou přesnost 0,1.

V dalším díle spojíme lehké algoritmy s funkcemi. Budeme tedy vymýšlet lehké programy a jejich hlavní části vkládat do funkcí (metod)


 

Předchozí článek
Eratosthenovo síto
Všechny články v sekci
Matematické algoritmy
Článek pro vás napsal Mediel
Avatar
Uživatelské hodnocení:
12 hlasů
Autor se věnuje programování v C#, ThaiBoxu, ženám a posilování :) „Jestliže si vsugerujete neúspěch, pak vás čeká neúspěch. Někdo říká, že je nesmělý, hloupý. Zopakujte si to desetkrát za sebou a vaše nesmělost a hloupost se tím jen prohloubí.“ MUHAMMAD
Aktivity