Mam problem, mam do narysowania 6 wersji trójkątów za pomocą gwiazdek z klawiatury...
2 pierwsze poszły łatwo 3 i 4 stanowią problem...
Mam narysować trójkąt dla dowolnego n z zakresu 1-15 gdzie n to ilośc lini poziomych...
Program napisałem na podstawie przykładu z rysowaniem rombu przedstawionego i wyjaśnionego przez pana furious programming - za co bardzo dziękuję.
Niestety nie działa prawidłowo... Rysuje trójkąt ale w momencie przekręcenia licznika na wartość 0 lub ujemną przestaje rysować mi spacje - oczywiste
Nie wiem jak rozwiązać ten problem :(
// *
// ***
//*****
program Zadanie_c;
Var
n:byte;
menu:byte;
gwiazdki:byte;
linia:byte;
Label
rst;
begin
rst:
gwiazdki:=1;
linia:=1;
WriteLn('Podaj ilosc poziomow trojkata (zakres 1-15)');
ReadLn(n);
if (n>=1) and (n<=15) then
begin
Write('Rysuje trojkat dla n rownego ');
WriteLn(n);
WriteLn('');
while linia <= n do
begin
WriteLn(StringOfChar(' ', (n - gwiazdki) div 2), StringOfChar('*', gwiazdki)); //tu mam problem n-gwiazdki - tak przynajmniej myślę...
gwiazdki += 2;
linia += 1;
end;
WriteLn('');
WriteLn ('1-uruchom ponownie');
WriteLn ('2-zakoncz');
ReadLn(menu);
if (menu=1) then
begin
goto rst;
end
else
begin
end
end
ELSE
begin
WriteLn('Podano wartosc z poza zakresu!');
ReadLn();
goto rst;
end
end.
Efekt niestety wygląda tak:
Bardzo proszę o podpowiedz jak wyliczać ilość spacji w kolejnych liniach, najprościej jak się da ;)