English
English
Slovensky
Slovensky
Česky
Česky
Šarišsky
Šarišsky
Category: Source in Pascal

Program: Terc.pasTerclight.pasTerc2.pas
File exe: Terc.exeTerc2.exe
Example: Terc.txtTerc2.txt
Program zistí akými kombináciami zásahov do terča sa dá dosiahnuť požadovaný počet bodov Z. Určí všetky vektory P ( P[1] .. P[M] ) a počet zásahov do medzikružia. Nakoniec vypíše všetky možné riešenia a ich počet (0, 1, 2, …). Podrobný postup riešenia nájdete v Terc.txt.

Ako všade aj tu platí že sa dá naprogramovať jednodušia verzia TercLight.pas ktorá ale nieje taká výkonná.

Nakoniec ešte uverejňujem verziu Terc2.pas od prispievateľky s nickom Quetocek. Vďaka nej je k dispozícii aj dokumentácia.
Views: 674x


Postup riešenia:

- Znulujem vektor výstrelov vv a na prvú pozíciu dám celkový počet nastrieľaných bodov z.
- V cykle postupne generujem jednotlivé kombinácie výstrelov funkciou DalsiVektor.
- Po vygenerovaní zistím ži počet nastrieľaných bodov je požadovaný (premená z)
- Ak je to potrebný počet bodov, vypíšem tento vektor na monitor a zväčším premenú poc.
- Nakoniec vypíšem premenú poc čo je celkový počet vektorov. 

Popis funkcie DalsiVektor:
Funkcia sa nezaoberá posledným číslom vektora. Toto číslo vždy dopočíta.
Takže najprv nájde posledné číslo ktoré je nenulové. Od tohoto čísla odpočíta 1 a 
do ďalšieho čísla dá všetky ostatné výstrely ktoré mu tak ostali.

Príklad pred:
4 1 0 0

Príklad po:
3 2 0 0

Takto postupuje až pokial sa nestane že na prvej pozícii je nula a vtedy končí, 
pretože vyčerpal všetky možnosti.

[Save] [Print] [Send e-mail]