
- •Система Pascal abc
- •Редактор
- •Горячие клавиши
- •Окно вывода
- •Окно ввода
- •Запуск и остановка программы
- •Программа прервана пользователем
- •Пошаговое выполнение программы
- •Окно отладки
- •Pascal abc Язык Pascal abc Структура программы
- •Идентификаторы и служебные слова
- •Выражения и операции
- •Арифметические операции
- •Операция @
- •Операции с указателями
- •Операции с множествами
- •Приоритет операций
- •Описание переменных и констант
- •Описание типов
- •Обзор типов
- •Все порядковые типы, а также типы boolean, real и complex называются простыми типами. Порядковые типы
- •Типы boolean, real и complex
- •Строковый тип
- •Массивы
- •Множества
- •Указатели
- •Процедурный тип
- •Эквивалентность типов
- •Неявное приведение типов
- •Явное приведение типов
- •Область действия идентификатора
- •Ввод и вывод. Форматы вывода
- •Оператор присваивания
- •Условный оператор
- •Составной и пустой операторы
- •Оператор выбора
- •Оператор цикла for
- •Оператор цикла repeat
- •Оператор вызова процедуры
- •Операторы break, continue и exit
- •Оператор with
- •Оператор безусловного перехода goto
- •Оператор try ... Except
- •Оператор try ... Finally
- •Оператор raise
- •Описание процедур и функций
- •Параметры процедур и функций
- •Локальные и глобальные переменные
- •Общие стандартные процедуры и функции
- •Стандартные процедуры и функции для работы со строками
- •Стандартные процедуры и функции для работы с файлами
- •Стандартные процедуры и функции для работы с памятью
- •Системные процедуры и функции
- •Стандартные константы
- •Обзор классов и объектов
- •Конструкторы и деструкторы
- •Свойства
- •Переменная Self
- •Наследование
- •Видимость членов класса
- •Переопределение методов
- •Приведение типов объектов
- •Операции is и as
- •Виртуальные методы и полиморфизм
- •Модуль crt
- •Модуль Timers
- •Модуль Sounds
- •Модуль Utils
- •Модуль PointRect
- •Модуль GraphAbc
- •Графические примитивы
- •Цветовые константы и функции для работы с цветом
- •Действия с пером
- •Действия с кистью
- •Действия со шрифтом
- •Действия с рисунками
- •Действия с графическим окном
- •Задание режимов вывода
- •Класс Picture
- •Описатели рисунков и класс Picture
- •Исполнитель Робот
- •Алгоритмизация
- •Алгоритм и его свойства
- •Способы описания алгоритмов
- •Линейные алгоритмы
- •Разветвляющиеся алгоритмы
- •Алгоритмы циклической структуры
- •Подчиненные алгоритмы
- •Системы программирования
- •Лабораторная работа № 1 Программирование линейных алгоритмов
- •Лабораторная работа № 2 Программирование разветвляющихся алгоритмов
- •Лабораторная работа № 4 Одномерные массивы - вектора
- •Литература Основная литература:
- •Дополнительная литература:
- •Лабораторная работа № 3 Программирование циклических алгоритмов
Алгоритмизация
Понятие алгоритма возникло и используется давно. В зависимости от характера занятий людям в своей повседневной жизни встречаются различные практические задачи: пеленание ребенка, проезд в общественном транспорте, решение квадратного уравнения, поиск слова в словаре и т.д. Важно, что при решении любой подобной задачи человек обращается к продуманным заранее со всеми возможными вариантами предписания (инструкциям) о том, какие действия и в какой последовательности должны быть выполнены для решения задачи. В подавляющем большинстве случаев успех любой деятельности зависит от степени продуманности действий, их последовательности и возможных вариантов. Именно с целью успешного решения какого-либо определенного класса задач вырабатываются системы таких предписаний для использования разными людьми.
Системы точных и понятных предписаний (команд, директив) о содержании и последовательности выполнения конечного числа действий, необходимых для решения любой задачи данного типа, называются алгоритмами.
Согласно этому определению, рецепты изготовления какого-то лекарства или печенья являются алгоритмами. И правило безопасного перехода пешеходом проезжей части улицы, содержащее указание человеку о его действиях, тоже алгоритм.
Сам термин “алгоритм” ведет начало от перевода на европейские языки имени арабского математика IX в. аль-Хорезми, которым были описаны правила (в нашем понимании - алгоритмы) выполнения основных арифметических действий в десятичной системе исчисления.
Алгоритм и его свойства
В основе решения любой задачи лежит понятие алгоритма. Под алгоритмом принято понимать "точное предписание, определяющее вычислительный процесс, ведущий от варьируемых начальных данных к искомому результату" (ГОС 19.781-74).
Задача составления алгоритма не имеет смысла, если не известны или не учитываются возможности его исполнителя, ведь выполнимость алгоритма зависит от того, какие действия может совершить исполнитель. Важно также, что исполнителем алгоритмов может быть не человек, а автомат. В ряду всевозможных автоматов компьютер является лишь частным (хотя и наиболее впечатляющим) примером исполнителя, чье поведение реализуется на основе алгоритма. От компьютера, как и от любого другого исполнителя, требуется четкое выполнение команд алгоритма. А от разработчиков алгоритмов, требуется знание и соблюдение правил их составления. Эти правила заключаются в том, что алгоритм, предназначенный для исполнения автоматом, должен обладать пятью свойствами (удовлетворять пяти требованиям). Эти требования к алгоритму объясняются тем, что исполнитель-автомат не имеет своего интеллекта, его возможности всегда ограничены.
При составлении алгоритмов следует учитывать ряд требований, выполнение которых приводит к формированию необходимых свойств. Алгоритм должен быть однозначным, исключающим произвольность толкования любого из предписаний и заданного порядка исполнения. Это свойство алгоритма называется определенностью. Будучи понятным, алгоритм не должен содержать команды, смысл которых может восприниматься неоднозначно (например, робот будет поставлен в тупик командой “Взять две-три ложки песка”: что значит “две-три”, какого песка?). Кроме того, недопустимы ситуации, когда после выполнения очередной команды исполнителю неясно, какую команду выполнять на следующем шаге. Нарушение составителем алгоритма этих требований (называемых требованиями определенности или детерминированности) приводит к тому, что одна и та же команда после выполнения разными исполнителями дает неодинаковый результат.
Процесс решения задачи должен быть разбит на последовательность отдельных шагов. Таким образом, формируется упорядоченная совокупность отделенных друг от друга команд (предписаний). Образующаяся структура алгоритма оказывается прерывной (дискретной): только выполнив одну команду, исполнитель сможет приступить к выполнению следующей. Предопределенный алгоритмом вычислительный процесс можно расчленить на отдельные этапы, элементарные операции. Это свойство алгоритма называется дискретностью.
Алгоритм должен быть понятен исполнителю, и исполнитель должен быть в состоянии выполнить его команды. Следовательно, алгоритм нужно разрабатывать с ориентацией на определенного исполнителя, т.е. он может содержать команды только из набора команд данного исполнителя.
Обязательное требование к алгоритмам результативность. Смысл его состоит в том, что при точном исполнении всех команд алгоритма процесс решения задачи должен завершится за конечное число шагов и при этом должен быть получен определенный ответ на вопрос задачи. Реализация вычислительного процесса должна через определенное число шагов привести к выдаче результатов или сообщения о невозможности решения задачи. Это свойство алгоритма называется результативностью.
Разработка алгоритмов - процесс интересный, творческий, но непростой, требующий многих умственных усилий и затрат времени. Поэтому предпочтительно разрабатывать алгоритмы, обеспечивающие решение всего класса задач данного типа. Например, если составляется алгоритм решения квадратного уравнения АХ2+ВХ+С=0, то он должен быть вариативен, т.е. обеспечивать возможность решения для любых допустимых исходных значений коэффициентов А,В,С. Про такой алгоритм говорят, что он удовлетворяет требованию массовости. Решение однотипных задач с различными исходными данными можно осуществлять по одному и тому же алгоритму, что дает возможность создавать типовые программы для решения задач при различных вариантах задания значений исходных данных. Это свойство алгоритма называется массовостью.
Таким образом, метод алгоритмизации имеет широкие сферы применения. Алгоритмизация - общий метод кибернетики, которая рассматривает процессы управления в различных системах как реализацию определенных алгоритмов. Алгоритмизация – техника составления алгоритмов и программ для решения задач на ЭВМ.