- •1.2. Основные понятия теории множеств и 1.3. Основные структуры.
- •1.4. Перестановки.
- •1.5. Размещения.
- •1.6. Сочетания.
- •2. Теория вероятности.
- •2.1. Классическое определение вероятности.
- •2.2. Теоремы сложения и умножения вероятностей.
- •2.3. Дискретные случайные величины.
- •2.4. Нормальный закон распределения вероятностей.
- •2.5. Основные понятия теории вероятности.
- •2.6. Аксиомы теории вероятности.
- •3.1. Дифференциальное исчисление функции одной переменной
- •3.2. Разрыв функции.
- •3.3. Функция. График.
- •3.4. Понятие дифференциального уравнения
- •4.1. Языки программирования высокого уровня
- •4.2. Задачи на циклы с параметром.
- •4.3. Алгоритмы
- •4.4. Работа с заданными массивами.
- •4.5. Блок – схемы. Ветвление.
- •4.6. Блок – схемы. Циклы с проверкой условия.
- •Текстовые редакторы. Таблицы
- •Электронные таблицы. Встроенные функции.
- •5.3. Компьютерная графика
- •5.4. Служебные программы.
- •5.7. Основные компоненты операционных систем.
- •5.8. Обзор программного обеспечения.
- •Двоичная система счисления.
- •Представление чисел в различных системах счисления
- •6.2 Количество информации.
- •Интернет
- •Конфигурация и топология цепей
- •Структура сообщений
- •Адресация в Интернет
- •Способы подключения к Интернету
- •Защита информации. Шифрование.
- •4. Ошибки обслуживающего персонала или пользователей.
- •5. Неправильное хранение информации.
- •Кодирование информации
4.3. Алгоритмы
Алгоритм - четкое описание последовательности действий, которые необходимо выполнить при решении задачи. Можно сказать, что алгоритм описывает процесс преобразования исходных данных в результаты, так как для решения любой задачи необходимо:
1. Ввести исходные данные.
2. Преобразовать исходные данные в результаты (выходные данные).
3. Вывести результаты.
Разработка алгоритма решения задачи - это разбиение задачи на последовательно выполняемые этапы, причем результаты выполнения предыдущих этапов могут использоваться в качестве исходных данных для последующих. При этом должны быть четко указаны как содержание каждого этапа, так и порядок их выполнения. Отдельный этап алгоритма представляет собой либо более простую, чем исходная, задачу, алгоритм решения которой известен (разработан заранее), либо достаточно простую и понятную без пояснений последовательность действий.
Приведем примеры алгоритмов из обыденной жизни:
а) поездка в институт;
б) ремонт телевизора (по инструкции);
в) поиск пропавшей вещи;
г) выращивание растений на участке и т.п.
Не все задачи могут быть решены с использованием алгоритмов. Например, написание музыки, написание стихов, научное открытие.
Компьютер используется для решения лишь тех задач, для которых может быть составлен алгоритм.
Любой алгоритм обладает следующими свойствами: детерминированностью, массовостью, результативностью и дискретностью.
Детерминированность (определенность) означает, что набор указаний алгоритма должен быть однозначно и точно понят любым исполнителем. Это свойство определяет однозначность результата работы алгоритма при заданных исходных данных.
Массовость алгоритма предполагает возможность варьирования исходных данных в некоторых пределах. Это свойство определяет пригодность использования алгоритма для решения множества конкретных задач определенного класса.
Результативность алгоритма означает, что для любых допустимых исходных данных он должен через конечное число шагов (или итераций) завершить свою работу.
Дискретность алгоритма означает возможность разбиения определенного алгоритмического процесса на отдельные элементарные этапы, возможность реализации которых человеком или компьютером не вызывает сомнения, а результат выполнения каждого элементарного этапа вполне определен и понятен.
Таким образом, алгоритм дает возможность чисто механически решать любую конкретную задачу из некоторого класса однотипных задач.
Существует несколько способов описания алгоритмов: словесный, формально-словесный, графический и др.
Словесный способ описания алгоритма отражает содержание выполняемых действий средствами естественного языка. К достоинствам этого способа описания следует отнести его общедоступность, а также возможность описывать алгоритм с любой степенью детализации. К главным недостаткам этого способа следует отнести достаточно громоздкое описание, отсутствие строгой формализации в силу неоднозначности восприятия естественного языка.
Формально-словесный способ описания алгоритма основан на записи содержания выполняемых действий с использованием изобразительных возможностей языка математики, дополненного с целью указания необходимых пояснений средствами естественного языка. Данный способ, обладая всеми достоинствами словесного способа, вместе с тем более лаконичен, а значит, и более нагляден, имеет большую формализацию, однако также не является строго формальным.
Графический способ описания алгоритмов представляет собой изображение логико-математической структуры алгоритма, при котором все этапы процесса обработки данных представляются с помощью определенного набора геометрических фигур (блоков), имеющих строго определенную конфигурацию в соответствии с характером выполняемых действий.
Для облегчения процесса разработки и восприятия графического изображения алгоритмов их составление осуществляется в соответствии с требованиями ГОСТ 19701—90 «Схемы алгоритмов, программ, данных и систем. Условные обозначения и правила выполнения» и ГОСТ 19.003—80 «Схемы алгоритмов и программ. Обозначения условно- графические».
Изображение схем алгоритмов осуществляется по определенным правилам. В соответствии с этими правилами каждая схема должна начинаться и кончаться соответствующими символами, обозначающими начало и окончание алгоритма.
Все блоки в схеме располагаются в последовательности сверху вниз и слева направо, объединяясь между собой линиями потока. В этом случае направление линий потока не идентифицируется с помощью стрелок, в отличие от других направлений.
С целью повышения наглядности графические схемы алгоритмов могут сопровождаться кратким формально-словесным описанием внутри условного изображения блоков, раскрывающим содержание выполняемой операции. Для обозначения условной передачи управления от блоков логических операций над соответствующими линиями потока могут записываться специальные знаки операций отношения (<, >, = и другие) или слова «Да» либо «Нет».
Основные виды алгоритмических структур
При всем разнообразии решаемых задач в них можно выделить три основных (канонических) вида алгоритмических структур: линейную, разветвленную и циклическую. С помощью этих трех видов структур можно построить алгоритм любой сложности.
Линейным процессом называется такой алгоритмический процесс, при котором все этапы решения задачи выполняются в естественном порядке следования этих этапов. Для линейной структуры характерно, что порядок выполнения этапов не зависит ни от исходных данных, ни от результатов выполнения предыдущих этапов.
Разветвленным процессом называется такой алгоритмический Процесс, в котором выбор направления, а значит, и характера обработки информации зависит от результатов проверки выполнения какого-либо условия. В зависимости от характера логического условия процесс может состоять из двух и более ветвей. В любой конкретный момент реализации данной структуры осуществляется обработка только по одной из ветвей, а выполнение операций по другим ветвям исключается.
Циклический процесс представляет собой алгоритмическую структуру, реализующую многократно повторяющиеся однотипные этапы обработки данных. Многократно повторяющийся участок алгоритма, входящий в циклическую структуру (за исключением этапа проверки условия окончания цикла), называется телом цикла. В качестве тела цикла могут выступать линейные, разветвленные или другие циклические структуры, а также сочетания этих структур.
Циклы, не содержащие внутри себя других циклов, называются простыми. Сложные циклы содержат внутри себя, по крайней мере, хотя бы еще одну циклическую структуру. При этом циклы, охватывающие другие циклы, называются внешними, а циклы, входящие в тело внешних, — внутренними.
В зависимости от способа организации числа повторений цикла различают: циклы с заранее заданным количеством повторений; циклы с заранее неизвестным числом повторений (итерационные циклы). По способу организации порядка исполнения проверки условия окончания цикла различают две разновидности циклических структур: проверкой условия окончания цикла до и после реализации цикла.
Рис. 1.7. Основные графические обозначения блоков и программ (а) и пример записи схемы алгоритма (6}