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
[Pascal]jak zrobić to zadanie z Pascala?
Rozpoczęty przez
lukipop
, 21 03 2008 01:39
2 odpowiedzi w tym temacie
#1
Napisano 21 03 2008 - 01:39
#2
Napisano 21 03 2008 - 14:41
Ile płacisz ?
#3
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
Płacić wstyd panie Angolix
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.
Użytkownicy przeglądający ten temat: 0
0 użytkowników, 0 gości, 0 anonimowych