33.Prednaska/Cvicenie0

Z Pascal
Prejsť na: navigácia, hľadanie

33. Cvičenie


< 33.Prednáška | riešené úlohy


Rozcvička

1. napíšte konštruktor TGraf2.Create(...):

type
  TGraf1 = class
    G: array [1..N,1..N] of Boolean;
  end;
 
type
  TGraf2 = class
    G: array [1..N] of set of 1..N;
    constructor Create(Graf1: TGraf1);
  end;
  • druhý graf s reprezentáciou pole množín bude kópiou grafu s reprezentáciou maticou susedností

2. skoro to isté, ale opačne: constructor TGraf1.Create(Graf2: TGraf2);


Cvičenie

backtracking - zatiaľ bez grafov

  • z daného slova vyrobiť všetky permutácie písmen (písmená v slove sú rôzne)
procedure Generuj(const S, Z: string);
var
  I: Integer;
begin
  if Z =  then
    WriteLn(S)
  else
    for I := 1 to Length(Z) do
      Generuj(S + Z[I], Copy(Z, 1, I - 1) + Copy(Z, I + 1, MaxInt));
end;

begin
  Generuj(, 'abc');
  ReadLn;
end.
  • generovanie postupnosti číslic - všetky 6-ciferné len z číslic {2,3,5}
  • generovanie 3-písmenových slov (napr. z možiny {a, b, ..., z})
  • generovanie slov dĺžky 5: spoluhláska + samohláska + spoluhláska + samohláska + spoluhláska
  • spoluhláska z množiny {k, m, p}
  • samohláska z množiny {a, e, o}
  • vypísať všetky dĺžky 5 alebo aj kratšie
  • magické štvorce (všetky riešenia, alebo stačí len 1; v niektorých políčkach už môžu byť zadané hodnoty):
  • v každom riadku a stĺpci práve raz 1..N
  • 1..N*N: v každom riadku a stĺpci rovnaký súčet
  • koľkými spôsobmi sa dá prejsť v sieti MxN z ľavého horného do pravého dolného rohu
  • riešenia vypisovať tak, že v každom políčku je poradové číslo v ceste, nenavštívené budú 0


Domáca úloha

1. štvorcová plocha má MxN políčok, niektoré z nich sú už obsadené (prečítať z textového súboru)

  • hľadáme ľubovoľné pokrytie tejto plochy triominami
  • triomina sú zložené z troch štvorčekov - navzájom sa dotýkajú stranami - neležia v jednom rade
  • počet voľných políčok v ploche je násobok 3
  • napr. pre zadanie (x sú obsadené) je takéto pokrytie triminami (a..e)
..x...    aaxcee
......    abccde
..x..x    bbxddx