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

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

Войти
Регистрация
Восстановить пароль
 
 
АлексИванов
0 / 0 / 1
Регистрация: 08.11.2012
Сообщений: 72
#1

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

31.01.2013, 11:20. Просмотров 954. Ответов 16
Метки нет (Все метки)

Всем привет!
Необходимо реализовать процедуру таким образом чтобы она возвращала 2 значения, вместе стандартного 1го.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.01.2013, 11:20
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Реализовать процедуру таким образом, чтобы она возвращала 2 значения (C++):

Написать программу, реализующую способ передачи книги таким образом, чтобы она переходя от друга к другу побывала в руках у каждого - C++
Помогите вкурить в задание, кому не влом. Т.е. к примеру наше N = 100, значит у чела с книгой друзей N/2 = 50. Соответственно K...

Как сделать так, чтобы функция rand() возвращала разные значения - C++
Добрый вечер, как можно в visual studio в цикле каждый раз задавать новые рандомные значения перменной, к примеру for(int i=0;i<10;i++) ...

Дан вещественный массив А (n). Отсортировать его таким образом, чтобы - C++
Задача 45. Дан вещественный массив А (n). Отсор¬тировать его таким образом, чтобы все положительные числа находились в начале, а...

Модифицировать программу таким образом, чтобы класс содержал закрытые переменные - C++
Нужна помощь, модифицировать программу таким образом, чтобы класс содержал закрытые переменные. Задание такое Написать программу,...

Преобразовать массив таким образом, чтобы в нем не было повторяющихся чисел - C++
Создать и заполнить случайными числами два целочисленных массива. Преобразовать эти массивы таким образом, чтобы в них не было...

Преобразовать массив таким образом, чтобы сначала располагались все нулевые элементы - C++
В двумерном массиве, состоящем из NxN вещественных элементов, вычислить: Преобразовать массив таким образом, чтобы сначала располагались...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
LASpace
34 / 34 / 3
Регистрация: 27.01.2013
Сообщений: 142
31.01.2013, 11:24 #2
Пусть возвращает структуру)
АлексИванов
0 / 0 / 1
Регистрация: 08.11.2012
Сообщений: 72
31.01.2013, 11:25  [ТС] #3
пример приведите пожалуйста как это сделать, я начинающий и не очень понимаю о чем вы говорите)
Байт
Эксперт C
15984 / 10252 / 1536
Регистрация: 24.12.2010
Сообщений: 19,339
31.01.2013, 11:25 #4
Цитата Сообщение от АлексИванов Посмотреть сообщение
реализовать процедуру таким образом чтобы она возвращала 2 значения, вместе стандартного 1го.
В чистом виде невозможно. Но есть обходные пути.
C
1
 val1 = proc(&val2);
C
1
2
 typedef struct { double val1, val2; } TWOVAL;
TWOVAL t = proc();
LASpace
34 / 34 / 3
Регистрация: 27.01.2013
Сообщений: 142
31.01.2013, 11:28 #5
Как то так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
struct ST
{
    double X,Y;
};
 
ST MyFunc(double x,double y)
{
    ST MyST;
 
    MyST.X = x;
    MyST.Y = y;
 
    return MyST;
}
АлексИванов
0 / 0 / 1
Регистрация: 08.11.2012
Сообщений: 72
31.01.2013, 11:41  [ТС] #6
пробовал откомпилировать ваш код в борланд девелопер студио. выдает ошибки

[C++ Error] Unit1.cpp(26): E2108 Improper use of typedef 'ST'
[C++ Error] Unit1.cpp(26): E2379 Statement missing ;
dederkay
34 / 34 / 0
Регистрация: 08.12.2010
Сообщений: 161
31.01.2013, 11:42 #7
а разве нельзя просто передавать ссылки на объекты?
вроде такого
C++
1
2
3
4
5
6
7
8
9
10
11
void myProc(int *a, int* b)
{
a = 4;
b = 5;
}
int main(void)
{
int Banana = 3;
int Madriva = 7;
myProc(&Banana, &Mandriva);
}
АлексИванов
0 / 0 / 1
Регистрация: 08.11.2012
Сообщений: 72
31.01.2013, 11:42  [ТС] #8
и не очень понятно, когда я буду пользоваться процедурой,как мне из неё достать значения?!
dederkay
34 / 34 / 0
Регистрация: 08.12.2010
Сообщений: 161
31.01.2013, 11:43 #9
Цитата Сообщение от АлексИванов Посмотреть сообщение
возвращала
ведь в задании нигде не говориться о структуре?
АлексИванов
0 / 0 / 1
Регистрация: 08.11.2012
Сообщений: 72
31.01.2013, 11:44  [ТС] #10
в вашем примере бананы присвоятся значения, указанные в процедуре? то есть 4 и 5?

