Skocz do zawartości


Zdjęcie

[Pascal]jak zrobić to zadanie z Pascala?


  • Zamknięty Temat jest zamknięty
2 odpowiedzi w tym temacie

#1 lukipop

lukipop

    Nowy

  • 1 postów

Napisano 21 03 2008 - 01:39

Napisz program, który bedzie rysował na ekranie piramidę kół
zawierających wewnątrz kolejne numery.
Piramida powinna wypełnić całą wysokość ekranu. Liczba jej warstw jest
podawana przez użytkownika.

Ta wyrysowana piramida musi się zmieścić na całej wysokośći ekranu czyli
1 warstwa to tylko 1 koło i na cały ekran
2-ie warsty to 3 koła i na cała wysokość ekranu itd
jedyną rzeczą jaka będzie podawna na "dzień dobry" programu to liczba
warst rysowanych kół.
ma to się wszystko zmieścić na ekranie
1 warstwa czyli 1 koło ma ono być na całej wysokości ekranu
podobnie jak 2,3,4,55,66, itd warst
średnica kół będzie się zmniejszać ale mają być rozciągnięte na max
wysokości ekranu
w każdym kole jadąc od wierzchołka muszą być numery
co prawda miały być proporcjonalnie prawie tak duże jak koła
np. średnica 10 cm a cyfra (1) 2 cm na środku koła ;/;/
ale to nie jest naistotniejszy problem
PROBLEMEM jest napisanie takiej formuły która wyrysuje koła z numerami w
środku(nie koniecznie dopasowane rozmiarowo do wielkości koła ale dobrze
by było)
podaje 100 warstw no to mi rysuje 100 warst czli 1000 kółek czy ile to
tam wyjdzie
program napisany w turbo pascalu (moduł graph)
POZDRAWIAM i DZIĘKUJĘ


Nie mam pojęcia jak to zrobić wiec proszę o pomoc

Załączone miniatury

  • kule.JPG

  • 0

#2 Angolix

Angolix

    Obserwator

  • 6 postów

Napisano 21 03 2008 - 14:41

Ile płacisz ?

  • 0

#3 Marko_

Marko_

    Stały użytkownik

  • 279 postów

Napisano 25 03 2008 - 23:15

Tak na szybko napisałem cos takiego. Popraw niedociągnięcia, komunikacje z użytkownikiem, obsługę błędów itd ...
Płacić wstyd panie Angolix :sciana:
uses crt,graph;

var
ster,tryb:integer;
warstwy:word;
j:word;
i:word;
srednica:word;
ile_kol:word;
px,py,x1,x_,y_,promien,x,y,size,total_numer: word;
s:string;

begin
clrscr;
tryb:=vgahi;
ster:=detect;
writeln('Podaj liczbe warstw i nacisnij enter');
readln(warstwy);

initgraph(ster,tryb,'c:\tp\bgi');
if GraphResult <> grOk then
Halt(1);
x:=getmaxx;
y:=getmaxy;
px:=0;
py:=0;
if x<y then
begin
size:=x;
py:=round((y-x)/2);
end
else
begin
size:=y;
px:=round((x-y)/2);
end;


rectangle(px,py,x-px,y-py);

j:=1;
srednica:=round(size/warstwy);
promien:=round(srednica/2);
ile_kol:=warstwy;
x_:= px+promien;
x1:=promien;
y_:=(warstwy*srednica)-promien;

{ile jest wszystkich kol ? wynik w total_numer}
for i:=0 to warstwy do
total_numer:=total_numer+i;
inc(total_numer);

{Prymitywne skalowanie czcionki}
if trunc(warstwy/10)>0 then i:=2 else i:=1;
SetTextStyle(i, HorizDir, 1);

for j:=warstwy-1 downto 0 do
begin
for i:=1 to ile_kol do
begin
dec(total_numer);
circle(x_,y_,promien);
str(total_numer,s);
outtextxy(x_-3,y_-3,s);
x_:=x_+srednica;
end;
x1:=x1+promien;
y_:=(j*srednica)-promien;
ile_kol:=ile_kol-1;
x_:=px+x1;
end;
readln;
closegraph;
end.


  • 0

Zobacz więcej tematów z tagiem: Turbo Pascal



Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych