Turbo Pascal - Priprava na Maturitu z Informatiky B
POLIA
Je to štrukturovaný údajový typ - pozostáva z pevného počtu zložiek – indexované premenné Indexované premenné : Podľa počtu indexov delíme na 1: jednorozmerné polia 2: dvojrozmerné polia 3: trojrozmerné polia ... A[i] Kde A je meno premennej a i je index – jednorozmerná premenná B[i,j] Kde B je meno premennej a i,j sú indexy – dvojrozmerná premenná -S indexovanými premennými pracujeme rovnako ako s jednoduchými premennými, to znamená že ich vypisujeme, priraďujeme hodnoty, načítavame, atď..
Skupina premenných : B[1] B[2] B[3] 4 prvkové pole s názvom premennej B, ktoré je jednorozmerné B[4] -ak chcem používať polia ako údajový typ, najprv ho musím definovať v tvare var A:array[n..n] of údajový typ (real, integer,...) -za n môžem dosadiť hocijakú inú hodnotu, za údajový typ môžem dosadiť hocijaký údajový typ z tých, ktoré Pascal definuje
Príklady
1.Načítaj 7-prvkové pole s názvom POLE a) vypíš 5. a6. prvok b) všetky prvky c) všetky prvky v opačnom smere 2.Vygeneruj 20 náhodných čísel a ulož ich do poľa a) zisti počet párnych čísel b) zisti najväčšie číslo c) zisti súčet čísel d) zisti aritmetický priemer čísel
1. program polia; uses crt; var POLE:array[1..7] of integer; i:integer; begin; clrscr; writeln ('Program produced by M*O*R*O*S*O'); writeln(''); for i:=1 to 7 do begin writeln (''); writeln ('Zadaj cislo ako vypln tohto pola'); writeln(''); readln (POLE[i]); end; writeln(''); writeln('************************* ******************************'); writeln(''); writeln('Prvky poli od 1 do 7 su:' ); writeln(''); for i:=1 to 7 do write (POLE[i],' '); writeln(''); writeln('************************* ******************************'); writeln(''); writeln(''); writeln('Prvky poli od 7 do 1 su:'); writeln (''); for i:=7 downto 1 do write(POLE[i],' '); writeln(''); writeln('************************* ******************************'); writeln(''); write ('Prvky pola 5 a 6 su ', POLE[5],' ' , POLE[6]); repeat until keypressed; end.
2. program homework_polia; uses crt; var POLE:array[1..20] of integer; a,b,max,x,sucet,ppc,c:integer; arit:real; begin; clrscr; randomize; for a:=1 to 20 do begin POLE[a]:=random(20); {nahodne generovanie cisel} end; max:=POLE[a]; {maximalne nahodne cislo} for a:=1 to 20 do begin if max ako 30
Procedúry s lokálnymi objektami
Lokálna premenná platí iba v procedúre, ostatné časti programu ju nerozlišujú. Aj táto procedúra komunikuje s hlavným programom a to prostredníctvom globálnych premenných - vnášanie údajov, resp. vynášanie údajov. - lokálne objekty treba zaviesť (definovať, deklarovať) v deklaračnej časti procedúry. procedure log; var a,i:integer; begin; Telo procedúry end;
Príklady
1: Napíš program na výpočet súčtu čísel: a) n+1, n+2, n+3.....n+5 b) n+1, n+2, n+3.....n+k Na výrobu postupne ukladaných čísel použi procedúru a skús do procedúry umiestniť lokálnu premennú, ktorá pomôže pri výpočtoch.
FUNKCIE
Funkcia je druh podprogramu a na rozdiel od procedúry nám dáva iba jednu výslednú hodnotu. Deklarácia funkcie pozostáva z hlavičky a tela funkcie. Telo by malo obsahovať aspoň jeden priraďovací príkaz pre premennú, ktorá má rovnaký názov ako funkcia. Funkcia môže pracovať aj lokálnymi aj s globálnymi objektami. Funktion m(s1...sn: údajový typ): t- údajový typ výsledku (integer, real...);
begin; Telo funkcie end; m – meno funkcie t – údajový typ výsledku s1,sn – špecifikácia premenných -aktivizáciu funkcie vyvoláme zadaním jej mena v programe. funktion obsah_trojuholnika(b,v : real) : real; begin; obsah_trojuholnika:=b*v/2 end; p:=obsah (b,v)- funkciu treba načítať do novej premennej, aby sa dala vyvolať
Príklady
1. Napíšte program, ktorý načíta stranu a výšku trojuholníka a vypočíta jeho obsah. Pre tento príklad použi funkcie.
Grafika
V Turbo Pascale nie je grafika priamou súčasťou systému. Príkazy na kreslenie, zmenu farieb atď. sú uložené v unite graph. Okrem toho treba zvoliť aj vhodný driver (ovládač). Driver je “program” (časť programu), ktorá sa natiahne do pamäti, zostane v nej rezidentná, a potom umožňuje zobrazovanie bodov na obrazovke (resp. “povie”, kam treba na obrazovke nakresliť bod). Drivery sa v Turbo pascale používajú kvôli tomu, že v praxi boli (resp. občas aj sú) rôzne grafické karty (čipy - alebo skôr dosky), vďaka ktorým je možné zobrazovanie na PC vôbec.
Použitie driveru závisí od schopností grafickej karty počítača. Všeobecne platí, že pri schopnejšej karte (karte vyššej úrovne) je možné použiť ovládač karty nižšej kategórie. Prvá a dôležitá vec, bez ktorej sa nepohneme, je hneď na začiatku programu - treba prebudiť (inicializovať) unit graph, ktorý (ako sme už spomínali) obsahuje všetky grafické príkazy. V menu voľbou Options - Directories je potrebné nastaviť cestu pre súbory EGAVGA.BGI (driver) a GRAPH.TPU (knižnica procedúr a funkcií), ktoré sú potrebné pre prácu v grafickom režime.
Každý elementárny bod obrazovky (PIXEL) je určený súradnicami X,Y. Fyzické súradnice obrazovky sú závislé od grafickej karty počítača a veľkosti monitora. Základný zápis pre spustenie grafického režimu: uses graph; var gd, gm: integer; begin; gd: = Detect; InitGraph (gd, gm, ‘cesta, napr. D:\BP\bgi’); Prvý riadok uloží do premennej gd číslo (konštantu 0) driveru na používanú grafickú kartu. Je to automatické detekovanie, automaticky sa určí najlepší možný.
V prípade, že chceme použiť konkrétny driver nižšej úrovne, priradíme gd jeho číslo (1-10). Do gm sa po použití funkcie Detect vloží grafický mód zvoleného driveru. Ten podrobnejšie hovorí o móde. Driver (pre egavga.bgi - EGA alebo VGA karta) možno zvoliť pri móde 1 ako 320 x 200 x 256 farieb, pri móde