Добавлено через 38 секунд
Да, мне не важно каким способом это будет делаться)
dederkay
34 / 34 / 0
Регистрация: 08.12.2010
Сообщений: 161
31.01.2013, 11:46 #11
сама процедура изменяет значения, ибо получает не копии объектов, а сами объекты и внутри процедуры изменяет их, по сему после выхода из процедуры значения буду изменены в соответствии с процедурой(те все что изменит процедура в себе(те Банану и Мандриву) после выхода из процедуры сохраниться).

Добавлено через 25 секунд
именно так!

Добавлено через 1 минуту
Цитата Сообщение от АлексИванов Посмотреть сообщение
то есть 4 и 5?
да будет 4 и 5
АлексИванов
0 / 0 / 1
Регистрация: 08.11.2012
Сообщений: 72
31.01.2013, 11:47  [ТС] #12
[C++ Error] Unit1.cpp(20): E2034 Cannot convert 'int' to 'int *'
[C++ Error] Unit1.cpp(21): E2034 Cannot convert 'int' to 'int *'
вот ошибки какие вылезли при компиляции...
dederkay
34 / 34 / 0
Регистрация: 08.12.2010
Сообщений: 161
31.01.2013, 11:48 #13
только да я не розименовал указатели, внутри процедуры нужно писать
C++
1
2
3
4
5
6
7
8
9
10
11
12
void myProc(int *a, int* b)
{
    *a = 4;
    *b = 5;
}
int main(void)
{
    int Banana = 3;
    int Madriva = 7;
    myProc(&Banana, &Madriva);
    return 1;
}
вот короче рабочий пример
LASpace
34 / 34 / 3
Регистрация: 27.01.2013
Сообщений: 142
31.01.2013, 11:50 #14
Цитата Сообщение от АлексИванов Посмотреть сообщение
пробовал откомпилировать ваш код в борланд девелопер студио. выдает ошибки

[C++ Error] Unit1.cpp(26): E2108 Improper use of typedef 'ST'
[C++ Error] Unit1.cpp(26): E2379 Statement missing ;
код с студию) всего файла
АлексИванов
0 / 0 / 1
Регистрация: 08.11.2012
Сообщений: 72
31.01.2013, 11:54  [ТС] #15
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
 void myProc(int *a, int *b)
{
  *a = 4;
  *b = 5;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
 int Banana = 3;
 int Mandriva = 7;
 myProc(&Banana, &Mandriva);
 
}
Так в итоге должно быть?)

Добавлено через 2 минуты
Всем спасибо, кажется я разобрался что к чему)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.01.2013, 11:54
Привет! Вот еще темы с ответами:

Сортировать массив таким образом, чтобы сначала располагались все положительные элементы - C++
Сортировать массив таким образом, чтобы сначала располагались все положительные элементы, а потом - все отрицательные (элементы, равные 0...

Преобразовать строку таким образом, чтобы все слова в ней были напечатаны наоборот - C++
Задана строка, состоящая из символов. Символы объединяются в слова. Слова друг от друга отделяются одним или несколькими пробелами. В конце...

Преобразовать строку таким образом, чтобы все символы в ней были напечатаны наоборот - C++
Преобразовать строку таким образом, чтобы все символы в ней были напечатаны наоборот. Помогите пожалуйста!

В данном натуральном числе переставить цифры таким образом, чтобы образовалось наименьшее число - C++
В данном натуральном числе переставить цифры таким образом, чтобы образовалось наименьшее число, записанное этими же цифрами. ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
31.01.2013, 11:54
Ответ Создать тему
Опции темы

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