- •Программирование на языке высокого уровня
- •Составитель: л.А. Прокушев
- •Подписано к печати Формат 60х84 1/16. Бумага тип. №3
- •Редакционно-издательский отдел
- •190000, Санкт-Петербург, ул. Б. Морская, 67
- •Алгоритмизация вычислительных процессов
- •Средства программирования вычислительных процессов
- •Данные и их типы
- •Константы
- •Переменные
- •Ввод-вывод данных
- •Ввод-вывод данных в стиле с
- •Форматированный ввод
- •Форматированный вывод
- •Консольный ввод-вывод
- •Функция ввода символа (без отображения):
- •Функция очистки экрана результатов:
- •Выражения и операции
- •Логические выражения и операции.
- •Работа с ветвящимися процессами Операторы
- •Оператор присваивания
- •Условный оператор (if)
- •Операторы передачи управления
- •Оператор break (прервать) используется для прерывания работы текущего сложного оператора, в теле которого находится оператор break, и передачи управления на следующий по порядку оператор.
- •Оператор выбора (switch)
- •Действие оператора выбора состоит в следующем:
- •Введите 2 числа х, y : 3 8
- •Работа с циклическими вычислительными процессами
- •Циклы с фиксированным числом повторений Оператор цикла с предусловием (while)
- •Прерывание цикла
- •Циклы с неизвестным числом повторений Вычисление рекуррентных последовательностей
- •Оператор цикла с постусловием (do)
- •Вложенные циклы и организация диалога в программе
- •Оператор цикла с параметром (for)
- •Программа:
- •Работа с массивами
- •Описание массива
- •Доступ к элементам массива
- •Указатель.
- •Занесение данных в массив
- •Многомерные массивы
- •Работа с функциями
- •Определение функции
- •Вызов функции
- •Передача параметров функции
- •Передача данных по значению
- •Передача данных по адресу
- •Прототип (шаблон) функции
- •Блочная структура программы
- •Внешние описания переменных
- •Многомодульные программы Проект программы
- •Внешние ссылки
- •Создание проекта программы
- •Работа с указателями Объявления объектов со сложными описателями
- •Массивы указателей
- •Указатель на указатель
- •Указатель на функцию
- •Использование указателя на функцию как аргумента
- •Массивы указателей на функции
Алгоритмизация вычислительных процессов
Алгоритмом называется совокупность правил, определяющих данный вычислительный процесс, который от исходных данных за конечное число шагов (этапов, действий, операций) приводит к искомому результату. Решить задачу – значит найти ее алгоритм. Любому алгоритму присущи следующие свойства:
Дискретность – процесс решения задачи разбивается на отдельные этапы (шаги).
Детерминированность – любое правило преобразования данных на любом шаге должно выполняться однозначно.
Результативность – применение алгоритма к исходным данным за конечное число шагов должно привести к результату (конечность алгоритма). Отсюда следствие: бесконечных алгоритмов не существует.
Массовость – алгоритм служит для решения не одной задачи, а целого класса задач (универсальность алгоритма).
Все многообразие вычислительных алгоритмов включает в себя в виде фрагментов 3 типовых вычислительных процесса:
Линейный – последовательность операций, выполняемых одна за другой.
Ветвящийся – выполнение операций по одному из возможных направлений (ветвей алгоритма) в зависимости от некоторых условий.
Циклический – многократное выполнение некоторых операций в соответствии с заданным условием окончания цикла.
Описание алгоритма задачи может быть задано разными способами:
Словесный – запись инструкций по выполнению алгоритма на естественном языке.
Графический – представление алгоритма с использованием геометрических символов в виде блок-схем, граф-схем.
Формализованный – описание алгоритма на одном из искусственных языков высокого уровня (ЯВУ) в виде последовательности строго определенных инструкций по обработке данных.
Программный – запись алгоритма на языке ЭВМ в виде последовательности ее команд.
С целью наглядного представления процесса решения задачи используются схемы алгоритмов, которые составляются в соответствии с требованиями ГОСТ «Единая система программной документации» (ЕСПД) – ГОСТ 19.701-90 «Схемы алгоритмов, программ, данных и систем». Символы в схеме алгоритма могут обозначаться идентификаторами (или номерами) слева над символом.
Рассмотрим основные графические символы (блоки), используемые для представления алгоритмов:
Символ |
Наименование |
Выполняемые функции |
|
Терминатор |
Начало или конец схемы алгоритма |
|
Данные |
Ввод данных или вывод результатов |
|
Процесс |
Обработка данных любого вида |
|
Решение |
Разветвление алгоритма после проверки условия, записанного внутри символа |
|
Границы цикла |
Начало и конец цикла, с условиями продолжения в начале для цикла с предусловием или в конце для цикла с постусловием, с указанием параметра цикла в обоих блоках |
|
Предопределен- ный процесс |
Обращение к подпрограмме, описанной в другом месте |
|
Линия |
Линии потока данных или управления (слева направо и сверху вниз без стрелок) |
|
Соединитель |
Обрыв линии потока и продолжение ее в другом месте с общим обозначением |
|
Комментарий |
Пояснительные записи (объяснения, примечания) к символу или группе символов, обведенных пунктирной линией |
Приведем примеры построения схем алгоритмов ветвящихся процессов.
Пример. Вычислить значение величины
a x2 , если a b ,
y =
b - 2 x , если a > b .
Решение примера:
Схема алгоритма: Комментарии:
Начало алгоритма
Ввод исходных данных
Да Проверка условия (логического выражения): “Верно ли условие?”.
Нет Результаты проверки: ветви “Да” или “Нет”
алгоритма.
Объединение линий потока ветвей.
Вывод результатов
Конец алгоритма
Пример. Среди трех величин A, B, C найти максимальную и записать в рабочую ячейку max.
Решение примера:
Схема алгоритма: Комментарии:
Ввод исходных данных
Начальное значение max
Сравнение B и C c max
и изменение max, если
это необходимо
Вывод результата