<< home >>
Jazyk Pascal (nielen) na základnej škole
<<- ->>


  • Riešené zadania

RIEŠENÉ ZADANIA

Ku grafickým zadaniam pod Windows treba stiahnuť egavga.bgi a vopchať ho potom do roztarovaného adresára. V paklíčkoch pre download sú zdrojáky (pre Linux aj Windows), datové súbory a skompilované exe súbory (Win98) a ELFovia (RH7.3) dľa jednotlivých zadaní.

  1. Program pre výpočet obsahu pozemku v tvare obdĺžnika zo stranami a, b.

  2. Program na výpočet počtu zápasov v jednokolovom turnaji, v ktorom sa zúčastní n družstiev a hrá sa systémom každý s každým.

  3. Program pre výpočet povrchu a objemu kvádra.

  4. Program na výpočet pytagorovskej trojice čísel pre dané prirodzené čísla u, v (u>v).

  5. Program, ktorý vypočíta a vypíše, akú dráhu prejde auto za daný čas t, keď ide rýchlosťou v. Program tiež vypočíta a vypíše spotrebu pohonných hmôt na prejdenie tejto vzdialenosti.

  6. Program na výpočet výsledného odporu dvoch rezistorov zapojených sériovo a paralelne.

  7. Rýchlik ide po priamej trati rýchlosťou v. Program vypočíta, v akej vzdialenosti od stanice musí začať brzdiť a ako dlho bude trvať zastavenie vlaku, keď s ohľadom na cestujúcich musí byť veľkosť opačného zrýchlenia 0,1 [m/s2]. Predpokladáme, že rušňovodič má tachometer ciachovaný v jednotke [km/h] a v tejto jednotke aj zadá fyzikálnu veličinu rýchlosť. Nakoľko zrýchlenie je udané v jednotke m/s2, je vhodné upraviť zadanú rýchlosť na základnú jednotku [m/s]. Výstupné veličiny budú potom tiež v základných jednotkách SI.

  8. Program, ktorý pre dané prirodzené čísla a, b (a>b) zistí, či b je deliteľom a. Ak áno, t.j. a je deliteľné číslom b, vypíše aj druhého deliteľa.

  9. Program načíta zo vstupu 3 celé čísla, do premennej min priradí najmenšiu z načítaných hodnôt a vypíše ju.

  10. Program po zadaní 3 čísel zistí, či môžu byť stranami trojuholníka a ak môžu, tak zistí, či sú stranami rovnoramenného trojuholníka, pravouhlého trojuholníka a výsledok vypíše.

  11. Program, pomocou ktorého zistíte priemernú výšku žiakov v triede.

  12. Program na výpočet n-tej mocniny čísla x pomocou súčinu, kde reálne číslo x a prirodzené číslo n zadávame z klávesnice.

  13. Program na výpočet súčinu prvých n prirodzených čísel (faktoriál), kde n zadávame z klávesnice.

  14. Program na výpočet súčinu prvých n párnych čísel.

  15. Program na výpočet súčinu prirodzených čísel A, B pomocou sčitovania.

  16. Program na výpočet priemeru známok jedného žiaka.

  17. Program pre kontrolu preťaženia výťahu. Do výťahu nakladáme balíky rôznej hmotnosti. Ak celková hmotnosť prekročí nosnosť 400 kg, vypíše sa upozornenie: Preťaženie výťahu, vyberte posledný balík.

  18. Program, ktorým rozdelíte štvorciferné číslo na jeho cifry, ktoré postupne uloží do premenných A, B, C, D.

  19. Program, ktorý zistí, či zadané číslo N>1 je prvočíslo.

  20. Program, ktorý prepočíta čas zadaný v sekundách na hodiny, minúty a sekundy.

  21. Program, ktorý bude načítavať zadané nenulové čísla a bude ich sčítavať. Ak sa zadá 0, alebo súčet presiahne 1000, vypíše sa súčet dovtedy zadaných čísel a program skončí.

  22. Program zistí, z ktorej skupiny je vo vete najviac znakov. Veta je v súbore. Skupina A nech sú znaky ('qwertyuiop'), skupina B ('asdfghjkl'), skupina C ('zxcvbnm'), skupina D ('1234567890').

  23. Program, ktorý napíše zrkadlový obraz zápisu zadaného prirodzeného čísla.

  24. Program pre určenie najvyššej dennej teploty v danom mesiaci, zistenie dátumu s najvyššou teplotou a zistenie dňa, kedy sa denná teplota najmenej odlišovala od priemernej teploty. Údaje sa načítajú zo súboru.

  25. Program, ktorý prenesie 10-zložkové pole A do 10-zložkového poľa B v rovnakom a potom v opačnom poradí. Polia sú uložené v súboroch.

  26. Program, ktorý prenesie 10-zložkové pole A do 20-zložkového poľa B, tak, aby sa pole A nachádzalo v poli B 2x, pričom zložky poľa A budú v poli B 2x za sebou v rovnakom poradí (celé pole A sa opakuje 2x) a potom aby každá zložka poľa A sa v poli B nachádzalo 2x tesne za sebou.

  27. Na vstupe je postupnosť celých kladných čísel zakončená 0. Počet čísel nie je väčší ako 250. Program na prečítanie tejto postupnosti a zobrazenie prvkov v zmenenom poradí, v akom bola na vstupe: posledné číslo ako prvé, prvé ako posledné, ostatné ponechať v nezmenenom poradí.

  28. Program, ktorý zistí, z koľkých rôznych písmen sa skladá meno.

  29. Uložte do poľa Trieda zoznam žiakov triedy a zistite, či sa v zozname vyskytuje určité meno, ktoré bolo prečítané zo vstupu.

  30. Program na modelovanie hodu kockou. Kockou treba hádzať dovtedy, kým nepadne číslo 6. Program vypíše, na koľký pokus bolo číslo 6 hodené.

  31. Program na vykreslenie 3 sústredných kružníc s polomermi r, 2r, 3r, vstupným parametrom je r.

  32. Program, ktorý načíta reálne číslo x a vypíše sin. a cos. čísla x, druhú mocninu x, odmocninu x, absolútnu hodnotu, zaokrúhlené x a pre celú časť čísla x zistí, či je párna. (SIN, COS, SQR, SQRT, ABS, ROUND, TRUNC+ODD )

  33. Úloha 32 doplnená funkciou pre prepočet stupňov na radiány (rad=x*3.14159/180).

  34. Program, ktorý vytvorí 20 príkladov na sčítanie celých čísel do 100, reálnych čísel do 10.

  35. Program pre výpočet najväčšieho spoločného deliteľa viacerých čísel (max. 20). Úlohu riešte pomocou funkcie, v ktorej do premennej medzivýsledok ukladá NSD 2 čísel.

  36. Program s funkciami MIN(x, y), MAX(x, y), ktorých výsledkom bude menšie (väčšie) z dvoch reálnych čísel x a y.

  37. Program, ktorý načíta N celých čísel (N<=100) a vypíše ich vzostupne utriedené.

  38. Program, ktorý pre premennú P : array [1..30] of real vypočíta súčet zložiek poľa, nájde index zložky s najväčšou hodnotou a určí počet zložiek väčších ako globálna premenná R.

  39. Program pre výpočet Fibonacciho čísla Fn (F1=F2=1, Fn=Fn-1+Fn-2, pre n=3,4,5...)

  40. Program, ktorý vykreslí úsečku s krajnými bodmi [50,10] a [130,10] a nad ňu dokreslí čiary tak, aby obrázok vytvoril štvorec, pravouhlý trojuholník s pravým uhlom v bode [50,10] a výškou 75 (zobrazených bodov), rovnoramenný trojuholník s výškou 45 (zobrazených bodov) pričom je to výška na vykreslenú stranu trojuholníka.

  41. Program na vykreslenie grafu funkcie y = a*(sin (bx)+c), kde a, b budú parametre podprogramu.

  42. Program na vytvorenie grafu funkcie y=x2 pre x z intervalu (-10,10).

  43. Chceme cestovať z mesta X do obce Z cez mesto Y. Medzi mestami X a Y premáva vlak 11x denne, mesto Y a obec Z sú spojené autobusovou linkou, ktorá premáva 14x denne. Vytvorte program, pomocou ktorého vyhľadáme najvhodnejší spoj pre požadovaný čas odchodu.

  44. Úlohu 43 je modifikácia pre voľbu vyhľadania predchádzajúceho a nasledujúceho spoja.

  45. Program, ktorý na obrazovku vykreslí na obrazovku olympijské kruhy.

  46. Program, na vyhodnotenie pretekov: prezentácia pretekárov, zobraziť štartovaciu listinu (utriedenie podľa abecedy), vložiť pre pretekára dosiahnutý počet bodov, zobraziť výsledky pretekov (utriedenie podľa získaných bodov) a voliť ľubovolnú z uvedených funkcií systému dovtedy, kým nedáme príkaz na skončenie programu.

  47. Program na výpočet pytagorovských trojíc, ktorý bude mať ako výstup pravouhlý trojuholník so štvorcami na všetkých troch stranách.

  48. Program na automat na kávu, kde po výbere nápoja automat vypíše cenu a po stlačení príslušnej hodnoty v prípade potreby vysvieti výdavok.


