Program rysujący figury z gwiazdek

Program rysujący figury z gwiazdek
  • Rejestracja: dni
  • Ostatnio: dni
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?

Kopiuj
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.
KA
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Gorlice
0

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

Kopiuj
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.
flowCRANE
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Tuchów
  • Postów: 12270
1

Ten zapis:

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

można skrócić do takiej postaci:

Kopiuj
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 :]

  • Rejestracja: dni
  • Ostatnio: dni
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?

flowCRANE
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Tuchów
  • Postów: 12270
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.

  • Rejestracja: dni
  • Ostatnio: dni
0

Chodzi o przykład f

user image

flowCRANE
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Tuchów
  • Postów: 12270
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.

  • Rejestracja: dni
  • Ostatnio: dni
0
Kopiuj
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.

flowCRANE
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Tuchów
  • Postów: 12270
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).

BU
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 19
0

W końcu się udało :)

Dla n=5

Kopiuj

   *
  **
 ***
  **
   *

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.