Вторник, 08.10.2024, 22:29
Информатика и математика в Плесской школе
Приветствую Вас Гость | RSS
Меню сайта
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Форма входа

Кривая Шибкина.

В книге С.В. Филичева, «Занимательный Basic», есть глава Кривая Шибкина. В которой Доктор Шибкин, пытался составить программу, рисующую на экране компьютера вертикальные полосы.Он написал программу (перевод на Паскаль мой):

program n1;
uses crt,graphabc;
var a:integer;
begin
 clrscr;
  SetWindowSize(600,600);
   SetPenColor(clDkGray );

 a:=0;
 while (a<600) do begin
                  line(0,a,a,600);
                  a:=a+10;
                end;
 end.

И получил вот какое изображение:

Предлагаю превзойти Доктора и составить  программу строящую следующий орнамент. Весь геометрический орнамент состоит из линий, попробуйте сами определить какая переменная в операторе LINE изменяется и как.

Оригинальная идея подсмотрена в этом рисунке:

Для кого решение этой задачи оказалось трудным, предлагаю решений ученика 11 класса Виноградова Никиты. Попробуйте разобраться в нем сами.

program n1;
uses crt,graphabc;
var a:integer;
begin
  clrscr;
  SetWindowSize(600,600);
  a:=0;
  while (a<610) do begin
                     begin
                        SetPenColor(clblue);
                        line(0,a,a,600);
                        line(600,a,a,0);
                        line(600,a,600-a,600);
                        line(600-a,0,0,a);
                     end;
                  SetPenColor(clred);
                     begin
                        line(0,300+a,a,600);
                        line(300+a,600,600,600-a);
                        line(300+a,0,600,a);
                        line(0,300-a,a,0);
                     end;
                if(a<310) then
                      begin
                        SetPenColor(clblack);
                        line(300,600-a,300+a,300+a);
                        line(300,600-a,300+a,300+a);
                        line(600-a,300,300+a,300+a);
                        line(600-a,300,300+a,300-a);
                        line(300,a,300+a,300-a);
                        line(a,a,300,300-a);
                        line(a,300,300-a,300-a);
                        line(a,300,300-a,300+a);
                        line(300,600-a,300-a,300+a);
                     end;
                 a:=a+10;
            end;
end.

Поиск
Календарь
«  Октябрь 2024  »
ПнВтСрЧтПтСбВс
 123456
78910111213
14151617181920
21222324252627
28293031
Архив записей
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Учительский портал
    Copyright MyCorp © 2024