Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции - Информатика и программирование.doc
Скачиваний:
6
Добавлен:
18.11.2019
Размер:
198.66 Кб
Скачать

3 Структурное, модульное и процедурное программирование

Программирование – это написание, корректирование и тестирование программ.

Базовые понятия программирования – операции ВВЕСТИ (input, read, scanf), Вывести (print, write, printf), ПЕРЕЙТИ К (GOTO), Если...тогда...иначе... (IF... THEN... ELSE...) операторы Циклов FOR...NEXT, DO...LOOP UNTIL..., While..., Присвоить...(a=3.14, у=a+b), функции (методы) – sin(), log(), exp(), Типы данных integer - целый, real - вещественный, float, array - массив и др.

Структурное программирование (СП) – это проектирование, написание, тестирование программы в соответствии с заранее определённой дисциплиной (порядком, структурой).

Главное в СП:

  • Нисходящая разработка,

  • Разработка отдельных структур (блоков) программы,

  • Сквозной структурный контроль.

Существует три способа проектирования алгоритмов и программ.

  1. Восходящее проектирование, снизу вверх, синтетическое (объединяющее).

  • В задаче выделяются достаточно крупные подзадачи (подалгоритмы, блоки, модули, каждый из которых реализует определённые функции. Каждый модуль алгоритма или программы разрабатывается и проверяется автономно.

  • Затем отдельные блоки соединяются в подсистемы, которые также проверяются,

  • затем они объединяются в общий алгоритм или программную систему и она проверяется в комплексе.

2. Нисходящее проектирование (сверху вниз, аналитическое). Ставится задача, затем разбивается на подзадачи, они тоже разбиваются на подзадачи и т.д.до уровня элементарных задач – элементарных шагов – базовых конструкций (input, read, goto, a+b, if a>0 then...., print) на каждом этапе разбиения работа алгоритма или программы проверяется, при этом вместо программ нижнего уровня ставятся программные заглушки. Заглушки содержат входные и выходные операторы и выдаёт сообщения о своём выполнении, они позволяют модулю верхнего уровня проверить взаимодействие с модулем нижнего уровня.

На практике стратегия разработки алгоритма является сочетанием восходящего и нисходящего способов.

3. Сквозной структурный контроль – это средство анализа программы для обнаружения ошибок на всех этапах проектирования. В него входят ручное просчитываение программы, отладка её отдельных модулей и др.

Программа на языке Turbo Pascal 7..0 имеет следующие разделы:

РАЗДЕЛ ОБЪЯВЛЕНИЙ

program

Заголовок программы

{$…}

Глобальные директивы компилятора

uses

Подключаемые библиотеки (модули)

label

Раздел объявления глобальных меток

const

Раздел объявления глобальных констант

type

Раздел объявления глобальных типов

var

Раздел объявления глобальных переменных

РАЗДЕЛ ПРОЦЕДУР И ФУНКЦИЙ

Procedure (function)

Заголовок процедуры (функции)

{тело процедуры}

РАЗДЕЛ ОСНОВНОГО БЛОКА ПРОГРАММЫ

begin

end.

Основной блок программы

Пример Вычислить площадь круга S и длину окружности L по заданному радиусу R.

Программа

program KRUG;

const P=3.14159

var

R,S,L:Real;

begin

Read(R);{ввод значения радиуса}

L:=2*P*R;

S:=P*SQR(R);

Writeln(Длина окружности = ',L,'см');

Write('Площадь круга = ',S,'кв.см');

end.

Модульное программирование – программа разбивается на несколько блоков – модулей. Один из модулей является основным, другие подключаются к нему в виде отдельных блоков – функций и подпрограмм. Например, факториал вычисляется в отдельном модуле, а из основной программы оформляется вызов этого модуля при необходимости вычисления в ней факториала какого-либо числа.

процедурное программирование – основная программа состоит из нескольких подпрограмм-процедур, которые являются самостоятельными и используются для работы основной программы. Например, процедура построения осей для графика, который строит основная программа, или процедура рисования таблицы, данные для которой рассчитывает основная программа.

Модульное и процедурное программирование позволяют разрабатывать сложную программу по частям – различными группами программистов.

Разница между модульным и процедурным программированием заключается в том, что при модульном программировании программа разбивается на самостоятельные блоки, которые программируются отдельно.

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