А. Словесно-формульное описание алгоритма решения задачи
1. Ввести ST , перейти к п. 2.
2. Если ST < 5, то ZP : = 130, перейти к п. 4, иначе — перейти к п. 3.
3. Если ST < 15, то ZP : = 180, перейти к п. 4, иначе
ZP : = 180 + (ST - 15)10, перейти к п. 4.
4. Вывести значение ZP , перейти к п. 5.
5. Конец работы.
В. Графическое описание алгоритма
Прежде чем перейти к описанию алгоритма графическим способом, введем понятие блок-схемы алгоритма.
Блок-схема алгоритма представляет собой систему связанных геометрических фигур.
Каждая фигура обозначает один этап решения задачи и называется блоком. Порядок выполнения этапов указывается стрелками, соединяющими блоки. В схеме блоки стараются размещать сверху вниз, в порядке их выполнения. Для наглядности операции разного вида изображаются в схеме различными геометрическими фигурами:
Каждый из описанных блоков № 2 и № 3 имеет один вход и один выход. Блок проверки некоторого условия (4) имеет два выхода — Да и Нет. Например:
Если условие выполняется — выходим из блока по выходу Да, если не выполняется — по выходу Нет.
Вернемся к нашей задаче расчета заработной платы. Блок-схема описанного выше алгоритма будет иметь вид
Типы алгоритмов
В зависимости от особенностей своего построения алгоритмы делятся на три основные группы:
1) линейные;
2) разветвляющиеся;
3) циклические.
Разнообразие алгоритмов определятся тем, что любой алгоритм распадается на части, фрагменты и каждый фрагмент представляет собой алгоритм одного из трех указанных видов. Поэтому важно знать структуру каждого из алгоритмов и принципы их составления.
|
|
2. Линейные алгоритмы
Линейным называется алгоритм, в котором все этапы решения задачи выполняются строго последовательно.
То есть линейный алгоритм выполняется в естественном порядке его написания и не содержит разветвлений и повторений. Структура такого алгоритма имеет вид
Рассмотрим составление схем линейных алгоритмов на конкретных примерах.
Пример 1
Даны переменные А и В. Требуется обменять их значения, т. е. переменная А должна получить значение В, а В — значение А.
Решение
1.Исходные данные: А, В. Вспомогательная переменная: DOP. Результат: А, В.
2.Метод решения задачи: в ЭВМ каждая величина хранится в отдельном участке памяти (переменной). Поэтому задача заключается в том, чтобы поменять местами содержимое двух ячеек.
Давайте решим следующую задачу: имеется два стакана, в одном из них вода, в другом молоко. Требуется поменять содержимое стаканов. Житейский опыт подсказывает, что нам для решения данной проблемы потребуется еще один стакан. В него мы перельем воду из первого, затем в первый стакан (из второго) нальем молоко, а из вспомогательного стакана во второй нальем воду.
|
|
Аналогично решается и задача обмена значениями двух переменных. Введем в рассмотрение еще одну величину, например С (вспомогательный стакан).
Решение задачи распадается на три этапа. Соответствующие им блоки и порядок их выполнения изображены на схеме алгоритма (рис.).
Мы получили запись алгоритма решения данной задачи с помощью блок-схемы. Рассмотрим теперь запись этого алгоритма с помощью псевдокода.
Напомню, что псевдокоды — это интерпретация шагов алгоритма на обычном языке, который описывает действие команды.
При записи алгоритма с использованием псевдокодов знаки арифметических операций будем обозначать так: +, -, /, *.
Знак := (двоеточие и равно) означает операцию присвоения выбранной переменной некоторого значения.
К инструкциям линейных алгоритмов относятся инструкции ввода/вывода информации и инструкция присваивания. На языке псевдокода эти инструкции обозначаются следующим образом:
• Инструкция ввода — Ввод (х, у, z ). (Здесь в скобках перечислены имена элементов, которые надо ввести.)
• Инструкция вывода — Вывод (х, у).
• Инструкция присваивания — х : = 32. (Читается: «х присвоить значение 32».)
|
|
Алгоритм Перемещение; (заголовок алгоритма)
Переменные А, В, Dop: целые числа; (описательный блок)
Начало
Ввод (А, В);
Dop : = А;
А: = В;
В : = Dop;
Вывод (А, В);
Конец.
Проверим составленный алгоритм. Для этого нужно выполнить действия, предусмотренные в алгоритме втом порядке, в котором они записаны. Для того чтобы было легче контролировать значения переменных, исполняя алгоритм, будем составлять трассировочную (тестирующую) таблицу. Такую таблицу также называют таблицей значений.
Пусть переменным А и В заданы значения 3 и 6 соответственно. В итоге переменная А должна содержать 6, а В — 3. Проверим работу нашего алгоритма:
№ | А | В | DOP |
1 | 3 | 6 | 0 |
2 | 3 | 6 | 3 |
3 | 6 | 6 | 3 |
4 | 6 | 3 | 3 |
Результат работы алгоритма совпадает с ожидаемым. Значит, алгоритм составлен верно.
Логические выражения
Прежде чем перейти к рассмотрению ветвящихся и циклических алгоритмов, рассмотрим понятие логического выражения.
В некоторых случаях выбор варианта действий в программе должен зависеть от того, как соотносятся между собой значения каких-то переменных.
Например, расчет корней квадратного уравнения производится по-разному, в зависимости от знака дискриминанта (вспомните школьный курс математики).
|
|
В результате сравнения значений двух выражений возможны два варианта ответа: сравнение истинно или ложно.
Например:
2 + 3>3+1— да (истинно)
0 < —7? — нет (ложно)
Выражения такого вида мы будем называть логическими выражениями.
Нам известны шесть операций сравнения:
Знак | Операция |
< | Меньше |
> | Больше |
<= | Меньше или равно |
>= | Больше или равно |
= | Равно |
<> | Не равно |
С помощью этих операций мы будем составлять логические выражения. Причем в выражениях присутствуют не только константы, но и переменные.
Часто встречаются задачи, в которых используются не отдельные условия, а совокупность связанных между собой условий (отношений). Например, в магазине вам нужно выбрать туфли, размер которых г = 45, цвет col = белый, цена price не более 400 руб.
Другой пример: школьник выяснил, что сможет купить плитку шоколада, если она стоит 3 руб. или 3 руб. 50 коп.
В первом примере мы имеем дело с тремя отношениями, связанными между собой союзом «и» и частицей "не", во втором — с двумя отношениями, связанными союзом «или». Подобные условия назовем составными и для их обозначения в алгоритме договоримся использовать союзы «и», «или» и частицу «не», которые будем выделять жирным шрифтом и рассматривать как знаки логических операций, позволяющих из простых условий создавать составные, подобно тому как из простых переменных и констант с помощью знаков «+», «—» и т. д. можно создавать алгебраические выражения.
Так, условия наших примеров в алгоритме могут выглядеть следующим образом:
первое: (r = 45) и (col = белый) и (не (price > 400));
второе: (цена = 3) или (цена = 3,5).
Дата добавления: 2020-12-12; просмотров: 444; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!