Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Delphi, Kylix and Pascal


Ответ
 
Опции темы Опции просмотра
Старый 26.04.2012, 20:32   #1 (permalink)
Ver4ik
Новичок
 
Регистрация: 26.04.2012
Сообщений: 3
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Графика

16. Составить программу построения изображения n квадратов: квадраты вписаны друг в друга так, что вершины внутреннего квадрата находятся в серединах сторон внешнего
Ver4ik вне форума   Ответить с цитированием

Старый 26.04.2012, 20:32
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Потратьте минутку на прочтение аналогичных по содержанию топиков

PascalABC, графика
Построение графика ФНЧ, LR Фильтр
Графика в QBasic
Графика - растущий цветок
Графика C++
Графика

Старый 28.04.2012, 11:17   #2 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Ver4ik Посмотреть сообщение
16. Составить программу построения изображения n квадратов: квадраты вписаны друг в друга так, что вершины внутреннего квадрата находятся в серединах сторон внешнего
Поскольку Вы не сочли нужным указать, в какой из разновидностей Паскаля: Turbo-Free-Borland или ABC должна быть решена задача (а для графики это принципиальный вопрос), то право выбора я оставляю за собой и представляю решение в DOS Free Pascal:
Код:
Uses
 CRT, Graph;
Const
 N=10;
VAR
 Xold,Yold,Xnew,Ynew:Array[1..5] of Word;
 i,j:Byte;
Begin
 InitGraph(...); {параметры процедуры инициализации задайте сами}
 ClearDevice;
 Ynew[1]:=0;
 Ynew[2]:=0;
 Ynew[3]:=GetMaxY;
 Ynew[4]:=GetMaxY;
 Ynew[5]:=0;
 Xnew[1]:=(GetMaxX div 2)-(GetMaxY div 2);
 Xnew[2]:=(GetMaxX div 2)+(GetMaxY div 2);
 Xnew[3]:=(GetMaxX div 2)+(GetMaxY div 2);
 Xnew[4]:=(GetMaxX div 2)-(GetMaxY div 2);
 Xnew[5]:=(GetMaxX div 2)-(GetMaxY div 2);
 For i:=1 to N do
  begin
   for j:=1 to 4 do
    Line(Xnew[j],Ynew[j],Xnew[j+1],Ynew[j+1]);
   Xold:=Xnew;
   Yold:=Ynew;
   for j:=1 to 4 do
    begin
     Xnew[j]:=(Xold[j]+Xold[j+1]) div 2;
     Ynew[j]:=(Yold[j]+Yold[j+1]) div 2;
    end;
   Xnew[5]:=Xnew[1];
   Ynew[5]:=Ynew[1];
  end;
 Readkey;
 CloseGraph;
End.
Миниатюры
squares.jpg  
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 10:56.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.