Zbierka úloh z programovania

 

Úvod

1. Vypíšte na obrazovku "ahoj svet" - writeln. 2. Vygenerujte náhodné číslo, ktoré bude počet sekúnd a zistite koľko je to hod., min. a dní - div, mod, random, randomize 3. Program, ktorý načíta a,b a vypočíta výraz (a+b)**2 readln, writeln 4. Načítajte z klávesnice vaše meno a vypíšte n krát na obrazovku - input, print, zreťazenie reťazcov. 5. Vytvorte program kde zistíte celočíselný podiel a celočíselný zvyšok z 2 čísel zadaných z klávesnice. - div, mod 6. Načítajte zo vstupu a,b,c ktoré sú koeficientami ax2+bx+c=0 a zistite korene ak ma rovnica riešenie. -IF 7. Program, kde si pre dve čísla zadané z klávesnice vyberiete operáciu +,-,*,/ a výsledok vypíšte - elif 8. Program, ktorý zistí či zadané číslo je párne alebo nepárne - IF 9. Program, ktorý zistí či je trojuholník zostrojitelný ak poznáme jeho 3 strany - IF 10. Zistite vzájomnú polohu bodu a štvorca ak poznáte súradnice bodu (x,y) súradnice stredu štvorca sú 0,0 a veľkosť strany štvorca je (a) - IF 11. Program ktorý zisti zo súradníc bodu v ktorej časti súradnicovej roviny sa nachádza, IF --,-+,+-,++ 12. Načítajte 3 čísla (a,b,c) a vypíšte ich od najmenšieho po najväčšie - IF 13. Načítajte číslo int zo vstupu a zistite koľko ciferné je to číslo, vyriešte po 6 ciferné číslo. - IF, alebo Case - 14. Vytvorte zmenáreň, zadajte číslo v € a premeňte ho na Anglické Libry, zistite aktuálny kurz. - IF, //, %
15. Zistite, či môže nákladné auto prejsť cez most, ak poznáme nosnosť mosta a váhu auta. Cykly 1. Program NSD - while 2. Zistite počet cifier čísla N - while 3. Program súčet cifier čísla - while 4. Pomocou opakovaného odčítania zistite delenie zo zvyškom pre čísla (a, b)- while 5. Program pohybu hviezdičky po obrazovke pokiaľ nestlačíme Esc - repeat, readkey, keypressed, gotoxy 6. Vytvorte usporiadanú postupnosť čísiel veľkost si zadajte z klávesnice- For 7. Vypíšte na obrazovku párne čísla v zadanom rozsahu - For, IF 8. Vytvorte program malej násobilky - For 9. Program na n členov fibonachiho postupnosti - For 10. Zadané slovo zakódujte sposôbom zistenia ordinálnej hodnoty znaku + 1 - for, string, length, org, chr 11. 12. Zadanú vetu prispôsobte formátu SMS - odstráňte medzery a začiatočné písmena slov dajte veľkým písmenom, - For, string, uppcase, IF 13. Vynásobte dve čísla (a, b) bez použitia operácie násobenia - For 14. Vytvorte program ktorý vypíše n hviezdičiek do riadku. - For 15. Zistite aritmetický priemer čísel v zadanom rozsahu (a, b) - For, real 16. Zistite či je číslo (n) prvočíslo - for, mod, if 17. Vypočítajte faktoriál čísla (n) - for 18. Zistite všetky delitele čísla - for, mod, if 19. Vypočítajte n na x-tu - for 20. Vytvorte program ktorý vypíše n hviezdičiek do tvaru n=4 * ** *** **** 21. Vytvorte program ktory vypise n hviezdiciek do tvaru n=4 **** *** ** * 22. Zistite či je zadané číslo palindróm ak nie, nech nájde najbližší väčší palindróm - while, If 23. Zistite či je zadané číslo prvočíslo - for, IF 24. Vypíšte všetky prvočísla po zadané číslo n - For, IF
25. Zistite či je ŠPZ napísaná v správnom tvare. XY123XY
26. Do nákladného auta nakladáte palety hmotnosti 0.9t nosnosť auta je 10t ak naložíte plné auto, nech vypíše "pristavte prazdne auto" a nakladá pokiaľ nenaloží náhodne vygenerovanú celkovú hmotnosť tovaru. Zoznamy, polia, str 1. Vytvorte program ktorý zistí MAX prvok a aj jeho pozíciu v poli čísel o veľkosti n - for, IF, array 2. Vygenerujte n prvkovú postupnosť čísel a zistite koľko je v nej párnych a koľko nepárnych čísel - for, if, array 3. V n prvkovej postupnosti vypíšte prvočísla a aj pozície na ktorých sa nachádzajú - for, if, array 4. Do n prvkovej postupnosti pridajte prvok (x) na zadanú pozíciu (p) tak aby sa žiadny prvok neprepísal a vznikla n+1 prvková postupnosť. - for, if, array 5. V n prvkovej postupnosti čísel, nájdite minimum a maximum a vymeňte ich pozície. - for, if, array 6. V postupnosti čísel nájdite druhé minimum aj s pozíciou - for, if, array 7. Vytvorte program v ktorom odoberiete prvok z prvej pozície a pridáte nový prvok na koniec postupnosti, - for, array 8. Zistite počet dvojciferných čísel v n*prvkovej postupnosti naplnenéj náhodnými číslami - for, array, if 9. Vytvorte program, ktorý zistí početnosť znakov vo vete. string, array, if, for
10. Zo zadaného rodného čísla zistite či je to muž, alebo žena - string Zložené údajové typy 1. Vytvorte program ktorý si bude pamätať informácie o hráčoch volejbalu meno výška váha výskok Číselné hodnoty generujte náhodne Zistite najvyššieho hráča Hráča s najnižším výskokom Vypíšte všetkých s výskokom nad 3 m 2. Vytvorte program ktorý si bude pamätať informácie o žiakoch a písomkách z každej písomky môže získať maximálne 10 bodov meno p1, p2, p3, p4 Zistite žiakov ktorý majú maximálny počet bodov zo všetkých písomiek Zistite žiaka ktorý má najmenej bodov z písomiek Usporiadajte žiakov podľa bodov z celkového počtu bodov im vytvorte známku percentá: 100 - 90 - 1 89 - 75 - 2 74 - 50 - 3 49 - 25 - 4 74 - 50 - 3 49 - 25 - 4 24 - 0 - 5 Body generujte náhodne. 3. Vytvorte program ktorý si bude pamätať hráčov hodu s kockou Každý hráč hádže 5 pokusov. Vypíšte informácie v podobe tabuľky. V poslednom stĺpci zobrazte celkový počet bodov. Zistite hráčov ktorí hodili viac ako 2 šestky. Zistite hráča s najviac šestkami. Zistite hráča s najnižším počtom šestiek. Hody vytvorte pomocou random.

