Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Алгоритмизация и программирование .doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.35 Mб
Скачать

6.3. Вызов функции

Для выполнения функции к ней нужно обратиться.

Форма обращения к функции (вызов для выполнения):

имя_функции (список фактических параметров);

Список фактических параметров, называемых аргументами, - это список выражений, количество которых равно числу формальных параметров функции.

При указании фактических аргументов тип данных не указывается. Если фактических аргументов несколько, то они разделяются запятыми.

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

Примеры вызова функции step:

float y;

// результат работы функции присваивается переменной y

y = step (3.5, 3);

// использование вызова функции в выражениях

Console::WriteLine(“ 2 в степени 5 = “ + step(2,5)+ “\n”);

y = 100/2+step(4.0, 3);

Пример 6_1. Использование функции, вычисляющей сумму 2-х чисел a и b, причем одно число целое, а второе – вещественное.

#include "stdafx.h"

using namespace System;

float schet ( float, int); // прототип функции

int main()

{ float sum,a;

int b;

a = 20.8;

b = 25;

sum = schet (a, b); // вызов на выполнение функции schet

// a, b – фактические параметры, передаваемые в функцию

// результат работы функции будет присвоен

// переменной sum

Console::WriteLine("a = " + a + " b = " + b + " sum = " + sum);

Console::WriteLine("Сумма 10.5 + 23 = " + schet(10.5, 23));

Console::ReadLine();

return 0;

}

// определение функции schet

// данная функция возвращает значение типа float

// (поэтому тип float указан перед именем функции)

// в функцию передаются 2 параметра (1-й типа float, 2-й - типа int)

float schet ( float c, int d)

{

// c, d - имена формальных параметров

// c - получит значение фактического параметра a

// d - получит значение фактического параметра b

// (могут быть любые имена - важен тип параметров

// и порядок следования)

float s;

s = c + d;

return ( s ); // передача значения в точку вызова

}

Результат работы со строками:

a = 20,8 b=25 sum =45,8

Сумма 10.5 + 23 = 33,5

Пример 6_2. Демонстрация использования функций для ввода целочисленного массива m из 7 элементов, вычисления суммы всех элементов массива и вывода на экран исходный массив и результат расчета (данное условие использовалось ранее при рассмотрении одномерных массивов).

Теперь программа будет состоять из:

- функции ввода данных с клавиатуры (метод будет иметь имя input);

- функции расчета суммы (метод будет иметь имя raschet);

- функции вывода исходного массива и результата расчета (метод будет иметь имя output).

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

#include "stdafx.h"

using namespace System;

void input(int [7], wchar_t);

int raschet(int [7]);

void output (int [7], wchar_t, int );

int main()

{

int m[7];

int sum;

input(m, L'm');

sum = raschet(m);

output(m, L'm', sum);

Console::ReadLine();

return 0;

}

// определение функции ввода данных в массив

void input(int a[7], wchar_t name)

{

int i;

Console::WriteLine("Вводим данные в массив {0}:", name);

for (i = 0; i < 7; i++)

{

Console::Write("{0}[{1}]=",name, i);

a[i] = Convert::ToInt32(Console::ReadLine());

}

}

// определение функции расчета суммы

int raschet(int a[7])

{

int i, s;

// расчет суммы всех элементов

s = 0;

for (i = 0; i < 7; i++)

s += a[i];

return s;

}

// определение функции вывода на экран

void output (int a[7], wchar_t name, int s)

{

int i;

//вывод исходного массива и результата

Console::WriteLine("\n\nИсходный массив {0}", name);

for (i = 0; i < 7; i++)

Console::Write("{0,6}", a[i]);

Console::WriteLine("\nСумма элементов равна " + s);

}

Результаты работы программы:

m[0] = 100

m[1] = 1

m[2] = 2

m[3] = 3

m[4] = 10

m[5] = 20

m[6] = 300

<здесь одна пустая строка>

Исходный массив m

100 1 2 3 10 20 300

Сумма элементов равна 436