nika.blog.matfyz.sk

Veronika Dropčová
veronika.dropcova(at)gmail.com

05 – splitujeme string do dvojrozmerného poľa

Na tomto seminári si zjednodušíme zadávanie prvkov do dvojrozmerného poľa napísaním krátkeho úseku kódu. Ten využíva funkcie a procedúry k stringom, ktoré sú už v Lazaruse predpripravené.

 

Funkcia copy(čo, od_ktorého_indexu, koľko_znakov) má vo výsledku tiež string, napríklad ak máme:

 

s:=’slovicko‘;

s:=copy(s,3,6); //vo výsledku bude s = ‚ovicko‘;

s:=copy(s,1,3); //vo výsledku bude s = ‚slo‘;

 

Procedúra delete(z_čoho,od_ktorého_indexu,koľko_znakov) zmení zadaný string tak, že z neho vymaže požadovaný počet znakov, napríklad ak máme:

 

s:=’slovicko‘;

delete(s,3,2); //vo výsledku bude s = ‚slicko‘;

delete(s,1,3); //vo výsledku bude s = ‚vicko‘;

 

1. Napíšte program, ktorý bude mať dve tlačidlá:

 

Prvé – read and write a matrix – načíta maticu zadanú v meme, ktorá sa bude skladať z deviatich cifier (3×3) bez medzier. Vyzerať bude napríklad takto:

111

222

333

Po načítaní ju vypíše do image-u.

 

Druhé tlačidlo – draw image – vykreslí obrázok zložený z deviatich štvorcov (3×3), pričom každý štvorec bude mať takú farbu, aká mu bola zadaná v matici, ktorú ste načítali. Napr. ak v matici na pozícii [2,2] bola cifra „3“, prostredný štvorec bude mať červenú farbu (výber farieb pre jednotlivé cifry nechávam na vás).

 

2. V obchode je na pulte v 3 radoch položených 12 košíkov, v každom rade sú teda 4 košíky s ovocím.

Napíšte program, ktorý vykreslí týchto 12 košíkov (ako kruhy), vygeneruje počet kusov ovocia v každom z nich (0-15ks) a vypíše ho do košíka.

Program pomôže obchodníkom zistiť, kam sa zákazníci najčastejšie dívajú (do ktorého radu). Ak v niektorom košíku nebude žiadne ovocie, košík vykreslí zelenou farbou (zákazníci najviac siahajú po tomto košíku).

Ak v niektorom košíku bude 15ks ovocia, košík vykreslí červenou farbou (po tomto košíku zákazníci siahajú najmenej).

Zároveň program spočíta celkový počet kusov ovocia v každom rade a vypíše, ktorý rad má najmenej kusov ovocia (zákazníci berú najviac z neho) a ktorý má najviac kusov ovocia (zákazníci ho „vidia najmenej“).

 

 

Domáca úloha, deadline 4.11.2015 o 22,00

 

Stiahnite si ukážkový exe súbor. Naprogramujte program, ktorý z mema načíta maticu celých čísel 3×5 (3 stĺpce, 5 riadkov). Po načítaní ju vypíše do image-u. (1 bod)

 

Ďalej doprogramujte tlačidlo „draw“. Po kliknutí naň sa vykreslí 3×5 štvorcov (veľkosť strany napr. 50), pričom ich farba bude zodpovedať číslu z matice, aké reprezentujú: ak je číslo párne, štvorec bude červený, inak bude modrý. (1,5 bodov)

 

Ďalej doprogramujte klikanie do image-u. Keď kliknem na hociktorý štvorec, prefarbí sa na zeleno (na jeho mieste sa vykreslí nový štvorec, ktorý bude mať zelenú farbu). (0,5 bodov)

 

Tip: aby ste nemuseli zakaždým vpisovať nejaké čísla do mema, vpíšte napr. tento príkaz:

memo1.Text:=’212’+#13#10+’121’+#13#10+’154’+#13#10+’167’+#13#10+’222′; (pozor – nestačí skopírovať – skopíruje vám to ako zlé apostrofy…)

do FormCreate-u (kamkoľvek vo forme dvojkliknem a vygeneruje sa mi procedúra FormCreate, kam to vpíšem).

BONUS (za 1 bod):

Do predchádzajúcej úlohy doprogramujte to, aby ak kliknem na niektorý nakreslený štvorec ľavým tlačidlom myši, nech sa tento štvorec prefarbí na zeleno; a ak naň kliknem pravým tlačidlom, nech sa prefarbí na žlto.

 

 

Pridaj komentár

Vaša e-mailová adresa nebude zverejnená. Vyžadované polia sú označené *