Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
933 Кб
Скачать
☆

7.3.1. Определения процедур

C

Формат функции:

[<тип>] <имя>([<описания_параметров>])<блок>

В блоке обязательно присутствие инструкции вида return <выражение>, значение которого возвращается в точку вызова. Его обычно называют возвращаемым значением функции. <тип> в заголовке функции указывает тип возвращаемого значения. Если тип значения в инструкции return не совпадает с типом в заголовке, то производится автоматическое преобразование его к типу заголовка. Если <тип> отсутствует, то транслятор подставляет int.

Примеры.

float MinFun(int n, float x[ ]){

int i, j;

float MinValue;

................

return 2*MinValue+5;

}

Определение функции: Вызов:

double Max(double a, double b){ y=Max(cos(x), sin(x));

double y;

if(a>b){

y=a;

}else{

y=b;

}

return y;

}

Basic

Формат функции:

Function <имя_функции>([<описания_параметров>]) As <тип>

блок

End Function

Возвращаемое значение непосредственно присваивается имени функции, т.е. в блоке должна присутствовать хотя бы 1 инструкция вида <имя_функции> = <выражение> либо возвращается с помощью инструкции Return <выражение>.

Примеры.

Function Minfun(n As Integer, x( ) As Single) As Single

Dim i, j As Integer, MinValue, y As Single

................................................................................

MinValue=2*y+5 | Return 2*y+5

End Function

Определение функции Вызов

Function Max(a As Double, b As Double) As Double y=Max(Cos(x), Sin(x));

Dim y As Double

If a>b Then

y=a

Else

y=b

End If

Max=y

End Function

C

По понятиям языка C подпрограмма – это функция, не возвращающая значения. Для указания типа возвращаемого значения в этом случае используется ключевое слово void (пустой, не возвращающий значение).

Пример.

void fun( ){

………….

[return;]

........……

}

Для возвращения в точку вызова используется инструкция return; Если возврат производится непосредственно перед замыкающей фигурной скобкой тела процедуры, то употребление инструкции return необязательно.

Пример(подпрограмма). Вызов:

/* Умножение матрицы на вектор */ Matrix(m, n, a, b, c);

void Matrix (int l, // Число строк

int k, // Число столбцов

double p[ ][10], // Исходная матрица

double q[ ], // Исходный вектор

double s[ ] ){ // Вектор-результат

int i, j;

for(i=0; i<l; i++){

for(s[ i ]=j=0; j<k; j++){

s[ i ]+=p[ i ][ j ]*q[ j ];

}

}

} // End Matrix

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

int main([<параметры>])<блок>

Перед закрывающей фигурной скобкой блока по правилам языка следует поместить инструкцию return 0; , однако эту инструкцию можно опустить (она подразумевается по умолчанию). Значение 0 сигнализирует операционной системе о благополучном завершении приложения.

Параметры используются редко, поэтому обычно имеем:

int main( ){

............

}

Basic

Формат подпрограммы:

Sub <имя_подпрограммы>([<описания_параметров>])

..................................

Exit Sub|Return

..................................

End Sub

Для возвращения в точку вызова используются инструкции Exit Sub | Return. Если это производится в конце процедуры, то их употреблять не нужно.

Пример (подпрограмма). Вызов:

' Умножение матрицы на вектор [ Call] Matrix(m, n, a, b, c);

Sub Matrix( l As Integer, _

k As Integer, _

p( , ) As Double, _

q( ) As Double, _

s( ) As Double)

Dim i, j As Integer

For i=0 To l-1

s( i )=0

For j=0 To k-1

s( i )+=p( i , j )*q( j )

Next j

Next i

End Sub

В языке Basic операционная система передает управление либо объекту программы, называемому формой, либо главной процедуре Sub Main.