Практическая работа по информатике № 12-13 Примеры построения алгоритмов с использованием конструкций проверки условий, циклов и способов описания структур данных. Разработка несложного алгоритма решения задачи.
Оценка 4.7

Практическая работа по информатике № 12-13 Примеры построения алгоритмов с использованием конструкций проверки условий, циклов и способов описания структур данных. Разработка несложного алгоритма решения задачи.

Оценка 4.7
Лабораторные работы
docx
информатика
10 кл
19.10.2021
Практическая работа по информатике № 12-13 Примеры построения алгоритмов с использованием конструкций проверки условий, циклов и способов описания структур данных. Разработка несложного алгоритма решения задачи.
ПР № 12-13 Примеры построения алгоритмов с использованием конструкций проверки условий, циклов и способов описания структур данных. Разработка несложного алгоритма решения задачи.
ПР № 12-13 Примеры построения алгоритмов.Разработка несложного алгоритма решения задачи..docx

ПР № 12-13 Примеры построения алгоритмов с использованием конструкций проверки условий, циклов и способов описания структур данных. Разработка несложного алгоритма решения задачи.

Цель: Изучить основные алгоритмические конструкции и их описание средствами языков программирования

ФУНКЦИЯ RANDOM ДЛЯ ИСПОЛЬЗОВАНИЯ ОКРАСКИ

  • SetPenColor(rgb(random(256), random(256), random(256))); — выбирает случайное число из 256-цветной палитры для красного, зеленого и синего.

Используем в рисовании переменные величины



Как заставить Паскаль короткой программой рисовать множество элементов? Ответ: применять циклы, используя в обращениях к графическим процедурам вместо чисел переменные величины и арифметические выражения.

Задача: Нарисовать горизонтальный ряд окружностей радиусом 10 на расстоянии 100 от верхнего края экрана и с такими горизонтальными координатами 50, 80, 110, 140, , 290.

Как видим, центры соседних окружностей отстоят друг от друга на 30. Вот примитивный фрагмент, решающий эту задачу:

Circle( 50,100,10);

Circle( 80,100,10);

Circle(110,100,10);

Circle(140,100,10);

Circle(170,100,10);

Circle(200,100,10);

Circle(230,100,10);

Circle(260,100,10);

Circle(290,100,10);

При вводе этой программы вас будет раздражать необходимость вводить много раз почти одно и то же. Воспользуйтесь копированием, которое объяснено в параграфе «Копирование и перемещение фрагментов текста» 

Мы видим, что здесь Паскаль 9 раз выполнит одну и ту же процедуру, причем при каждом следующем обращении первый параметр вырастает на 30.

А теперь решим эту же задачу при помощи цикла.

Придумаем для первого параметра переменную величину, например, х. Чтобы х изменялся, организуем цикл repeat. Вот программа решения задачи:

USES Graph;

VAR x, Device, Mode :Integer;

BEGIN

Device:=0;

InitGraph(Device, Mode, '<путь к графическим драйверам>');

x:=50;

repeat

Circle(x,100,10);

x:=x+30;

until x>290;

ReadLn;

CloseGraph

END.

Задание 1:. Попробуйте уменьшить расстояние между центрами окружностей, не изменяя их радиуса, нарисовав их плотнее, чтобы они пересекались, еще плотнее, пока они не образуют “трубу”.

Задание 2:. Удлините трубу налево и направо до краев экрана.

Задание 3:. Увеличьте толщину трубы.

Заставим окружности вести себя посложнее. Например, расположим их не по горизонтали, а по диагонали экрана в направлении от левого верхнего угла в правый нижний. Для этого организуем еще одну переменную - вертикальную координату у - и заставим ее тоже изменяться одновременно с x.

USES Graph;

VAR x, y, Device, Mode : Integer;

BEGIN Device:=0;

InitGraph(Device, Mode, '<путь к графическим драйверам>');

x:=50;

y:=20;

repeat

Circle(x,y,10);

x:=x+30;

y:=y+20;

until x>290;

ReadLn;

