Краткие сведения из теории. Алгоритм - это точное предписание исполнителю совершить последовательность действий, направленных на достижение поставленной цели

Алгоритм - это точное предписание исполнителю совершить последовательность действий, направленных на достижение поставленной цели. Алгоритм, составленный для некоторого исполнителя, можно представить различными способами: с помощью графического или словесного описания, в виде таблицы, последовательностью формул, записанным на алгоритмическом языке. Графический способ имеет ряд преимуществ, благодаря наглядности.

Блок-схема – это ориентированный граф, указывающий порядок исполнения команд алгоритма. Вершины такого графа могут быть одного из трех типов - функциональная (а) вершина (имеющая один вход и один выход); «предикатная» (б) вершина, имеющая один вход и два выхода; «объединяющая» (в) вершина (вершина слияния), обеспечивающая передачу управления от одного из двух входов к выходу (рис.1).

 
 


а) б) в)

Рисунок 1- Три типа вершин графа

Алгоритм любой сложности может быть представлен комбинацией трех базовых структур:

· композиция или следования;

· ветвления (альтернатива, если - то - иначе);

· итерация или цикл (с предусловием, с постусловием, с конечным числом повторений).

Характерной особенностью этих структур является наличие у них одного входа и одного выхода.

Базовая структура "композиция или следование" означает, что несколько операторов должны быть выполнены последовательно друг за другом и только один раз за время выполнения данной программы. Совокупность связанных блоков структур "следования" называется линейным вычислительным алгоритмом.

Под оператором понимается формальная запись предписания для выполнения некоторой последовательности действий.

Второй базовой структурой является "альтернатива или ветвление". Эта структура обеспечивает, в зависимости от результата проверки условия (истинна или ложь), выбор одного из альтернативных путей работы алгоритма, причем каждый из путей ведет к общему выходу.

 
 

В частном случае может оказаться, что для одного из выбранных путей действий предпринимать не нужно. Такая структура получила название "обход" или структура "если - то" (рис.3).

       
   
 
выход
 
       
   
 

 
 
 
 

 
 

 
 

 
 


Алгоритм, в состав которого входит базовая структура " альтернатива или ветвление", называется разветвляющейся.

Если в алгоритме имеется три и более направления ветвления, то его можно представить в виде совокупности нескольких базовых структур "если - то - иначе" (рис.2).

 
 

Третьей базовой структурой является "цикл". Цикл обеспечивает повторное выполнение или, другими словами, циклическую работу операторов. Различают три разновидности этой структуры:

· "цикл - пока" (рисунок 4);

· "цикл - до" (рисунок 5);

· конечное число повторений (рисунок 6).

Группа операторов, повторяющихся в цикле, называют телом цикла.

Алгоритмы, имеющие в своем составе базовую структуру "цикл", называются циклическими.

Реальные алгоритмы представляют собой совокупность всех рассмотренных базовых структур.

Любой алгоритм должен обладать следующими свойствами:

· Понятность. Используемые на практике алгоритмы составляются с ориентацией на определенного исполнителя. Нужно знать, какие команды этот исполнитель может понять и выполнить, а какие - нет.

· Дискретность - возможностью разбиения алгоритма на отдельные элементарные действия.

· Детерминированность (определенность, точность). Будучи понятным, алгоритм не должен содержать предписаний, смысл которых может восприниматься неоднозначно. Это означает, что одна и та же команда, будучи выполнена разными исполнителями, после исполнения каждым из них должна давать одинаковый результат.

· Результативность. При точном выполнении всех предписаний алгоритма исполнитель должен получить определенный результат за конечное число шагов. Вывод о том, что решения не существует — тоже результат. Следовательно, результативность означает возможность получения результата после выполнения конечного количества операций.

· Массовость (универсальность) - возможностью получения результата при различных исходных данных для некоторого класса похожих задач.

При блок-схемном описании алгоритм изображается геометрическими фигурами (блоками), связанными по управлению линиями (направлениями потока) со стрелками. В блоках записывается последовательность действий.

Таблица 1. Основные блоки

Наименование Обозначение Функции
Процесс Выполнение операций, в результате которых изменяется значение, форма представления или расположение данных.
Ввод-вывод (данные) Преобразование данных в форму, пригодную для обработки (ввод) или отображения результатов (вывод).
Условие Выбор направления выполнения алгоритма в зависимости от некоторых переменных условий.
Предопределённый (типовой) процесс Использование ранее созданных и отдельно написанных программ (подпрограмм)
Документ Вывод данных на бумажный носитель.
Магнитный диск Ввод-вывод данных, носителем которых служит магнитный диск
Пуск-останов Начало, конец, прерывание процесса обработки данных.
Соединитель Указание связи между прерванными линиями, соединяющими блоки

