Naučte sa myslieť ako programátor
Vitajte v mojom ďalšom článku, tu si budeme trénovať programátorské myslenia. Budeme sa učiť zostavovať algoritmy pre nejaké (na oko banálne) úlohy. Bohužiaľ programovací jazyk nie je tak dokonalý ako ľudský mozog a tak sa to programu musí celé vysvetliť ako úplnému hlupákovi, aby vôbec vedel, čo má robiť Tieto úlohy som našiel na disku ešte zo školy Takže to nie je môj výtvor avšak všetky tieto úlohy mám napísané v jazyku C #.
Ak sa naozaj chcete niečomu naučiť, tak nepodvádzajte a skúste si každú úlohu urobiť poctivo a sami. Výsledky potom môžete vkladať vo forme zdrojovej kódu alebo obrázka do komentárov. Nezabudnite uviesť číslo úlohy, ktorú ste vyriešili
Tu máte úvod do teórie algoritmov
- Program dostane na vstup postupnosť 30 celých čísel. Zostavte vývojový diagram k algoritmu, podľa ktorého program nájde a vypíše druhé najmenšie zo zadaných čísel. Vyplňte tabuľku obsahu premenných pre vstup začínajúcich číslami 8, -2, 1, -5, ...
- Program dostane na vstup postupnosť celých kladných čísel; zadávanie je ukončené nulou. Zostavte vývojový diagram k algoritmu, podľa ktorého program nájde a vypíše druhé najväčšie zo zadaných čísel. Vyplňte tabuľku obsahu premenných pre vstup začínajúcich číslami 8, 3, 5, 15, ...
- Program dostane na vstup 2 kladné celé čísla. Zostavte vývojový diagram k algoritmu, podľa ktorého program nájde a vypíše najväčší spoločný deliteľ zadaných čísel. Vyplňte tabuľku obsahu premenných pre čísla 12 a 18.
- Program dostane na vstup 2 kladné celé čísla. Zostavte vývojový diagram k algoritmu, podľa ktorého program nájde a vypíše najmenší spoločný násobok zadaných čísel. Vyplňte tabuľku obsahu premenných pre čísla 12 a 8.
- Zostavte vývojový diagram k algoritmu, podľa ktorého program rozhodne, či zadané číslo je alebo nie je prvočíslo. Vyplňte tabuľku obsahu premenných pre číslo 15.
- Program dostane na vstup postupnosť 30 celých čísel. Zostavte vývojový diagram k algoritmu, podľa ktorého program rozhodne a vypíše, či zadaná postupnosť je alebo nie je rastúca. Vyplňte tabuľku obsahu premenných pre vstup začínajúcich číslami 2, 3, 1, 5, ...
- Program dostane na vstup postupnosť celých čísel; zadávanie je zakončené nulou. Zostavte vývojový diagram k algoritmu, podľa ktorého program rozhodne a vypíše, či zadaná postupnosť je alebo nie je klesajúci. Vyplňte tabuľku obsahu premenných pre vstup začínajúcich číslami 18, 13, 15, 9, ...
- Program dostane na vstup postupnosť 40 celých čísel. Zostavte vývojový diagram k algoritmu, podľa ktorého program spočíta a vypíše, koľko bolo medzi zadanými číslami kladných, záporných a nulových hodnôt. Vyplňte tabuľku obsahu premenných pre vstup začínajúcich číslami 0, 13, -15, -9, ...
- Program dostane na vstup postupnosť celých čísel; zadávanie je zakončené nulou. Zostavte vývojový diagram k algoritmu, podľa ktorého program nájde a vypíše najväčšie číslo, najmenšie číslo a aritmetický priemer zo zadaných čísel. Vyplňte tabuľku obsahu premenných pre vstup začínajúcich číslami 10, 13, -15, -9, ...
- Program dostane na vstup číslo X a potom postupnosť 50 čísel. Zostavte vývojový diagram k algoritmu, podľa ktorého program nájde a vypíše to číslo z postupnosti, ktoré je hodnotou najbližšie zadanému číslu X. Vyplňte tabuľku obsahu premenných pre vstup začínajúcich číslami 20, 33, 2, 15, ...
- Zostavte vývojový diagram k algoritmu, podľa ktorého program spočíta hodnotu N! (N faktoriál) pre zadané prirodzené číslo N. Vyplňte tabuľku obsahu premenných pre zadané číslo 4.Pozn. N! = N. (N-1). (N-2). ... .3.2.1 (napr. 5! = 5.4.3.2.1 = 120)
- Zostavte vývojový diagram k algoritmu, podľa ktorého program vyrieši kvadratickú rovnicu ax2 + Bx + C = 0. Program dostane na vstup koeficienty A, B a C. Pokiaľ je zadávaný koeficient A rovný nule, program vypíše upozornenie a nechá si zadávať inú hodnotu tak dlho, dokiaľ nebude rôzna od nuly. Vyplňte tabuľku obsahu premenných pre zadané čísla 0, 0, 1, 2, 1.
- Program dostane na vstup 2 celé čísla A a B a jedno prirodzené číslo X. Zostavte vývojový diagram k algoritmu, podľa ktorého program vypíše z intervalu <A; B> všetky čísla deliteľná číslom X. Vyplňte tabuľku obsahu premenných pre zadané čísla 3, 20, 5.
- Zostavte vývojový diagram k algoritmu, podľa ktorého program rozhodne, či zadané prirodzené číslo je alebo nie je tzv. Dokonalým číslom. Vyplňte tabuľku obsahu premenných pre zadané číslo 12. Pozn. Dokonalé číslo je také číslo, ktoré je rovné súčtu všetkých svojich deliteľov okrem seba samého. Napríklad 28 je dokonalé číslo, pretože 28 = 1 + 2 + 4 + 7 + 14.
- Zostavte vývojový diagram k algoritmu, podľa ktorého program rozhodne, či zadané prirodzené čísla sú alebo nie sú tzv. Priateľské čísla. Vyplňte tabuľku obsahu premenných pre zadané čísla 12 a 16. Pozn. Spriatelenými číslami sa nazývajú dve rôzne prirodzené čísla a, b takých vlastností, že sa súčet všetkých vlastných deliteľov čísla a rovná číslu ba naopak. Príkladom spriatelených čísel je dvojica čísel 220 a 284.
- Zostavte vývojový diagram k algoritmu, podľa ktorého program prevedie zadané číslo z desiatkovej sústavy do dvojkovej. Vyplňte tabuľku obsahu premenných pre zadané číslo 9.
- Je daný počet dní v mesiaci (tj. Číslo z rozmedzia 28 až 31) a informácie, na ktorý deň v týždni pripadá prvý deň v mesiaci (v tvare poradového čísla: pondelok = 1, utorok = 2, ..., nedeľa = 7). Zostavte vývojový diagram k algoritmu, ktorý zistí a vypíše koľko je v danom mesiaci piatkov. Vyplňte tabuľku obsahu premenných pre vstup: 30, 6.
- Je daný počet dní v mesiaci (tj. Číslo z rozmedzia 28 až 31) a informácie, na ktorý deň v týždni pripadá prvý deň v mesiaci (v tvare poradového čísla: pondelok = 1, utorok = 2, ..., nedeľa = 7). Zostavte vývojový diagram k algoritmu, ktorý zistí a vypíše koľko je v danom mesiaci pracovných dní. Vyplňte tabuľku obsahu premenných pre vstup: 29, 3.
- Zostavte vývojový diagram k algoritmu, podľa ktorého program prevedie zadané číslo z dvojkovej sústavy do desiatkovej. Vyplňte tabuľku obsahu premenných pre zadané číslo 11010.
- Zostavte vývojový diagram k algoritmu, ktorý spočíta a vypíše ciferný súčet daného prirodzeného čísla. Vyplňte tabuľku obsahu premenných pre zadané číslo 3059.
- Hodnotu Ludolfovho čísla pí možno aproximovať nekonečnou radom pí = 4. (1 - 1/3 + 1/5 - 1/7 + 1/9 - ...) Zostavte vývojový diagram k algoritmu, ktorý vypočíta pomocou tejto rady hodnotu pí s ľubovoľnou presnosťou (zadá užívateľ). Vyplňte tabuľku obsahu premenných pre zadanú presnosť 0,1.
V ďalšom diele spojíme ľahké algoritmy s funkciami. Budeme teda vymýšľať ľahké programy a ich hlavné časti vkladať do funkcií (metód)
V nasledujúcom kvíze, Online test znalostí algoritmizácia, si vyskúšame nadobudnuté skúsenosti z kurzu.