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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
sword7i
3 / 3 / 0
Регистрация: 25.09.2012
Сообщений: 92
#1

Передача значения по ссылке - C++

24.10.2012, 22:37. Просмотров 478. Ответов 6
Метки нет (Все метки)

Даны два файла:
fun.cpp:
C++
1
2
3
4
5
6
7
8
9
10
11
#include <math.h>
double summa(float x, float eps, double& psl, int& k) {
double s=0, sl=1/x, psl=0; int k=0;
while (fabs(sl)>=eps) {
    s=s+sl;
    psl=sl;
    sl=sl*(x*x*(2*k-1))/(-2*(k+1)*(2*k+1)*(2*k+3));
    k++;
    }
return s;
}
И main.cpp:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <conio.h>
using namespace std;
double summa(float x, float eps, double& psl, int& k);
void main () {
setlocale (LC_ALL, "Russian");
float x, eps;
double sum;
cout<<"Введите x: ";
cin>>x;
cout<<"Введите эпсилон: ";
cin>>eps;
sum = summa(x, eps, psl, k);
cout<<"Сумма слагаемых: "<<sum<<endl<<"Последнее слагаемое, включенное в сумму: "<<psl<<endl<<"Количество слагаемых: "<<k<<endl;
getch();
}
Как в функции main получить значения psl и k, которые передаются по ссылке? В файле main.cpp выдает ошибку:"переменные psl и k не определены", а если определить, то тоже ошибка.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт CЭксперт С++
12702 / 7176 / 801
Регистрация: 27.09.2012
Сообщений: 17,702
Записей в блоге: 2
Завершенные тесты: 1
24.10.2012, 22:46     Передача значения по ссылке #2
Почитайте статьи по теме "Раздельная компиляция"
а так же
Заголовочные файлы
sword7i
3 / 3 / 0
Регистрация: 25.09.2012
Сообщений: 92
24.10.2012, 23:36  [ТС]     Передача значения по ссылке #3
Почитал, но что-то не доходит до меня

Добавлено через 32 минуты
Мне непонятно как main должна получить значения переменных psl и k, значения которых передаются по ссылке из функции summa.
kazak
3031 / 2352 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
24.10.2012, 23:43     Передача значения по ссылке #4
Цитата Сообщение от sword7i Посмотреть сообщение
Мне непонятно как main должна получить значения переменных psl и k, значения которых передаются по ссылке из функции summa.
Объявляете переменные соответствующих типов и передаете их в функцию, после работы функции в этих переменных будут результаты работы функции.
sword7i
3 / 3 / 0
Регистрация: 25.09.2012
Сообщений: 92
24.10.2012, 23:58  [ТС]     Передача значения по ссылке #5
Цитата Сообщение от kazak Посмотреть сообщение
Объявляете переменные соответствующих типов и передаете их в функцию, после работы функции в этих переменных будут результаты работы функции.
Когда определяю данные переменные в ф-и main,
Выдает ошибку "переопределение формального параметра "num" "
"переопределение формального параметра "k" "
Croessmah
Модератор
Эксперт CЭксперт С++
12702 / 7176 / 801
Регистрация: 27.09.2012
Сообщений: 17,702
Записей в блоге: 2
Завершенные тесты: 1
25.10.2012, 00:03     Передача значения по ссылке #6
C++
1
2
double summa(float x, float eps, double& psl, int& k) {
double s=0, sl=1/x, psl=0; int k=0;
У Вас переопределяются переменные
C++
1
2
double psl=0; 
int k=0;
уберите их из объявления переменных:
C++
1
2
psl=0; 
k=0;
Добавлено через 1 минуту
А в функции main добавьте
C++
1
2
double psl=0; 
int k=0;
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.10.2012, 00:09     Передача значения по ссылке
Еще ссылки по теме:

C++ Передача параметров по ссылке
Передача по ссылке C++
Передача массива по ссылке C++
Передача по ссылке, различие C++
Передача по ссылке и изменения C++

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

Или воспользуйтесь поиском по форуму:
sword7i
3 / 3 / 0
Регистрация: 25.09.2012
Сообщений: 92
25.10.2012, 00:09  [ТС]     Передача значения по ссылке #7
Цитата Сообщение от Croessmah Посмотреть сообщение
C++
1
2
double summa(float x, float eps, double& psl, int& k) {
double s=0, sl=1/x, psl=0; int k=0;
У Вас переопределяются переменные
C++
1
2
double psl=0; 
int k=0;
уберите их из объявления переменных:
C++
1
2
psl=0; 
k=0;
Добавлено через 1 минуту
А в функции main добавьте
C++
1
2
double psl=0; 
int k=0;
Спасибо ОГРОМНОЕ! Помогло, я понял свою ошибку.
Yandex
Объявления
25.10.2012, 00:09     Передача значения по ссылке
Ответ Создать тему
Опции темы

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