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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.01.2009, 17:36   #1
Julia-21
 
Аватар для Julia-21
 
Регистрация: 18.01.2009
Сообщений: 5
Смущение быть может поможете еще с одной задачкой=)

я никогда не рисовкала в паскале поэтому не очень понимаю как эот сделать: по данным значения координат точки пересечения диагоналей квадрата, длинны его стороны А и числа N построить N вложенный друг в друга квадратов так, чтобы самый внутренний имел сторону длинной A, а самый внешний помещался в экран. Пространство между границами квадратов раскрасить разными цветами.
за ранее огромнейшее спасибо=)
Julia-21 вне форума Ответить с цитированием
Старый 18.01.2009, 21:16   #2
Julia-21
 
Аватар для Julia-21
 
Регистрация: 18.01.2009
Сообщений: 5
По умолчанию

кто-нить ау
Julia-21 вне форума Ответить с цитированием
Старый 18.01.2009, 22:47   #3
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Держите.
Код:
uses crt,graph;
var x0,y0,a,n:integer;{центр квадрата и его сторона, количество квадратов}
    x1,y1,x2,y2:integer;{самый болшой квадрат}
    x3,y3,x4,y4:integer;{переменные координаты вписанных квадратов}
    r,d:integer;{расстояние от центра квадратов до ближайшего края, шаг уменьшения квадратов}
    i,gd,gm:integer;{счетчик циклов и переменные для инициализации графического режима}
begin
clrscr;
repeat
write('x0=');readln(x0);
write('y0=');readln(y0);
write('a=');readln(a);
until (x0>0)and(x0<640)and(y0>0)and(y0<480)and(a>0)and(a<480);
write('N=');readln(n);
gd:=detect;
InitGraph(gd,gm,'');{графический режим}
r:=y0; {ищем расстояние до ближайшего края}
if getmaxY-y0<r then r:=getmaxY-y0;
if x0<r then r:=x0;
if getmaxX-x0<r then r:=getmaxX-x0;
x1:=x0-r;y1:=y0-r;x2:=x0+r;y2:=y0+r;{определяем координаты самого большого квадрата}
d:=round((r-(a div 2))/(n-1));{шаг уменишения размеров квадратов}
for i:=n downto 1 do
  begin
     x3:=x1+d*(n-i);y3:=y1+d*(n-i);{считаем координаты каждого квадрата}
     x4:=x2-d*(n-i);y4:=y2-d*(n-i);
     SetFillStyle(i+1,i+1); {устанавливаем стиль(цвет и узор)}
     Bar(x3,y3,x4,y4);{рисуем заполненный квадрат}
  end;
readln;
closegraph;
end.
puporev вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите пожалуйста с одной интересной задачкой: terminadoor Помощь студентам 19 13.01.2016 21:04
Задание на типовой расчет: Какое наибольшее целое число без знака может быть записано в N двоич.разрядах? Бубликова Фриланс 10 06.12.2008 10:35
Материнка не видит винт PATA, в чем может быть глюк? Stilet Компьютерное железо 4 09.01.2008 10:12
чем может быть вызвана эта ошибка doncova1 Общие вопросы Delphi 5 01.03.2007 11:15