- •Информатика и программирование
- •Устройство процессора
- •Основные блоки компьютера
- •2 Понятие алгоритма. Основные требования, которым должен удовлетворять алгоритм
- •3 Структурное, модульное и процедурное программирование
- •4 Объектно-ориентированное программирование (ооп)
- •5 Языки программирования высокого уровня (япву). Их отличия от низкоуровневых языков. Универсальные и специализированные яп. Наиболее популярные современные яп
- •1.2. Алгоритмические языки
- •1.2. Языки программирования баз данных
- •1.3. Языки программирования для Интернета
- •6 Трансляторы, компиляторы и интерпретаторы
- •7 Основные этапы разработки программ
- •1 Порядок решения задач на компьютере
- •8 Этапы прогонки программы. Назначение препроцессора, компилятора, редактора связей
- •9 Составляющие япву
- •10 Понятие типов данных. Переменные и константы
- •11 Cтандартные и пользовательские типы данных
- •12 Понятие класса и экземпляра класса. Конструкторы и деструкторы
- •13 Классы памяти
- •1 Описание функций
13 Классы памяти
Определяют размещение объекта в памяти и продолжительность его существования. Для явного задания класса памяти в описании объекта используются идентификаторы:
аuto – автоматически выделяемая, локальная память
register - автоматически выделяемая регистровая память,, использует не ОЗУ, а регистры памяти
static - приписывается переменным и функциям и доступен только в модулях программы, в которых он определён.
Extern – приписывается переменным и функциям и доступен во всех модулях программы.
14 Подпрограммы. Их назначение. Типы подпрограмм в ЯП Паскаль и С\С++
Подпрограммы служат для решения частной задачи основной программы, т.е. являются отдельным модулем для вычисления какого-либо параметра, который используется в основной программе.
Бывают подпрограммы-функции и подпрограммы-процедуры.
Функция – это подпрограмма, вычисляющая и возвращающая некоторое значение. Если в ходе выполнения программы требуется часто вычислять какое-либо выражение (например, факториал, сложную формулу и т.п.), то можно вставить в программу функцию, которая будет вычислять это выражение и вызывать её в основную программу каждый раз, когда требуется его вычислить.
Подпрограмма-функция имеет ту же структуру, что и основная программа, то есть может содержать разделы описания переменных, типов, констант и т.д. Кроме того, подпрограмма может иметь собственные процедуры и функции.
1 Описание функций
В заголовке функции определяется идентификатор функции, формальные параметры (если они имеются) и тип результата функции.
Формат функции:
function <идентификатор>[(<список формальных параметров>)]: <тип результата>;
Функция активизируется при ее вызове. При вызове функции указывается идентификатор функции и какие-либо параметры, необходимые для вычисления функции. Вызов функции может включаться в выражения в качестве операнда, т.е. одного из аргументов. Когда выражение вычисляется, функция выполняется и значением операнда становится значение, возвращаемое функцией.
Описание функции приводится в разделе описаний основной программы после раздела переменных var. В теле программы функция вызывается по её имени с фактическими параметрами для вычисления.
Пример 1 Вычислить у = (х2 + 5!).
(Факториал – это произведение натуральных чисел, напр., 5! = 1*2*3*4*5)
Оформим вычисление факториала как подпрограмму-функцию:
program funct1;
var x, y: real; // начало раздела описаний программы
F: integer;
function Factоrial (N:integer): integer; //описание
// функции Factоrial типа integer с параметром N типа integer
var i, N: integer;
begin
F:= 1;
for i:=2 to N do
F:=F*1;
Factorial:= F;
End function; // конец описания функции
begin // начало тела основной программы
x:=3.45;
y:=sqr(x – Factorial(5)); // Вызов функции Factоrial с аргументом N =5 как операнда
write ('y=', y);
end. // конец тела основной программы
Параметры, описанные внутри функции (i, N) называются локальными и действуют только внутри функции. Параметры, описанные в разделе описаний программы (х, у, F) называются глобальными и действуют в самой программе и во всех её подпрограммах – функциях и процедурах, поэтому глобальную переменную F в описании функции Factоrial объявлять не надо.
Процедура - это часть программы, предназначенная для решения задачи или подзадачи. Это последовательность операторов, вычисляющая одну или несколько функций или выполняющая другую задачу (рисование рамки таблицы, оформление экрана и т.п.). Перед использованием процедуру необходимо объявить.
Формат объявления процедуры:
sub <имя процедуры>[(<список формальных параметров>)];
end sub
Процедура активизируется с помощью оператора процедуры, в котором содержатся имя процедуры и необходимые параметры (если это необходимо). Вызов процедуры приводит к выполнению операторов, составляющих тело процедуры. Отличие подпрограммы-процедуры от подпрограммы-функции только в том, что процедура вызывается в основную программу отдельной строкой, а не входит в состав вычисляемых выражений.
Пример Вычислить у = (х2 + 5!).
program vybor;
var y, X: real; // начало раздела описаний основной программы vybor
sub Factоrial (N:integer); // начало процедуры Factоrial
var i: integer;
begin
F:= 1;
for i:=2 to N do
F:=F*1;
end sub; // конец процедуры Factоrial
begin // начало тела основной программы
Х:= 5.1; N:= 5;
Factоrial (N); // вызов процедуры с параметрoм N
y:= X + N;
end. // конец тела основной программы