Форум программистов, компьютерный форум CyberForum.ru

Функции в c++. никак не разобраться с задачками - C++

Восстановить пароль Регистрация
 
Falazure
0 / 0 / 0
Регистрация: 24.07.2013
Сообщений: 6
23.10.2013, 18:19     Функции в c++. никак не разобраться с задачками #1
можете объяснить решения нескольких задач?
застрял на передаче параметров по ссылке. а также : возврат результата по ссылке.
не понимаю, как это работает вообще всё.
1) написать фун-ию, возвращающую квадрат,куб и четвертую степень своего параметра, являющегося вещественным числом типа double.
получилось что-то такое. (хотя сам не пойму как это работает)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <cstdlib>
using namespace std;
void f(double x, double& x2, double& x3, double& x4)
{
     x2=x*x;
     x3=x2*x;
     x4=x3*x;
     }
     int main()
     {
         double x,a,b,c;
         cin>>x;
         f(x,a,b,c);
         cout<<a<<' '<<b<<' '<<c<<endl;
         return 1;
         }
вот дальше не понять вообще задачки.. (знаю, что они простые).
2) написать фун-ию , переставляющую значения своих трех вещественных параметров по циклу.
3)написать фун-ию, которая принимает 5 параметров (первые три - по значению, остальные два - по ссылке). Первые три параметра - длины двух диагоналей параллелограмма и угол между ними, остальные - длины сторон параллелограмма, которые фун-ия должна вычислять.
4)написать фун-ию с тремя вещественными пар-рами , заменяющую значение каждого параметра на среднее арифметическое значений двух других параметров.
если есть те, кто может помочь вникнуть в эти задачи, отзовитесь,пожалуйста.

Добавлено через 28 секунд
решил вторую задачку вроде.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <iostream>
#include <cstdlib>
using namespace std;
inline void keep_window_open() {char ch;cin>>ch;}
void f(double& x1,double& x2,double& x3)
{
     double x;
     x=x1;
     x1=x2;
     x2=x3;
     x3=x;
     }
     int main()
     {
         double a,b,c;
         a=1.0;
         b=2.0;
         c=3.0;
         for (int i = 1;i<5;i++)
         {
         f(a,b,c);
         cout<<a<<' '<<b<<' '<<c<<endl;
         }
         keep_window_open();
         return 1;
         }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.10.2013, 18:19     Функции в c++. никак не разобраться с задачками
Посмотрите здесь:

Описание функции.Никак не сделаю. C++
C++ Никак не могу разобраться с конструктором.
Никак не могу разобраться с ошибкой. C++
В чем разница между управляемой и неуправляемой кучей????? не могу никак разобраться C++
Не могу разобраться с задачками C++
C++ Программка вроде не сложная, но никак не могу разобраться с модулями... Часть кода есть
C++ Никак не могу исправить ошибку, задача на функции
Как работает эта функция? Не могу никак разобраться! C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Stella
75 / 75 / 5
Регистрация: 26.02.2013
Сообщений: 224
23.10.2013, 19:05     Функции в c++. никак не разобраться с задачками #2
Falazure, может так понятней:
Когда параметр передается по значению, то в функции создается копия этого параметра. поэтому, что бы вы не делали с параметром в функции, когда она закончит работу - в основной программе переменная не изменится.
А если передать по ссылке, то передается адрес памяти, где хранится переменная => значение переменной можно менять и эти изменения останутся в основной программе.
Например, если в программе 2 забрать ссылки, то значения не поменяются в основной программе.
Falazure
0 / 0 / 0
Регистрация: 24.07.2013
Сообщений: 6
23.10.2013, 20:21  [ТС]     Функции в c++. никак не разобраться с задачками #3
с этими задачками разобрался со всеми.

теперь возврат результата по ссылке.
чем это отличается ? перед фун-ией когда ставишь &.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
int x1, x2, x3, x4, x5; 
int &access(int n)
{
switch(n)
{
case 1: return x1;
case 2: return x2;
case 3: return x3;
case 4: return x4;
case 5: return x5;
default: exit(EXIT_FAILURE); 
}
}
int main()
{
int i;
cout<<access(2)<<endl; 
access(1) = 2; // x1 = 2
for(i = 1; i <= 5; i++)
access(i) = i*10; 
return EXIT_SUCCESS;
}
дан вот такой пример.
но что тут хотели показать, мне не понять пока
Yandex
Объявления
23.10.2013, 20:21     Функции в c++. никак не разобраться с задачками
Ответ Создать тему
Опции темы

Текущее время: 16:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru