Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.12.2011, 18:44   #1
TDub
Новичок
Джуниор
 
Регистрация: 23.12.2011
Сообщений: 1
По умолчанию ABC Pascal. graphABC. доработать программу.

Задача: Вводим с клавы n кругов и прога чертит n кругов по одной диагонали и по другой диагонали n кругов, при этом расстояние между кругами одинаково.
Суть проблемы: При вводе четного n в середине пересечения ветвей появляется большой пустой промежуток, а по условию расстояние должно быть одинаково(т.е при четном n круги должны находится ближе в середине).

program figura;
uses crt,GraphABC;
const X=500;Y=500;
var
c,c2,c1:real;
p,p1,p2,p3,k,d,Xdiv,Ydiv,r:integer;
i,n:byte;
begin
ClearWindow;
repeat
writeln('введите колличесвто фигур');
readln(n);
if (n<0) or (n=0) then writeln('количесвто не может быть меньше или равно 0');
until (n>0);
SetWindowWidth(X);
SetWindowHeight(Y);

c:=sqrt(sqr(X)+sqr(Y));
c1:=c/N; c2:=c1/2; p:=Trunc(c);p1:=Trunc(c1);p2:=Trunc (c2);
Xdiv:=X div 2;
Ydiv:=Y div 2;
r:=p2 div 3;
k:=p2;
if (N mod 2<>0) then begin
Circle(Xdiv,Ydiv,r);
for i:=1 to (N div 2) do begin
Circle(Xdiv+k,Ydiv+k,r);
Circle(Xdiv-k,Ydiv-k,r);
k:=k+p2;
end;
i:=0;
p2:=Trunc(c2);
k:=p2;
for i:=1 to (N div 2) do begin
Circle(Xdiv+k,Ydiv-k,r);
Circle(Xdiv-k,Ydiv+k,r);
k:=k+p2;
end;
end;
if (N mod 2=0) then begin
for i:=1 to (n div 2) do begin //количество кругов
Circle(Xdiv+k,Ydiv+k,r);
Circle(Xdiv-k,Ydiv-k,r);
k:=k+p2;
end;
i:=0;
p2:=Trunc(c2);
k:=p2;
for i:=1 to (N div 2) do begin
Circle(Xdiv+k,Ydiv-k,r);
Circle(Xdiv-k,Ydiv+k,r);
k:=k+p2;
end;
end;
end.
TDub вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Доработать программу на С++ sol1tary Фриланс 3 20.07.2011 10:15
Доработать программу за $ lutdan Фриланс 3 09.05.2011 17:32
pascal graphabc Ляличка Паскаль, Turbo Pascal, PascalABC.NET 0 28.04.2011 21:57
Доработать программу drama2rg Помощь студентам 2 29.03.2010 19:22