- •Основное содержание
- •Языки и системы программирования
- •Этапы решения задачи на эвм
- •6. Анализ результатов решения задачи и уточнение в случае необходимости математической модели с повторным выполнением этапов 2-5.
- •7. Сопровождение программы:
- •Основные характеристики программ
- •Тема 2. Основные понятия алгоритмизации. (4 часа)
- •1. Словесный способ записи алгоритма
- •3. Псевдокод.
- •Тема 3. Языки и системы программирования.
- •Характеристики языков программирования
- •Алфавит и словарь языка
- •Ключевые слова
- •Переменные и константы
- •Типы данных
- •Данные и значения
- •Операции и их типы
- •Выражения и приоритет операций
- •Структура программы
- •Отладка и тестирование программ
- •1. Сущность рекурсии
- •2. Сложная рекурсия
- •3. Имитация работы цикла с помощью рекурсии
- •4. Рекуррентные соотношения. Рекурсия и итерация
- •5. Деревья
- •5.1. Основные определения. Способы изображения деревьев
- •5.2. Прохождение деревьев
- •5.3. Представление дерева в памяти компьютера
- •6. Примеры рекурсивных алгоритмов
- •6.1. Рисование дерева
- •6.2. Ханойские башни
- •6.3. Синтаксический анализ арифметических выражений
- •6.4. Быстрые сортировки
- •6.5. Произвольное количество вложенных циклов
- •6.6. Задачи на графах
- •6.7. Фракталы
- •7. Избавление от рекурсии
- •7.1. Явное использование стека
- •7.2. Запоминание последовательности рекурсивных вызовов
- •7.3. Определение узла дерева по его номеру
- •Тип указатель. Динамические переменные
- •Динамические переменные
Тема 2. Основные понятия алгоритмизации. (4 часа)
Содержание учебного материала:
Сущность алгоритмизации. Понятия алгоритм, исполнитель алгоритма. Пять важных свойств алгоритмов. Величины в алгоритмах. Базовые структуры алгоритмов: линейный алгоритм, разветвленный алгоритм, циклический алгоритм. Формы представления алгоритма: словесная, блок-схема, псевдокод, программная. Схемы алгоритмов, программ, данных и систем. Представление основных управляющих структур программирования. Теорема структуры и структурное программирование. Термин задача. Классификация задач: технологические, функциональные. Решение задачи. Постановка задачи. Понятие вычислителя. Построение модели. Разработка алгоритма. Исполнение алгоритма.
Понятие алгоритма. Сущность алгоритмизации
Понятие алгоритма является фундаментальной категорией информатики и не может быть выражено через другие, более простые понятия, и рассматривается как нечто неопределяемое. Другими словами, единого определения алгоритма не существует, есть только разные подходы, описания этого понятия, причем, в полном соответствии с той областью знаний, где он применяется.
Алгоритм - это строгая, четкая последовательность операций, приводящая к решению задачи.
В Толковом словаре по информатике дано общепринятое понятие:
Алгоритм - точное предписание, определяющее вычислительный процесс, ведущий от варьируемых начальных данных к искомому результату.
Алгоритмизация процессов в широком смысле - это описание процессов на языке математических символов для получения алгоритма, отображающего элементарные акты процесса, их последовательность и взаимосвязь. Для построения алгоритма управления, например, необходимо к алгоритму, описывающему процесс функционирования системы, присоединить алгоритм определения оптимального решения или оптимальных значений параметров управления. В более узком смысле алгоритмизация - это процедура поиска, разработки и описания алгоритма решения задачи.
Свойства алгоритма
Описание основных свойств помогает углубить само понятие алгоритма. Итак, алгоритм должен обладать следующими свойствами:
Детерминированность (определенность, точность, однозначность). Это свойство заключается в том, что при задании одних и тех же исходных данных несколько раз алгоритм будет выполняться абсолютно одинаково и всегда будет получен один и тот же результат. Свойство детерминированности проявляется также и в том, что на каждом шаге выполнения алгоритма всегда точно известно, что делать дальше, а каждое действие однозначно понятно исполнителю и не может быть истолковано неопределенно. Благодаря этому свойству выполнение алгоритма носит механический характер.
Массовость - выражается в том, что с помощью алгоритма можно решать не одну конкретную задачу, а любую задачу из некоторого класса однотипных задач при всех допустимых значениях исходных данных.
Результативность (направленность) - означает, что выполнение алгоритма обязательно должно привести к решению поставленной задачи, либо к сообщению о том, что при заданных исходных величинах задачу решить невозможно. Алгоритмический процесс не может обрываться безрезультатно.
Дискретность - означает, что алгоритм состоит из последовательности отдельных шагов - элементарных действий, выполнение которых не представляет сложности. Именно благодаря этому свойству алгоритм может быть реализован на ЭВМ.
Конечность (финитность)- заключается в том, что последовательность элементарных действий алгоритма не может быть бесконечной, неограниченной, хотя может быть очень большой (если требуется, например, большая точность вычислений).
Корректность - означает, что если алгоритм создан для решения определенной задачи, то для всех исходных данных он должен всегда давать правильный результат и ни для каких исходных данных не будет получен неправильный результат. Если хотя бы один из полученных результатов противоречит хотя бы одному из ранее установленных и получивших признание фактов, алгоритм нельзя признать корректным.
Понятие исполнителя алгоритма
Исполнитель алгоритма - это некоторая абстрактная или реальная (техническая, биологическая или биотехническая) система, способная выполнить действия, предписываемые алгоритмом.
Исполнитель алгоритма характеризуется следующим:
- средой;
- элементарными действиями;
- системой команд;
- отказами.
Среда (или обстановка) - это "место обитания" исполнителя.
Система команд - Каждый исполнитель может выполнять команды только из некоторого строго заданного списка - системы команд исполнителя.
Для каждой команды должны быть заданы условия применимости - в каких состояниях среды может быть выполнена команда, и описаны результаты выполнения команды.
После вызова команды исполнитель совершает соответствующее элементарное действие.
Отказы - ситуации сбоя работы исполнителя, которые возникают, если команда вызывается при недопустимом для нее состоянии среды.
Обычно исполнитель ничего не знает о цели алгоритма. Он выполняет все полученные команды, не задавая вопросов "почему" и "зачем".
В информатике универсальным исполнителем алгоритмов является компьютер.
Формы записи алгоритмов
На практике наиболее распространены следующие формы представления алгоритмов:
словесная (запись на естественном языке);
графическая (изображения из графических символов);
псевдокоды (полуформализованные описания алгоритмов на условном алгоритмическом языке, включающие в себя как элементы языка программирования, так и фразы естественного языка, общепринятые математические обозначения и др.;
программная (тексты на языках программирования).
