МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ АЛТАЙСКОГО КРАЯ
КРАЕВОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ
ПРОФЕССИОНАЛЬНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
«АЛТАЙСКИЙ ТРАНСПОРТНЫЙ ТЕХНИКУМ»
Методические указания для выполнения практических работ
к разделу «Арифметические и логические основы работы компьютера»
по дисциплине ОУДП.08 «Информатика»
Составитель:
Масленникова Любовь Валерьевна,
Преподаватель информатики первой категории
2022 г.
с. Первомайское
На этом уроке мы на практике разберём: как составлять алгоритмы различных типов, а также как «читать» алгоритм по готовой блок-схеме.
На предыдущих уроках мы узнали, что такое алгоритм, какие бывают виды алгоритмов, и кто их исполняет.
Сегодня мы попрактикуемся в составлении алгоритмов. Это очень важные навыки. Мы уже неоднократно отмечали, что составить алгоритм, то есть объяснить другому, как выполнять те или иные задачи так, чтобы это было понятно каждому, - очень тяжело. Наша задача – научиться составлять алгоритмы для различных примеров, чтобы впоследствии, когда вы столкнётесь с необходимостью составлять алгоритмы для написания различных программ, это не составляло для вас особого труда.
Начнём мы с самых простых алгоритмов – линейных. Их составление, обычно, не вызывает особого труда. Однако, навыки составления таких алгоритмов чрезвычайно важны.
Пример 1. Составить алгоритм запуска программы Paint в ОС Windows 7.
Решение:
Вспомним из курса информатики 5 класса порядок действий для запуска программы Paint.
Данный алгоритм в виде блок-схемы имеет следующий вид:
Рис. 1. Блок-схема к примеру 1.
Рассмотрим пример на составление алгоритмов с ветвлениями.
Пример 2. Составьте алгоритм для перехода дороги на светофоре.
Рис. 2. Светофор
Решение:
Возможны следующие ситуации: в тот момент, когда мы подошли к дороге горел красный или зелёный свет. Если горел зелёный свет, то можно переходить дорогу. Если же горел красный свет, то необходимо дождаться зелёного – и уже тогда переходить дорогу.
Таким образом, алгоритм имеет следующий вид:
Блок-схема данного алгоритма имеет вид:
Рис. 3. Блок-схема к примеру 2.
Рассмотрим пример на составление циклического алгоритма. Мы уже несколько раз обсуждали перевод чисел из десятичной системы в двоичную. Теперь пришло время чётко сформулировать этот алгоритм.
Напомним, что его принцип состоит в делении числа на 2 и записей остатков, получающихся при делении.
Пример 3. Составить алгоритм перевода чисел из десятичной системы в двоичную.
Решение:
То есть, алгоритм будет выглядеть так:
Блок-схема этого алгоритма выглядит следующим образом:
Рис. 4. Блок-схема к примеру 3.
Примечание: подумайте, можно ли как-то упростить приведенную блок-схему.
«Чтение» алгоритмов
Пример 4. По заданной блок-схеме выполнить действия алгоритма для числа 23.
Рис. 5. Блок-схема к примеру 4.
Решение:
Ответ: 26.
На этом уроке мы разобрали примеры составления алгоритмов, а также пример «чтения алгоритма» по готовой блок-схеме.
На следующем уроке мы обсудим игры и выигрышные стратегии.
Наверное, все помнят из детства сказку, в которой рассказывается о местонахождении смерти Кощея Бессмертного: «Смерть моя – на конце иглы, которая в яйце, яйцо – в утке, утка – в зайце, заяц в сундуке сидит, сундук на крепкий замок закрыт и закопан под самым большим дубом на острове Буяне, посреди моря-океяна …»
Рис. 6. Кощей Бессмертный и Василиса Премудрая
Предположим, вместо Ивана-царевича бороться с Кощеем был брошен Иван-дурак. Давайте поможем Василисе Премудрой составить такой алгоритм, чтобы даже Иван-дурак смог убить Кощея.
Это тоже линейный алгоритм, хотя и более длинный, чем алгоритм запуска программы Paint.
Его блок-схема выглядит так:
Рис. 7. Блок-схема.
И снова обратимся к сказочным персонажам в поисках примеров различных алгоритмов. Когда речь идёт об алгоритмах с ветвлениями, то, конечно, нельзя не вспомнить о богатыре, стоящем на распутье возле камня.
Рис. 8. Богатырь на распутье
На камне написано:
«Направо пойдёшь – коня потеряешь, себя спасёшь; налево пойдёшь – себя потеряешь, коня спасёшь; прямо пойдёшь – и себя и коня потеряешь».
Попробуем составить алгоритм действий, который составил автор надписи на камне для путников?
Блок-схема этого алгоритма выглядит так:
Рис. 9. Блок-схема.
Русские народные сказки не оставили нас и без циклического алгоритма. И, как ни странно, спрятался он в одной из самых незамысловатых сказок – «Репке».
Рис. 10. Репка.
Вспомним сюжет сказки: дед тянет-потянет – вытянуть не может. Затем на помощь к деду по очереди подходят новые персонажи – и так до тех пор, пока не приходит мышка.
Попытаемся составить алгоритм действий всех персонажей сказки для того, чтобы они всё-таки смогли вытянуть Репку.
В виде блок-схемы этот алгоритм выглядит следующим образом:
Рис. 11. Блок-схема.
Выполните задание в тетради
Дать определение: Алгоритм это –________________________________________
_____________________________________________________________________________________________________________________________________________________________________________________________________________________
Дать определение: Исполнитель алгоритма это –_____________________________
_____________________________________________________________________________________________________________________________________________________________________________________________________________________
Какими свойствами обладают алгоритмы? Описать каждое свойство.
______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
Перечислить два способа записи алгоритмов.
________________________________
_______________________________________________________________________
Словесный способ записи алгоритмов это – _________________________________
______________________________________________________________________________________________________________________________________________Привести свой пример словесного алгоритма:_______________________________
_______________________________________________________________________
Графический способ записи алгоритмов это ________________________________
______________________________________________________________________________________________________________________________________________Привести свой пример графического алгоритма:______________________________
_______________________________________________________________________
Какие условные обозначения используются в схемах алгоритмов? Зарисовать и описать.____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
Дать определение: Базовые алгоритмические структуры это – ________________
_____________________________________________________________________________________________________________________________________________________________________________________________________________________
Дать определение: Линейный алгоритм это –
_________________________________
______________________________________________________________________________________________________________________________________________
Задача: составить блок-схему линейного алгоритма нахождения значения функции, заданной алгебраически z=x3+5y
-Придумать свой пример линейного алгоритма и составить его блок-схему.
-Дать определение Разветвляющийся алгоритм это –
Задача: дана блок-схему разветвляющегося алгоритма, и незаполненный шаблон, в который нужно вписать значения, полученные в результате выполнения алгоритма.
Задача: составить блок-схему разветвляющегося алгоритма нахождения корней квадратного уравнения ах2+вх+с=0.
Привести свой пример разветвляющегося алгоритма и составить его блок-схему.
Начертить блок-схему алгоритма, который проверяет, существует ли треугольник со сторонами А, В и С Если такой треугольник существует, то определяет его вид (Равносторонний, равнобедренный, разносторонний).
____________________________________________________________________________________________________________________________________________________________
Привести примеры Циклических алгоритмов.
____________________________________________________________________________________________________________________________________________________________
Задача: составить Циклический алгоритм
____________________________________________________________________________________________________________________________________________________________
Какие циклы называют итерационными?
____________________________________________________________________________________________________________________________________________________________
Что такое вложенные циклы?
____________________________________________________________________________________________________________________________________________________________
Чем отличается программный способ записи алгоритмов от других?
____________________________________________________________________________________________________________________________________________________________
Что такое уровень языка программирования?
____________________________________________________________________________________________________________________________________________________________
Какие у машинных языков достоинства и недостатки?
____________________________________________________________________________________________________________________________________________________________
Что такое язык ассемблера?
____________________________________________________________________________________________________________________________________________________________
В чем преимущества алгоритмических языков перед машинными?
____________________________________________________________________________________________________________________________________________________________
Какие компоненты образуют алгоритмический язык?
____________________________________________________________________________________________________________________________________________________________
Какие понятия используют алгоритмические языки?
____________________________________________________________________________________________________________________________________________________________
Что такое стандартная функция?
____________________________________________________________________________________________________________________________________________________________
Как записываются арифметические выражения?
____________________________________________________________________________________________________________________________________________________________
Как записываются логические выражения?
____________________________________________________________________________________________________________________________________________________________
Работа за компьютером.
Составьте блок-схему алгоритма перечисленных ниже задач и изобразите ее с помощью программа Microsoft Word. Созданный документ сохраните в своей папке с названием блок схема1
Домашнее задание: придумать циклический алгоритм по мотивам русских народных сказок и составить его блок-схему.
Цель: Изучить основные алгоритмические конструкции и их описание средствами языков программирования.
Для работы с графикой в pascal abc используется модуль GraphABC. Для его подключения используется следующий код:
uses GraphABC; |
Система координат в Паскале соответствует экранной системе координат и выглядит следующим образом:
Система координат
Для того, чтобы использовать цвет, необходимо применить этот
цвет к инструменту перо:
●
● SetPenColor(color) — устанавливает цвет пера, задаваемый параметром color;
● setBrushColor(color) — устанавливает цвет кисти, задаваемый параметром color;
● либо для палитры RGB: SetPenColor(rgb(0-255, 0-255, 0-255));
● или использовать для заливки:
● FloodFill(x,y,color) — заливает область одного цвета цветом color, начиная с точки (x,y).
После чего можно использовать процедуры для рисования геометрических фигур.
Цвета в pascal abc:
clBlack – черный
clPurple – фиолетовый
clWhite – белый
clMaroon – темно-красный
clRed – красный
clNavy – темно-синий
clGreen – зеленый
clBrown – коричневый
clBlue – синий
clSkyBlue – голубой
clYellow – желтый
clCream – кремовый
clAqua – бирюзовый
clOlive – оливковый
clFuchsia – сиреневый
clTeal – сине-зеленый
clGray – темно-серый
clLime – ярко-зеленый
clMoneyGreen – цвет зеленых денег
clLtGray – светло-серый
clDkGray – темно-серый
clMedGray – серый
clSilver – серебряный
Для отображения точки в паскале используется процедура:
● SetPixel(x,y,color) — Закрашивает один пиксел с координатами (x,y) цветом color
uses GraphABC; |
Для рисования линии используется:
● Line(x1,y1,x2,y2) — рисует отрезок с началом в точке (x1,y1) и концом в точке (x2,y2)
uses GraphABC; |
● Line(x1,y1,x2,y2) — рисует отрезок с началом в точке (x1,y1) и концом в точке (x2,y2)
uses GraphABC; SetPenColor(clgreen);// определяет цвет пера line(100,50,500,250); |
Самостоятельно постройте 5 параллельных линий используя поочередно перо и кисть разным цветом
и толщиной линий. для изменения толщины линии используют оператор setpenwidth(20);
Ломаные можно рисовать с помощью процедур MoveTo (x1, y1) и LineTo (x2, y2).
Процедуры работают в паре: MoveTo передвигает курсор в
определенную точку, а процедура LineTo рисует линию с этой
точки до точки, определенной параметром данной процедуры.
uses GraphABC; |
Самостоятельно постройте 2 ломанных линии используя поочередно перо и кисть разным цветом и толщиной линий.
для изменения толщины линии используют оператор setpenwidth(20);
В тетради нарисуйте систему координат начертите корону определите точки координат своего чертежа,
затем напишите программу рисующую корону.
При помощи операторов SetPenColor(), LineTo
(x2, y2) и MoveTo (x1, y1) нарисовать квадрат и
равносторонний треугольник.
Для установки размеров графического окна процедура
● SetWindowSize(ширина, высота)
или, например:
SetWindowWidth(600); |
● Rectangle(x1,y1,x2,y2) — рисует прямоугольник, заданный координатами противоположных вершин (x1,y1) и (x2,y2).
Фигуры с заливкой:
Самостоятельно добавьте 4 прямоугольника с разной заливкой.
Line(x1,y1,x2,y2);
LineTo(x,y);
Самостоятельно добавьте 4 треугольника с разной заливкой.
откройте вашу программу рисующую корону и добавьте прямоугольник под основание ломанной линии.
Окружность можно нарисовать с помощью процедуры:
● Circle(x,y,r) — рисует окружность с центром в точке (x,y) и радиусом r.
Самостоятельно напишите программу рисующую окружность с разным диаметром и цветовой палитрой.
Откройте вашу программу рисующую корону и добавьте окружности на основание вашей короны разным цветом.
Дуга окружности
● Arc(x,y,r,a1,a2) — Рисует дугу окружности с центром в точке (x,y) и радиусом r, заключенной между двумя лучами, образующими углы a1 и a2 с осью OX (a1 и a2 – вещественные,
● задаются в градусах и отсчитываются против часовой стрелки).
Самостоятельно составьте программу рисующую дугу окружности со своими координатами.
Откройте вашу программу рисующую корону и добавьте дугу окружности внутри прямоугольника
В тетрадях для практических работ написать отчет о проделанной работе.
Содержание отчета
● Название работы
● Выполненные задания.
● Вывод
● 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:. Меняя все три параметра, вы получите трубу, уходящую в бесконечность.
Штриховка
Нарисовать штриховку на Паскале можно, используя процедуры
рисования прямоугольника и линии:
Программа будет выглядеть следующим образом:
Задание 9:. Разлинуйте экран в линейку.
Задание 10:. А теперь в клетку.
Задание 11:. А теперь в косую линейку.
Задание 12:. Начертите ряд квадратов.
Чтобы получить богатые рисунки, нужно использовать богатые возможности Паскаля: вложенные циклы, ветвление внутри цикла и т.д., например:
Задание 13:. Нарисуйте шахматную доску.
Задание 14:. “Ковер”. В задании 69 вы рисовали горизонтальный ряд пересекающихся окружностей. Теперь нарисуйте один под другим много таких рядов.
Указания: Здесь вам понадобятся вложенные циклы. Если центры соседних окружностей отстоят друг от друга на одинаковое расстояние что по горизонтали, что по вертикали, и если удачно подобраны остальные числа, то у вас получится красивый ковер во весь экран с аккуратными краями.
Задание 15:. Пусть у этого ковра будет вырезан левый нижний угол.
Задание 16:. и вдобавок вырезан квадрат посередине.
Анимация в программировании заключается в том, что сначала рисуется фигура цветным инструментом, затем с тем же координатами рисуется та же фигура белым цветом. После чего происходит сдвиг фигуры и действия повторяются.
Пример: Воспроизвести движение круга по горизонтали.
|
uses GraphABC; |
Задание 17: Выполнить анимацию движения квадрата по следующей
траектории:
В тетрадях для практических работ написать отчет о проделанной работе.
Содержание отчета
Название работы
Выполненные задания.
Вывод
Скачано с www.znanio.ru
© ООО «Знанио»
С вами с 2009 года.