1. Riešiteľská dokumentácia 1.1. Zadanie príkladu TERČ Programovanie I K tomuto všeobecnému zadaniu si každý číselné hodnoty parametrov vymysli. Zadanie obsahuje ž Počet medzikruží v terči M ž Bodové hodnoty jednotlivých medzikruží B[1] .. B[M] ž Celkový počet výstrelov V ž Celkový počet nastrieľaných bodov v terči Z Akými kombináciami zásahov sa dá dosiahnuť počet bodov Z? Určite všetky vektory P ( P[1] .. P[M] ) počtov zásahov do medzikružia. Vytvorte program, ktorý vypíše všetky možné riešenia a ich počet (0, 1, 2, …). Program vypracujte v jazyku Borland Pascal 7.0 pre DOS . K programu vypracujte ž riešiteľskú dokumentáciu (opis zvoleného riešenia, odôvodnenie voľby, definovanie náväznosti na iné entity) ž používateľskú dokumentáciu (návod na použitie, používateľskú príručku) Vypracované časti (komentovaný zdrojový program a súbory dokumentácie) odovzdajte na diskete alebo ich umiestnite na pevný disk počítača, ktorý používate na cvičeniach. Program nazvite Vaším priezviskom (bez diakritických znakov, najviac 8 znakov). 1.2. Analýza problému + postup Program TERČ by mal slúžiť na vyhľadanie všetkých možných kombinácii mnou zadaných počtov výstrelov do terča, ktorými sa dá nastrielať mnou zadaný počet bodov. Samozrejme pri danej úlohe som si musela zvoliť i počet medzikruží a bodové hodnoty týchto medzikruží. V samotnom úvode som príkazom uses crt oznámila programu, že budem využívať niektoré príkazy z jednotky (knižnice) crt (napr. ClrScr). Potom som si zadefinovala potrebné vstupné hodnoty, príkazom const (konštanty, ktoré sa počas celého programu nemenia). Počet medzikruží = 4, počet výstrelov = 4 a počet nastrieľaných bodov = 11. Samozrejme i bodové hodnoty v jednotlivých medzikružiach ( Kruh1 = 1, Kruh2 = 2, Kruh3 = 3 a Kruh4 = 4 ). Pri voľbe počtu nastrieľaných bodov si treba uvedomiť, že táto hodnota musí byť väčšia, alebo rovná súčinu počtu výstrelov a najnižšieho bodového ohodnotenia medzikružia a menšia, alebo rovná súčinu počtu výstrelov a najvyššieho bodového ohodnotenia medzikružia. Následne pomocou príkazu var som zadefinovala premenné, ktoré budem potrebovať na výpočet (počet riešení, zásah1, zásah2, zásah3, zásah4).Tieto premenné sa počas programu budú meniť. Príkaz ClrScr mi vymaže aktívne okno a umiestni kurzor do ľavého horného rohu obrazovky. Výstupný príkaz Writeln mi vypíše text na obrazovku, ale len v prípade ak text vpíšem do úvodzoviek. Ak by som napísala výstupný príkaz Writeln bez parametrov, tak mi vloží prázdny riadok. Príkaz ReadKey bez parametrov spôsobí, že program čaká na vstup z klávesnice, čiže čaká až kým užívateľ stlačí ľubovoľnú klávesu. Tento príkaz som použila z dôvodu, aby si užívateľ mohol prečítať výsledky. Celá myšlienka realizácie je založená na vnorených cykloch, čo znamená, že počet vnorení zodpovedá počtu mnou zadaných medzikruží, t.j. M = 4. Pomocou vnorených cyklov priradí premenným ZÁSAH1 až ZÁSAH4 hodnoty od 0 do 4 a to tak, že najprv všetkým priradí 0 a postupne zvyšuje hodnotu až po počet výstrelov, čím vytvorí všetky kombinácie nehľadiac na počet výstrelov a počet bodov. Vo vnútri vnorených cyklov overujem, či sú splnené 2 podmienky a to pomocou neúplného podmieneného príkazu If. ž Prvá podmienka – totožnosť (rovnosť)mnou zadaného počtu výstrelov. ž Druhá podmienka – totožnosť (rovnosť) počtu dosiahnutých bodov. Ak sú obe podmienky splnené, tak zvýši počítadlo riešení o 1 (ktoré som si na začiatku vynulovala) a vypíše aktuálne riešenie. 2. Používateľská dokumentácia Program je naprogramovaný v jazyku Borland Pascal 7.0 pre DOS. Otvorenie - File -> Open ( alebo klávesa F3) -> vybrať súbor NAME.PAS (nechcem zverejnovat meno) Spustenie - Run -> Run ( alebo klávesa Ctrl+F9). Následne program zrealizuje požadovaný výpočet a na obrazovku vypíše výsledky podľa zadania úlohy. 3. Zoznam použitej literatúry Toto si uz kazdy doplni podla potreby