Kód ITMS projektu: 26110130519 Gymnázium Pavla Jozefa Šafárika – moderná škola tretieho tisícročia
LAZARUS ZBIERKA ÚLOH Vzdelávacia oblasť:
Matematika a práca s informáciami
Predmet:
INFORMATIKA
Ročník, triedy:
druhý
Vypracoval:
Ing. Janka Halková
Dátum:
máj 2013
„Moderné vzdelávanie pre vedomostnú spoločnosť/Projekt je spolufinancovaný zo zdrojov EÚ“
(Téma)
Obsah ÚVOD ....................................................................................................................................................... 2 1.
Premenné, príkaz vstupu a výstupu, priraďovací príkaz, aritmetické výrazy .................................. 3
2.
Podmienený príkaz, úplný, neúplný podmienený príkaz, príkaz viacnásobného vetvenia ............. 6
3.
Cyklus s pevným počtom opakovaní ............................................................................................. 10
4.
Cyklus s podmienkou na začiatku .................................................................................................. 14
5.
Cyklus s podmienkou na konci ...................................................................................................... 17
6.
Jednorozmerné pole.................................................................................................................. 2019
7.
Textové súbory .......................................................................................................................... 2625
Použité zdroje: ................................................................................................................................... 3332
„Moderné vzdelávanie pre vedomostnú spoločnosť/Projekt je spolufinancovaný zo zdrojov EÚ“
Strana 1 z 35
(Téma)
ÚVOD Predpokladom kvalitného vyučovania programovania je aj existencia dostatočného množstva úloh. Úlohy by mali byť zaraďované
s postupne gradovanou náročnosťou
(s použitím jedného, či viacerých kontextov) s ohľadom na jednotlivé štádiá poznávacieho procesu. Obsahom tejto zbierky úloh z programovania sú úlohy v programovacom prostredí LAZARUS. Obsahová náplň úloh zodpovedá obsahovému štandardu v štátnom vzdelávacom programe ISCED 3A. Štruktúra zbierky úloh z programovania Pri návrhu zbierky úloh k jednotlivým témam celku Algoritmy a programovanie, sme sa rozhodli systemizovať úlohy podľa prvkov učiva a didaktickej funkcie. V zbierke rozlišujeme nasledovné typy úloh: Motivačná úloha - touto úlohou naštartujeme žiaka, mali by sme ho zaujať. Stimulačná časť zadania úlohy by mohla byť zameraná na záujmy žiakov, ich koníčky. Nemusí na rozdiel od aplikačnej úlohy súvisieť s praxou, len aby to bolo pre žiakov zaujímavé. Ťažisko je na tom, aby sme úlohu dobre "obliekli do príťažlivého šatu" a tým pritiahli žiaka k štúdiu danej problematiky. Expozičná úloha - táto úloha by mala byť jednoduchá úloha na prvotné osvojenie učiva. Fixačná (systemizačná úloha) - sem patria aj úlohy na prehĺbenie učiva. Sú to už náročnejšie úlohy, pomocou ktorých zopakujeme učivo z celej podtémy. V operačnej časti zadania úlohy by mali vystupovať viaceré slovesa zastupujúce viaceré činnosti, ktoré očakávame že žiak vykoná. Aplikačná úloha - úloha s praktickým zameraním, aplikáciou do praxe. Podobne ako pri motivačnej úlohe je ťažisko v stimulačnej časti zadania. Diagnostická úloha - táto úloha môže byť tiež náročnejšou úlohou, pri nej je dôležité, že okrem vzorového autorského riešenia by sa mala uviesť javová analýza - rozdelenie bodov na jednotlivé javy. Pri úlohách, v ktorých je to relevantné, uvádzame medzipredmetové vzťahy t.j. ktoré vedomosti z jednotlivých vyučovacích predmetov sa vzájomne riešením úloh ovplyvňujú. Pri uvádzaní medzipredmetových vzťahov používame platné skratky vyučovacích predmetov. (MAT, FYZ ap.) „Moderné vzdelávanie pre vedomostnú spoločnosť/Projekt je spolufinancovaný zo zdrojov EÚ“
Strana 2 z 35
(Téma)
1. Premenné, príkaz vstupu a výstupu, priraďovací príkaz, aritmetické výrazy Kapitola obsahuje úlohy pomocou ktorých by žiaci mali zvládnuť: vkladanie komponentov obrázok (TImage) , tlačidlo (TButton), editovacie pole (TEdit) pochopiť pojem premenná a rôzne typy premenných – v tejto etape vyučovania typy: integer, real, boolean, string vstup hodnôt do premenných prostredníctvom komponentu Edit výpis hodnôt premenných resp. výrazov pomocou príkazu Image1.Canvas.TextOut a formátovanie výstupu vrátane funkcií FloatToStr a IntToStr zápis aritmetických výrazov s použitím aritmetických operátorov,
matematických
funkcií (sqrt, abs, round, trunc) a tiež použitie funkcie Random. 1.1. Motivačné úlohy 1.
Napíšte program pre PC, ktorý načíta vaše meno, rok vášho narodenia a predstaví vás. Napíšte skupinu príkazov, ktoré zabezpečia, že ak do editovacieho políčka zadáte svoje meno a vek, tak sa po stlačení tlačidla do grafickej plochy vypíše váš vek a meno. Dobrý deň. Volám sa xxx Narodil som sa v roku
xxxx.
Upravte program tak, že nahradíte posledný riadok textom: Mám xx rokov.
1.2. Expozičné úlohy 1. Napíšte program, ktorý načíta od používateľa dve čísla (zapísaním do editovacích políčok) a po stlačení tlačidla VÝPOČET vypíše na obrazovku ich súčet, rozdiel, súčin a podiel, celočíselný podiel a zvyšok po celočíselnom delení. Ako sa prejaví, že zadané čísla budú typu integer alebo real ? V ďalších úlohách si žiaci precvičia zápis aritmetických výrazov s využitím operátorov +,-, /, *, DIV, MOD, funkcie SQRT, SQR, ROUND, TRUNC, INT. 2. Napíšte program, v ktorom zadáte dvojciferné číslo x. Program vypíše toto číslo do grafickej plochy tak, že desiatky vypíše modrou a jednotky červenou farbou. (MAT)
„Moderné vzdelávanie pre vedomostnú spoločnosť/Projekt je spolufinancovaný zo zdrojov EÚ“
Strana 3 z 35
(Téma)
3. Napíšte program, ktorý vypočíta a vypíše cenu dobierky, v programe je cena poštovného zapísaná ako konštanta, cenu za kus a počet kusov zadá používateľ. 4. Vypočítajte priemernú dennú teplotu z troch údajov o 6, 12, 18. hodine. (FYZ) 5. Vypočítajte veľkosť prepony pravouhlého trojuholníka, ak zadáte veľkosti oboch odvesien. (MAT) 6. Zostavte program, ktorý vypočíta vzdialenosť dvoch bodov v rovine. (MAT) 7. Zostavte program, ktorý prevedie zadanú rýchlosť v m/s na km/h. (FYZ) 8. Časový údaj v dňoch a hodinách preveďte na hodiny. (FYZ) 9. Časový údaj v sekundách preveďte na hodiny, minúty a sekundy. (FYZ) 10. Na základe zadanej výšky vkladu v Sk a ročnej úrokovej miery v percentách spočítajte, aký bude zostatok na účte, na konci roka, ak ďalšie vklady neboli? (MAT) 11. Je daný plánovaný počet výrobkov a počet výrobkov skutočne vyrobených, vypočítajte na koľko percent splnil podnik svoj plán. (MAT) 12. Vytvorte program, ktorý načíta reálne číslo a vypíše: zaokrúhlené číslo, desatinnú časť čísla a celú časť čísla. (MAT)
1.3. Fixačné úlohy 1. Žiaci vašej triedy sa chystajú na dvojdňový výlet, ktorý sa bude platiť z triedneho fondu. Napíšte program, ktorý vypočíta a vypíše celkové náklady na výlet. Počet žiakov, cenu nocľahu a stravy na jedného žiaka, ako aj celkovú cenu objednaného autobusu treba načítať z editovacích políčok. 2. Zostavte program, ktorý vypočíta: (MAT) a/obsah a obvod kruhu b/ objem a povrch valca
1.4. Aplikačné úlohy 1. Nádrž má štvorcové dno so stranou veľkosti A. Priteká do nej voda rýchlosťou N litrov za sekundu. Spočítajte, ako dlho musí pritekať voda, aby hladina stúpla o M metrov) (MAT)
„Moderné vzdelávanie pre vedomostnú spoločnosť/Projekt je spolufinancovaný zo zdrojov EÚ“
Strana 4 z 35
(Téma)
2. Vytvorte projekt, ktorý vypočíta dráhu a spotrebu auta ak zadáme priemernú rýchlosť auta v km/h, koľko minút auto išlo a priemernú spotrebu auta na 100 km v litroch. (FYZ) 3. Parašutista vyskočil z lietadla vo výške h metrov. Ako dlho trval jeho voľný pád? Akou rýchlosťou dopadol na zem ? (FYZ) 4. Vlak sa pohybuje rýchlosťou v0 km/h. Zostavte program, ktorý vypočíta v akej vzdialenosti od stanice má vlak začať brzdiť, ak s ohľadom na cestujúcich zvolí veľkosť opačného zrýchlenia 0,1 m/s2. Koľko sekúnd bude trvať brzdenie? (FYZ)
„Moderné vzdelávanie pre vedomostnú spoločnosť/Projekt je spolufinancovaný zo zdrojov EÚ“
Strana 5 z 35
(Téma)
2. Podmienený príkaz, úplný, neúplný podmienený príkaz, príkaz viacnásobného vetvenia
Kapitola obsahuje úlohy pomocou ktorých by žiaci mali : pochopiť pojem „ vetvenie programu“ naučiť sa správnu syntax príkazu IF zapísať podmienku s využitím relačných a logických operátorov vedieť aplikovať úplný a neúplný podmienený príkaz vrátane viacnásobného vetvenia 2.1. Motivačné úlohy 1. V živote často vyhodnocujeme rôzne situácie a rozhodujeme sa, akú činnosť ďalej vykonáme. Napríklad: ak je vonku teplo (teplota >22), vezmeme si tričko, inak si vezmeme sveter. Napíšte program, ktorý nám podľa zadanej teploty t poradí, ako sa obliecť. 2.2. Expozičné úlohy 1. Zostavte program , ktorý vypíše či zadané číslo je párne alebo nepárne. (MAT) 2. Zostavte program, ktorý vypíše či zadané číslo je deliteľné 3,4, číslom n ? (MAT) 3. Vypočítajte pre zadané čísla x a y hodnotu výrazu 1/xy. (MAT) 4. Určte či zadané čísla x a y spĺňajú nerovnosť 4x + 3 < 5y -1. (MAT) 5. Sú dané súradnice bodu v rovine. Zistite či bod leží na priamke 3x+2y-3 = 0. (MAT) 6. Zistite či dané číslo patrí do množiny M={X N; -98 < X <85). (MAT) 7. Zistite absolútnu hodnotu reálneho čísla pomocou príkazu vetvenia. (MAT) 8. Sú dané 2 kladné čísla predstavujúce dĺžky strán . Určite či sú to strany štvorca alebo obdĺžnika. V prípade obdĺžnika vypíšte najskôr dĺžku dlhšej strany. (MAT)
9. Pre zadané čísla určte hodnotu zlomku
(MAT)
10. Zostavte program, ktorý po zadaní ph prostredia vypíše či je prostredie kyslé, zásadité alebo neutrálne. (CHE)
„Moderné vzdelávanie pre vedomostnú spoločnosť/Projekt je spolufinancovaný zo zdrojov EÚ“
Strana 6 z 35
(Téma)
11. Vytvorte program, ktorý vypočíta hodnotu funkcie , ktorá je definovaná nasledovne ak x=1 f(x)=1 , ak x=2 f(x)=2, ak x=3 f(x)=2*x^3+5, inak f(x)=5*x
Úlohy 1-6
(MAT)
slúžia na precvičenie úplného podmieneného príkazu pričom v každej vetve
programu sa nachádza len jednoduchý príkaz. Úloha 7 – neúplný podmienený príkaz. Úlohy 8- 10 už obsahujú vnorené podmienené príkazy, úloha 11 príkaz na viacnásobné vetvenie. 2.3. Fixačné úlohy 1. Zostavte program, ktorý vypíše či 3 zadané čísla sú stranami trojuholníka a ak áno či sú stranami: a/ rovnostranného trojuholníka b/ rovnoramenného trojuholníka c/ pravouhlého trojuholníka
(MAT)
2. Zostavte program, ktorý vypíše koľko vrán sedelo na plote. Program si od Vás najskôr vyžiada počet vrán a gramaticky správne vypíše. Napr. Na plote sedela 1 vrana, 2 vrany , 5 vrán. (SJL) 3. Zostavte program, ktorý vypíše cenu cestovného lístka. Deti a mládež do 26 rokov majú 20% zľavu. Program si vyžiada cenu cestovného lístku, vek cestujúceho. V prípade, že cestujúci má zľavu, program ešte pred samotnou cenou lístka vypíše text: „Máte nárok na zľavu“. 4. Vytvorte program, ktorý vypíše riešenie lineárnej rovnice ax + b = 0. (nekonečne veľa riešení, žiadne riešenie, x= ..) (MAT) 5. Vytvorte program, ktorý vypíše riešenie kvadratickej rovnice ax2 + bx + c = 0. (MAT) 6. Zostavte program, ktorý nájde maximum ( minimum) 3 čísiel . 7. Zostavte program, ktorý vypíše, v ktorom kvadrante leží bod, ktorého súradnice zadáte . Zvlášť ošetrite, keď bod leží na osiach. (MAT) 8. Sú dané súradnice bodov A[a1,a2] , B[b1,b2] . Vytvorte program na zistenie, či na priamke p: ax+by+c=0 ležia obidva body, bod A, bod B alebo ani jeden.
(MAT)
9. Zostavte program, ktorý po zadaní súradníc bodu v rovine, rozhodne, či bod leží vo vnútri, zvonku alebo na obvode kruhu s polomerom R a so stredom v bode [0,0]. (MAT) „Moderné vzdelávanie pre vedomostnú spoločnosť/Projekt je spolufinancovaný zo zdrojov EÚ“
Strana 7 z 35
(Téma)
10. Zadané tri čísla zoraďte podľa veľkosti. 11. Zostavte program, ktorý vygeneruje 2 body: súradnice prvého v intervale <30, 80>, obe súradnice druhého v intervale <120, 170>; potom náhodne vygenerujte 10000 bodov, ktoré ak sú vo vnútri obdĺžnika určeného dvomi vygenerovanými vrcholmi, tak tieto body budú červené, inak budú modré. 12. Zostavte program, ktorý bude simulovať hádzanie troma kockami: najprv vygeneruje a vypíše 3 náhodné čísla z intervalu <1, 6>; ak sú všetky tri rovnaké, tak vypíše správu BINGO, ak sú rovnaké len nejaké dve čísla, tak vypíše správu SUPER, ak sú všetky tri čísla rôzne, vypíše správu ŠKODA. 13. Načítajte číslo mesiaca a podľa neho vypíšte, či ide o jarný, letný, jesenný alebo zimný mesiac. (GEG)
2.4. Aplikačné úlohy 1. Vedúca školskej jedálne nakupovala jogurty. Zostavte program, ktorý vypočíta celkovú cenu nákupu , ak počet jogurtov, ktoré nakúpila zadáme z klávesnice. Za prvých 20 jogurtov zaplatila plnú sumu, ďalších 100 nakúpila s 20-percentnou zľavou a zvyšok s 50percentnou zľavou. 2. Napíšte program, ktorý vypočíta BMI index a vypíše, či máte alebo nemáte nadváhu. BMI = telesný hmotnostný index, vyráta sa ako podiel hmotnosti v kilogramoch a výšky v metroch na druhú, BMI > 18,5 podváha, 18,5<=BMI<25 normálna hmotnosť, 25<=BMI<30 nadváha, BMI>30 obezita. 3.
Napíšte program, ktorý zo zadanej prejdenej vzdialenosti vypočíta platbu taxikárovi, keď má stanovené nasledujúce sadzby: 0 – 19 km 20 – 39 km 40 – 59 km 60 km a viac
0,8 € /km 0,7 € km 0,65 € /km 0,6 € /km
Zadaná vzdialenosť môže byť desatinné číslo, ale ošetrite zadanie zápornej vzdialenosti. 4. Napíšte program, ktorý po zadaní dňa mesiaca a roku vypíše dátum zo slovným vyjadrením mesiaca.
„Moderné vzdelávanie pre vedomostnú spoločnosť/Projekt je spolufinancovaný zo zdrojov EÚ“
Strana 8 z 35
(Téma)
Úlohami 1 a 2 chceme viesť žiakov k zdravému životnému štýlu. Pri odskúšaní programu v úlohe 4 môžeme nechať žiakov zadávať významné dátumy – štátne sviatky resp. pamätné dni a rozvíjať tak ich vlastenecké a národné cítenie.
Metodický komentár ku kapitole 2 : Najčastejšou chybou , ktorú robia žiaci je, že zabúdajú v prípade, že sa v niektorej vetve má vykonať viac príkazov používať príkazové zátvorky (zložený príkaz begin a end). Preto ich neustále upozorňujeme na túto skutočnosť. Žiaci tiež majú tendenciu zapisovať vetvenie pomocou neúplných podmienených príkazov a formulujú zbytočne veľa podmienok, čo nie je stále efektívne. Pozor na formulácie podmienky: premenná=true , pre premennú typu boolean. Niekedy je vhodné najskôr priradiť hodnotu výrazu logickej premennej, napr. príklad 8 kapitola 1.3.3, PA:=a*a1+b*b1+c=0 a v podmienkach uvádzať už len logickú premennú. Snažíme sa, keď sa dá, nahrádzať zložené podmienky vnoreným vetvením, príklad 7 kapitola 1.3.3. Nezabudnime upozorniť žiakov na to, že pri vnorených podmienených príkazoch môžu vznikať aj problémy a to napríklad vtedy, keď vnorený príkaz if je bez vetvy else. Je potrebné ukázať možnosti riešenia – preformulovanie podmienky resp. použiť príkazové zátvorky (zložený príkaz begin a end).
„Moderné vzdelávanie pre vedomostnú spoločnosť/Projekt je spolufinancovaný zo zdrojov EÚ“
Strana 9 z 35
(Téma)
3. Cyklus s pevným počtom opakovaní
Kapitola obsahuje úlohy pomocou ktorých by žiaci mali : uvedomiť si potrebu použitia príkazu cyklu s pevným opakovaní naučiť sa správnu syntax príkazu FOR pochopiť ako funguje riadiaca premenná cyklu ( pri oboch typoch cyklu TO, DOWNTO), vedieť že môže byť ordinálneho typu a že nie je možné v cykle meniť jej hodnotu vedieť meniť v cykle hodnoty ďalších premenných v závislosti od riadiacej premennej ale aj nezávisle od riadiacej premennej, ktorá funguje v tomto prípade len ako počítadlo vedieť používať príkaz v cyklu v jednoduchých úlohách vedieť používať vnorené cykly dokázať simulovať priebeh algoritmu pomocou trasovacej tabuľky
3.1. Motivačné úlohy 1. Napíšte program, ktorý načíta od používateľa meno jeho obľúbeného herca alebo herečky a postupne vypíše na náhodnú pozíciu 10 – krát text : PACI SA MI meno osoby. 2. Napíšte program, ktorý vypíše 50 kružníc s náhodnou veľkosťou polomeru na náhodnú pozíciu.
3.2. Expozičné úlohy 1. Vytvorte program, ktorý vykreslí do stredu plochy 10 sústredných kružníc, polomer kružníc sa bude meniť od 5 po 55. 2. Vytvorte program, ktorý nakreslí 10 štvorcov vedľa seba s postupne sa zväčšujúcou veľkosťou strany od 10, 15, ..55. 3. Napíšte program, ktorý na uhlopriečku grafickej plochy z pravého horného rohu do ľavého dolného rohu nakreslí 10 kruhov, ktoré budú rovnomerne rozostavené. 4. Napíšte program na zistenie súčtu prvých n prirodzených čísel, ktorých počet zadáte na vstupe.
„Moderné vzdelávanie pre vedomostnú spoločnosť/Projekt je spolufinancovaný zo zdrojov EÚ“
Strana 10 z 35
(Téma)
5. Vytvorte program, ktorý načíta dve celé čísla (a,b) a : a/ vypíše všetky celé čísla od a po b. (Pozor! a
b) b/ vypíše všetky párne (nepárne) čísla od a po b. (Pozor! ab) c/ vypíše súčet všetkých čísel od a po b. d/ vypíše súčet všetkých párnych čísel od a po b Rad čísel vypisujte po riadkoch. 6. Vytvorte program, ktorý vypíše písmenka malej a veľkej anglickej abecedy. Tým, že sa výpis uskutočňuje do Canvasu resp. Mema, môže byť pre žiakov problémom, ako vypísať rad hodnôt, čo nebolo potrebné riešiť v klasickom TURBO PASCALE. Úlohy s grafikou( č.2 a č.3) by mali naviesť žiakov, ako takýto výpis formátovať.
3.3. Fixačné úlohy 1. Zistite pre zadané číslo faktoriál (n! = n.(n-1).(n-2). ... .3.2.1). (MAT) 2. Zostavte program, ktorý vypočíta mocninu XN. (MAT) 3. Pre dané prirodzené číslo N určte hodnotu 2N. (MAT) 4. Zostavte program, ktorý vypočíta súčin dvoch čísel A a B pomocou sčítania. 5. Napíšte program , ktorý vypíše všetky priestupné roky v tomto storočí. 6. Napíšte program, ktorý vypíše tabuľku druhých a tretích mocnín čísel od 1 do 20. (MAT) 7. Napíšte program, ktorý vypíše 1,2 ..až n-tú mocninu čísla k. 8. Zostavte program, ktorý vypíše najväčšie (najmenšie) číslo z N čísel vygenerovaných počítačom. 9. Vypočítajte a vypíšte pod seba prvých 15 Fibonacciho čísel. Fibonacciho postupnosť začína číslami 0 a 1. Každé ďalšie vypočítate ako súčet predchádzajúcich dvoch v postupnosti. Prvých niekoľko členov postupnosti 0, 1, 1, 2, 3, 5, 8 ... (MAT) 10. Vytvorte program, ktorý vygeneruje súradnice N bodov. Súradnice sú náhodné celé čísla v intervale <10, 200>. Ak obidve súradnice budú párne čísla, vykreslí sa červený kruh so stredom v bode [X,Y] a polomerom 5px. Ak aspoň jedna súradnica bude párne číslo, vykreslí sa zelený kruh. Inak sa vykreslí modrý kruh. Počet bodov N načítajte
„Moderné vzdelávanie pre vedomostnú spoločnosť/Projekt je spolufinancovaný zo zdrojov EÚ“
Strana 11 z 35
(Téma)
z editovacieho políčka. Objekty do formulára umiestnite podľa potreby.
Nasledujúce príklady obsahujú vnorený cyklus. 11. Vytvorte program, ktorý vykreslí 3x vedľa seba „terč“ zo sústredných kružníc, podobne ako v príklade 1 kapitola 1.4.2. 12. Vytvorte program, ktorý načíta celé číslo a (0
1 1 2 3
2 2 4 6
3 3 6 9
(MAT)
14. Zostavte program , ktorý vygeneruje na obrazovku všetky trojciferné čísla, ktorých ciferný súčet sa rovná číslu zadanému cez editovacie políčko. (MAT) 15. Vytvorte program, ktorý bude počítať hodnotu kombinačného čísla. Na výpočet faktoriálu využite funkciu. Komponenty do formulára umiestnite podľa potreby. (MAT)
3.4. Aplikačné úlohy 1. Syn dostával od otca vlani pevné vreckové N € každý týždeň. Keďže syn mal dobré polročné vysvedčenie od februára mu otec zvyšuje vreckové každý týždeň o 20 centov. Napíšte program, ktorý vypočíta, koľko otec vyplatí synovi na vreckovom do konca školského roku. 2. Zostavte program, ktorý: a) vypočíta priemernú známku žiakov z informatiky, ak počet žiakov v triede zadáte z klávesnice a jednotlivé známky postupne vygeneruje počítač . b) vypíše vygenerované známky a najlepšiu a najhoršiu známku „Moderné vzdelávanie pre vedomostnú spoločnosť/Projekt je spolufinancovaný zo zdrojov EÚ“
Strana 12 z 35
(Téma)
3. Napíšte program, ktorý otestuje žiaka z násobenia a delenia prirodzených čísel (žiaci poznajú malú násobilku).
Žiak dostane postupne desať úloh striedavo na násobenie
a delenie. Program pri skúšaní vypisuje či je odpoveď správna alebo neprávna. Nakoniec vypíše percentuálnu úspešnosť skúšaného žiaka. 4. Napíšte program, ktorý vykreslí šachovnicu 8x8 štvorcov veľkosti 30x30. Na šachovnici sa budú striedať dve farby napr. čierna a žltá.
Týmito aplikačnými úlohami sa snažíme vychovávať žiakov k zmyslu pre spravodlivosť (rôzne spôsoby odmeňovania ľudí) a viesť ich k pozitívnemu vzťahu k škole a práci.
Metodický komentár ku kapitole 3.1 : Vo väčšine úloh, ktorých obsahom je nejaký výpočet (súčet, súčin) resp. vyhľadanie maxima, minima, je vhodné hlavne v začiatkoch na lepšie pochopenie použiť trasovacie tabuľky. Trasovanie pomocou nástrojov v prostredí Lazarus je v tejto etape vyučovania pre väčšinu žiakov ešte príliš náročné. Prínosom je tiež v tejto etape pri trasovaní využívať aj interaktívnu tabuľu. Pri riešení úloh je dôležité overiť si, či žiaci dokážu zistiť počet opakovaní cyklu, hlavne pri vnorených cyklov a odhadnúť tak zložitosť algoritmu.
„Moderné vzdelávanie pre vedomostnú spoločnosť/Projekt je spolufinancovaný zo zdrojov EÚ“
Strana 13 z 35
(Téma)
4. Cyklus s podmienkou na začiatku
Kapitola obsahuje úlohy pomocou ktorých by žiaci mali :
uvedomiť si potrebu použitia príkazu cyklu s podmienkou na začiatku
naučiť sa správnu syntax príkazu WHILE
zostavovať jednoduché podmienky, ktoré budú založené na porovnaní
porozumieť podmienke vykonávania cyklu
uvedomiť si, že príkazy v tele tohto cyklu sa nemusia zopakovať ani jedenkrát a v náväznosti na to sa vedieť rozhodnúť, kedy použiť tento typ cyklu
dokázať simulovať priebeh algoritmu pomocou trasovacej tabuľky
4.1. Motivačné úlohy 1. Ako grafik reklamnej agentúry ste boli poverený vytvorením jednoduchej reklamy na propagáciu MS 2013 v hokeji, ktorá bude do grafickej plochy písať postupne sa zväčšujúci text „MS 2013“. Napíšte program, ktorý postupne vypíše toľko nápisov, koľko sa zmestí do grafickej plochy:
4.2. Expozičné úlohy 1. Vytvorte program, ktorý nakreslí rad zväčšujúcich sa červených štvorcov vedľa seba. Počet štvorcov je obmedzený veľkosťou grafickej plochy. 2. Zostavte program, ktorý prevedie vzdialenosť v cm na m a cm. Operátory div a mod nepoužívajte. 3. Dané je celé kladné číslo c predstavujúce čas v sekundách. Vytvorte program na vyjadrenie času v hodinách, minútach a sekundách s použitím operácií sčítanie a odčítanie. 4. Vytvorte program, ktorý načíta prirodzené číslo x a vypíše jeho ciferný súčet.
„Moderné vzdelávanie pre vedomostnú spoločnosť/Projekt je spolufinancovaný zo zdrojov EÚ“
Strana 14 z 35
(Téma)
4.3. Fixačné úlohy 1. Vytvorte program, ktorý načíta prirodzené číslo x a vypíše počet cifier čísla x. 2. Vytvorte program, ktorý načíta prirodzené číslo x a vytvorí číslo y, ktoré má tie isté cifry ako číslo x, ale v opačnom poradí. 3. Vytvorte program, ktorý načíta prirodzené čísla (x, 0<=y<=9) a zistí, koľkokrát sa cifra y vyskytuje v zápise čísla x. 4. Vytvorte program, ktorý načíta dve prirodzené čísla (x, y). Pomocou Euklidovho algoritmu nájde a vypíše NSD(x,y). 5. Vytvorte program, ktorý načíta dve prirodzené čísla (x, y). Nájde a vypíše najmenší spoločný násobok čísiel x,y.
4.4. Aplikačné úlohy 1. Chystáte sa na dovolenku a poletíte lietadlom. Hmotnosť batožiny je obmedzená. Do kufra postupne ukladáte veci, pričom poznáte hmotnosť každej z nich. Zistite, koľko vecí sa vám zmestí do kufra. Napíšte program, ktorý od používateľa načíta povolenú hmotnosť batožiny a postupnosť hmotností. Program skončí, ak je prekročená povolená hmotnosť batožiny. Nakoniec vypíše koľko vecí si so sebou beriete. Vypíšte tiež hmotnosť najťažšej veci, ktorú ste naložili do kufra. 2. Pre lotériu je potrebné vygenerovať 3 náhodné ale navzájom rôzne čísla z intervalu <1, 10> - prvé z nich je úplne náhodné, druhé generujete dovtedy, kým sa nebude líšiť od prvého, na záver generujete tretie, ktoré musí byť rôzne od prvého aj od druhého 3. Milan sa pripravuje na maturitnú skúšku. Jednou z otázok
sú aj prevody čísel
z desiatkovej sústavy do inej pozičnej sústavy. Chce si overiť, či výpočty ktoré robí, sú správne. Kalkulačka mu ponúka len prevody do 2,8,16 sústavy. Vytvorte program, ktorý prevedie kladné celé číslo z desiatkovej do ľubovoľnej číselnej sústavy.
Metodické poznámky ku kapitole 4. Aj pri týchto príkladoch je podobne ako pri príkladoch v kapitole 3 vhodné využívať trasovacie tabuľky. „Moderné vzdelávanie pre vedomostnú spoločnosť/Projekt je spolufinancovaný zo zdrojov EÚ“
Strana 15 z 35
(Téma)
Príklady na prácu s ciframi by bolo možné riešiť aj s premennou typu string a funkciami na prácu s reťazcami, v tomto prípade ale riešime úlohy prevedením na typ integer. Je dôležité žiakom zdôrazňovať, že pri tomto cykle nesmieme zabudnúť meniť hodnoty premenných, od ktorých závisí splnenie či nesplnenie podmienky, vo vnútri cyklu tak, aby bolo možné dosiahnuť nesplnenie podmienky. Inak by sa cyklus stal nekonečným. Pri rozhodovaní, ktorý typ cyklu s podmienkou má žiak použiť, hľadáme odpoveď na otázku zopakujú sa príkazy aspoň 1x alebo môže nastať situácia, keď sa nezopakujú ani raz? Ako zadávať postupnosť čísel v Lazaruse? ( napr. v príklade 1 kapitola 1.5.4) Jedna z možností je využiť voľbu NOVÝ- PROJEKT- PROGRAM a pracovať vo FreePascale. Inou možnosťou je zadávať údaj pomocou komponentu editovací riadok - TEdit a po vložení súčasne zobraziť aj do komponentu
Memo, Image.Canvas alebo Listbox, aby bola
postupnosť viditeľná a bolo možné overiť, či algoritmus nad postupnosťou čísel prebehol správne. Aj v ďalších kapitolách sa budú vyskytovať podobné problémy. Je na učiteľovi, či si vyberie jeden alebo druhý spôsob. V riešení úloh uvádzam striedavo aj jeden aj druhý prístup. Na tomto mieste je možné ukázať aj riešenie úloh z kapitoly 3 pomocou tohto typu cyklu.
„Moderné vzdelávanie pre vedomostnú spoločnosť/Projekt je spolufinancovaný zo zdrojov EÚ“
Strana 16 z 35
(Téma)
5. Cyklus s podmienkou na konci
Kapitola obsahuje úlohy pomocou ktorých by žiaci mali :
uvedomiť si potrebu použitia príkazu cyklu s podmienkou na konci
naučiť sa správnu syntax príkazu REPEAT
porozumieť podmienke vykonávania cyklu
uvedomiť si, že príkazy v tele tohto cyklu sa musia zopakovať aspoň jedenkrát a v náväznosti na to sa vedieť rozhodnúť, kedy je vhodné použiť tento typ cyklu
uvedomiť si, že pri zadávaní postupnosti hodnôt je vhodné využívať vstup hodnoty prostredníctvom funkcie INPUTBOX ( nie cez editovacie políčko).
5.1. Motivačné úlohy Rozhodli ste sa vytvoriť simulátor semaforu. Na obrazovke bude blikať svetlo (náhodne sa bude vykresľovať kružnica jednou z troch farieb – červená, oranžová, zelená) dovtedy, kým sa nerozsvieti zelená . Potom počítač vypíše: CHOĎ! 5.2. Expozičné úlohy 1. Vytvorte program , ktorý načíta celé číslo z intervalu <1,10>, v prípade, že číslo nie je z uvedeného intervalu, počítač vypíše chybové hlásenie a vyžiada s nové číslo. 2. Zistite počet párnych čísel v postupnosti ukončenej nulou. 3. Zistite súčet postupnosti celých čísel ukončených nulou. 4. Zistite priemer postupnosti celých čísel ukončených nulou. 5. Zistite minimum postupnosti celých čísel ukončenej číslom 999. 6. Zistite maximum postupnosti celých čísel ukončenej číslom 999. 7. Vytvorte program, ktorý bude opakovať výpočet obvodu kruhu dovtedy kým nezadáme písmeno „N“.
„Moderné vzdelávanie pre vedomostnú spoločnosť/Projekt je spolufinancovaný zo zdrojov EÚ“
Strana 17 z 35
(Téma)
5.3. Fixačné úlohy 1. Zostavte program, ktorým budete vypisovať náhodné čísla z intervalu <1,100> dovtedy kým sa neobjaví číslo 50. Potom vypíšte koľko čísel bolo vygenerovaných a aký je ich priemer. 2. Napíšte program, ktorý pre dané celé číslo N zistí, či je alebo nie je prvočíslo. Po skončení výpočtu sa výpočet opakuje alebo končí podľa výberu používateľa. 3. Vytvorte program, ktorý vypíše všetky prvočísla menšie ako zadané číslo. Na testovanie prvočísla použite funkciu. Komponenty do formulára umiestnite podľa potreby.
5.4. Aplikačné úlohy 1. Napíšte program, ktorý na vstupe dostáva rad kladných celých čísel predstavujúcich platy zamestnancov podniku. Zadávanie je ukončené číslom 3100, ktoré predstavuje plat riaditeľa. Program platy vyhodnotí a vypíše: a) počet zamestnancov podniku, b) o koľko je riaditeľov plat vyšší ako priemerný, c) počet zamestnancov s platom nižším ako je priemerný. 2. V krasokorčuľovaní sa známkuje tak, že sa vynechá najlepšia a najhoršia známka a zo zvyšku známok sa vypočíta aritmetický priemer. Zostavte program na výpočet výslednej známky z postupnosti jednotlivých známok ukončených nulou. 3. Naprogramujte hru „Myslím si číslo“. Na úvod si program vyžiada kategóriu obtiažnosti: a) nízka b) stredná c) vysoká
háda od 1 do 10 háda od 1 do 100 háda od 1 do 500
Program náhodne vyberie číslo od 1 do 10 (100, 500). Súťažiaci háda dané číslo, pričom mu počítač dáva odpoveď: „Hľadané číslo je väčšie ako si zadal“ alebo „Hľadané číslo je menšie ako si zadal“. Toto sa opakuje, až kým súťažiaci neuhádne dané číslo, potom mu počítač oznámi, že uhádol a vypíše Metodické poznámky ku kapitole 5. Zaujímavým faktom je, že žiaci oveľa ľahšie formulujú program s využitím cyklu repeat ako while. Jeho zápis je pre nich asi prirodzenejší ako cyklus while a robia pri ňom menej chýb,
„Moderné vzdelávanie pre vedomostnú spoločnosť/Projekt je spolufinancovaný zo zdrojov EÚ“
Strana 18 z 35
(Téma)
ľahšie zapisujú aj výstupnú podmienku z cyklu. Je potrebné neustále upozorňovať žiakov, že tento typ cyklu môžeme používať, len v prípade keď sa príkazy majú zopakovať aspoň jedenkrát. Pre expozičné úlohy je vhodné urobiť so žiakmi aj trasovacie tabuľky.
„Moderné vzdelávanie pre vedomostnú spoločnosť/Projekt je spolufinancovaný zo zdrojov EÚ“
Strana 19 z 35
(Téma)
6. Jednorozmerné pole
Kapitola obsahuje úlohy pomocou ktorých by žiaci mali : uvedomiť si potrebu použitia údajovej štruktúry pole v prípade, že potrebujeme evidovať a spracovať veľké množstvo údajov deklarovať premennú typu pole, rozlišovať typ indexu poľa a typ prvkov poľa, vedieť používať premennú typu pole v jednoduchých úlohách (napr. typu: načítaj pole - nájdi maximálnu hodnotu, spočítaj resp. uprav prvky poľa - vypíš pole). načítať a vypísať jednotlivé prvky poľa, manipulovať s prvkami poľa: priradiť ich do iných premenných, inkrementovať ich
6.1. Motivačné úlohy 1.
Janko bol na plaveckom výcviku, na ktorom vážne ochorel. Počas hospitalizácie v nemocnici mu zdravotný personál zaznamenával každé ráno jeho teplotu. a) Vytvorte program, ktorý načíta a vypíše jeho telesnú teplotu za 10 dní pobytu v nemocnici. b) Ako by ste vypísali hodnoty teplôt od posledného dňa hospitalizácie? c) Ako by sa zmenil program, ak by ste počet dní hospitalizácie chceli zadať z klávesnice? d) Ako vypíšete teplotu za 5.deň hospitalizácie? e) Doplňte program tak, aby vypísal namerané zvýšené teploty ( >37° C). f) Doplňte úlohu v bode e) tak, aby program vypísal aj poradové číslo dňa, kedy mal Janko zvýšenú teplotu.
Úlohou chceme viesť žiakov k zdravému životnému štýlu a budovať pozitívny prístup k vlastnému zdraviu.
6.2. Expozičné úlohy 1. Zostavte program, ktorý vypíše, či dva vektory a, b sú na seba kolmé. Rozmer vektora je maximálne 10. Súradnice vektorov a rozmer zadajte z klávesnice. (MAT)
„Moderné vzdelávanie pre vedomostnú spoločnosť/Projekt je spolufinancovaný zo zdrojov EÚ“
Strana 20 z 35
(Téma)
Jednoduchá úloha na načítanie prvkov do poľa a manipuláciu s prvkami poľa. 2. Počas turistického výletu na vysokohorskú chatu sme GPS prístrojom zaznamenávali nadmorskú výšku desiatich významných bodov našej trasy. Pri spiatočnej ceste nás čaká presne opačný výškový profil trate. Vytvorte program, ktorému zadáme zaznamenane údaje v tom poradí, ako sme ich zaznamenali. Program vypíše výškový profil trasy na chatu a výškový profil spiatočnej trasy. Doplňujúce otázky a) Aké je prevýšenie medzi 2. a 3. bodom trasy, i. a i+1. bodom? Pre aké i vieme zistiť prevýšenie? b) Aké je celkove prevýšenie trasy medzi i. a j. bodom? (GEG) Ide o úlohu na načítanie a vypísanie prvkov poľa. Úlohou chceme rozvíjať pozitívny vzťah žiakov k prírode a športu. 3. Mobilný operátor pošle na konci kalendárneho roka výpis, v ktorom je uvedené koľko SMS správ sme poslali v každom mesiaci. Vytvorte program, ktorý vypočíta: a) priemerný počet SMS správ za mesiac b) koľko najviac a koľko najmenej sme poslali SMS správ za mesiac c) v ktorom mesiaci sme poslali najmenej a v ktorom najviac SMS správ Úloha na vyhľadanie maxima, minima poľa, vrátane poradového čísla max. (min.) prvku poľa a výpočet priemeru prvkov poľa. 4. Na konci žiackej brigády sa zamestnávateľ rozhodol odmeniť žiakov a k ich platu (2.5 € za hodinu) im pridal ešte odmenu. Žiakom, ktorí odpracovali viac ako 30 hodín, dal odmenu 10% z ich platu. Ostatní dostali odmenu 5% zo svojho platu. Vytvorte program, ktorému zadáme počty odpracovaných hodín jednotlivých žiakov a ktorý pre každého žiaka vypočíta jemu vyplatenú sumu a určí počet žiakov, ktorým bola vyplatená suma aspoň 100 €. 5. Pole Z obsahuje max. 30 záznamov o žiakoch školy. ( meno – reťazec max. 15 znakov, priemer – reálne číslo zobrazené na 2 desatinné čísla, a prospech žiaka – reťazec - PV, PVD, P, N) – Zostavte program ktorý načíta počet žiakov, mená a priemery žiakov a doplní pole prospechom žiakov. Pole Z vypíšte v tvare: meno
priemer
prospech.
Úloha na prácu s poľom obsahujúcom záznamy. „Moderné vzdelávanie pre vedomostnú spoločnosť/Projekt je spolufinancovaný zo zdrojov EÚ“
Strana 21 z 35
(Téma)
6.
Katka dostala za úlohu pripraviť triednu nástenku, ale nevie, či jej stačia písmená. Uľahčite jej prácu a spočítajte, koľko ktorých písmen na nástenku potrebuje. (Na nástenku sa používajú iba veľké písmená.) Zostavte program, ktorý vypíše početnosti veľkých písmen v zadanej vete. Objekty do formulára umiestnite podľa potreby. Úloha na prácu s poľom , kde ako index vystupuje premenná typu char.. 6.3. Fixačné úlohy
1. Je daná postupnosť 20 celých čísel predstavujúca nadmorskú výšku kontrolných bodov v orientačnom preteku. Napíšte program, ktorý vyhodnotí tieto údaje a vypíše: a) poradové číslo kontrolného bodu s najvyššou a najnižšou nadmorskou výškou, b) dva susedné body, medzi ktorými je najvyššie stúpanie. (GEG) 2. Napíšte program, ktorý vytvorí 200-prvkové pole počtov obyvateľov nejakej obce. Pole zaplní náhodnými hodnotami, vykreslí ho do plochy (napr. ako obdĺžniky s číslom počtu obyvateľov) a na záver vypíše ich celkový počet a počet domov, v ktorých nebýva nikto. 3. Vytvorte program, ktorý utriedi prvky jednorozmerného poľa. Použite aspoň 2 rôzne metódy triedenia. Porovnajte ich. Prvky poľa vygenerujte ako náhodné čísla z intervalu <0,50>. Objekty do formulára umiestnite podľa potreby.
4. V obchode pracuje 8 predavačov. Vedúci chce vyhodnotiť ich usilovnosť. Vždy si poznačí, ktorý predavač sa zákazníkovi venoval. Program dostane postupnosť čísel 1..8 ukončenú 0 a má vyhodnotiť, koľko zákazníkov za deň obslúžil každý z predavačov.
(Z uvedeného textového súboru vyplýva, že 1. predavač obslúžil 4 zákazníkov, 2.predavač obslúžil 3 zákazníkov, ...)
„Moderné vzdelávanie pre vedomostnú spoločnosť/Projekt je spolufinancovaný zo zdrojov EÚ“
Strana 22 z 35
(Téma)
5. Počas cyklistického tréningu cyklopočítač cyklistu v pravidelných minútových intervaloch meria nadmorskú výšku (v metroch) a vzdialenosť od posledného merania (v metroch). Po tréningu sa namerané údaje vyhodnotia, aby cyklista vedel, v akej je kondícii. Tréner údaje vyhodnocuje ručne, pomocou kalkulačky. Tento postup je však zdĺhavý a určite by sa dal pomocou počítača urýchliť. Vytvorte program, ktorému zadáme namerané údaje a program vypočíta nasledovné údaje: a) vzdialenosť v metroch, ktorú cyklista prešiel b) čas trvania tréningu c) priemernú rýchlosť d) dĺžku najdlhšieho úseku počas ktorého cyklista stúpal a počet metrov o ktoré vystúpil e) dĺžku najdlhšieho úseku počas ktorého cyklista klesal a počet metrov o ktoré klesol f) prevýšenie, počas ktorého cyklista stúpal ( klesal) g) celkové prevýšenie trate h) rýchlosť, ktorú cyklista dosiahol v najrýchlejšom úseku (najpomalšom) i) úsek, v ktorom bolo najprudšie stúpanie (klesanie)
(FYZ)
6. Vytvorte program, ktorý bude do databázy školy načítavať nasledovné informácie o učiteľoch:
meno,
priezvisko,
skratka predmetu, ktorý vyučuje (len jeden),
pohlavie.
Program bude vedieť vypísať zoznam všetkých učiteľov, počet žien a mužov, navyše po zadaní skratky predmetu vypíše všetkých učiteľov, ktorí daný predmet vyučujú. Komponenty do formulára umiestnite podľa potreby
7. Vytvorte program, ktorý umožní jednoduché spravovanie knižnice. Cez vstupný formulár načíta o knihe tieto informácie:
meno a priezvisko autora,
názov knihy,
vydavateľstvo,
rok vydania
a uloží ich do databázy.
„Moderné vzdelávanie pre vedomostnú spoločnosť/Projekt je spolufinancovaný zo zdrojov EÚ“
Strana 23 z 35
(Téma)
Program bude navyše po zadaní priezviska autora vedieť vyhľadať v databáze všetky knihy od daného autora. Komponenty do formulára umiestnite podľa potreby.
6.4. Aplikačné úlohy 1. Sú dané výsledky opakovaného fyzikálneho merania danej veličiny a predpokladaná výsledná hodnota, ktorá by mala byť nameraná. Napíšte program na vyhodnotenie merania, na vstupe zadáme počet nameraných hodnôt, namerané hodnoty a predpokladanú nameranú hodnotu. Program vypíše: a) koľko krát sa nameraná hodnota odchýlila od predpokladanej viac ako o 10 %, b) o koľko % sa odchýlila priemerná nameraná hodnota od predpokladanej, c) v ktorom meraní došlo k najväčšej odchýlke od predpokladanej hodnoty a o koľko. 2. Počítač môže slúžiť aj ako hudobný nástroj, napríklad klavír. Jednotlivým klávesom vieme priradiť frekvencie tónov, ktoré sa majú zahrať po ich stlačení. Vytvorte program, ktorý pri stláčaní klávesov bude hrať zodpovedajúce tóny (c=262, cis=277, d=294, dis=311, e=330, f=349, fis=370, g=392, gis=415, a=440, ais=466, h=494). 3. Vytvorte program pre leteckého prepravcu na predaj miesteniek do lietadla. Program umožní zadať rezerváciu na letenku a vypísať obsadenosť lietadla a tiež počet voľných miest pri okne. lietadlo
vzor výpisu obsadenosti (o obsadené, x voľné miesto)
1
2
3
4
x
x
x
x
5
6
7
8
x
o
o
o
9
10
11
12
x
x
o
o
13
14
15
16
x
o
o
x
17
18
19
20
o
o
o
o
21
22
23
24
x
x
x
x
25
26
27
28
x
x
x
x
29
30
31
32
o
o
o
o
33
34
35
36
o
o
o
o
37
38
39
40
x
x
x
x
„Moderné vzdelávanie pre vedomostnú spoločnosť/Projekt je spolufinancovaný zo zdrojov EÚ“
Strana 24 z 35
(Téma)
4. Zubár vedie evidenciu o stave chrupu pacienta. Zub môže byť zdravý, pokazený, zaplombovaný alebo môže chýbať. Napíšte program, ktorý z tejto evidencie zistí, koľko kazov má pacient. Na obrazovku sa vypíše stav každého zuba. Stav chrupu náhodne generujte. Dospelý človek má po 16 zubov na každej čeľusti.
5. Mzdová účtovníčka vypláca každému z n zamestnancov firmy každý mesiac istú sumu peňazí. Snaží sa vybrať z banky minimálny počet bankoviek, ale výpočet jej zaberá veľa času. Zostavte program na urýchlenie práce mzdovej účtovníčky.
6. Vytvorte program, ktorý bude zaznamenávať namerané teploty v danom období (teploty budeme generovať z intervalu <5,15> a počet dní za dané obdobie deklarujeme ako konštantu). Program nakreslí z nameraných hodnôt stĺpcový graf, nad rady vypíšte aj menovky údajov (namerané teploty). Objekty do formulára umiestnite podľa potreby.
Metodické poznámky ku kapitole 6. Množina úloh na precvičenie práce s jednoduchým poľom je naozaj široká. Úlohami môžeme vplývať na mnohé stránky osobnosti žiakov a v širokej miere upevňovať aj medzipredmetové vzťahy. Postupnosť úloh, ktorú si vyberá učiteľ závisí len a len od úrovne žiakov, s ktorými pracuje. Žiaci nemávajú väčšie problémy s načítaním a vypísaním prvkov poľa, čo je dané tým, že tieto algoritmy sa vlastne opakujú. Pri manipulácii s prvkami poľami sa nám osvedčilo kresliť pole
a zapisovať prvky poľa. Tu znovu vo veľkej miere pomôže
interaktívna tabuľa, kde si učiteľ môže „vytiahnuť“ už hotové prázdne „polia“, ktoré potom žiaci postupne napĺňajú hodnotami.
„Moderné vzdelávanie pre vedomostnú spoločnosť/Projekt je spolufinancovaný zo zdrojov EÚ“
Strana 25 z 35
(Téma)
7. Textové súbory Kapitola obsahuje úlohy pomocou ktorých by žiaci mali : uvedomiť si potrebu použitia údajovej štruktúry súbor v prípade, že potrebujeme evidovať a spracovať veľké množstvo údajov, deklarovať premennú typu súbor, poznať základné príkazy na otvorenie, čítanie a zápis do textového súboru
7.1. Motivačné úlohy 1. Triedna učiteľka zapísala pri koncoročnej klasifikácii do textového súboru ziaci.txt údaje o žiakoch a ich dosiahnutom priemere nasledovne: 1.riadok meno žiaka- reťazec max. 15 znakov 2. riadok - priemer – reálne číslo zobrazené na 2 desatinné čísla riadky 1- 2 sa opakujú podľa počtu žiakov. Vytvorte súbor prospech.txt, ktorý bude obsahovať okrem mena a priemeru žiaka aj celkový prospech t.j. reťazec - PV, PVD, P, N) Súbor prospech.txt vypíšte.
7.2 Expozičné úlohy 1. Vo vstupnom súbore preteky.txt je meno pretekára a dvojica čísel, ktoré predstavujú výkon pretekára v 2 tréningových kolách súťaže. Čísla sú vyjadrené v sekundách. Číslo nula predstavuje diskvalifikáciu pretekára v danom kole. Zistite koľko pretekárov bolo diskvalifikovaných v prvom kole a koľko v druhom kole. Zistite čas najrýchlejšieho pretekára. 2. Utvorte program na výpočet optimálnej hmotnosti študentov triedy pomocou BMI. BMI = telesný hmotnostný index, vyráta sa ako podiel hmotnosti v kilogramoch a výšky v metroch na druhú, BMI < 18,5 podváha, 18,5<=BMI<25 normálna hmotnosť, 25<=BMI<30 nadváha, BMI>=30 obezita. Program si vyžiada počet študentov a pre každého študenta meno, výšku a hmotnosť. Do textového súboru bmi.txt uloží údaje o študentoch v nasledovnom tvare: Janko Hraško 128 cm 36 kg BMI=21,97 NORMALNA HMOTNOST
„Moderné vzdelávanie pre vedomostnú spoločnosť/Projekt je spolufinancovaný zo zdrojov EÚ“
Strana 26 z 35
(Téma)
3. Vytvorte program, ktorý zo vstupného textového súboru cisla.txt (je korektný a obsahuje len celé čísla) vypíše maximálne číslo. 4. Študenti robili výskumný projekt, v ktorom zisťovali výšku, hmotnosť a vek vybranej vzorky ľudí. Vytvorte program, ktorý by im pomohol spracovať výsledky. Napíšte program, ktorý bude obsahovať procedúry na: načítanie hodnôt, ktoré sú zadané v súbore vyskum.txt, vypísanie zadaných údajov na obrazovku do jedného riadku, vypočítanie priemeru a počtu ľudí, ktorí nemajú nadváhu a sú plnoletí t. j. platí, že (výška-100) <= hmotnosť a majú aspoň 18 rokov a vypíše ich indexy. Vstup:
Výstup: Vyska: 168 172 182 Hmotnost: 65 89 85 Vek: 20 23 50 Nadvahu nemaju: 1 5 6 Spolu: 3
175
169
199
177.50
74
52
90
75.83
16
25
21
25.83
7.3 Fixačné úlohy 1. Vytvorte program, ktorý v textovom súbore slova.txt nájde slovo s najväčšou dĺžkou a vypíše ho na obrazovku. 2. Textový súbor zoznam.txt obsahuje zoznam študentov triedy a počet ich vymeškaných hodín. Každému študentovi zodpovedá práve jeden riadok súboru. Najprv je v riadku jeho priezvisko, potom jedna medzera a potom celé číslo symbolizujúce počet vymeškaných hodín. Vytvorte program, ktorý tieto informácie vypíše na obrazovku a zároveň aj spočíta počet zameškaných hodín celej triedy (tiež ho vypíše na obrazovku).
„Moderné vzdelávanie pre vedomostnú spoločnosť/Projekt je spolufinancovaný zo zdrojov EÚ“
Strana 27 z 35
(Téma)
3. Vytvorte program, ktorý bude šifrovať vstupný textový súbor vstup.txt do výstupného tak, že všetky znaky v ASCII tabuľke posunie o k znakov vpravo (hore). Hodnotu k si náhodne vygeneruje pre každý riadok zvlášť a uloží ju na začiatok prislúchajúceho riadku výstupného súboru. Za hodnotu zapíše jednu medzeru a potom samotný zašifrovaný text riadku vstupného súboru. 4. Vytvorte program, ktorý rozšifruje výstupný súbor z úlohy číslo 3.
7.4 Aplikačné úlohy
1. Jožko robil prieskum o najpopulárnejších krstných menách na škole. Napíšte program, ktorý zo vstupného súboru studenti.txt zistí frekvenciu výskytu jednotlivých mien. Komponenty do formulára umiestnite podľa potreby. 2. Vytvorte program, ktorý by nám pomohol pri práci s diárom na telefónne kontakty. Formulár má umožňovať zadať meno, priezvisko, telefónne číslo a operátora (T-Mobile, Orange, O2). Po zatvorení programu sa všetky pridané kontakty prekopírujú do textového súboru diar.txt. Chceme vedieť pracovať aj s tými kontaktmi, ktoré sme pridali pri predchádzajúcom spustení programu. Použiť môžete len jedno pole. Komponenty do formulára pridajte podľa potreby. 3. V textovom súbore linrovnice.txt sú v každom riadku zapísané 2 čísla – koeficienty lineárnej rovnice. Vytvorte program, ktorý bude riešiť lineárne rovnice. Riešenie každej rovnice vypíše v tvare: Napr. 5x – 10 = 0 x=2 Objekty do formulára umiestnite podľa potreby.
4. Firma dostala od dodávateľa textový súbor produkty.txt, v ktorom je v každom riadku uvedený identifikačný kód druhu výrobku, tvorený 5 ľubovoľnými znakmi, ďalej je uvedený počet výrobkov a jednotková cena. Údaje sú v riadku oddelené medzerami, počet riadkov súboru (počet druhov výrobkov) nie je dopredu známy. Vytvorte aplikáciu, ktorá
„Moderné vzdelávanie pre vedomostnú spoločnosť/Projekt je spolufinancovaný zo zdrojov EÚ“
Strana 28 z 35
(Téma)
by firme pomohla spočítať celkové ceny za jednotlivé výrobky (vytvorte nový súbor, ktorý bude obsahovať obsah pôvodného súboru a navyše v každom riadku pribudne nový údaj – celková cena podľa obr.). Komponenty do formulára umiestnite podľa potreby.
5. V textovom súbore bodovanie.txt máme uložené názvy štátov a bodový zisk za umiestnenia ich športovcov na olympiáde. Vytvorte program, ktorý tieto štáty usporiada zostupne podľa získaného počtu bodov s použitím jedného poľa. Komponenty do formulára umiestnite podľa potreby.
6. Zo stanice TANAP-u vypustili po vyliečení medveďa. V snahe zistiť jeho zvyky mu pripevnili vysielačku, ktorá každý deň v tú istú hodinu vysielala zmenu polohy medveďa (zmenu súradnice x a zmenu súradnice y) vzhľadom k pozícii z predchádzajúceho dňa. Údaje boli zaznamenávané do textového súboru medved.txt ako celočíselné hodnoty v metroch. V jednom riadku sú vždy dve čísla z jedného dňa. Stanica TANAP-u je na pozícii [0,0]. Prvý riadok v súbore je záznam z prvého dňa. Vytvorte program, ktorý vypočíta:
koľko dní bol medveď sledovaný,
dĺžku trasy, ktorú medveď za celý čas prešiel,
v ktorý dni sa medveď presunul o najdlhšiu vzdialenosť.
„Moderné vzdelávanie pre vedomostnú spoločnosť/Projekt je spolufinancovaný zo zdrojov EÚ“
Strana 29 z 35
(Téma)
7. Výsledky prijímacích skúšok do 4-ročného gymnázia sú zapísané v textovom súbore prijimacky.txt . Údaj o každom žiakovi je zapísaný v dvoch riadkoch nasledovne:
v nepárnom riadku je uvedený kód žiaka,
v párnom riadku medzerami oddelené: BODYMAT (body získané z matematiky), BODYSJL (body získané zo slovenského jazyka), BODYMONITOR (body za výsledky monitoru).
Vytvorte program, ktorý vypíše kód žiaka a celkový počet získaných bodov. Ďalej nájdite a vypíšte kód a počet bodov najúspešnejšieho žiaka. 8. Učiteľka angličtiny sa rozhodla vytvoriť pre svojich žiakov jednoduchý anglicko – slovenský slovník. Slovíčka postupne podľa potreby zapisuje do textového súboru nasledovne: Do nepárneho riadku uvedie slovenský výraz a do ďalšieho riadku zodpovedajúci anglický termín. Vytvorte program, ktorý by umožňoval jednoduché vyhľadávanie v tomto slovníku – pre zadaný anglický termín nájde jeho slovenský ekvivalent (ak existuje) a vypíše ho. Predpokladajte, že slovník nie je prázdny. Na testovanie použite súbor slovnik.txt.
9. Naprogramujte prekladový slovník. Vstupom je textový súbor slovnik.txt. V každom riadku obsahuje dve slová oddelené medzerou. Prvé slovo je v slovenskom jazyku a druhé slovo je v anglickom jazyku. Počet slov v súbore je uvedený v prvom riadku súboru. Program nás vyskúša 10 náhodne vybraných slov (môže byť aj viackrát to isté slovo). Za každé uhádnuté slovo nám pripočíta 1 bod. V závere vypíše počet bodov na obrazovku. 10. Primátor mesta pripravuje dostavbu budov. Návrh nového plánu sa nachádza v súbore mapa.txt.. Súbor obsahuje dvojice čísel (oddelené medzerou). Tieto čísla určujú súradnice
budov
mesta,
ktoré
nám
do
myslenej
mriežky
pomôže
zakresliť procedúra budova. Súradnice sú v poradí riadok, stĺpec. „Moderné vzdelávanie pre vedomostnú spoločnosť/Projekt je spolufinancovaný zo zdrojov EÚ“
Strana 30 z 35
(Téma)
procedure Budova(riadok,stlpec:Integer); begin setcolor(Blue); Rectangle((stlpec-1)*20,(riadok-1)*20,stlpec*20,riadok*20); setfillstyle(0,Blue); floodfill(stlpec*20-3,riadok*20-3,blue); end; Vykreslite na obrazovku mapu mesta modrou farbou. 11. Dopravný podnik mesta pripravuje do nové autobusové linky. Plány možných trás autobusových liniek sa nachádzajú v textovom súbore linky.txt. Prvý riadok súboru obsahuje počet pripravovaných liniek. Ďalej nasledujú podrobne popísané všetky linky. Každý variant obsahuje v prvom riadku východiskové súradnice prvej zastávky a v druhom riadku postupnosť jednotlivých krokov. Každý krok obsahuje písmeno, ktoré symbolizuje smer pohybu (S-sever, J-juh, V-východ, Z-západ, alebo písmeno T-symbolizuje zdržanie sa na zastávke) a číslo. Napr. T 20 znamená, že stojíme na zastávke 20 sekúnd. S 40 znamená, že ideme na sever 40 dĺžkových jednotiek. (1 dĺžková jednotka bude mať na obrazovke veľkosť jedného bodu a predpokladáme, že trvá 1 sekundu). Písmeno typu krok a jeho hodnota sú vždy oddelené medzerou (aj na konci riadka je za číslom jedna medzera, ).
a)
vykreslite na obrazovku všetky linky (zelenou farbou), ktoré pripravuje dopravný podnik
b) každú zastávku zakreslite červenou kružnicou s polomerom 10 bodov c)
linky vykresľujte s použitím vhodnej časovej mierky pre zobrazenie dĺžky zdržania na zastávke a rýchlosti pohybu autobusu.
d) predpokladajme, že máme na cestovanie zakúpený 10 minútový cestovný lístok. Nastúpili sme na východiskovej zastávke. Zakreslite do plánu cestu, po ktorej už budeme cestovať bez platného cestovného lístka červenou farbou. 12. V textovom súbore rozvrh.txt je zapísaný rozvrh. Každý riadok obsahuje informácie o jednej vyučovacej hodine a to nasledovne: dve čísla a trojznakový text, oddelené jednou medzerou. Prvé číslo označuje poradie dňa v týždni (Pondelok=1, Utorok=2,...), druhé číslo označuje poradie hodiny v danom dni a trojznakový text je skratka predmetu. „Moderné vzdelávanie pre vedomostnú spoločnosť/Projekt je spolufinancovaný zo zdrojov EÚ“
Strana 31 z 35
(Téma)
Vytvorte program, ktorý prečíta tento textový súbor a na základe jeho obsahu vykreslí v textovom režime na obrazovku rozvrh na celý týždeň. Doplňte do programu procedúru, ktorá dokreslí do rozvrhu červenou farbou aj mriežku (v textovom režime) a číselné označenie hodín a dní. 13. Textový súbor tvary.txt popisuje geometrické tvary. Každý riadok súboru popisuje jeden n-uholník v tvare: farba počet_vrcholov x1 y1 x2 y2 x3 y3 .... xn yn. Napríklad: 4 3 100 100 200 100 100 200 znamená, že sa nakreslí trojuholník farbou číslo 4 a vrcholy bude mať v bodoch [100,100],[100,200] a [100,200].
„Moderné vzdelávanie pre vedomostnú spoločnosť/Projekt je spolufinancovaný zo zdrojov EÚ“
Strana 32 z 35
(Téma)
Použité zdroje: [1] Kolektív autorov: Štátny vzdelávací program. [online] Bratislava: ŠPÚ v Bratislave, 2008. Aktualizované 14.2.2010 [cit. 2010-05-17]. Dostupné na internete: [2] Štátny vzdelávací program. Informatika. Príloha ISCED 3. ŠPÚ Bratislava. September 2008. Dostupné na internete: http://www.statpedu.sk/documents//16/vzdelavacie_programy/statny_vzdelavaci_progra m/prilohy/Informatika_ISCED_3.pdf> [3] Cieľové požiadavky na vedomosti a zručnosti maturantov z informatiky. [online]. ŠPÚ Bratislava, september 2008. Dostupné na internete: [4] KALAŠ, Ivan a kol.: Informatika pre stredné školy. Bratislava: MEDIA TRADE, s.r.o. SPN , 2001. 112 s. ISBN 80-08-01518-7 [5] BLAHO, Andrej.: Informatika pre stredné školy. Programovanie v Delphi. Bratislava: SPN, 2006. 144 s. ISBN 80–10–00421–9. [6] BLAHO, Andrej, KUBINCOVÁ, Zuzana., SALANCI, Ľudovít. Ďalšie vzdelávanie učiteľov základných škôl a stredných škôl v predmete informatika: Programovanie 2. Bratislava: ŠPÚ, 2009. 20 s. ISBN 978–80–8118–007–1. [7] BLAHO, Andrej, KUBINCOVÁ, Zuzana., SALANCI, Ľudovít. Ďalšie vzdelávanie učiteľov základných škôl a stredných škôl v predmete informatika: Programovanie 3. Bratislava: ŠPÚ, 2009. 20 s. ISBN 978–80–8118–014–9. [8]
BLAHO, Andrej, KUBINCOVÁ, Zuzana., SALANCI, Ľudovít. Ďalšie vzdelávanie učiteľov základných škôl a stredných škôl v predmete informatika: Programovanie 4 (Pascal). Bratislava: ŠPÚ, 2009.36 s. ISBN 978-80-8118-018-7
[9] GUNIŠ, Ján, ŠNAJDER Ľubomír: Ďalšie vzdelávanie učiteľov základných škôl a stredných škôl v predmete informatika: Didaktika predmetu Informatika. Bratislava: ŠPÚ, 2009. 20 s. ISBN 978-80-8118-021-7. [10]
Dostupné na internete: [cit. 2010-05-17].
[11] GUNIŠ, Ján, ŠNAJDER Ľubomír: Didaktický projekt –jednorozmerné pole. [online]. Dostupné na internete: [12] BELLUŠOVÁ, Mária, VARGA, Mário, ZIMANOVÁ, Ružena: Algoritmy s Pascalom. Bratislava: MEDIA TRADE, s.r.o. - SPN , 2001. 48 s. ISBN 80-08-03289-8.
„Moderné vzdelávanie pre vedomostnú spoločnosť/Projekt je spolufinancovaný zo zdrojov EÚ“
Strana 33 z 35
(Téma)
[13] KOŇUCHOVÁ, Ľuba, MANNOVÁ Božena, HVORECKÝ, Jozef: Informatika a výpočtová technika pre 1.ročník gymnázia. Programovanie v jazyku PASCAL. Bratislava: SPN, 1991. 108 s. ISBN 80-08-00753-2.
„Moderné vzdelávanie pre vedomostnú spoločnosť/Projekt je spolufinancovaný zo zdrojov EÚ“
Strana 34 z 35