Údajové typy jazyka Pascal

Celočíselné typy

Pascal poskytuje päť preddefinovaných celočíselných typov. Každý typ popisuje podmnožinu množiny celých čísel. Každý typ má určitý rozsah s ktorými vie pracovať a aké miesto zaberá v pamäti, tabuľke je uvedený ako veľkosť.

 

Typ

Rozsah hodnôt

Veľkosť
ShortInt -128 .. 127 1 Byte
Integer -32 768 .. 32 767 2 Byte
LongInt -2 147 483 648 .. 2 147 483 647 4 Byte
Byte 0 .. 255 1 Byte
Word 0 .. 65535 2 Byte

 

S celočíselnými údajovými typmi môžeme vykonávať operácie:

 

  • sčítanie (+)
  • odčítanie (–)
  •  násobenie (*)
  •  celočíselný podiel (div)
  •  celočíselný zvyšok (mod)

 

 

Automatické činnosti s celými číslami (funkcie a procedúry)

 

  • abs(x) – absolútna hodnota x
  • succ(x) – nasledovník x (číslo o 1 väčšie)
  • pred(x) – predchodca x (číslo o jedna nižšie)
  • inc(x) – zvýšenie premennej x o 1 (x:=x+1)
  • dec(x) – zníženie premennej x o 1 (x:=x-1)

 

 

