Основные понятия теории алгоритмов
Чтобы заставить компьютер решить какую-либо задачу, необходимо прежде всего разработать алгоритм ее решения. В дополнение к изложенному в предыдущей главе напомним, что алгоритм – это описание, состоящее из конечного множества правил и определяющее процесс обработки информации.
Термин «алгоритм» – транскрипция имени великого узбекского математика Мухаммеда аль-Хорезми, который в IX веке разработал правила выполнения четырех действий арифметики. Однако не следует считать алгоритм чисто математическим понятием. Например, при разговоре по телефону мы действуем по определенному алгоритму, и никому не приходит в голову побеседовать с абонентом, не набрав его номер.
При разработке алгоритма решения задачи математическая формулировка преобразуется в процедуру решения, представляющую собой последовательность арифметических действий и логических связей между ними. При этом алгоритм должен обладать следующими свойствами:
- детерминированностью, означающей, что применение алгоритма к одним и тем же исходным данным должно приводить к одному и тому же результату;
- массовостью, позволяющей получать результат при различных исходных данных;
- результативностью, обеспечивающей получение результата через конечное число шагов.
На практике при решении любой более или менее сложной задачи можно создать несколько отличающихся друг от друга алгоритмов, приводящих к получению одного и того же результата.
Элементарной структурной единицей любого алгоритма является простая команда, обозначающая один элементарный шаг переработки или отображения информации, в процессе выполнения которого происходит изменение некоторых величин. Например, присвоить переменной X значение 528 (X=528) или вычислить Y=(A3+5)/C. Объектами действий в алгоритмах являются числа (45; 0,03189; -8.675), простые переменные (A; y; betta; d5s) и переменные с индексами (X23; p12).
Существует много способов записи алгоритмов, отличающихся друг от друга наглядностью, компактностью, степенью формализации и другими показателями. Наибольшее распространение получили графический способ и так называемый алгоритмический язык записи алгоритмов, ориентированный на человека.
Графическая запись алгоритма выполняется в соответствии с государственными стандартами. Схема алгоритма представляет собой последовательность блоков, предписывающих выполнение определенных действий, и связи между ними. Символы наиболее часто используемых блоков приведены в таблице 1.
Графическое представление хода решения задачи является самым наглядным способом записи алгоритма.
В качестве примера рассмотрим схему упрощенного алгоритма для решения квадратного уравнения.
Задание: составить алгоритм вычисления действительных корней уравнения ax2 + bx + c = 0.
Исходные данные: a > 0, b > 0, c > 0.
Схема алгоритма показана на рисунке 1.
Вначале по заданным значениям a, b и с вычисляется дискриминант D. Потом значение D проверяется: если оно меньше нуля, выдается сообщение «решения нет»; если оно больше или равно нулю, вычисляется квадратный корень из дискриминанта, а затем значения двух корней уравнения x1 и x2.
Запись алгоритма на алгоритмическом языке, ориентированном на человека (псевдокоды), выполняется с помощью служебных слов и команд, которые записываются в сокращенном виде. Запись начинается со служебного слова алгоритм (АЛГ), за которым записывается его краткое название и определяются типы используемых величин. Далее перечисляются аргументы (АРГ) и результаты (РЕЗ). Команды, определяющие действия, записываются между служебными словами начало (НАЧ) и конец (КОН). Команды управления ходом вычислений начинаются служебными словами: ЕСЛИ, ТО, ИНАЧЕ, ЦК (цикл), КЦ (конец цикла), ПОКА. Команды друг от друга отделяются точкой с запятой.
Алгоритм решения квадратного уравнения, записанный в псевдокодах, имеет следующий вид:
АЛГ Решение квадратного уравнения
АРГ a,b,c,D,d; РЕЗ x1,x2;
НАЧ;
Вычислить D=b2–4•a•c;
ЕСЛИ D>=0;
ТО Вычислить d =; Вычислить x1=(–b+d)/2•a; Вычислить x2=(–b-d)/2•a;
КОН;
ИНАЧЕ Вывести сообщение: РЕШЕНИЯ НЕТ;
КОН
Алгоритм любой задачи, решаемой на компьютере, можно описать, используя четыре типа управляющих структур:
1. Алгоритм линейной структуры (следование) – алгоритм, в котором все действия выполняются последовательно друг за другом в порядке, заданном схемой алгоритма.
2. Алгоритм разветвляющейся структуры (выбор) – алгоритм, в котором в зависимости от выполнения некоторого логического условия вычислительный процесс должен идти по одной или другой ветви, то есть вычисление будет осуществляться либо по одним, либо по другим формулам. Блок-схема алгоритма с полным выбором представлена на рис. 3.
Согласно этой блок-схеме в зависимости от результата проверки условия выполняются только действия ветви «да» (действия 1 и 2) или только ветви «нет» (действия 3 и 4). В алгоритме решения квадратного уравнения на рис.1 происходит разветвление после проверки условия D>=0. В общем случае число ветвей может быть больше двух.
3. Алгоритм циклической структуры (повторение) – алгоритм, содержащий многократно выполняемые участки вычислительного процесса, называемые циклами. Внутри одного цикла могут размещаться один или несколько других.
4. Вспомогательный алгоритм (подпрограмма) – алгоритм, разработанный ранее и включаемый в основной алгоритм в качестве отдельного элемента. Блок-схема обращения к подпрограмме выглядит следующим образом:
Предположим, что рассмотренный выше (рис.1) алгоритм решения квадратного уравнения используется в качестве стандартной подпрограммы. Тогда достаточно присвоить ей имя и записать его в блок обращения к подпрограмме.
Необходимо отметить, что на практике алгоритм создается из отдельных кусков или блоков. Алгоритм конкретной задачи может содержать в себе огромное количество рассмотренных выше структур в различных комбинациях и сочетаниях, собранных и соединенных между собой согласно исходному материалу, полученному на этапе постановки задачи.
- Конспект лекций по дисциплине «информатика»
- 1. Автоматизированная обработка информации: основные понятия и технологии
- 1.1. Информация, информационные процессы и информационное общество Структура информационного процесса
- Контрольные вопросы
- 1.2.Технологии обработки информации. Управление базами данных. Компьютерные коммуникации
- Информационный продукт
- Способность к взаимодействию
- Ликвидация промежуточных звеньев
- Глобализация
- Конвергенция
- Контрольные вопросы
- 2. Общий состав и структура персональных эвм и вычислительных систем, их программное обеспечение
- 2.1. Архитектура персонального компьютера, структура вычислительных систем. Программное обеспечение вычислительной техники.
- Сведения о некоторых важных характеристиках микропроцессоров фирмы Intel.
- Стандартные устройства ввода-вывода
- Клавиатура
- Модем и акустический адаптер
- Дискеты и жесткие диски
- * Винчестеры типа at-Bus
- Принтер
- Накопитель на лазерном диске (cd-rom)
- Устройства ввода изображений
- Коммуникационное оборудование
- Подготовка компьютера к работе
- Чтобы включить...
- И чтобы выключить…
- Аппаратные средства персонального компьютера
- Архитектура персонального компьютера
- Функциональные и технические характеристики устройств персонального компьютера
- 1. Процессор
- 2. Основная память
- 3. Электронные платы.
- 4. Системный интерфейс
- 5. Устройства внешней памяти
- 6. Устройства ввода информации
- 7. Мониторы и видеоконтроллеры
- 8. Принтеры
- 9. Другие устройства, подключаемые к компьютеру
- 10. Портативные и мультимедийные компьютеры
- Выбор конфигурации персонального компьютера
- Сведения об операционной системе ms dos
- Диалог пользователя с ms dos
- Обзор команд ms dos
- 2.2. Операционные системы и оболочки Программная оболочка Norton Commander Работа с программой Norton Commander
- 2.3. Операционные системы и оболочки. Графическая Операционная Система Windows Общие сведения о Windows
- Пользовательский интерфейс
- Составляющие части окна
- Значок “Корзина”
- Контрольные вопросы
- 2.4. Прикладное программное обеспечение: файловые менеджеры, программы – архиваторы, утилиты. Обслуживание дисков
- Размещение информации на дисках и форматирование дисков.
- Уборка и проверка дисков.
- Оптимизация размещения файлов на диске.
- Восстановление на дисках удаленной информации.
- Программы-архиваторы. Начало работы и вид окна программы-архиватора WinRar
- Контрольные вопросы
- 3. Организация размещения, обработки, поиска, хранения и передачи информации, антивирусные средства зашиты информации. Понятие компьютерного вируса.
- Контрольные вопросы
- 4. Локальные и глобальные компьютерные сети, сетевые технологии обработки информации
- Контрольные вопросы
- 5. Прикладные программные средства
- 5.1. Текстовые процессоры Введение
- Управление курсором.
- Подготовка текстового документа.
- 1. Набор текста.
- 2. Редактирование текста.
- 3. Форматирование текста.
- 4. Печать текста.
- 5. Ведение архива текстов.
- 1. Выделение фрагмента текста.
- 3. Поиск, замена символов, фрагментов текста и параметров форматирования.
- Контрольные вопросы
- 5.2. Электронные таблицы
- 1. Основы работы с табличным процессором.
- 1.1. Назначение и области применения табличных процессоров.
- 1.2. История и тенденции развития.
- 1.3. Основные понятия.
- 1.3.1. Типовая структура интерфейса.
- 1.3.2. Данные, хранимые в ячейках электронной таблицы.
- 1.4. Функциональные возможности табличных процессоров.
- 1.4.1. Характеристика режимов и команд.
- 1.4.2. Графические возможности.
- 1.5.2. Проектирование электронной таблицы.
- 1.5.3. Объединение электронных таблиц.
- 1.5.4. Электронная таблица для поддержки принятия решений.
- 2. Табличный процессор ms Excel.
- 2.1. Знакомство с табличным процессором ms Excel.
- 2.1.1. Запуск ms Excel.
- 2.1.2. Знакомство с экраном ms Excel.
- 2.1.3. Панели инструментов в окне ms Excel.
- 2.1.4. Основное меню ms Excel.
- 2.1.5. Получение справочной информации.
- 2.1.6. Работа с файлами в ms Excel.
- 2.2. Ввод и редактирование данных.
- 2.2.1. Ввод и восстановление информации в ячейке.
- 2.2.2. Формат данных.
- 2.2.3. Ввод чисел и текста.
- 2.2.4. Стиль представления данных.
- 2.2.5. Ввод даты и времени.
- 2.2.6. Ввод последовательных рядов данных.
- 2.2.7. Формирование заголовков таблиц.
- 2.3. Работа с функциями и формулами.
- 2.3.1. Внесение изменений в формулу.
- 2.3.2. Использование ссылок.
- 2.3.3. Значения ошибок в формулах.
- 2.3.4. Перемещение и копирование формул.
- 2.3.5. Распространение формул.
- 2.3.6. Формулы преобразования текста.
- 2.3.7. Функции даты и времени.
- 2.3.8. Логические функции.
- 2.4. Диаграммы и графики.
- 2.5. Работа с базами данных.
- Контрольные вопросы
- 5.3. Системы управления базами данных. Основные понятия теории баз данных
- 3.6.4. Форма-диаграмма.
- 3.7.7. Простой отчет.
- Контрольные вопросы
- 5.4. Информационно – поисковые системы Эффективная технология работы с растущими потоками несистематизированной текстовой информации
- Контрольные вопросы
- 6. Знакомство с языком программирования. Этапы решения задач с помощью персональных компьютеров
- Основные понятия теории алгоритмов
- Языки программирования
- Основные понятия языка программирования Паскаль
- 1.2. Основные определения языка
- Davlenie 5 Пробел недопустим в составе имени
- 1.3. Составные части программы
- Контрольные вопросы
- 7. Автоматизированные системы: понятие, состав, виды.
- Контрольные вопросы
- Список литературы: