Ver. 1.0 Beta, Nie masz kompilatora? Teraz mo¿esz pisaæ skrypty ONLINE! Wersja podstawowa -nie zawiera wszystkich poleceñ Pascala. S³u¿y do nauki podstaw

Pascal

Choinka z gwiazdek


Najczê¶ciej w szko³ach nauczyciele zadaj± problem rysowania choinki z gwiazdek. Chodzi o to by uzyskaæ rysunek w trybie tekstowym.


Ile wierszy? 5

   *
  ***
 *****
*******
*********


Choinka z gwiazdek z warunkiem if


program choinka;
var i, j, w : Integer;
begin
 Write('Ile wierszy? ');
 ReadLn(w);

 for i:=1 to w do
 begin
   for j:=1 to w + i - 1 do
   if j >= w - (i - 1) then
     Write('*')
   else
     Write(' ');

   WriteLn;
 end;
end.

Choinka z gwiazdek z samymi pêtlami


program choinka;
var i, j, w : Integer;
begin
 Write('Ile wierszy? ');
 ReadLn(w);

 for i:=1 to w do
 begin
   for j:=1 to w - i do Write(' ');
   for j:=1 to i * 2 - 1 do Write('*');
   WriteLn;
 end;
end.

Takich sposóbów rozwi±zania mo¿e byæ bardzo wiele. Chodzi o to jak matematycznie zapisaæ rozwi±zanie zadania przy pomocy zmiennych. Jak samemu znajdowaæ takie matematyczne rozwi±zania?


Najpierw tworzymy pêtlê odpowiedzialn± za rysowanie kolejnych linii choinki. Zaczynamy od czubka, koñczymy na dole. Czyli ta pêtla musi byæ od 1 do tylu, ile u¿ytkownik wpisa³ wierszy. Przyjmijmy, ¿e od 1 do "w", gdzie w jest zmienn±, wczytan± z klawiatury. Po ka¿dorazowym narysowaniu linii, trzeba przenie¶æ kursor do linii nastêpnej za pomoc± WriteLn. Ale jeszcze przed przej¶ciem do kolejnej linii trzeba przecie¿ narysowaæ ig³y w poziomie.


Z tego wynika, ¿e wewn±trz tej pêtli musi byæ jeszcze inna, która narysuje ig³y choinki. Jest to o tyle utrudnienie, ¿e dla choinki, która ma 5 wierszy najpierw trzeba narysowaæ 4 spacje i jedn± gwiazdkê, potem 3 spacje i 3 gwiazdki, potem 2 spacje i 5 gwiazdek... itd.


£atwo zauwa¿yæ, ¿e liczba spacji z ka¿dym wierszem maleje o 1. Na samej górze bêdzie tyle spacji co wierszy choinki – 1. Znowu liczba gwiazdek ro¶nie od 1, zwiêkszaj±c siê w ka¿dym rzêdzie o 2 gwiazdki. Wynika z tego, ¿e:



Dla choinki o wysoko¶ci zapisanej w zmiennej "w"


W pêtli od 1 do w rysujemy:
 1 rz±d: w - 1 spacji, 1 gwiazdka
 2 rz±d: w – 2 spacji, 3 gwiazdki
 3 rz±d: w – 3 spacji, 5 gwiazdek
"w"rz±d: w – w spacji, w * 2 – 1 gwiazdek

Czyli w jednej pêtli musz± byæ dwie nowe pêtle, z których jedna rysuje spacje, a druga gwiazdki. Teraz sk±d bêdzie wiadomo, ¿e gdy jeste¶my w pierwszym rzêdzie, mamy od w odj±æ 1 i narysowaæ jedn± gwiazdkê, a w drugim rzêdzie od w odj±æ 2 i narysowaæ 3 gwiazdki?


W³a¶nie do tego s³u¿y zmienna skojarzona z pêtl±! Pisali¶my pêtlê dla zmiennej i oraz j. Czyli w pierwszym rzêdzie i bêdzie równe 1, w drugim i=2, w trzecim i=3, itd. To nam wystarczy.


Trzeba wiêc napisaæ pêtlê ze spacjami od 1 do w – i, a pêtlê z gwiazdkami od 1 do i * 2 - 1.

 

Strona korzysta z plików cookie w celu ¶wiadczenia us³ug Google (reklamy, statytyki) oraz Facebook. Je¶li chcesz zablokowaæ pliki cookies wy³acz je w swojej przegl±darce. Potrzebujesz pomocy? kliknij