1c / Лабораторная работа_1
.docЛабораторная работа №1
Тема: Составление блок-схем алгоритмов.
Цель: Получить практические навыки составления блок-схем алгоритмов.
Задание: на основе полученного задания составить словесно-формульное описание алгоритма задачи, описание на псевдокоде и графическое описание алгоритма. Лабораторная работа состоит из 3 заданий.
В тетради для практических работ для:
-
Задания из блока 1 и блока 2 привести номер, текст задания, псевдокод и графическое описание алгоритма.
Таблица распределения заданий по вариантам
Номер по списку |
Задание |
Номер по списку |
Задание |
1. |
3, 5 |
13. |
3, 5 |
2. |
4, 6 |
14. |
4, 6 |
3. |
5, 7 |
15. |
5, 7 |
4. |
6, 8 |
16. |
6, 8 |
5. |
7, 9 |
17. |
7, 9 |
6. |
8, 10 |
18. |
8, 10 |
7. |
9, 11 |
19. |
9, 11 |
8. |
10, 12 |
20. |
10, 12 |
9. |
11, 1 |
21. |
11, 1 |
10. |
12, 2 |
22. |
12, 2 |
11. |
1, 3 |
23. |
1, 3 |
12. |
2, 4 |
24. |
2, 4 |
Дополнительная информация
Базовые конструкции структурного программирования
Существует несколько способов описания алгоритмов:
- словесно-формульное описание алгоритма, т. е. описание алгоритма с помощью слов и формул;
- графическое описание алгоритма, т. е. описание с помощью специальных графических схем алгоритмов – блок-схемы;
- способ, использующий псевдокоды. Псевдокоды – это интерпретация шагов алгоритма на обычном языке, которая описывает действие команды. Псевдокод используется в листингах, чтобы показать общую структуру программы, не применяя реальных операторов языка программирования;
- запись алгоритма на одном из языков программирования (Basic, С++, Pascal, и т. п.).
1. Типы алгоритмов
В зависимости от особенностей своего построения алгоритмы делятся на три основные группы:
-
линейные;
-
разветвляющиеся;
-
циклические.
Разнообразие алгоритмов определятся тем, что любой алгоритм распадается на части, фрагменты и каждый фрагмент представляет собой алгоритм одного из трех указанных. Поэтому важно знать структуру каждого из алгоритмов и принципы их составления.
Линейные алгоритмы
Линейным называется алгоритм, в котором все этапы решения задачи выполняются строго последовательно.
То есть линейный алгоритм выполняется в естественном порядке его написания и не содержит разветвлений и повторений. Структура такого алгоритма показана на рис. 4.
Рис. 4 Линейный алгоритм
Псевдокод
нач ввод переменные
действие
вывод
кн
Алгоритмы ветвящейся структуры
Алгоритмом ветвящейся структуры будем называть такой алгоритм, в котором выбирается один из нескольких возможных путей (вариантов) вычислительного процесса.
Каждый подобный путь называется ветвью алгоритма.
Признаком разветвляющегося алгоритма является наличие операций условного перехода, когда происходит проверка истинности некоторого логического выражения (проверяемое условие) и в зависимости от истинности или ложности проверяемого условия для выполнения выбирается та или иная ветвь алгоритма. Алгоритм предполагает выполнение Действия 1, если записанное условие истинно (выполняется), и выполнение Действия 2, если условие ложно (не выполняется).
Рис. 5 Алгоритм ветвящейся структуры
В частном случае может отсутствовать один из блоков — «Действие 1» или «Действие 2».
Псевдокод
если условие
то действие 1
иначе действие 2
кв
Циклический алгоритм
Реализует повторение некоторых действий. Иными словами циклические алгоритмы включают в себя циклы.
Циклом называется последовательность действий, выполняемых многократно, каждый раз при новых значениях параметров.
Примером циклических алгоритмов может служить алгоритм покраски забора. Действительно, рассмотрим этот алгоритм в словесно-формульном виде:
Шаг I. Подготовить исходные данные (забор, краску, кисть).
Шаг II. Подойти к забору.
Шаг III. Обмакнуть кисть в краску.
Шаг IV. Нанести краску кистью на поверхность забора.
Шаг V. Если забор еще не весь окрашен, то повторить алгоритм начиная с пункта (шаг III).
Существует несколько видов циклических инструкций, с помощью которых можно организовать циклы:
1. Инструкция «Цикл с параметром» (цикл с заданным количеством повторений).
Рис. 6 Инструкция «Цикл с параметром»
2. Инструкция «Цикл с предусловием» (цикл — «пока»).
Рис. 7 Инструкция «Цикл с предусловием»
Псевдокод
пока условие, повторять
нц
действие
кц
-
Инструкция «Цикл с постусловием» (цикл — «до»).
Рис. 8 Инструкция «Цикл с постусловием»
Псевдокод
повторять
действие
до условие
Задания
Блок 1
-
Алгоритм поиска суммы минимального и максимального из трех введенных чисел.
-
Даны два числа. Меньшее заменить их полусуммой, а большее - удвоенным произведением. Составить алгоритм.
-
Найти меньшее из двух целых чисел.
-
Найти большее из двух целых чисел.
-
Каждая бактерия делится на две в течение одной минуты. В начальный момент времени имеется одна бактерия. Составить алгоритм нахождения числа бактерий на 10 минуте.
-
Даны a, b, . Найти площадь треугольника, две стороны которого равны a и b, а угол между этими сторонами равен .
-
Дана сторона квадрата a. Найти его периметр P = 4·a.
-
Дана сторона квадрата a. Найти его площадь S = a2.
-
Даны стороны прямоугольника a и b. Найти его площадь S = a·b и периметр P = 2·(a + b).
-
Дана длина ребра куба a. Найти объем куба V = a3 и площадь его поверхности S = 6·a2.
-
Даны два числа a и b. Найти их среднее арифметическое: (a + b)/2.
-
Даны переменные A, B, C. Изменить их значения, переместив содержимое A в B, B — в C, C — в A, и вывести новые значения переменных A, B, C.
Блок 2
|
|
|
|
|
|
|
|
|
|
|
|
Пример 1. Даны два числа a и b. Найти их среднее арифметическое: (a + b)/2.
Псевдокод:
алг Среднее арифметическое
цел а, b
вещ. SA
нач ввод a,b
SA=(a+b)/2
вывод SA
кон
Блок схема
Пример 1.
алг
цел x
вещ f
ввод х
если х<=3
то f=–х2+3*х+9
иначе если (х2+1)=0
вывод “ДЕЛЕНИЕ НА 0”
иначе f=(х/(x2+1))
кв
кон
Блок схема