Reálne čísla

 

Typ rozsah veľkosť
real 2,9*10-39 .. 1,7*10+38 6 Byte
single 1,5*10-45 .. 3,4*10+38 4 Byte
double 5,0*10-324 .. 1,7*10+308 8 Byte
extendet 3,4*10-4932 .. 1,1*10+4932 10 Byte
comp -2-63+1 .. 2+63-1 8 Byte

 

Operácie:

 

  • sčítanie (+)
  • odčítanie (–)
  • násobenie (*)
  •  delenie (/)

 

 

Automatické činnosti s celými číslami (funkcie a procedúry)

 

  •  sqrt (x) – druhá odmocnina x
  •  sqr (x) – druhá mocnina x
  •  sin (x) – sinus x
  •  cos (x) – cosinus x
  •  arctan (x) – arcustangens x
  •  ln (x) – prirodzený logaritmus
  •  exp(x) – ex
  •  abs(x) – absolútna hodnota x

 

Údajový typ ZNAK (char)

 

Znaky ako premenné v pascale môžeme definovať pomocou typu char. Vyjadrujú sa ohraničené apostrofmi pr. ‘A’ Inou možnosťou je zadať ich číselnú hodnotu ktorá sa nachádza v ASCII tabuľke. Pred túto číselnú hodnotu sa musí dať znak #.

Na získanie takejto číselnej reprezentácie znaku nám slúžia funkcie:

ord(‘A’) = 65

chr(65) = A

Zmena malých písmen na veľké:

Upcase

 

Logický typ (boolean)

 

Ide o údajový typ Boolean, ktorý môže nadobúdať len 2 hodnoty:

true – pravda

false – nepravda

 

Priorita operátorov:

 

Priorita Operátor
4 not
3 *, /, div, mod, and
2 +, -, or
1 =, <>, >, <, <=, >=

 

Operácie and, or, not:

 

X Y X and Y X or Y not (X)
false false false false true
false true false true true
true false false true false
true true true true false

 


Typ Reťazec (string)

 

Jedná sa o údajový typ string, ktorý môže mať maximálne dĺžku 255 znakov to znamená že sa jedná o postupnosť znakov. Typ reťazec je deklarovaný  ak nieje deklarovaná jeho veľkosť má preddeklarovanú veľkosť 255 znakov. Reťazcové konštanty sú zapisované v apostrofoch.

 

Procedúry a funkcie STRING

Procedúry

Funkcie

Delete (reťazec, index1, počet vymazaných znakov); s:= ‘jano’  delete(s, 2, 2)s=’jo’
Insert (vklad. ret., ciel ret, pozícia 1 znaku vkladaného reťazca) s:=‘kola‘  Insert (‘by’,s,3) s=‘kobyla‘
Copy ([reťazec, z ktorého berieme],[index začiatku], [počet prvkov]); s:=copy(‘značka’, 3, 4)  s=‘ačka‘
Concat zlúči (sčíta) lubov. počet reťazcov s:= concat(‘ABC’, ‘CE’, ‘FGH’) s=‘ABCCEFGH‘s:= ‘abc’+’bcd’+’def’ s=’abcbcddef’
Val ([reťazec], [premenná do ktorej sa uloží číslo], [chybový kód]) Val(‘123’, i, code)i, code: integercode=0 všetko OK ak číslo je to číslo kde došlo k chybe
Length – určí dĺžku reťazca dlzka:= length(‘abc’)dlzka = 3
pos určí pozíciu podreťazca v reťazci s:=’ahoj pascal’;n:=pos(‘ ‘,s);v n bude hodnota 5
str premeni integer na string s:string ; str(123,s);

s=’123′

Namiesto ‘abc’ môže byť premenná typu string meno, priezvisko: string;  concat (meno, priezvisko)