Test pre fanatikov z Programovania 1i, 1MI, 1FI 16.02.1999  

  1. Napíšte metódy triedy TMnozina, ktorá reprezentuje dátový typ množina reálnych čísel pomocou jednosmerného spájaného zoznamu. Prvky zoznamu nemusíte udržiavať usporiadané. Zoznam je prístupný pomocu dvoch smerníkov: na začiatok zoznamu a na koniec (posledný prvok) zoznamu. Použite nasledujúce deklarácie:
type prvok = real;
     zoznam = ^vrchol;
     vrchol = record info:prvok; next:zoznam end;
     TMnozina = object
       z,k:zoznam;                        { začiatok a koniec zoznamu }
       procedure init;
       procedure pridaj(p:prvok);         { ak ešte v množine neex. }
       procedure vyhod(p:prvok);          { ak je prvkom množiny }
       function jeprvok(p:prvok):boolean; { zistí, či je prvkom množiny }
     end;
  1. Všeobecný strom reprezentujeme pomocou binárneho stromu tak, že ľavý smerník každého vrchola je smerník na prvého syna tohto vrchola a pravý smerník je smerník na nasledujúceho brata (vrchol na tej istej úrovni, ktorý má toho istého otca). Napíšte funkciu arnost, ktorá zistí árnosť stromu (maximum počtu synov všetkých vrcholov). Všeobecný strom je definovaný nasledovnými typmi:
type prvok = integer;
     strom = ^vrchol;
     vrchol = record info:prvok; syn,brat:strom end;
     
  1. Neorientovaný graf je popísaný tabuľkou množín susedov:
type vrcholy=1..N;
     graf=array[vrcholy] of set of vrcholy;
    Napíšte funkciu MaxKomp, ktorá zistí počet vrcholov najväčšieho komponentu. Komponent je taký súvislý podgraf, ktorého žiaden vrchol nemá spojenie s ostatnými vrcholmi grafu. Funkcia má jeden parameter typu graf.
     
     
  1. Napíšte program, ktorý do dvojrozmerného celočíselného poľa P rozmerov NxN doplní chýbajúce čísla (zatiaľ sú reprezentované nulovou hodnotou) tak, aby vznikol magický štvorec - súčty prvkov po riadkoch aj po stĺpcoch sú tá istá konštanta K.

  2. Pole môže obsahovať len čísla z intervalu 1..N (v riadku alebo v stĺpci sa číslo môže nachádzať aj viackrát). Úlohu riešte metódou prehľadávania so spätným návratom (backtracking). Ak neexistuje žiadne riešenie, program vypíše správu. Stačí nájsť jediné riešenie.
naspäť