Содержание работы:

1. Выбрать вариант задания.

2. Изучить теоретическую часть.

3. Для каждого задания выполнить постановку задачи.

4. Разработать алгоритмы задач различных структур – линейной, ветвления, циклической в виде блок-схем.

Содержание отчета:

1.Постановка задач.

2. Краткое описание теории

3. Разработка алгоритмов в виде блок- схемы.

4. Анализ алгоритмов.

Варианты заданий:

Таблица 2. Линейные алгоритмы

№ Варианта Расчетные формулы Исходные данные
1.
2.
3.
4. a=-0.5 b=1.7 t=0.44
5. a=-15 b=15.5 x=- 2.9
6. a=16.5 b=3.4 x=0.61
7. a=0.7 b=0.05 x=0.5
8. a=1.1 b=0.04 x=0.15
9. m=2 c=- 1 t=1.2; b=0.7
10. a=3.2; b=17.5 x=- 4.8
11. a=10.2 b=9.2 x=0.5
12. a=0.3; b=0.9 x=0.61
13. a=0.5; b=3.1 x=1.4
14. a=0.5 b=2.9 x=0.3
15. m=0.7; c=2.1; x=1.7; b=1.08; a=0.3
16. a=6.5 b=2.4 x=0.8
17. a=8.2; b=4.2 c=0.65
18. a=8.5; b=5.4 x=2.1
19. m=0.7; c=2.1; x=1.7; b=1.08
20. a=0.89; b=3.59 x=2.43

Таблица 3. Алгоритмы ветвления

№ Варианта Формула Условие Исходные данные
1.      
1. a=-0.5 b=2
2. x<1.3 x=1.3 x>1.3 a=1.5
3. x<1.2 x=1.2 x>1.2 a=2.8 b=-0.3 c=4
4. x<1.4 x=1.4 x>1.4 a=1.65
5. x<1 x=1 1<x<2 x>2 a=2.3
6. a=2.5
7. b=1.5; x=0.3
8. _
9. a=20.3
10. x<0.5 x=5 x>0.5 t=2.2
11. a=2.6 b=-0.39
12. a=0.9
13. a=2.1 b=1.8 c=-20.5
14. a=0.3 n=10
15. t<0.1 t=0.1 t>0.1 a=2.5 b=0.4
16. _
17. a=2.1 b=1.8 c=-20.5
18. a=1.9
19. a=2.1 b=1.8 c=-20.5
20. a=-0.5 b=2

Таблица 4. Циклические алгоритмы

Вариант Массив Действия
1. X(100) Вычислить сумму элементов массива X.
2. A(80) Вычислить среднее арифметическое значений элементов массива A.
3. X(70) Переписать элементы массива X в массив Y по возрастанию.
4. B(50) Определить минимальный элемент массива B и его порядковый номер.
5. C(40) Вычислить максимальный элемент массива C и его номер.
6. D(80) Найти максимальный и минимальный элементы массива D и поменять их местами.
7. Y(20) Вычислить сумму и произведение элементов массива Y.
8. Z(30) Расположить в массив R сначала положительные, а затем отрицательные элементы массива Z.
9. N(50) Определить элементы массива А меньше 1. Затем найти сумму этих элементов и вывести на печать.
10. X(N) Найти элементы массива Х в интервале от -1 до 2. и вывести их на печать.
11. A(N) Переписать элементы массива А в массив В по убыванию и вывести результат на печать.
12. X(N) Переписать в массив Y подряд положительные элементы массива X.
13. X(N) Переписать подряд в массив Y положительные, а в массив Z отрицательные элементы массива X.
14. B(4,4) Определить максимальный элемент массива B и его порядковый номер и вывести результат на печать.
15. C(3,4) Определить минимальный элемент массива C и его порядковый номер и вывести результат на печать.
16. X(5, 5) Организовать ввод и вывод матрицы. Определить сумму элементов матрицы X по строкам и результат выдать на печать.
17. Y(4, 5) Организовать ввод и вывод матрицы. Определить сумму элементов матрицы Y по столбцам, осуществить вывод.
18. P(4, 4) Определить элементы, расположенные на главной диагонали матрицы, осуществить вывод на печать.
19. Y(5, 5) Определить минимальный элемент матрицы Y и его номер.
20. Y(6, 6) Определить максимального элемента матрицы Y и его номер.

Контрольные вопросы:

1. В чем состоит структурный подход к проектированию программ?

2. Что такое алгоритм?

3. Чем реализуются повторные вычисления при проектировании программ?

4. Откуда появилось слова алгоритм?

5. Что такое итерация?

6. Укажите, какие существуют алгоритмы для реализации повторений в вычислительном процессе?


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: