31.Prednaska/Cvicenie0: Rozdiel medzi revíziami

Z Pascal
Prejsť na: navigácia, hľadanie
 
(3 intermediate revisions by the same user not shown)
Riadok 17: Riadok 17:
 
|}
 
|}
 
* procedúra zaradí novú položku na správne miesto do utriedeného poľa
 
* procedúra zaradí novú položku na správne miesto do utriedeného poľa
 +
 +
2. napíšte funkciu
 +
{{Prog}}
 +
type
 +
  TCas = record Hod, Min: Integer; end;    ''// hodiny, minúty''
 +
 
 +
function Vzostupne(Pole: array of TCas): Boolean;
 +
|}
 +
* vráti '''True''', keď sú prvky poľa vzostupne usporiadané
  
  
Riadok 34: Riadok 43:
 
:* súradnice dvoch spojených vrcholov (x1, Y1, x2, y2), prípadne k tomu aj váha
 
:* súradnice dvoch spojených vrcholov (x1, Y1, x2, y2), prípadne k tomu aj váha
 
* prečítali sme neorientovaný graf ale niektoré hrany sú pritom len jedným smerom - treba doplniť
 
* prečítali sme neorientovaný graf ale niektoré hrany sú pritom len jedným smerom - treba doplniť
* vykresliť graf
+
* vykresliť graf (metódy napr. KresliVrchol, KresliHranu) - aj ohodnotený graf
 
* prevod grafu z jednej do druhej reprezentácie
 
* prevod grafu z jednej do druhej reprezentácie
  
Riadok 41: Riadok 50:
 
=== Domáca úloha ===
 
=== Domáca úloha ===
  
1. naprogramovať  
+
1. naprogramovať zadávanie vrcholov a hrán grafu klikaním do grafickej plochy (Image1MouseDown)
* ...
+
* kliknutie na prázdne miesto plochy pridá nový vrchol (nakreslí krúžok)
 +
* kliknutie na existujúci vrchol ho zafarbí
 +
* kliknutie na druhý ešte nezafarbený vrchol ho spojí so zafarbeným (ak už bolo spojenie, tak rozpojí)
 +
* kliknutie na zafarbený vrchol ho odfarbí
 +
 
 +
2. pre nakreslený graf umožní ťahanie vrcholov (Image1MouseDown, Image1MouseMove, Image1MouseUp)
 +
* pri presúvaní vrcholu prekresľovať celý graf

Aktuálna revízia z 06:53, 5. apríl 2013

31. Cvičenie


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


Rozcvička

1. napíšte podprogram

type
  TCas = record Hod, Min: Integer; end;    // hodiny, minúty
  TPole = array of TCas;
 
procedure Vloz(var Pole: TPole; Hod, Min: Integer);
  • procedúra zaradí novú položku na správne miesto do utriedeného poľa

2. napíšte funkciu

type
  TCas = record Hod, Min: Integer; end;    // hodiny, minúty
 
function Vzostupne(Pole: array of TCas): Boolean;
  • vráti True, keď sú prvky poľa vzostupne usporiadané


Cvičenie

  • zadaný graf ako obrázok na tabuli zapísať do rôznych reprezentácií - orientovaný/neorientovaný, neohodnotený/ohodnotený - najprv na tabuli
  • pole množín
  • matica susedností
  • pole polí susedov
  • graf zapísať do textového súboru a potom prečítať do rôznych reprezentácií, v súbore sú v každom riadku
  • dvojice čísel spojených vrcholov
  • číslo vrcholu, súradnice, zoznam čísel susedov
  • buď vrchol (meno a súradnice) alebo hrana (dve mená + váha)
  • súradnice dvoch spojených vrcholov (x1, Y1, x2, y2), prípadne k tomu aj váha
  • prečítali sme neorientovaný graf ale niektoré hrany sú pritom len jedným smerom - treba doplniť
  • vykresliť graf (metódy napr. KresliVrchol, KresliHranu) - aj ohodnotený graf
  • prevod grafu z jednej do druhej reprezentácie


Domáca úloha

1. naprogramovať zadávanie vrcholov a hrán grafu klikaním do grafickej plochy (Image1MouseDown)

  • kliknutie na prázdne miesto plochy pridá nový vrchol (nakreslí krúžok)
  • kliknutie na existujúci vrchol ho zafarbí
  • kliknutie na druhý ešte nezafarbený vrchol ho spojí so zafarbeným (ak už bolo spojenie, tak rozpojí)
  • kliknutie na zafarbený vrchol ho odfarbí

2. pre nakreslený graf umožní ťahanie vrcholov (Image1MouseDown, Image1MouseMove, Image1MouseUp)

  • pri presúvaní vrcholu prekresľovať celý graf