- •Основы программирования
- •Язык программирования
- •Компиляторы и интерпретаторы
- •Уровни языков программирования
- •Поколения языков программирования
- •Языки программирования баз данных
- •Системы программирования. Средства создания программы
- •Интегрированные системы программирования
- •Основные системы программирования
- •Алгоритмическое (модульное) программирование
- •Переменные и константы
- •Числовые данные
- •Арифметические операции
- •Арифметические выражения
- •Логические выражения
- •Строчные выражения
- •Сложные данные
- •Правила работы со сложными типами
- •Описание переменных
- •Новые типы данных
- •Разделение операторов
- •Условный оператор (условные вычисления)
- •Операторы цикла
- •Ввод и вывод
- •Структурное программирование Подпрограммы
- •Нисходящее проектирование
- •Процедуры и функции
- •Параметры подпрограмм
- •Структура подпрограммы:
- •Формальные и фактические параметры
- •Объектно-ориентированное программирование
Структурное программирование Подпрограммы
При создании средних по размеры приложений (несколько тысяч строк исходного кода) используется структурное программирование, т.е. структура программы должна отражать структуру решаемой задачи, чтобы алгоритм решения был ясно виден из исходного текста. С этой целью в программе введено понятие подпрограммы — набора операторов, выполняющих нужное действие, и не зависящих от других частей исходного текста (кода).
Нисходящее проектирование
Наличие подпрограмм позволяет вести проектирование и разработку приложения сверху вниз — называется нисходящим проектированием.: сначала выделяются подпрограммы, решающие самые глобальные задачи, затем каждый из этих модулей детализируется на более низком уровне, разбиваясь на подпрограммы.
Небольшие подпрограммы проще отлаживать, что повышает общую надежность.
Возможность повторного использования подпрограммы.
С интегрированными системами программирования поставляются большие библиотеки стандартных подпрограмм.
Процедуры и функции
Подпрограммы бывают двух видов — процедуры и функции. Процедура просто выполняет группу операторов. Функция в добавок вычисляет некоторые значения и передает его обратно в главную программу.
В C++ понятия «процедура» нет — там имеются только функции, а если никакого значения функция не вычисляет, то считается, что она возвращает значения типа «никакое» (void).
Параметры подпрограмм
Чтобы работа подпрограммы имела смысл, ей надо получить данные из внешней программы. Данные передаются подпрограмме в виде параметров или аргументов, которые обычно описываются в ее заголовке также, как и переменные.
Управление последовательностью вызова подпрограмм
В Basic оператором CALL вызывается подпрограмма. Подпрограмма активизируется в момент их вызова.
Подпрограммы (ПП) могут быть вложенными — т.е. вызов других ПП не только из главной программы, но и из любых ПП.
Иногда бывает, что ПП вызывает сама себя — такой прием называется рекурсией. Опасен! - бесконечный самовызов.
Структура подпрограммы:
заголовок с параметрами;
тело (операторы);
завершение.
Функции
|
Basic |
Pascal |
C++ |
Заголовок функции |
FUNCTION имя (список параметров) Тип возвращаемого значения определяется специальным символом после имени функции |
function имя (список параметров): тип функции; |
Тип функции имя (список параметров) |
Тело |
последовательность операторов |
begin последовательность операторов end; |
{ последовательность операторов }; |
Завершение |
END FUNCTION |
нет |
нет |
Процедуры
|
Basic |
Pascal |
C++ |
Заголовок процедуры |
SUB имя (список параметров) |
procedure имя (список параметров); |
void имя (список параметров) |
Тело |
последовательность операторов |
begin последовательность операторов end; |
{ последовательность операторов }; |
Завершение |
END SUB |
нет |
нет |
Как функция возвращает значение в основную программу? (в C++ - return) – т.е. специальный оператор или особая форма оператора присваивания: в левой части указывается имя функции, а справа - возвращаемое значение.
-
Basic
FUNCTION SQR% (X AS INTEGER)
SQR%=X*X
END FUNCTION
Pascal
function SQR (x: integer): integer;
begin
SQR:= X*X
end;
C++
int SQR (int x)
{
return x*x;
};