• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о проекте, чтобы узнать больше. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Графика

  • Автор темы Автор темы Ver4ik
  • Дата начала Дата начала

Ver4ik

Ученик
Регистрация
26 Апр 2012
Сообщения
3
Реакции
0
Баллы
0
Графика

16. Составить программу построения изображения n квадратов: квадраты вписаны друг в друга так, что вершины внутреннего квадрата находятся в серединах сторон внешнего
 
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(...); [COLOR=Red]{параметры процедуры инициализации задайте сами}[/COLOR]
 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.webp
    Squares.webp
    9 KB · Просмотры: 47
Назад
Сверху