- •МеТодические указания к лабораторным и практическим работам
- •Пояснительная записка
- •Инстркуция по охране труда и технике безопасности
- •Теоретический материал
- •Линейные алгоритмы
- •Лабораторная работа №4
- •Ход работы.
- •Теоретический материал
- •Практическое задание.
- •Контрольные вопросы.
- •Содержание отчета.
Теоретический материал
Алгоритмом называется точное предписание, определяющее последовательность действий исполнителя, направленных на решение поставленной задачи. В роли исполнителей алгоритмов могут выступать люди, роботы, компьютеры.
Понятие алгоритма в программировании является фундаментальным. Для алгоритма важен не только набор определенных действий, но и то, как они организованы, т.е. в каком порядке они выполняются.
Свойства алгоритма:
понятность – все действия должны входить в систему команд исполнителя, т.е. быть понятны ему;
дискретность - алгоритм делится на отдельные элементарные шаги;
определенность - каждая команда однозначно определяет действие исполнителя;
конечность(результативность) - алгоритм должен завершаться за конечное число шагов.
массовость – алгоритм позволяет решать целый класс похожих задач.
Графический способ (в виде блок-схемы )
Блок схема – это графическое представление алгоритма при помощи стандартных обозначений. Блок схемы составляются в соответствии с ГОСТами. ГОСТы алгоритмов: ГОСТ 19.002-80, ГОСТ 19.003-80. На схемах алгоритмов выполняемые действия изображаются в виде отдельных блоков, которые соединяются между собой линиями связи в порядке выполнения действий. На линиях связи могут ставиться стрелки, причем, если направление связи слева направо или сверху вниз, то стрелки не ставятся. Блоки нумеруются. Внутри блока дается информация о выполняемых действиях.
Таблица 1 – Основные блоки, используемые при составлении алгоритмов
Название |
Обозначение |
Назначение |
Пуск, Останов |
|
Начало-конец алгоритма |
Процесс |
|
Любое вычислительное действие |
Решение |
|
Проверка условия |
Ввод-вывод |
|
Ввод-вывод данных |
Соединитель |
|
Используется на линиях разрыва |
Комментарий |
|
Комментарий |
Линейные алгоритмы
Линейный алгоритм – алгоритм, в котором все команды выполняются последовательно друг за другом.
Приведем пример решения:
Постановка задачи
Цель. Вычислить периметр и площадь прямоугольного треугольника, если заданы длины двух его катетов
Входные данные
а – длина одного катета.
b– длина другого катета
Выходные данные.
P – периметр треугольника, S – площадь треугольника.
Т.к. для вычисления периметра нужна длина третьей стороны, то к выходным данным следует отнести и ее.
с– третья сторона.
Математическая модель.
Вычислим
длину третьей стороны: с=
определим периметр: Р= а+ b+ с
Вычислим площадь: S= а* b/2
Алгоритм решения
1
2
Алгоритм
выполняется следующим образом.
Шаг
1. Вводится длина сторон треугольника
Шаг
2. Вычисляется длина третьей стороны
Шаг
3. Вычисляется периметр
Шаг
4. вычисляется площадь
Шаг
5. Вывод результатов
3
4
Практическое задание
1 Ответить на контрольные вопросы
2. Выполнить описание решения задания.
3. Составить блок-схему алгоритма, согласно варианту задания.
Варианты заданий:
1. Вычислите длину окружности, площадь круга и объём шара одного и того же заданного радиуса r.
2. Вычислите площадь кольца, если заданы радиусы окружностей.
3. Вычислить значение выражения y =
.Sin
, где a =
,
b= (2+
)5
.
4. Вычислите площадь и периметр треугольника по трем его сторонам a, b, c..
5. Идет k секунд суток. Определите, сколько полных часов (h), минут (m) прошло к этому моменту.
6. Жидкость в объеме v1 и температурой t1 смешали с жидкостью v2 и температурой t2. Найти объем смеси и температуру.
Контрольные вопросы.
1. Дайте определение алгоритма.
2. Назовите способы задания алгоритмов.
3. Назовите этапы построения линейного алгоритма.
4. Назовите основные свойства алгоритма.
Содержание отчета
1Тема. Цель
2 Ответы на контрольные вопросы
3 выполненное практическое задание
Лабораторная работа №2
Тема: Составление разветвленного алгоритма
Цель работы: Научиться составлять алгоритмы разветвляющейся структуры, учитывая условия различной сложности.
Оборудование: ПК
Ход работы.
Повторить теоретическую часть.
Выполнить практическое задание.
Ответить на контрольные вопросы.
Теоретическая часть
При составлении схем алгоритмов часто возникает необходимость проведения анализа исходных данных или промежуточных результатов вычислений и определения дальнейшего порядка выполнения вычислительного процесса в зависимости от результатов этого анализа. Алгоритмы, в которых в зависимости от выполнения некоторого логического условия происходит разветвление вычислений по одному из нескольких возможных направлений, называют разветвляющимися. Подобные алгоритмы предусматривают выбор одного из альтернативных путей продолжения вычислений. Каждое возможное направление вычислений называется ветвью. Логическое условие называют простым, если разветвляющийся процесс имеет две ветви, и сложным, если процесс разветвляется на три и более ветви.
Любое сложное логическое условие может быть представлено в виде простых.
Рассмотрим пример разветвляющегося алгоритма с простым логическим условием.
П
ример
1.2. Даны
два числа а и b.
Найти
Очевидно, что для определениия ветви, по которому необходимо производить процесс вычисления значения х, достаточно проверить выполнение одного из условий, например а>b. Если условие а>b не выполняется, то очевидно и без дополнительной проверки, что будет выполнено условие а < b. Следовательно, вариант схемы алгоритма будет выглядеть следующим образом (рис 1.3).
Рис 1.3. Схема простого разветвляющегося алгоритма
Рассмотрим примеры алгоритмов разветвляющейся структуры в случаях необходимости анализа более сложных логических условий.
a / b, если а > 0
Пример 1.3. Даны два числа а и b. Найти х = - а - b, если а = 0.
а + b, если а < 0
Из условия очевидно, что предполагаемый вычислительный процесс должен предусматривать выбор одного из альтернативных путей вычислений в зависимости от значения переменной а.
При этом алгоритм может быть представлен в одном из двух вариантов: с разветвлением по сложному логическому условию (рис 1.4а) и с разветвлением при разложении сложного логического условия на простые (рис. 1.46).
Пример 1.4. Вычислить значение Y при заданных значениях а, х.
Рис 1.4, Схемы алгоритмов разветвляющейся структуры: а) - со сложным логическим условием; б) - при разложении сложного логического условия на простые
Разветвляющимся называется алгоритм, в основе которого лежит одна из структур "ветвления"
Условие, от которого зависит выбор пути решения, представляет собой логическое выражение. Самое простое – переменная логического типа. Наиболее часто встречающееся – два арифметических выражения, соединенные знаком отношения.
Отличия явных и неявных условий
Явные условия задаются непосредственно в условии задачи. Неявные появляются в процессе анализа задачи и служат для обработки исключительных ситуаций.
Правила записи составных условий
условия могут быть сложными, те содержать несколько логических выражений. Каждая часть условия заключается в скобки.
Варианты заданий:
1. Вычислить значение функции, где a, b, x – любое
|
2. Вычислить значение функции, где x, b - любое
|
3. Вычислить значение функции, где a, x - любое
|
4. Вычислить значение функции, где x, b - любое
|
5. Вычислить значение функции, где x,a - любое
|
6. Вычислить значение функции, где a, t - любое
|
Примеры алгоритмов с многозначным ветвлением.
Обычно, если необходимо проверить достаточно много условий, использующих отношение типа "=" и в зависимости от них выполнять те или иные действия используют алгоритм с многозначным ветвлением.
Правила составления разветвляющихся алгоритмов с использованием выбора
Правила составления рассмотрим на примере.
Задача. Вывести название дня недели по его порядковому номеру.
1 Формализация.
1.1 Постановка задачи.
Цель. Вывести на экран название дня недели в зависимости от его порядкового номера.
Входные данные.
n – номер дня недели. Т.к. номер дня недели может принимать значения от 1 до 7, то можно для описания этой переменной создать интервальный тип, а можно воспользоваться стандартным типом byte.
Выходные данные.
Т.к. при решении этой задачи не требуется выполнение ни каких вычислений, то выходной величиной будет строковая константа, значение которой– название дня недели.
1.2 Модель
ввод значения n
n=1;"понедельник"
n=2;"вторник"
n=3;"среда"
n=4;"четверг"
n=5;"пятница"
n=6;"суббота"
n=7;"воскресенье"
иначе "неделя кончилась"
Алгоритм решения
1
2
+
3
+
+
4
+
5
+
6
7 +
+
8
9
Алгоритм выполняется следующим образом.
Шаг 1. Вводится номер дня недели, это и будет значением селектора.
Шаг 2.- 8. Значение селектора сравнивается по очереди с каждым из номеров дней недели и как только значение совпадет, будет выведено сообщение с названием дня недели.
Шаг 9. Этот шаг выполняется в случае ввода несуществующего дня недели, выдается соответствующее сообщение.
3. Задания
По номеру в журнале выберите индивидуальное
задание из нижеприведенного списка. В
качестве f(x) использовать по выбору:
sin(x), х2; е
.
Отредактируйте вид формы и текст
программы, в соответствии с полученным
заданием.
a=
5.
6.
7
7.
8.
9.
10.
11.
.
12.
.
13.
.
По номеру n (n>0) некоторого года определить с - номер его столетия (учесть, что, к примеру, началом XX столетия был 1901, а не 1900 год).
Для целого числа
от
1 до 99 вывести фразу “мне
лет”,
учитывая при этом, что при некоторых
значениях
слово
“лет” надо заменить на слово “год”
или “года”.
Для натурального числа вывести фразу “мы выпили бутылок пива”, согласовав слово “бутылка” с числом .1 Вводится число от 1 до 4, определяющее пору года. Дать название этой поры года (1 — зима, 2 — весна, 3 — лето, 4 — осень).
Вводится число от 1 до 7, определяющее день недели. Дать название этого дня (1 — понедельник, 2 — вторник, ..., 7 — воскресенье).
Вводятся числа 12, 1, 2, определяющие зимний месяц года. Дать название этого месяца года (1 — январь, 2 — февраль, 12 — декабрь).
6 Вводится значение года в укороченной форме (от 0 по 10). Вывести значение года текущего столетия в полном формате (0 – 2000, 1 – 2001 и т.д.).
7 Вводится номер месяца (1, 2, …, 12). Вывести количество дней в указанном месяце.
8 Написать программу, которая запрашивает у пользователя номер дня недели и выводит одно из сообщений: «Рабочий день», «Суббота», «Воскресенье».
9 Вводится число от – 10 до 10. Вывести сообщение: введенное число больше 0, меньше 0 или равно 0.
10 Вводится число от 2 до 10. Вывести сообщение: четное или нечетное введенное число.
11 Вводится число от 1 до 10. Дать название этого числа (1 — один, 2 — два, ..., 10 — десять).
12 Вводятся числа 3, 4, 5, определяющие весенний месяц года. Дать название этого месяца года (3 — март, 4 — апрель, 5 — май).
13 Определить число дней в месяце. Считать год не високосным
Контрольные вопросы:
Какой алгоритм называют алгоритмом с ветвлением?
Что такое полный и сокращенный вид алгоритма ветвления?
Что используется в качестве условий в ветвлении?
Какие знаки отношений можно использовать при составлении условий?
Что такое составное условие?
Каковы правила записи составных условий?
Что такое "селектор" и зачем он нужен?
Какого типа должна быть переменная-селектор?
Содержание отчета
1Тема. Цель
2 Ответы на контрольные вопросы
3 выполненное практическое задание