Nasledujúce zadania už neobsahujú ELFov ale to nevadí. Až uznám za vhodné, budú fungovať downloady zip paklíkov.
  1. Zistite koľko samohlások je v textovom súbore. (Rada: Vytvorte si vlastnú funkciu, ktorá zisti, koľko je samohlások v riadku.)  Počet samohlások vypíš na obrazovku.

  2. Vytvorte maticu A, naplňte ju náhodnými číslami. Vytvorte transparentnú maticu k matici A .(Vymeňte riadky a stĺpce matice.)

  3. Je dané prirodzené číslo n, reálne číslo x. Je potrebné vypočítať: sin(x)+sin2(x)+...+sinn(x) a sin(x)+sin(x2)+...+sin(xn) Vstup: n- prirodzené číslo, x- reálne číslo, Výstup: vypočítaná hodnota podľa uvedeného vzťahu.

  4. Vytvorte jednoduchý telefónny zoznam. Maximálny počet záznamov v telef. zozname - 20 Jeden záznam telef. zoznamu nech obsahuje nasledujúce položky: meno, priezvisko, telef. číslo a záznam ADRESA. Záznam ADRESA nech obsahuje položky: ulica, smerové číslo a mesto. Telefónny zoznam nech umožňuje nasledovne operácie: odobrať záznam, pridať záznam (umožniť vyplniť všetky položky záznamu),vypísať zvolený záznam (vypíše všetky položky záznamu) Každá z operácií v telef. zozname nech je spravená ako funkcia, alebo procedúra.

  5. Pomocou jednosmerného lineárneho zoznamu vytvorte program, ktorý do zoznamu načítava čísla zadávané z klávesnice, na výstupe vypíše počet týchto čísel.

  6. Zo zoznamu vypustí párne čísla a nový zoznam vypíše.

  7. Vytvorte program, ktorý v textovom súbore nájde slovo s najväčšou dĺžkou a vypíše ho na obrazovku.

  8. Je dané prirodzené číslo n, n>=2 a celé čísla a1...an. Vytvorte postupnosť a1,a2...an, an,an-1 ...a1. Úlohu riešte pomocou obojsmerného lineárneho zoznamu.

  9. Z daného textu vypíšte tie symboly (písmená), ktoré sa v ňom vyskytujú práve raz (V tom poradí, ako sa v texte vyskytujú) Vstup: veta; Výstup: symboly v požadovanom poradí.

  10. Je daný súbor f, ktorý obsahuje celé čísla (minimálne 20, čísla sa opakujú). Zo súboru f urobte súbor g, ktorý neobsahuje opakované výskyty prvkov. V súbore g sa každý prvok vyskytuje práve raz.

  11. Je dané prirodzené číslo n>=2 a celé čísla a1 ...an. Určte, či medzi číslami a1 ...an existujú dve rovnaké čísla a vypíšte vhodnú správu. Úlohu riešte pomocou lineárneho zoznamu.

  12. Je dané prirodzené číslo n>=2 a reálne čísla a1 ...an. Vytvorte postupnosť a1 ...an  pre usporiadaním prvkov tak, aby na začiatku boli záporné čísla a za nimi nezáporné. Úlohu riešte pomocou lineárneho zoznamu.

  13. Vytvorte zásobník pomocou poľa

  14. Vytvorte zásobník pomocou lineárneho zoznamu

  15. Vytvorte lineárny zoznam, a zistite, či sa v ňom nachádza daný prvok.(zadávame z klávesnice)

  16. Vytvorte frontu pomocou lineárneho zoznamu

  17. Utrieďte čísla 403, 067, 416, 015, 750, 150, 690, 307, 457, 632 bublinkovým triedením

  18. Utrieďte čísla 403, 067, 416, 015, 750, 150, 690, 307, 457, 632 výmenou

  19. Utrieďte čísla 403, 067, 416, 015, 750, 150, 690, 307, 457, 632 výberom

  20. Vo vstupnom súbore je na prvom riadku krátky ( max. 5 znakov) reťazec. Za ním nasledujú ďalšie riadky, každý s jedným reťazcom. Nájdite, v ktorom riadku sa vyskytuje reťazec z prvého riadku.

  21. Usporiadajte pole metódou Quicksort

  22. Usporiadajte pole metódou Shakesort

  23. V textovom súbore je zoznam slov (10-20). Slova zo súboru načítajte do lineárneho zoznamu a usporiadajte podľa abecedy.

  24. Metódy triedenia spojte do jedného programu a doprogramujte k nemu vhodne menu.(po usporiadaní poľa sa program vráti k hlavnému menu.)

  25. Napíšte program, ktorý vo vybranom textovom súbore vyhľadá a vytlačí všetky slova volenej dĺžky. Konkrétny súbor i dĺžku slov si volí používateľ z klávesnice.

  26. Vytvorte binárny strom pomocou dynamických premenných a vypíšte ho na obrazovku (6-10 uzlov)

  27. Je daný textový súbor, ktorý obsahuje program v jazyku pascal. Vytvorte program, ktorý preverí, či počty okrúhlych zátvoriek ľavých a pravých je rovnaký

  28. Vstupný súbor bude obsahovať na každom riadku 1 slovo. Vytvorte usporiadaný zoznam týchto slov a vypíšte ho. Opakovane výskyty toho istého slova neriešte vytváraním nového prvku, ale počítadlom výskytov.

  29. Pomocou bodov nakreslite obdĺžnik, ak poznáte jeho ľavý horný roh a dĺžku jeho strán.

  30. Nakreslite kružnicu s polomerom R=150 [bodov] farbou 15 (biela) do stredu obrazovky (stred obrazovky: 320,240). Do kružnice náhodne nakreslite 500 bodov tej istej farby (15 - biela). Náhodne nájdite jeden bod vo vnútri kružnice, ktorý má farbu číslo 0 (čierna). Vyplňte kružnicu farbou číslo 2 (zelená). Kružnicu vyplňte tak, aby farba 2 neprekryla body bielej farby

  31. Nakreslite priebeh funkcie sin(x). x je z intervalu < 0 , 639 > .

  32. Vytvorte program, ktorý bude vykresľovať rozličné geometrické tvary (kruh, čiara, trojuholník, štvorec...). Tvar si zvoli používateľ z klávesnice, po vybraný tvaru zadá parametre (napr. pri kruhu stred a polomer)

  33. Nakreslite na obrazovke terč (vykreslene 3 sústredné kružnice, plocha medzi nimi je vyfarbená inou farbou).

  34. Na vstupe sú informácie o zamestnancoch podniku. O každom zo zamestnancov je k dispozícii jeho priezvisko (reťazec znakov), mesačný príjem (cele kladne číslo), rok narodenia (cele číslo z intervalu 1900..2000), údaj o pohlaví (napr. 0 reprezentuje ženu, 1 muža). Zistite priemerný mesačný príjem v podniku, priemerný plat v podniku, meno vrátnika a vytlačte zoznam zamestnancov.

  35. Vykreslite funkciu y= a*x + b, a, b sa zadáva z klávesnice.

  36. Chceme cestovať z mesta X do obce Z cez mesto Y. Medzi mestami X a Y premáva vlak 11x denne, mesto Y a obec Z sú spojené autobusovou linkou, ktorá premáva 14x denne. Vytvorte program, pomocou ktorého vyhľadáme najvhodnejší spoj pre požadovaný čas odchodu.

  37. 8 dám na šachovnici 8x8 rozostaviť dámy tak, aby sa navzájom neohrozovali (rovno aj uhlopriečne)

  38. Vytvorte jednoduchý telefónny zoznam. Maximálny počet záznamov v telef. zozname - 20 Jeden záznam telef. zoznamu nech obsahuje nasledujúce položky: meno, priezvisko, telef. číslo a záznam ADRESA. Záznam ADRESA nech obsahuje položky: ulica, smerové číslo a mesto. Telefónny zoznam nech umožňuje nasledovne operácie: odobrať záznam, pridať záznam, vypísať zvolený záznam. Každá z operácií v telef. zozname nech je spravená ako funkcia, alebo procedúra. Tieto operácie spravte samostatne do nového UNITu (jednotky).

  39. Napíšte program, ktorý vo vybranom textovom súbore nájde všetky slova začínajúce písmenom (rozlišujeme medzi malým a veľkým písmenom) zadávaným používateľom z klávesnice.

  40. Nakreslite do stredu obrazovky štvorec, nad spodnú čiaru nakreslite trojuholník a kružnicu

  41. V textovom súbore zistite výskyt (počet) samohlások a e i o u.

  42. Dané sú prirodzené čísla m, n, m<n. N je počet deti, každé ma priradené poradové číslo 1 až n. Od prvého sa začne odpočítavať a m-té dieťa vypadne z kruhu. Potom sa začne odpočítavať od nasledujúceho a znova m-té vypadne, až kým neostane jeden. Vypíšte poradie detí v poradí, v akom vypadávali z kruhu. Pri riešení použite kruhovú dynamickú štruktúru dát.

  43. Urobte program ktorým sa bude dať registrovať knihy v knižnici. Vstupne dáta sú: názov knihy, registračné číslo, poškodenie, dátum vypožičania a meno. Úlohu riešte cez Unity.

  44. Naprogramujte jednoduchú hviezdnu oblohu. Nech pozostáva z 50-tich hviezdičiek a nech je trojúrovňová. Vytvorte záznam, ktorý bude obsahovať 3 položky: X pozícia, Y pozícia a posun. Jeden tento záznam bude určovať pozíciu hviezdičky na obrazovke a o koľko bodov sa posunie hviezdička za jednotku času. Pozíciu X a Y vygenerujte náhodné tak, aby umiestnenie hviezdičky nebolo mimo obrazovky. Posun vygenerujte tiež náhodné a nech ma hodnoty od 1 do 3 - vrátané. Vytvorte funkciu, ktorá posunie každú hviezdicu na X-ovej osi o posun doprava. Ak X-ova súradnica hviezdičky je mimo rozmer obrazovky, vráťte ju na začiatok obrazovky. Prekresľovanie hviezdičiek zrealizujte nasledovne: zmažte hviezdičku na pozícii, na ktorej sa momentálne nachádza farbou pozadia - 0. Posuňte jej pozíciu o jej posun. Vykreslite hviezdičku na novej pozícii inou farbou ako je farba pozadia - napr. 1. Samotný pohyb hviezdičiek naprogramujte ako procedúru: V cykle robte predošlý bod - procedúru. Po každom vykonaní procedúry nech program čaká nejaký časový interval - 100 ms.


