Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лек 1 семестр.doc
Скачиваний:
26
Добавлен:
10.06.2015
Размер:
1.26 Mб
Скачать

2. Программирование вычислительных процессов

Решение задачи на ЭВМ — это сложный процесс, в ходе которого пользователю приходится выполнять целый ряд действий, прежде чем он получит интересующий его результат.

Идеальная модель процесса решения задач на компьютере показана в таблице 14.

Детальное рассмотрение этапов решения задачи на ЭВМ выходит за рамки данного курса. Напомним лишь некоторые существенные определения и понятия, которые будем использовать далее.

Алгоритмизация — это процесс проектирования алгоритма, то есть выделение совокупности действий, используемых в математическом методе, и сведения их к совокупности действий, которые будет выполнять ЭВМ.

Таблица 14

Этапы решения задачи

Исходные данные, результаты

Начало решения

Формулировка цели. Концептуальная, содержательная постановка задачи

Постановка задачи

Построение модели

Формальная математическая постановка задачи для ЭВМ

Алгоритмизация

Алгоритм

Запись алгоритма на языке программирования

Исходный текст программы на алгоритмическом языке. Программа в кодах ЭВМ

Выполнение программы

Результаты выполнения программы — числа, диаграммы, графики

Анализ и использование результатов работы программы

Выводы по результатам решения исходной задачи

Конец решения

Алгоритм — совокупность точно описанных действий, приводящих от исходных данных к желаемому результату и удовлетворяющих следующим свойствам:

  • определенности — алгоритм должен однозначно, точно и понятно задавать выполняемые действия (для одних и тех же исходных данных должен получаться один и тот же результат);

  • дискретности — алгоритм должен представлять действие в виде последовательности составных частей;

  • результативности — алгоритм должен приводить к желаемому точному результату за конечное время;

  • массовости — алгоритм должен быть приемлем для решения всех задач определенного класса.

Структурное проектирование — проектирование сверху вниз, это подход к разработке и реализации, который состоит в преобразовании алгоритма в такую последовательность все более конкретных алгоритмов, окончательный вариант которой представляет собой программу для вычислительной машины.

Существуют различные способы записи алгоритмов (словесный, формульно-словесный, графический, аналитический). Каждый из способов имеет свои плюсы и минусы; В данном курсе в основном используется два способа графического представления алгоритма: блок-схема и структурограмма.

Блок-схемы — это графическое представление алгоритма, дополняемое словесными записями. Каждый блок алгоритма отображается геометрической фигурой (блоком). Правила выполнения схем алгоритмов регламентируют ГОСТ 19.701-90. Графические фигуры соединяются линиями, потоками информации. Эти линии задают порядок переходов от блока к блоку. Блок-схемы наглядны для представления простых вычислительных алгоритмов и ориентированы для программирования задач на языках АССЕМБЛЕР, АЛГОЛ, БЕЙСИК, ФОРТРАН, ПЛ. В этих языках программирования требуется четко отслеживать последовательность команд и широко используется оператор GOTO.

В ПАСКАЛЕ и ему подобных языках структурного программирования использовать блок-схемы в классическом виде стало неудобно. Это связано, во-первых, с громоздкостью алгоритма, реализованного в виде блок-схем, во-вторых, с нарушением основного принципа структурного проектирования программ сверху вниз. В соответствии с этим принципом рисуются укрупненные блоки алгоритма, которые потом уточняются. Этот процесс продолжается до тех пор, пока каждый алгоритмический блок не станет однозначно отражать одну или несколько языковых конструкций выбранного разработчиком языка программирования. Такие операторы как For... То, While... Do, Repeat... Until, Case... of отразить с помощью блок-схем, не описывая принципов их работы невозможно. Поэтому для пояснения работы этих и некоторых других операторов Паскаля будем использовать блок-схемы как алгоритмы нижнего уровня. А для объяснения вычислительных процессов решения сложных задач, в том числе численных методов, используем изображения алгоритма с помощью структурограммы (схемы Насси-Шнайдермана). Для Паскаля использование структурограмм существенно упрощает запись алгоритма, так как явно описываются такие операторы как IF, FOR, WHILE ... DO, REPEAT... UNTIL, CASE ... OF, что делает алгоритм компактным, наглядным и легко программируемым.