- •1.7. Алгоритмы. Основные понятия
- •1.7.1. Определение алгоритма. Запись алгоритма. Свойства алгоритмов
- •1.7.3. Примеры алгоритмов. Способы, используемые при записи алгоритмов: рекурсия, итерация, разбор случаев, иерархическое построение
- •1.7.5. Объекты, типы объектов
- •1.7.7. Псевдокод для записи алгоритмов
- •1.7.9. Неструктурированная форма записи алгоритмов
- •1.7.11. Структурированная форма записи алгоритмов
- •1.7.13. Последовательный оператор
- •1.7.15. Условный оператор
- •1.7.17. Оператор цикла
-
1.7.5. Объекты, типы объектов
Объект - это общее название для процессов, явлений, понятий, сущностей и т.п., относящихся к предметным областям автоматизируемых процессов. Здесь под предметной областью понимается часть реального мира, представляющая собой среду определения и реализации конкретного автоматизируемого процесса или группы процессов.
Алгоритмы обрабатывают определенные объекты ("входные") и выдают объекты ("выходные") в качестве результатов. В теоретических исследованиях предпочитают опираться на алгоритмы, которые работают только с натуральными числами, либо только с цепочками знаков. С практической точки зрения нет никакой пользы или нужды в таких ограничениях, допустимы какие угодно множества объектов. В зависимости от того, какие допускаются классы объектов (и соответствующих операций), приходят к различным классам алгоритмов.
Сообщение вместе с сопоставленной информацией в дальнейшем будем называть объектом. Во множественном числе используется термин данные. Примерами могут быть сообщения (записываемые арабскими цифрами в позиционной системе счисления) и связанная с ними информация, которую называют "натуральными числами", а также символы.
Итак, объект есть пара (N,J) из сообщения N и информации J, при этом информацию J называют значением объекта, а сообщение N - обозначением объекта. Говорят, что обозначение N обладает значением J. Например обозначение 7 обладает значением "семь", обозначение 007 - значением "семь", обозначение 3.14 - значением "три целых и четырнадцать сотых".
Объекты в алгоритмах играют роль предметов, над которыми производятся определенные операции. Классы объектов отличаются друг от друга в основном тем, какие процессы обработки сообщений и информации на них определены. Например, над объектами "натуральные числа" определены одноместная операция "переход к следующему натуральному числу" и двухместные операции "сложение" , "умножение" и "вычитание". В качестве результата эти операции вырабатывают натуральное число. Кроме того, имеется двухместная операция "деление с остатком", вырабатывающая в качестве результата два натуральных числа -частное и остаток.
Множество объектов, для которых определено некоторое количество операций, называется множеством объектов определенного типа (вида, сорта). Таким образом, тип объектов характеризуется операциями, которые могут над ними выполняться. Самые распространенные - числовые объекты: множества целых, рациональных, вещественных (машинных) и комплексных (машинных) чисел. Существуют и более сложные математические объекты - пространства и многообразия в геометрии, выражения в алгебре, на которых определены сложные операции. Можно также указать такой класс объектов, как символы, обозначаемые словами над некоторыми наборами знаков.
Объектами являются также значения истинности, а именно "истина" и "ложь".
-
1.7.7. Псевдокод для записи алгоритмов
Решение задачи на компьютере после ее постановки и формулировки в математическом виде предполагает этап так называемой алгоритмизации. Алгоритмизацией называют процесс создания алгоритма решения сформулированной задачи. Дело в том, что для большинства задач заранее не существует алгоритма их решения - алгоритм приходится конструировать заново.
Для построения алгоритма и его записи нужен какой-нибудь язык записи. Для простых задач можно сразу же приступать к непосредственному использованию выбранного языка программирования. Для сложных задач приходится записывать алгоритм решения на некотором промежуточном языке (этап алгоритмизации), а затем уже на его основе разрабатывать программу решения задачи на выбранном языке программирования (этап программирования). Необходимость в дополнительной работе по записи алгоритмов вызывается следующими соображениями.
Во-первых, алгоритм на промежуточном языке записывают, не вдаваясь в излишние подробности, что приводит к более ясному представлению о процедуре решения и позволяет в итоге быстрее избавиться от различного рода ошибок.
Во-вторых, это способ сохранения значительной части работы в виде, не зависящем от конкретного языка программирования, а зависящем только от специфики самой задачи. По записи алгоритма на промежуточном языке достаточно просто составляется программа решения задачи на языке программирования. Это обстоятельство особенно важно в настоящее время стремительного развития вычислительной техники и программирования.
Для записи алгоритмов не существует каких-то стандартных языков, таких, например, какие существуют для программирования. Каждый из специалистов вырабатывает для этого некоторую удобную для него неформализованную "смесь" из естественного языка и элементов существующих языков программирования.
Мы для записи алгоритмов будем использовать близкий к формальному ограниченный вариант русского языка, понятный и не приводящий к различного рода двусмысленностям, называемый иногда псевдокодом. Основные элементы данного языка будут вводиться и поясняться по мере необходимости.