7.1. Определение алгоритма
Алгоритм Евклида был предназначен для нахождения наибольше1
общего делителя пары натуральных чисел (m, n).
Алгоритм Евклида
1. { Нахождение остатка} r:=m mod n.
2. {Замена} m:=n; n:=r.
3. {Остановка?} Если n0, то переход к п.1.
4. {Остановка процесса} m-искомое число.
Представленное описание алгоритма - это последовательность шагов, направленных на достижение некоторого результата (наибольшего общего делителя).
Современное содержание понятия алгоритма можно определить следующим образом.
Алгоритм - точное предписание, которое задает алгоритмический процесс, начинающийся с произвольного исходного данного (из некоторой совокупности возможных для данного алгоритма исходных данных) и направленный на получение полностью определённого этим исходным данным результата.
Алгоритмический процесс - процесс последовательного преобразования конструктивных объектов (слов, чисел, пар слов, пар чисел, предложений и т.п.)., происходящий дискретными <шагами>. Каждый шаг состоит в смене одного конструктивного объекта другим.
Поскольку алгоритмы могут применяться к весьма произвольным объектам (числам, буквам, словам, графам, логическим выражениям и т.д.), в определении алгоритма используется специальный термин <конструктивный объект>, объединяющий в себе все эти возможные случаи. Так, в алгоритме Евклида под конструктивными объектами можно понимать пары чисел.
Смена конструктивных объектов в алгоритме Евклида может быть представлена следующим образом (для пары т=10, т=4): (10, 4)(4,2)(2, 0).
Как правило, для заданного алгоритма можно выделить семь характеризующих его независимых параметров:
совокупность возможных исходных данных,
совокупность возможных промежуточных результатов;
совокупность результатов;
правило начала;
правило непосредственной переработки;
правило окончания;
правило извлечения результата.
Для алгоритма Евклида эти семь параметров могут быть определены следующим образом:
1)1={(т, n)|тn}.
2) Р={(т, n)|тn}.
3) R={m|m>0}.
4) Ввести пару чисел (m, n) таких, что тп.
5) (m, n)(n, т(mod n)).
6) Если в паре (m, n) n=0, то останов.
7) Результатом является первое число пары (m, 0).
Вывод m на устройство вывода.
И теории алгоритмов изучаются алгоритмы, заданные в строгом формализованном виде. Для алгоритма Евклида эта форма может такой:
Определяется решающее правило (функция) - f.
f: PP;
f(m, n)=(m, n) if n = 0;
f(m, n)=(n, m(mod n)) if n0.
На практике в программировании очень часто используется задание алгоритмов в виде блок-схем.
Блок-схема - элементарный граф, вершины которого могут быть одного из трех типов: функциональная вершина, предикатная вершина, объединяющая вершина.
Функциональная вершина используется для представления функции f: XY.
Предикатная вершина используется для представления функции (или предиката) p: X(T,F), т.е. логического выражения, передающего управление по одной из двух возможных ветвей.
Объединяющая вершина представляет передачу управления от одной из двух входящих ветвей к одной выходящей ветви.
Структурная блок-схема - это блок-схема, которая может быть выражена как композиция из четырех элементарных блок-схем: композиция, выбор (альтернатива), итерация (повторение).
Любая программа для машины может быть представлена структурной блок-схемой.
Важной особенностью приведенных структур является то, что они имеют один вход и один выход.
Структурное программирование - процесс разработки алгоритмов с помощью структурных блок-схем.
В более широком плане структурное программирование допускает большее разнообразие элементарных структур управления, чем предложенные четыре. Причиной для расширения множества структур является требование удобства и естественности.
Программирование сверху вниз - это процесс пошагового разбиения алгоритма на все более мелкие части с целью получения таких элементов, для которых можно написать конкретные команды.
Структурное программирование сверху вниз - это процесс программирования сверху вниз, ограниченный использованием структурных блок-схем.
- Глава 4 информационные ресурсы и информатизация общества 64
- Раздел II прикладная информатика 82
- Глава 5. Общая характеристика процессов сбора, передачи, обработки и хранения информации 82
- Глава 6. Технические средства реализации информационных процессов 105
- Глава 11 глобальная информационная сеть internet 222
- Глава 12 искусственный интеллект 270
- Глава 13 экспертные системы 297
- Острейковский в.А. Информатика
- Введение
- Раздел I теоретическая информатика глава 1 основные понятия и определения информатики
- 1.1. Терминология информатики
- 1.2. Объект информатики
- 1.3. Предметная область информатики как науки
- 1.4. Краткая история развития информатики
- Контрольные вопросы
- Глава 2 информатика как наука
- 2.1. Категории информатики
- 2.2. Аксиоматика информатики
- 2.3. Виды и свойства информации
- Контрольные вопросы
- Глава 3. Математические основы информатики
- 3.1. Методы и модели оценки количества информации
- 3.2. Основные понятия теории алгоритмов
- 3.3. Системы счисления
- 3.3.1. Позиционные системы счисления
- 3.3.2. Двоичная система счисления
- 3.3.3. Другие позиционные системы счисления
- 3.3.4. Смешанные системы счисления
- 3.3.5. Перевод чисел из одной системы счисления в другую
- 3.4. Формы представления и преобразования информации
- 3.4.1. Числовая система эвм. Представление целых чисел без знака и со знаком
- 3.4.2. Индикаторы переноса и переполнения
- 3.4.3. Представление символьной информации в эвм
- 3.4.4. Форматы данных
- Контрольные вопросы, упражнения и задачи
- Глава 4 информационные ресурсы и информатизация общества
- 4.1. Особенности информационного ресурса
- 4.2. Формы и виды информационных ресурсов
- 4.3. Информатизация общества
- 4.3.1. Сущность и цели информатизации
- 4.3.2. Создание информационных структур
- 4.3.3. Формирование индустрии информатики
- 4.3.4. Развитие интеллектуального и информационного рынков
- 4.4. Перспективы перехода к информационному обществу
- Контрольные вопросы
- Раздел II прикладная информатика глава 5. Общая характеристика процессов сбора, передачи, обработки и хранения информации
- 5.1. Восприятие информации
- 5.2. Сбор информации
- 5.3. Передача информации
- 5.4. Обработка информации
- Контрольные вопросы
- Глава 6. Технические средства реализации информационных процессов
- 6.1. Определение и принципы организации информационных процессов в вычислительных устройствах
- 6.2. Функционирование эвм с шинной организацией
- 6.3. Функционирование эвм с канальной организацией
- 6.4. Информационная модель эвм
- 6.5. Основные команды эвм
- 6.6. Персональные эвм
- 6.6.1. Общие сведения о пэвм и их классификация
- 6.6.2. Структурная схема пэвм
- 6.6.3. Внешние устройства пэвм
- 6.6.4. Внешние запоминающие устройства пэвм
- 6.6.5. Печатающие устройства пэвм
- 6.6.6. Перспективы развития пэвм
- 6.7. Вычислительные системы
- 6.8. Поколения вычислительных средств
- Контрольные вопросы, упражнения и задачи
- Глава 7 алгоритмизация и программирование
- 7.1. Определение алгоритма
- 7.2. Методы разработки алгоритма
- 7.2.1. Метод частных целей
- 7.2.2. Метод подъема
- 7.3. Программирование с отходом назад
- 7.4. Алгоритмы ветвей и границ
- 7.5. Жизненный цикл программного обеспечения
- Контрольные вопросы, упражнения и задачи
- Раздел III элементы информационных технологий глава 8 базы и банки данных
- 8.1. Автоматизированные банки данных
- 8.2. Модели данных
- 8.3. Схема функционирования субд
- 8.4. Организация поиска данных
- 8.5. Администратор базы данных
- Контрольные вопросы
- Глава 9 пакеты прикладных программ
- 9.1. Классификация ппп
- 9.2. Проблемно-ориентированные ппп
- 9.4. Интегрированные ппп
- 9.4. Пакеты прикладных программ для решения научно-технических задач
- 9.5. Библиотеки стандартных программ
- Контрольные вопросы
- Глава 10 вычислительные сети
- 10.1. Принципы построения и классификация вычислительных сетей
- 10.2. Способы коммутации и передачи данных
- 10.3. Программное обеспечение вычислительных сетей
- 10.4. Локальные вычислительные сети
- 10.4.1. Классификация лвс
- 10.4.2. Организация обмена информацией в лвс
- 10.4.3. Методы доступа в лвс
- 10.4.4. Модели взаимодействия в лвс
- 10.5. Обеспечение безопасности информации в вычислительных сетях
- Контрольные вопросы
- Глава 11 глобальная информационная сеть internet
- 11.1. Краткая характеристика основных информационных ресурсов internet
- 11.2. Принципы функционирования internet
- 11.2.1. Иерархия протоколов internet
- 11.2.3. Спецификация универсального адреса информационного ресурса в internet
- 11.3. Технология world wide web (www)
- 11.3.1. Общая характеристика www
- 11.3.2. Программы-клиенты www
- 11.3.3. Стратегия поиска информации в сети
- 11.3.4. Язык гипертекстовой разметки web-документов html
- 11.3.5. Поисковые машины www
- 11.4. Электронная почта в internet
- 11.5. Технологии доступа к ресурсам internet, отличные от www
- 11.5.1. Удаленный доступ к ресурсам сети telnet
- 11.5.2. Обмен файлами по протоколу ftp. Служба архивов ftp
- Контрольные вопросы
- Глава 12 искусственный интеллект
- 12.1. Направление исследований в области искусственного интеллекта
- 12.2. Машинный интеллект и робототехника
- 12.3. Интеллектуальные роботы
- 12.4. Моделирование биологических систем
- 12.5. Эвристическое программирование и моделирование
- 12.6. Система знаний
- 12.7. Модели представления знаний
- 12.7.1. Логическая модель представления знаний
- 12.7.2. Сетевая модель представления знаний
- 12.7.3. Фреймовая модель представления знаний
- 12.7.4. Продукционная модель представления знаний
- Контрольные вопросы
- Глава 13 экспертные системы
- 13.1. Общая характеристика эс
- 13.2. Структура и режимы использования эс
- 13.3. Классификация инструментальных средств эс
- 13.4. Организация знаний в эс
- 13.5. Отличие эс от традиционных программ
- 13.6. Виды эс
- 13.7. Типы задач, решаемых эс
- Контрольные вопросы
- Приложение 3 глоссарий экспертных систем