nika.blog.matfyz.sk

Veronika Dropčová
veronika.dropcova(at)gmail.com

10 – viac príkazov v tele cyklu

Predstavte si, že teraz chcete takýto program: na jedno kliknutie sa vykreslí naraz 100 úsečiek (lomená čiara tvorená 100 úsečkami), ale každá z tých úsečiek budem mať náhodnú hrúbku. Môžeme to skúsiť napísať takto:

var
  I: Integer;
begin
  for I := 1 to 100 do
    Image1.Canvas.Pen.Width := Random(10) + 1;
  Image1.Canvas.LineTo(Random(350), Random(250));
end;

ale to nebude fungovať správne. Prečo? Program najskôr 100-krát nastaví rôznu hrúbku pera a potom iba jediný raz (keď sa cyklus skončí) vykreslí úsečku.

 

Zjavne teda potrebujeme niečo, čím zabezpečíme, aby sa vykonávali oba príkazy naraz. To sa nám podarí tak, že vytvoríme „blok príkazov“. Na začiatku toho bloku pridáme slovo begin a na koniec tohto bloku pridáme slovo end;. Program teda bude vyzerať takto:

var
  I: Integer;
begin
  for I := 1 to 100 do
   begin
    Image1.Canvas.Pen.Width := Random(10) + 1;
    Image1.Canvas.LineTo(Random(350), Random(250));
  end;
end;

 

1. úloha

Upravte ukážkový program tak, aby najskôr raz vygeneroval náhodnú hrúbku pera a potom pre každú z úsečiek nastavil náhodnú modrú farbu.

 

2. úloha

Napíšte program, ktorý 25-krát na náhodných pozíciách vypíše modrý text „Zima“ a červený text „Leto“.

 

3. úloha

Napíšte program, ktorý na náhodné pozície vypíše 100 textov „Ahoj“, pričom sa budú striedať 4 farby podkladu textu, napr. červená, zelená, žltá a modrá.

 

4. úloha

Napíšte program, ktorý nakreslí 1000 náhodných tenkých čiar, pričom im bude náhodne nastavovať aj RGB farbu, kde červená zložka bude 0, zelená náhodne od 128 do 255 a modrá tiež náhodne od 128 do 255.

 

Domáca úloha, deadline pre:

  • 3A1: 13.12.2015 o 22,00

  • 3A2, 3B1: 15.12.2015 o 22,00

  • 3B2: 21.12.2015 o 22,00

Napíšte program, ktorý vykreslí 199 kružníc, ktoré budú mať náhodne zelenú farbu, budú na náhodnej pozícii a ich polomer bude náhodný z intervalu <20;60>.