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

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

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

Студворк — интернет-сервис помощи студентам
Наслышан по слухам что из функции можно возвратить значение переменной без применения глобальной. (Прошу прощения если вы меня не понимаете, может быть я несу бред и на самом деле такого нет, навоображал много чего от услышанного может). Так вот лучше объясню на примере: допустим есть функция
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
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
06.08.2012, 22:34
Ответы с готовыми решениями:

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

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

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

4
 Аватар для HighPredator
6045 / 2160 / 753
Регистрация: 10.12.2010
Сообщений: 6,005
Записей в блоге: 3
06.08.2012, 22:42
Способ раз:
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
Ну например вот так:

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  [ТС]
Ругает компилятор.
Весь кода:
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 файле прописал
Code
1
int MyFunction(int a,int b);
после строки
Code
1
__published:    // IDE-managed Components.
Такое ругательство:
Code
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
27
28
29
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
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
06.08.2012, 23:59
Цитата Сообщение от 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
06.08.2012, 23:59
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru