- •1 Введение в теорию алгоритмизации 6
- •Введение
- •1 Введение в теорию алгоритмизации
- •1.1 Понятие алгоритма
- •1.2 Свойства алгоритмов
- •1.3 Формы представления алгоритма
- •1.4 Основные алгоритмические структуры
- •1.5 Алгоритмический язык
- •2.3 Инструменты программирования Microsoft Visual Studio
- •2.5 Консольные и оконные приложения
- •2.6 Компилирование программы
- •3.2 Простые типы данных
- •3.3 Операции над числовыми данными
- •3.4 Объявление переменных
- •3.7 Директива #define
- •3.9 Библиотека математических функций
- •4 Условный оператор
- •4.1 Условный оператор if
- •4.2 Составной оператор
- •4.3 Вложенный оператор
- •4.4 Оператор выбора switch
- •5 Операторы циклов
- •5.1 Определение цикла
- •5.2 Оператор цикла for
- •5.3 Оператор цикла while
- •5.4 Оператор цикла do while
- •5.5 Табулирование функций
- •5.6 Вычисление конечных сумм и произведений
- •5.7 Управляющие конструкции break, continue, return, goto
- •6 Массивы
- •6.1 Понятие и описание массивов
- •6.2 Одномерные массивы
- •6.3 Двумерные массивы (матрицы)
- •7 Символьные массивы
- •7.1 Описание символьного массива
- •7.2 Стандартные библиотечные функции над строками
- •8 Указатели и операции над указателями
- •8.1 Описание указателей
- •8.2 Операции над указателями
- •8.3 Сравнение указателей
- •8.4 Связь между массивом и указателем
- •9 Функции
- •9.1 Модульное программирование
- •9.2 Объявление функции
- •9.3 Формальные и фактические параметры функции
- •9.4 Локальные и глобальные переменные
- •10 Элементы объектно-ориентированного программирования
- •10.1 Инструментальное программное обеспечение
- •10.2 Технологии программирования
- •10.3 Создание класса
- •11 Полиморфизм
- •12 Этапы разработки программного обеспечения
- •12.1 Идея и цель объектно-ориентированного программирования
- •12.2 Основные понятия объектно-ориентированного программирования
- •12.3 Методы тестирования программных продуктов
- •Список литературы
1 Введение в теорию алгоритмизации
Цель работы: изучить свойства и формы представления алгоритмов, научиться применять основные алгоритмические структуры при написании программ по методологии нисходящей разработки с пошаговой детализацией.
1.1 Понятие алгоритма
Алгоритм относится к числу фундаментальных понятий математики и является объектом исследования ее специального раздела – теории алгоритмов.
Слово «алгоритм» происходит от algorithmi – лат. написания имени средневекового математика IX в. н.э. аль-Хорезми.
Алгоритм – это некоторая конечная последовательность точных предписаний (правил), однозначно определяющая процесс получения требуемого результата из исходных данных при решении всех задач данного типа.
Следует иметь в виду, что это не определение в математическом смысле слова, но довольно подробное описание этого понятия, раскрывающее его сущность.
Полное построение алгоритма включает несколько основных этапов:
постановку задачи;
построение математической модели;
разработку алгоритма;
реализацию алгоритма (составление программы);
анализ алгоритма и его сложности;
отладку и исполнение программы;
анализ и обработку результатов счета;
документирование и сопровождение алгоритма и программ.
1.2 Свойства алгоритмов
дискретность – расчлененность определяемого алгоритмом процесса на отдельные этапы;
детерминированность (определенность) – получение однозначного результата вычислительного процесса при заданных исходных данных;
результативность – указывает на наличие таких исходных данных, для которых реализуемый по заданному алгоритму вычислительный процесс должен через конечное число шагов остановиться и выдать искомый результат;
массовость – алгоритм должен быть пригоден для решения всех задач данного типа.
1.3 Формы представления алгоритма
Чтобы довести алгоритмы до пользователя, в зависимости от их назначения они должны быть формализованы по некоторым правилам (соглашениям) посредством конкретных изобразительных средств.
При этом существует множество способов, отличающихся по простоте, наглядности, компактности, степени формализации, ориентации на машинную реализацию и другим показателям.
Наибольшее распространение получили следующие виды записи: словесная, формульно-словесная, блок - схемная, табличная, язык операторных схем и в последнее время - языки программирования.
Словесная запись. Самой распространенной формой представления алгоритмов, адресуемых человеку, является обычная словесная запись. При этом содержание последовательных этапов вычислений задается в произвольной форме на естественном языке с тщательным отобранным набором слов и фраз, не допускающих повторений, синонимов, двусмысленности.
Формульно-словесная запись. Этот способ основан на задании предписаний о выполнении конкретных действий в определенной последовательности с использованием математических формул и словесных пояснений.
Табличная запись. Существует несколько типов таблиц. Простейший из них обычно используют при организации вычислений по формуле с регистрацией промежуточных результатов. Разбиение ее на последовательность элементарных действий дает последовательность предписаний. Такая форма целесообразна в случае, когда требуется вычислить несколько значений одного выражения для различных значений входных величин.
Операторные схемы записи алгоритмов. Операторами называются описания функционально однородных этапов вычислительного процесса. Операторная схема – это аналитическая форма представления алгоритма с помощью операторов, описывающих содержание автономных этапов вычислительного процесса, выделенных при решении задачи. В зависимости от своего назначения операторы делятся на арифметические, логические и варьирующие. Арифметические описывают участки, включающие вычисления с помощью арифметических операций. Логические операторы описывают участки вычислений, предназначенные для проверки некоторых условий, выполнение которых обеспечивает переход от одного этапа обработки данных к другому. Варьирующие операторы предусматривают изменения вспомогательных величин, называемых параметрами. Операторы на схеме обозначаются условными символами. Знаки перехода имеют вид полускобок, снабженных числовым индексом. Схема счета, дополненная специальными знаками, называется логической схемой программы.
Самым распространенным способом представления алгоритмов в теории программирования является блок-схема.
Блок-схема – графическое изображение логической структуры алгоритма, в котором каждый этап вычислительного процесса представляется в виде связанных геометрических фигур. Фигуры имеют определенную конфигурацию в зависимости от характера выполняемых операций.
Перечень символов, их форма, размеры и отображаемые ими функции определяются ГОСТ 19.003-80 «»Схемы алгоритмов и программ. Обозначение условные графические», а правила оформления схем – ГОСТ 19.002-80 «Схемы алгоритмов и программ. Правила выполнения» (таблица 1).
Таблица 1 – Правила оформления блок-схем
Наименование символа |
Форма и размер символа |
Отображаемые функции |
Процесс (блок вычислений) |
|
Выполнение операции или группы операций, в результате которых изменяется значение, форма представления или расположение данных |
Решение |
|
Выбор направления выполнения алгоритма или программы в зависимости от некоторых переменных условий
|
Продолжение таблицы 1
Наименование символа |
Форма и размер символа |
Отображаемые функции |
Модификация
|
|
Выполнение операций, меняющих команды или группы команд, изменяющих пункты алгоритма
|
Предварительный процесс
|
|
Использование ранее созданных и отдельно описан ных алгоритмов или программ (вычисление по подпрограмме или стандартной программе)
|
Ввод-вывод |
|
Преобразование данных в форму, пригодную для обработки (ввод) или отображения результатов обработки (вывод) |
Пуск-останов |
|
Начало, конец, прерывание процесса обработки данных или выполнения программы
|
Линия потока
|
|
Указание последовательности связей между символа ми
|
Соединитель
|
|
Указание связи между прерванными линиями потока, соединяющими символы
|
Комментарий
|
|
Указание связи между элементами схемы и пояснением
|
Межстраничный соединитель
|
|
Указание связи между разъединенными частями схем алгоритмов и программ, расположенных на разных листах
|
