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

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

Войти
Регистрация
Восстановить пароль
 
vladoscom93
25 / 25 / 5
Регистрация: 14.05.2011
Сообщений: 242
#1

как мне определить правильно параметры процедуры, чтобы с меняло свое значение - C++

16.02.2013, 22:19. Просмотров 419. Ответов 8
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
void strfun(int a, int b, int c)
{
    c = a + b;
}
 
int main()
{
    int a=5, b=6, c=0;
    strfun(a, b, c);
    cout << c << endl;
    cin.get();
};
проблема состоит в том как мне определить правильно параметры процедуры, чтобы с меняло свое значение... совет сделать обычную функцию которая возвращает обычно значение не подходит( пробовал делать так, но вылетают ошибки:
C++
1
2
3
4
5
6
7
8
9
10
11
12
void strfun(int a, int b, int& c)
{
    c = a + b;
}
 
int main()
{
    int a=5, b=6, c=0;
    strfun(a, b, c);
    cout << c << endl;
    cin.get();
};
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.02.2013, 22:19
Здравствуйте! Я подобрал для вас темы с ответами на вопрос как мне определить правильно параметры процедуры, чтобы с меняло свое значение (C++):

Как правильно задать параметры для процедуры в ADOCommand? - Delphi БД
не получается задать параметры для процедуры на сервере. вроде все как надо по книжкам: ADOCommand.CommandText:='proc_name' ...

Как сделать, чтобы переменная не затирала свое предыдущее значение? (См. внутри) - Delphi
При выборе нескольких значений RadioGroup нужно вывести все значения, которые выбрали. begin case RadioGroup1.ItemIndex of 0: begin...

Как мне правильно прописать в файле hosts чтобы он реагировал на бесконечные субдомены? - Windows 7
Доброго времени суток уважаемые форумчане. У меня вопрос такого рода. Как мне правильно прописать в файле hosts что бы он...

Как сделать в Delphi такую кнопку чтобы при наведении на неё курсором она меняло своё изображение - Delphi
Здраствуйте дорогие формучане.Я здесь новенький и у меня возник вопрос: Как сделать в Delphi такую кнопку чтобы при наведении на неё...

как правильно передать значение функции в последующие процедуры во входных параметрах. - Turbo Pascal
у меня есть код программы в которой нужно упорядочить строки матрицы построчно по возрастанию.я сделала из нее программу с процедурами и...

Подскажите мне пожалуйста я не понял как полностью сделать программу, чтобы вычисляла значение функции? - Lisp
Т.е. помимо этого я не понял как сделать так, чтобы ещё надо было вводить x,y и вывод ответа. Например, f(x,y)=x+y при x,y&gt;0.

8
Vourhey
Почетный модератор
6485 / 2259 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
16.02.2013, 22:22 #2
Цитата Сообщение от vladoscom93 Посмотреть сообщение
но вылетают ошибки:
Очень о многом говорит. Написать текст ошибок и место, откуда они у тебя вылетают, есть возможность?
using namespace std сделал? iostream подключил?
1
Дмитрий 93
74 / 59 / 5
Регистрация: 03.06.2011
Сообщений: 309
16.02.2013, 22:26 #3
может так?
C++
1
2
3
4
5
6
7
8
9
10
11
12
int strfun(int a, int b)
{
  int  c = a + b;
}
 
int main()
{
    int a=5, b=6, c=0;
    c=strfun(a, b);
    cout << c << endl;
 
}
в своем коде вы вызывали функцию, да, а выводили переменную который присвоен 0.
ЗЫ а зачем передавать в функцию три параметра один из которых в итоге меняется?
1
Vourhey
Почетный модератор
6485 / 2259 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
16.02.2013, 22:28 #4
Дмитрий 93, его второй код тоже правильный
1
vladoscom93
25 / 25 / 5
Регистрация: 14.05.2011
Сообщений: 242
16.02.2013, 22:39  [ТС] #5
Цитата Сообщение от Дмитрий 93 Посмотреть сообщение
может так?
C++
1
2
3
4
5
6
7
8
9
10
11
12
int strfun(int a, int b)
{
  int  c = a + b;
}
 
int main()
{
    int a=5, b=6, c=0;
    c=strfun(a, b);
    cout << c << endl;
 
}
в своем коде вы вызывали функцию, да, а выводили переменную который присвоен 0.
ЗЫ а зачем передавать в функцию три параметра один из которых в итоге меняется?
мне для других целей надо менять значение параметров в самой процедуре, кстати мой способ заработал я просто забыл отключить старые заголовочники над которыми экспериментировал... теперь возникла друга проблема как мне быть с параметрами типа string в процедурах? как их правильно определить? пробовал так, но вылетели ошибки:
файл sum.h:
C++
1
void strfun(string& line);
файл sum.cpp:
C++
1
2
3
4
void strfun(string& line)
{
    line = "HI!";
}
файл main.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <cstdlib>
#include <iostream>
#include <fstream>
#include <string.h>
#include "sum.h"
 
using namespace std;
 
int main()
{
    string line;
    strfun(line);
    cout << line << endl;
    cin.get();
};
листинг ошибок:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
1>------ Построение начато: проект: comp, Конфигурация: Debug Win32 ------
1>Построение начато 16.02.2013 22:32:14.
1>InitializeBuildStatus:
1>  Обращение к "Debug\comp.unsuccessfulbuild".
1>ClCompile:
1>  sum.cpp
1>c:\users\---\desktop\проба\comp\comp\sum.cpp(1): error C2065: string: необъявленный идентификатор
1>c:\users\---\desktop\проба\comp\comp\sum.cpp(1): error C2065: line: необъявленный идентификатор
1>c:\users\---\desktop\проба\comp\comp\sum.cpp(2): error C2448: strfun: вероятно, инициализатор, использующий стиль функции, является определением функции
1>  main.cpp
1>c:\users\---\desktop\проба\comp\comp\sum.h(1): error C2065: string: необъявленный идентификатор
1>c:\users\---\desktop\проба\comp\comp\sum.h(1): error C2065: line: необъявленный идентификатор
1>c:\users\---\desktop\проба\comp\comp\sum.h(1): error C2182: strfun: недопустимое использование типа "void"
1>c:\users\---\desktop\проба\comp\comp\sum.h(1): fatal error C1903: не удается восстановить после предыдущих ошибок; остановка компиляции
1>  Создание кода...
1>
1>СБОЙ построения.
1>
1>Затраченное время: 00:00:00.51
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
из процедуры делать функцию так же не надо(
0
Vourhey
Почетный модератор
6485 / 2259 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
16.02.2013, 22:44 #6
Цитата Сообщение от vladoscom93 Посмотреть сообщение
#include <string.h>
убери .h
0
vladoscom93
25 / 25 / 5
Регистрация: 14.05.2011
Сообщений: 242
16.02.2013, 22:52  [ТС] #7
Цитата Сообщение от Vourhey Посмотреть сообщение
убери .h
убрал, но проблема всеравно осталась( уже не знаю, что делать вроде бы все правильно сделал, листинг ошибок на этот раз:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
1>------ Построение начато: проект: comp, Конфигурация: Debug Win32 ------
1>Построение начато 16.02.2013 22:47:46.
1>InitializeBuildStatus:
1>  Обращение к "Debug\comp.unsuccessfulbuild".
1>ClCompile:
1>  sum.cpp
1>c:\users\\desktop\проба\comp\comp\sum.cpp(1): error C2065: string: необъявленный идентификатор
1>c:\users\\desktop\проба\comp\comp\sum.cpp(1): error C2065: line: необъявленный идентификатор
1>c:\users\\desktop\проба\comp\comp\sum.cpp(2): error C2448: strfun: вероятно, инициализатор, использующий стиль функции, является определением функции
1>  main.cpp
1>c:\users\\desktop\проба\comp\comp\sum.h(1): error C2065: string: необъявленный идентификатор
1>c:\users\\desktop\проба\comp\comp\sum.h(1): error C2065: line: необъявленный идентификатор
1>c:\users\\desktop\проба\comp\comp\sum.h(1): error C2182: strfun: недопустимое использование типа "void"
1>c:\users\\desktop\проба\comp\comp\sum.h(1): fatal error C1903: не удается восстановить после предыдущих ошибок; остановка компиляции
1>  Создание кода...
1>
1>СБОЙ построения.
1>
1>Затраченное время: 00:00:00.88
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
0
Vourhey
Почетный модератор
6485 / 2259 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
16.02.2013, 22:55 #8
В sum.h добавь хидер. Потому что на него так же жалуется, а он у тебя подключается. Тогда отсюда его можно убрать.

Добавлено через 1 минуту
Не увидел сначала, что у тебя там, кроме main еще файлы есть. Ты же там тоже string используешь. А хидер не подключаешь.
1
vladoscom93
25 / 25 / 5
Регистрация: 14.05.2011
Сообщений: 242
16.02.2013, 23:06  [ТС] #9
все заработало)) пришлось в sum.cpp прописать #include "sum.h" а в sum.h #include <string> и using namespace std;
0
16.02.2013, 23:06
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.02.2013, 23:06
Привет! Вот еще темы с ответами:

Чтобы кубики некоторое время меняли свое значение, затем останавливались со случайной картинкой - Delphi
задача состоит в том что нужно, при нажатие на крутить, кубики некоторое время меняли свое значение, затем останавливались со случайной...

необходимо чтобы числовое поле меняло цвет при значении кратному 8 - MS Access
Подскажите как сделать, необходимо чтобы числовое поле меняло цвет при значении кратному 8.

Как мне сделать чтобы на label1 выходило значение верно или не верно? - Видеокарты
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { int...

Как правильно выстроить это выражение , чтобы получить значение переменной x ? - JavaScript
&lt;script&gt; var x=7; document.write('&lt;?echo 5;echo 6;echo '&lt;script&gt;document.write(Math.round(x))&lt;/script&gt;';?&gt;'); &lt;/script&gt; Как...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

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