
- •6. Алгоритмы и программы
- •6.1. Алгоритм и алгоритмический процесс
- •6.1.1. Основные свойства алгоритмов:
- •6.1.2. Способы записи алгоритма
- •6.1.3. Схемы алгоритмов и программ
- •6.2. Переменная и постоянная величина Выражения
- •6.3. Присваивание
- •6.4. Основные этапы решения задач на эвм
- •6. 5. Алгоритмизация. Базовые алгоритмические структуры
- •6.5.1. Реализация базовых структур в языке Pascal
- •6.5.2. Реализация базовых структур в языке qBasic
- •Операторы тела цикла
- •6.6. Ввод - вывод
- •6.6.1.Ввод-вывод данных на языке Pascal
- •Var X, y: integer; {Описание переменных X, y целочисленного типа}
- •6.6.2. Ввод-вывод данных на языке qBasic
- •6.7. Алгоритмы линейной и разветвляющейся структуры
- •Решение задачи 6.3. На языке Turbo Pascal:
- •6.8. Циклические алгоритмы
- •Input "Введите натуральное м : " , m
- •Print : print "о т в е т : Сумма этих чисел равна "; s
- •6.9. Итерационные циклы
- •6.10. Массивы
- •6.11. Вложенные циклы
- •6.12. Подпрограммы
- •6.12.1. Параметры подпрограмм
- •6.12.2. Подпрограммы в языке Pascal
- •Операторы функции, один из которых
- •6.12.3. Подпрограммы в языке Basic
- •6.13. Рекурсия
- •6.14. Логические операции с числами
- •6.15. Работа с символьной информацией
- •6.15.1. Работа с символьной информацией в языке Basic
- •6.15.2. Работа с символьной информацией в языке Pascal
6.4. Основные этапы решения задач на эвм
Решение задачи на ЭВМ можно разбить на следующие этапы.
1. Постановка задачи - точная формулировка условий решаемой задачи.
2. Выбор или разработка метода решения задачи.
3. Алгоритмизация - проектирование структуры данных и алгоритма программы.
Разработка структуры данных проводится параллельно с разработкой алгоритма, на каждом шаге сначала уточняются данные (операнды), а затем - операции над ними.
4. Программирование - перевод алгоритма на язык программирования.
5. Отладка и тестирование программы - выявление, поиск и исправление ошибок.
Основным методом обнаружения ошибок в программе является тестирование - выполнение программы вручную или на ЭВМ с целью обнаружения в ней ошибок или изучения механизма ее работы. Для этого используются контрольные примеры (тесты). Тест - это исходные данные программы вместе с ожидаемым правильным результатом ее работы.
6. Сопровождение программы - устранение ошибок и доработка программы в течение всего периода ее эксплуатации.
Среди перечисленных этапов этап программирования можно назвать самым простым. Наиболее сложным этапом можно считать этап алгоритмизации, наиболее трудоемкими - этапы отладки и сопровождения программы.
В следующих разделах рассмотрим один из методов алгоритмизации – структурное программирование.
6. 5. Алгоритмизация. Базовые алгоритмические структуры
Структурное программирование - это метод программирования, в котором используются только алгоритмы, построенные из стандартного набора базовых структур (так называемые структурные алгоритмы).
Логическая структура любого алгоритма может быть представлена комбинацией трех базовых структур: следование (последовательность), ветвление, цикл.
Каждая из базовых структур имеет один вход и один выход и может рассматриваться как один блок (на рисунках блок отмечен пунктирной рамкой).
1. Базовая структура "следование". Образуется последовательностью действий, следующих одно за другим:
2. Базовая структура "ветвление". В зависимости от результата проверки условия (Да или Нет) выполняется один из вариантов алгоритма: исполняются Действия1, если условие выполняется, или Действия2 – если не выполняется, каждый из вариантов ведет к общему выходу.
Сокращенное ветвление - это частный случай ветвления, когда в одном из возможных вариантов не требуется ничего делать - пустой оператор.
3. Базовая структура "цикл". Обеспечивает многократное выполнение некоторой совокупности действий, которая называется телом цикла. Основные разновидности циклов: цикл типа ПОКА, цикл типа ДЛЯ.
Цикл типа ПОКА. Предписывает выполнять действия тела цикла до тех пор, пока выполняется условие. Действия тела цикла могут не выполниться ни разу, если условие сразу ложно. Цикл типа ПОКА называют также цикл с предусловием, т.к. условие проверяется перед выполнением действия.
Цикл типа ДЛЯ. Предписывает выполнять тело цикла для всех значений некоторой переменной (параметра цикла i) в заданном диапазоне (от i1 до i2).
В некоторых языках программирования, например Pascal и С, кроме цикла с предусловием (цикл типа ПОКА) используются циклы с постусловием.
Цикл с постусловием эффективен в тех случаях, когда действия тела цикла обязательно выполняются хотя бы один раз.
Для построения программ достаточно одного из типов циклов: каждый из них можно выразить через другой тип цикла и ветвление.
Для решения задач необходимы алгоритмы, содержащие различные базовые структуры. В базовой структуре каждый из блоков прямоугольников может иметь внутри любую из этих допустимых структур и т.д. Таким образом, из базовых структур можно построить структурный алгоритм любой сложности.
Для представления любого структурного алгоритма достаточно иметь в языке программирования операторы базовых структур.