Program rysujący figury z gwiazdek

0

Witajcie,potrzebuje napisać program w pascalu - dokładnie tak:

zrzut.jpeg

Póki co udało mi się napisać takie coś-
lecz niestety gdy podaje n np.6 to wypisuje 12 odjać ten 1 rząd czyli 11.

Jak zrobić aby dla n np.6 wypisywało 6 rzędów?

program L4Z1A;

var
  i,j,n:integer;
  czy:string;
begin
repeat
writeln ('Podaj liczbe z zakresu od 1 do 15.');
readln (n);

if (n<1) or (n>15)then
repeat
   writeln ('Podales liczbe spoza zakresu, podaj jeszcze raz.');
    readln (n);
until (n>=0) and (n<=16);


 for i:=1 to n do
  begin
   for j:=1 to i do
    write ('*');
   writeln;
  end;
   for i:=n-1 downto 1 do
  begin
   for j:=1 to i do
    write ('*');
   writeln;
  end;

 writeln ('Czy chcesz powtorzyc ?');
 writeln ('Jezeli tak to wcisnij Enter, jezeli nie to wpisz nie.');
 readln (czy);
until czy='nie';

readln;
end.
0

Naucz się formatować kod i wstawiać go na forum. Mniej więcej tak a w drugą stronę (f) zrób sobie sam.

var
  i,j,n:integer;
  czy:string;
  x: Integer;
begin
  repeat
    writeln('Podaj liczbe z zakresu od 1 do 15.');
    readln (n);
    while (n < 1) and (n > 15) do
    begin
      writeln('Podales liczbe spoza zakresu, podaj jeszcze raz.');
      readln(n);
    end;

    x:= 0;
    if (n mod 2) > 0 then
      x:= 1;

    for i:=1 to (n div 2) + x do
    begin
     for j:=1 to i do
       write('*');
     writeln;
    end;
    for i:=(n - x) div 2 downto 1 do
    begin
     for j:=1 to i do
       write ('*');
     writeln;
    end;

    writeln('Czy chcesz powtorzyc ?');
    writeln('Jezeli tak to wcisnij Enter, jezeli nie to wpisz nie.');
    readln(czy);
  until czy = 'nie';
  readln;
end.
1

Ten zapis:

x:= 0;
if (n mod 2) > 0 then
  x:= 1;

można skrócić do takiej postaci:

x := n mod 2;

Reszta raczej w porządku - pytacz jest początkujący, więc nie ma co np. zamieniać div 2 na shr 1 itd :]

0

Dziękuje za pomoc.
A czy jesteście mi w stanie pomóc jeszcze tylko ten jedne przykład?
Bo męczę się nad nim i niestety nie wychodzi mi...
Mam go wykonać jak 3 główne pętle w czego w góry i z dołu będą składać się ze spacji a środek z gwiazdek,czy inaczej?

0

Nie opisuj tego co ma być narysowane tylko podaj przykład wyjścia dla zadanego n - nie będziemy przecież zgadywać tego co masz na myśli.

0

Chodzi o przykład f

user image

0

A ile jest białych znaków przed tymi gwiazdkami? Nie wklejaj jakichś dziwnych obrazków, a wstaw te znaki do treści posta, najlepiej w znaczniki <code></code>, wtedy wszystko będzie wiadome.

0
Dla n=5

    * 
   **
****
   **
    *


No i oczywiście źle pokazało....a edytować postu nie moge...
Ma być wszystko w miare równo do linii pionowej z prawej strony

Ma być tak samo jak dla przykładu e tylko odwrócone po prostu w poziomie.

0

No i oczywiście źle pokazało....a edytować postu nie moge...

Bo oczywiście ciężko jest kliknąć w zakładkę Podgląd i zobaczyć jak będzie post wyglądał po wysłaniu...

W takim razie jeszcze raz napisz jak ma wyglądać wyjście - tym razem skorzystaj z podanej zakładki (albo zarejestruj się w 10 sekund i miej problem z głowy).

0

W końcu się udało :)

Dla n=5


   *
  **
 ***
  **
   *

1 użytkowników online, w tym zalogowanych: 0, gości: 1