CloseGraph

END.

Если мы захотим менять радиус, то организуем переменную R, тоже типа Integer.

Задание 4:. Нарисуйте ряд точек по направлению из левого нижнего угла в правый верхний.

Задание 5:. “Круги на воде”. Нарисуйте пару десятков концентрических окружностей, то есть окружностей разного радиуса, но имеющих общий центр.

Задание 6:. “Компакт-диск”. Если радиус самого маленького “круга на воде” будет порядка 50, а самого большого - во весь экран, и если радиусы соседних окружностей будут различаться на 2-3 пиксела, то на экране вы увидете привлекательный “компакт-диск”. Сделайте его золотым (Yellow).

Задание 7:. Не трогая x, а меняя только y и R, вы получите коническую башню.

Задание 8:. Меняя все три параметра, вы получите трубу, уходящую в бесконечность.

Штриховка

Нарисовать штриховку на Паскале можно, используя процедуры рисования прямоугольника и линии:
алгоритм штриховки на паскале

Программа будет выглядеть следующим образом:

1_1



Задание 9:. Разлинуйте экран в линейку.

Задание 10:. А теперь в клетку.

Задание 11:. А теперь в косую линейку.

Задание 12:. Начертите ряд квадратов.

Чтобы получить богатые рисунки, нужно использовать богатые возможности Паскаля: вложенные циклы, ветвление внутри цикла и т.д., например:

Задание 13:. Нарисуйте шахматную доску.

Задание 14:. “Ковер”. В задании 69 вы рисовали горизонтальный ряд пересекающихся окружностей. Теперь нарисуйте один под другим много таких рядов.

Указания: Здесь вам понадобятся вложенные циклы. Если центры соседних окружностей отстоят друг от друга на одинаковое расстояние что по горизонтали, что по вертикали, и если удачно подобраны остальные числа, то у вас получится красивый ковер во весь экран с аккуратными краями.

Задание 15:. Пусть у этого ковра будет вырезан левый нижний угол.

Задание 16:. и вдобавок вырезан квадрат посередине.

Анимация в Паскале

Анимация в программировании заключается в том, что сначала рисуется фигура цветным инструментом, затем с тем же координатами рисуется та же фигура белым цветом. После чего происходит сдвиг фигуры и действия повторяются.

Пример: Воспроизвести движение круга по горизонтали.

uses GraphABC;
var x:integer;
begin  x:=40;
    repeat         SetPenColor(clWhite);
        Circle(x,100,10);    {Рисуем белую окружность}
        SetPenColor(clBlack);
        Circle(x,100,10);    {Рисуем черную окружность}
        x:=x+1                {Перемещаемся немного направо}
    until x>600;
end.

Задание 17: Выполнить анимацию движения квадрата по следующей траектории:
https://labs-org.ru/wp-content/uploads/1-14.png

 

В тетрадях для практических работ написать отчет о проделанной работе.

Содержание отчета 

Название работы 

Выполненные задания. 

Вывод  

Выполните контрольный тест

Прикрепите полученный  результат


 

Скачано с www.znanio.ru

ПР № 12-13 Примеры построения алгоритмов с использованием конструкций проверки условий, циклов и способов описания структур данных

ПР № 12-13 Примеры построения алгоритмов с использованием конструкций проверки условий, циклов и способов описания структур данных

При вводе этой программы вас будет раздражать необходимость вводить много раз почти одно и то же

При вводе этой программы вас будет раздражать необходимость вводить много раз почти одно и то же

Заставим окружности вести себя посложнее

Заставим окружности вести себя посложнее

Задание 7:. Не трогая x, а меняя только y и

Задание 7:. Не трогая x, а меняя только y и

Задание 9:. Разлинуйте экран в линейку

Задание 9:. Разлинуйте экран в линейку

Задание 17: Выполнить анимацию движения квадрата по следующей траектории:

Задание 17: Выполнить анимацию движения квадрата по следующей траектории:
Материалы на данной страницы взяты из открытых истончиков либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.
19.10.2021