Strukturované typy proměnných v programovacím jazyce Pascal - 2.hodina Orbis pictus 21. století Strukturované typy proměnných v programovacím jazyce Pascal - 2.hodina OB21-OP-EL-KON-DOL-M-4-005A
Další příklad použití Budeme tvořit program, ve kterém se nám bude po obrazovce pohybovat nezávisle několik textů. Abychom mohli s texty pohybovat nezávisle, musíme mít pro každý z nich samostatně proměnné, určující polohu a směr pohybu.
1. část programu: deklarace Program texty; Uses Crt; Type BOD = record {deklarace bodu} x,y: integer; {2 souřadnice} smerx,smery: boolean; {směry pohybu} end; RADEK = record {deklarace poh. řádku} Pocatek: BOD; {skládá se z poč. podu} Obsah: string; {a zobrazovaného textu} var TEXTY: array[1..10] of RADEK; {pole pro 10 poh.textu}
2. část programu: inicializace procedure INIT; {procedura, která provede inicializaci} var x: byte; {pomocné proměnné} s: string; begin for x:=1 to 10 do {cyklus od 1 do 10, pro nastaveni všech textů} {náhodný výběr směru pohybu pro osu X (pro Y samost)} if random(10)>5 then TEXTY[x].POCATEK.SMERX:=true else TEXTY[x].POCATEK.SMERX:=false; {náhodné zvolení výchozí X souřadnice (pro Y samost)} TEXTY[x].POCATEK.X:=random(70); {co se bude zobrazovat – Text cislo: 1} str(x,s); {převedení čísla X do textové podoby} TEXTY[x].OBSAH:='Text cislo: '+s; end;
3. část programu: zobrazení textů procedure VYPIS; {procedura, která vypíše texty na obrazovku} var x: byte; {pomocná proměnná} begin for x:=1 to 10 do {cyklus od 1 do 10, pro zobr. všech textů} {nastavení souřadnic pro výpis textu} gotoxy(TEXTY[x].POCATEK.X,TEXTY[x].POCATEK.Y); {vypsání textu na obrazovku} write(TEXTY[x].OBSAH); end;
4. část programu: posun textu procedure PREPOCET(var TEXT: RADEK); {procedura, která přepočítá souřadnice textu} begin with TEXT.POCATEK do {vytknutí tohoto textu} {přepočet (posun) bodu x (totéž i pro Y)} if SMERX then X:=X+1 else X:=X-1; {určení změny směru pohybu pro bod X (opět opak.pro Y} if X<2 then SMERX:=true; if X>70 then SMERX:=false; end;
5. část programu: posun textů procedure POSUN; {procedura, která posune texty} var x: byte; {pomocná proměnná} begin for x:=1 to 10 do {cyklus od 1 do 10, pro posun. všech textů} {přepočítání souřadnic pro jeden text} PREPOCET(TEXTY[x]); end;
6. část programu: tělo programu begin randomize; {spuštění generátoru náhodných čísel} clrscr; {smazání obratovky} INIT; {inicializace proměnných} repeat VYPIS; {zobrazení textů na příslušných pozicích} POSUN; {přepočet pozic textů} Delay(100); {pauza – cca 1sec.} Clrscr; {smazání obratovky} until keypressed; {opakovat, dokud není stiknuta klávesa} end.