Лабораторная работа № Ознакомление с фундаментальными типами данных План: Целые типы данных


Download 0.88 Mb.
bet17/64
Sana13.09.2023
Hajmi0.88 Mb.
#1677324
TuriЛабораторная работа
1   ...   13   14   15   16   17   18   19   20   ...   64
Bog'liq
Лаборатория № 1 - 6

Передача данных по значению
Этот способ передачи данных в подпрограмму является основным и действует по умолчанию. Фактический параметр вычисляется в вызывающей функции и его значение передаётся на место формального параметра в вызываемой функции. На этом связь между фактическим и формальным параметрами прекращается.
В качестве фактического параметра можно использовать константу, переменную или более сложное выражение. Передача данных по значению пригодна только для простых данных, которые являются входными параметрами. Если параметр является выходным данным или массивом, то передача его в функцию по значению не приемлема.

Пример 1. Вычислить сумму ряда с заданной точностью ε=10-5:



Для вычисления суммы ряда используем функцию. В неё передадим по значению x и eps. Результат вернём через имя функции оператором return.
Возможный вариант реализации программы:
#include
using namespace std;
#include


double fsum(double x, double eps);


int main()
{
double x, s, eps = 1.0e-5;
cout << "x = ";
cin >> x;
s = fsum(x, eps);
cout << "s = " << s << endl;
return 0;
}


double fsum(double x, double eps)
{
double s = x, p = x, i, t = x * x;
for(i = 3; fabs(p) > eps; i += 2)
{
p = -p * t / (i * (i - 1));
s += p;
}
return s;
}
Не сложно убедиться, что всё нормально работает. Но что делать, когда выходных параметров два или более? Через имя функции можно вернуть только один объект, остальные придётся возвращать через список. Позволит ли этот способ (передача по значению) вернуть через список параметров изменённые значения? Нет, не позволит. Давайте проверим это на несложном примере.
Пример 2. Даны два числа, хранящиеся в переменных a и b. Используя подпрограмму, выполнить обмен содержимого ячеек этих переменных.
Данные передадим по значению. Они будут в этой задаче и входными, и выходными данными. Для контроля изменения содержимого ячеек памяти будем выводить на экран монитора промежуточные данные.
Возможный вариант реализации программы:

Download 0.88 Mb.

Do'stlaringiz bilan baham:
1   ...   13   14   15   16   17   18   19   20   ...   64




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling