Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.65/34: Рейтинг темы: голосов - 34, средняя оценка - 4.65
11 / 11 / 1
Регистрация: 01.12.2011
Сообщений: 162
Записей в блоге: 2
1

Вытаскивание значение переменной из функции

06.08.2012, 22:34. Показов 6789. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Наслышан по слухам что из функции можно возвратить значение переменной без применения глобальной. (Прошу прощения если вы меня не понимаете, может быть я несу бред и на самом деле такого нет, навоображал много чего от услышанного может). Так вот лучше объясню на примере: допустим есть функция
C++
1
2
3
4
5
void __fastcall TForm1::Primer(int a, int b)
{
int c = a+b;
return c;
}
Вопрос: как вытащить значение "с" из функции ("с" не глобальная переменная)?

З.Ы.:Почитал по форуму что нужен return, но не знаю почему. Не представляю даже как можно вызвать такую функцию. Так что ли: int num=Primer(2, 3);
Подскажите пожалуйста .

Если что то прошу прощение за бред.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.08.2012, 22:34
Ответы с готовыми решениями:

И снова глобальная переменная в js. Как изменить значение глобальной переменной в одной функции и увидеть это значение в другой функции?
Это учебное задание. Помогите, пожалуйста, разобраться почему func1 видит какую-то новую переменную...

Вычислить значение функции (значение переменной Х передается в качестве параметра функции)
Написать функцию, которая возвращает вычисленное значение функции. Значение переменной Х передается...

Составьте программу, которая: запрашивает значение переменной x и шага n; выводит значение функции
У ми жуткая программа по информе: 5 занятий по паскалю и контрольная. А мы ЭТОГО даже на алгебре...

Составте программу, которая:запрашивает значение переменной X и шага Y;выводит значение функции f(x)=(2x-cosx): (x+1) в точках х,х+n,х-n.
Люди, напишите прогу: 1 задание: Составте программу, которая:запрашивает значение переменной X...

4
6045 / 2160 / 753
Регистрация: 10.12.2010
Сообщений: 6,005
Записей в блоге: 3
06.08.2012, 22:42 2
Способ раз:
C++
1
2
3
4
5
6
7
8
int MyFunction(int a,int b)
{
  int c=a+b;
  return c;
}
//...
//применение
int k=MyFunction(3,4);
Способ два:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
void MyFunction(int a, int b, int &ReturnVal)
{
  int c=a+b;
  //дальше что-то считаем
  ReturnVal=c;
}
 
//...
int A,B,C;
A=3;
B=2;
MyFunction(A,B,C);
std::cout<<"C has returned:"<<C<<std::endl;
1
8 / 8 / 3
Регистрация: 17.05.2012
Сообщений: 50
06.08.2012, 22:44 3
Ну например вот так:

C++
1
2
3
4
5
int summa(int a, int b)
{
    int c = a+b;
    return c;
}
Тип значения, возвращаемого функцией (int) должно совпадать со значением перед названием функции (int вместо void).

Тогда функция будет возвращать значение:

C++
1
2
3
int a = 1;
int b = 2;
int c = summa(a,b);
упд: опоздал)
1
11 / 11 / 1
Регистрация: 01.12.2011
Сообщений: 162
Записей в блоге: 2
06.08.2012, 23:02  [ТС] 4
Ругает компилятор.
Весь кода:
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
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
int k=MyFunction(3,4);
}
//---------------------------------------------------------------------------
 
int MyFunction(int a,int b)
{
  int c=a+b;
  return c;
}
//---------------------------------------------------------------------------
В *.h файле прописал
Код
int MyFunction(int a,int b);
после строки
Код
__published:	// IDE-managed Components.
Такое ругательство:
Код
Checking project dependencies...
Compiling Project2.cbproj (Debug, Win32)
bcc32 command line for "Unit1.cpp"
  c:\program files (x86)\embarcadero\rad studio\9.0\bin\bcc32.exe -D_DEBUG -D_RTLDLL;USEPACKAGES -n.\Win32\Debug -I"c:\program files 
  (x86)\embarcadero\rad studio\9.0\include\windows\vcl";"C:\Program Files (x86)\Embarcadero\RAD Studio\9.0\include\boost_1_39\boost\tr1\tr1";
  "C:\Program Files (x86)\Embarcadero\RAD Studio\9.0\include\boost_1_39";"c:\program files (x86)\embarcadero\rad studio\9.0\include";"c:\program files 
  (x86)\embarcadero\rad studio\9.0\include\dinkumware";"c:\program files (x86)\embarcadero\rad studio\9.0\include\windows\crtl";"c:\program files 
  (x86)\embarcadero\rad studio\9.0\include\windows\sdk";"c:\program files (x86)\embarcadero\rad studio\9.0\include\windows\rtl";"c:\program files 
  (x86)\embarcadero\rad studio\9.0\include\windows\vcl";"C:\Program Files (x86)\FastReports\LibD16";"c:\program files (x86)\embarcadero\rad 
  studio\9.0\RaveReports\Lib";"C:\Program Files (x86)\Raize\CS5\Lib\RS-XE2\Win32" -y -Q -k -r- -c -tM -tU -tW -C8 -o.\Win32\Debug\Unit1.obj -w-par -Od 
  -v -vi- -H=.\Win32\Debug\Project2.pch -H Unit1.cpp 
[BCC32 Warning] Unit1.cpp(16): W8004 'k' is assigned a value that is never used
  Full parser context
    Unit1.cpp(13): parsing:  _fastcall TForm1::TForm1(TComponent *)
ilink32 command line
  c:\program files (x86)\embarcadero\rad studio\9.0\bin\ilink32.exe -L.\Win32\Debug;"c:\program files (x86)\embarcadero\rad studio\9.0\lib\Win32\debug";
  "c:\program files (x86)\embarcadero\rad studio\9.0\lib\win32\release";"c:\program files (x86)\embarcadero\rad studio\9.0\lib\win32\release\psdk";
  "C:\Program Files (x86)\FastReports\LibD16";"c:\program files (x86)\embarcadero\rad studio\9.0\RaveReports\Lib";"C:\Program Files 
  (x86)\Raize\CS5\Lib\RS-XE2\Win32";"C:\Users\Public\Documents\RAD Studio\9.0\DCP" -j.\Win32\Debug;"c:\program files (x86)\embarcadero\rad 
  studio\9.0\lib\Win32\debug";"c:\program files (x86)\embarcadero\rad studio\9.0\lib\win32\release";"c:\program files (x86)\embarcadero\rad 
  studio\9.0\lib\win32\release\psdk";"C:\Program Files (x86)\FastReports\LibD16";"c:\program files (x86)\embarcadero\rad studio\9.0\RaveReports\Lib";
  "C:\Program Files (x86)\Raize\CS5\Lib\RS-XE2\Win32";"C:\Users\Public\Documents\RAD Studio\9.0\DCP" -l.\Win32\Debug -v 
  -GA"C:\Users\836D~1\AppData\Local\Temp\vfs3F5F.tmp"="D:\Документы\Всячка\Програмирование\C++\RAD Studio Builder\Проекты\Проба возращение 
  функции\Unit1.dfm" -aa -V5.0 -G8 -Tpe  c0w32w rtl.bpi vcl.bpi memmgr.lib sysinit.obj .\Win32\Debug\Project2.obj .\Win32\Debug\Unit1.obj , 
  .\Win32\Debug\Project2.exe , .\Win32\Debug\Project2.map , import32.lib cp32mti.lib , , Project2.res 
[ILINK32 Error] Error: Unresolved external 'TForm1::MyFunction(int, int)' referenced from D:\ДОКУМЕНТЫ\ВСЯЧКА\ПРОГРАМИРОВАНИЕ\C++\RAD STUDIO BUILDER\ПРОЕКТЫ\ПРОБА ВОЗРАЩЕНИЕ ФУНКЦИИ\WIN32\DEBUG\UNIT1.OBJ
[ILINK32 Error] Error: Unable to perform link
Failed
Elapsed time: 00:00:00.3
0
Эксперт С++
8385 / 6147 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
06.08.2012, 23:59 5
Цитата Сообщение от X_Starter_X Посмотреть сообщение
В *.h файле прописал
C++
1
int MyFunction(int a,int b);
Сначало определитесь про что речь про ф-цию или метод ?
Если метод, то в хедере не нужно ничего писать.Если метод :
C++
1
2
3
4
int __fastcall TForm1::Primer(int a, int b)
{
 return a+b;
}
В хедере
C++
1
2
public:   // не в __published: !!!
     int __fastcall Primer(int a, int b);
Добавлено через 20 минут
P.S. Читайте Архангельского и что-то про ООП в С++
1
06.08.2012, 23:59
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.08.2012, 23:59
Помогаю со студенческими работами здесь

Как посчитать и запомнить значение переменной в одной функции, а потом использовать ее в другой функции?
//файл task.cpp #include &quot;stdafx.h&quot; bool twice (int mas, int n) { int k=0; for (int...

Значение функции по одной из функции в зав от переменной
Решение функции в зависимости от переменной , помогите сделать :) z=8y2-k, где y вычисляется по...

Значение переменной из функции
Привет всем. Есть функция $(function (){ $(&quot;.abc&quot;).click(function(){ var data =...

Изменить значение переменной из функции
Здравствуйте! Пытаюсь прошариться в работе с указателями и вот не могу понять одну штуку. Вот...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru