Теор_часть (Лабораторная работа №4)
Описание файла
Документ из архива "Лабораторная работа №4", который расположен в категории "". Всё это находится в предмете "информатика" из 2 семестр, которые можно найти в файловом архиве МПУ. Не смотря на прямую связь этого архива с МПУ, его также можно найти и в других разделах. Архив можно найти в разделе "лабораторные работы", в предмете "информатика (программирование)" в общих файлах.
Онлайн просмотр документа "Теор_часть"
Текст из документа "Теор_часть"
Лабораторная работа № 4
«Передача значений»
Теоретическая часть
С++ поддерживает 2 способа передачи переменных между функциями. Это передача по значению и передача по адресу или ссылке.
Передача по значению:
main( )
{
int i = 5;
pr_it (i);
return 0;
}
pr_it (int i);
{
cout << i;
return;
}
В принимающую функцию передается не сама переменная i, а ее фактическое значение равное 5. В результате переменная i не одна, а их фактически две. Первый из них является локальной по отношению к main( ), а вторая по отношению pr_it .
Обе переменные имеют одинаковые имена, но так как они локальны в своих функциях, то конфликта не возникает. В принимающую функцию посылается только значение i , поэтому не важно как назвать в этой функции переменную, принимающую это значение. Однако на практике при передаче и приеме переменных между функциями лучше и понятнее использовать одинаковые имена, несмотря на то, что это разные переменные так как они содержат одинаковые значения. В приведенном примере значение 5 передается из переменной i в функцию main в переменную i pr_it . Поскольку в этом случае происходит передача значений переменной i , то при изменении i в функции pr_it будет изменена только копия этой переменной, а не сама i функции main . Используя этот метод мы можем передавать копии переменных, принимающей функции, но она не может изменять значения этой переменной, вызывающей функции. Для передачи переменных по значению нужно указать их в списке аргументов, вызывающей функции в списке параметров принимающей функции.
Передача по адресу или по ссылке.
При передаче аргумента по адресу параметра функции присваивается адрес указанной переменной. При объявлении переменной С++ находит свободное место в памяти и закрепляет его за этой переменной. При передаче переменной по адресу принимающей функции происходит копирование её адреса, а не значения. Если принимающая функция изменяет переменную, которая была передана в неё по адресу, то при возврате в вызванную функцию все изменения сохраняются. В С++ по адресу передаются массивы.
Программа запрашивает вес пользователя:
# include
void moon (int Weight)
{
int S; // Объявление передаваемого параметра
S = Weight / 6
cout << “your Weight on the moon = “ << S << “\n”; // Вычисления.
return;
}
main( )
{
int Weight; // Локальная переменная функции main
cout << “how many pound do you Weight? \ “ ;
cin >> Weight;
moon (Weight); // Вызов функции moon и передача ей значения
return 0;
}
Описание программы:
Программа высчитывает вес пользователя на Луне при вводе веса на Земле.
Программа передаёт вес пользователя в функцию, которая вычисляет вес на луне. Принимающая функция moon использует переданные значения для соответствующих подсчетов. Как только функция получает это значение, она обрабатывает его как локальную переменную.
Задание:
напишите программу для передачи по значению.