А. Словесно-формульное описание алгоритма решения задачи



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; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!