A nasledujú zadania s dynamanickými premennými, frontami, zásobníkmi, binárnymi stromami, smerníkmi, Unitami a tak podobne.

  1. Vytvorte program, ktory zo vstupu nacita vstupny retazec a pretransformuje do Morseovej abecedy. Pri vystupe doplnte vystupny retazec zvukovym signalom simulujucim vysielanie Morseovho kodu. Na oddelenie slov pouzite "||" na oddelenie znakov pouzite "|". Program rozdelte na niekolko modulov (unitov).

  2. Vytvorte program na scitanie troch velmi dlhych celych cisel reprezentovanych  pomocou troch linearny spojitych zoznamov. Vysledok zapiste tiez do linearneho spojoveho zoznamu a tiez na obrazovku. Program logicky rozdelte do minimalne troch modulov.

  3. Vytvorte program na odcitanie dvoch velmi dlhych celych cisel reprezentovanych  pomocou  linearny spojitych zoznamov. Vysledok zapiste tiez do linearneho spojoveho zoznamu a na obrazovku. Program logicky rozdelte do minimalne troch modulov.

  4. Vytvorte program na nasobenie velmi dlheho celeho cisla reprezentovaneho  pomocou linearneho spojoveho zoznamu a celeho cisla N pricom N>0 AND N<20. Vysledok zapiste tiez do linearneho spojoveho zoznamu a na obrazovku. Program logicky rozdelte do minimalne troch modulov.

  5. Vytvorte program na scitovanie, odcitovanie, nasobenie a delenie dvoch komplexnych cisel.  Vyber  operacii riadte cez menu. Program rozdelte na niekolko modulov.

  6. Znakove retazce su reprezentovane jednosmernymi spojovymi zoznamami znakov. Napiste funkciu, ktorej funkcnou hodnotou je pocet vyskytov retazca A v retazci B. A a B  su parametrami funkcie. Program rozdelte na niekolko modulov.

  7. Velke prirodzene cislo je v programe reprezentovane linearnym spojovym zoznamom cifier. Napiste proceduru alebo funkciu na porovnavanie takto reprezentovanych cisel. Vysledkom bude informacia, ci je prve cislo vacsie, mensie, alebo sa rovnaju. Program rozdelte na niekolko modulov.

  8. Mnoziny su reprezentovane jednosmernymi linearnymi spojovymi zoznamami. Svojich prvkov. Napiste proceduru, ktora v takejto reperzentacii vykona operaciu prieniku a zjednotenia mnozin. Vysledok operacie prienik a zjednotenie zapiste do linearneho zoznamu a na obrazovku. Program rozdelte na niekolko modulov.

  9. Tri  linearne spojove zoznamy obsahuju vo svojich prvkoch cele cisla usporadane vzostupne podla velkosti. Napiste proceduru, ktora presunie vsetky prvky do jedneho usporiadaneho zoznamu. Program rozdelte na niekolko modulov.

  10. Napiste funkciu typu boolean, ktora zistuje, ci su dane dva linearne spojove zoznamy celych cisel tvorene rovnakymi prvkami. Program rozdelte na niekolko modulov.

  11. Najdite a vytlacte vsetky latinske stvorce radu  4. Latinsky stvorec radu 4 je matica velkosti 4x4, ktora obsahuje iba cisla 1,2,3,4 a to tak, ze v kazdom jej riadku a stlpci su vsetky prvky rozne. Program rozlozte na niekolko modulov.

  12. Vytvorte program, v ktorom nacitate udaje o ziakoch vo vasej triede (cislo,meno, priezvisko, vek, vyska a vaha), zapisete ich linearneho spojoveho zoznamu a do suboru . Potom zoznam usporadate podla vysky ziaka a zapisete do 2.suboru a na obrazovku. Program rozdelte na niekolko modulov.

  13. Je dany retazec znakov obsahujuci male znaky abecedy . Vytvorte linearny spojovy zoznam, v ktorom budu dane znaky usporiadane , a pri kazdom znaku bude pocet vyskytov daneho znaku, pricom vysledny zoznam nebude obsahovat duplikatne znaky. Program rozdelte na niekolko modulov.



<<- ->>