0 / 0 / 1
Регистрация: 19.09.2013
Сообщений: 48
1

зачем нужно Временное значение?

19.09.2013, 21:01. Показов 7555. Ответов 24
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
C++
1
2
3
4
5
6
void swapper(int &x,int &y)   //Функция перемены мест. Если параметры будут без ссылок, то эффекта не будет
{
   int temp;   //Временное значение
   temp=x;   //Запоминаем текущий элемент x во временное значение temp
    x=y;       //В текущее значение x записываем следующее за ним 
    y=temp;   //Текущее значение было изменено, но оно запомнено в temp, берем его оттуда
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.09.2013, 21:01
Ответы с готовыми решениями:

Зачем биты нужны это меньше байтов но int 32 бита но я не допер зачем это нужно это 4 байта то есть int не может больше 4 байт весить?
Вот еще один вопрос зачем биты нужны это меньше байтов но int 32 бита но я не допер зачем это...

Зачем нужно u--?
Как я понимаю это счетчик итераций !! но зачем он ?? #include <iostream> #include <stdio.h>...

Наследование , зачем оно нужно ?
Добрый день , который день бьюс с темой Добавлено через 3 минуты Понимаю что можно создавать...

Зачем нужно бинарное дерево?
Какие задачи можно решать с помощью бинарного дерева?

24
193 / 170 / 32
Регистрация: 09.09.2013
Сообщений: 522
19.09.2013, 21:06 2
Цитата Сообщение от Kristinka!! Посмотреть сообщение
зачем нужно Временное значение?
C++
1
2
3
4
5
void swapper(int &x, int &y)
{
    x = y;
    y = x;
}
какой результат будет думаю понятно

после первого оператора присваивания Переменная x навсегда потеряется
0
0 / 0 / 1
Регистрация: 19.09.2013
Сообщений: 48
19.09.2013, 21:11  [ТС] 3
Цитата Сообщение от _ Посмотреть сообщение
C++
1
2
3
4
5
void swapper(int &x, int &y)
{
    x = y;
    y = x;
}
какой результат будет думаю понятно

после первого оператора присваивания Переменная x навсегда потеряется
то есть Временные значения необходимы что бы после первого значения появлялось 2?
0
Консультант Витте
106 / 86 / 45
Регистрация: 27.08.2013
Сообщений: 1,356
Записей в блоге: 1
19.09.2013, 21:14 4
Цитата Сообщение от Kristinka!! Посмотреть сообщение
то есть Временные значения необходимы что бы после первого значения появлялось 2?
Ну смотри, допустим x=5,y=10

при присваивании x=y; значение 5 навсегда теряется.
То есть теперь х=10,y=10
и y=x уже ничего не изменит!
Поэтому мы значение 5 запоминаем в temp допустим!
И при y=temp все получится:
х=10,y=5
1
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
19.09.2013, 21:15 5
Шкалата!!!
4
Неэпический
17869 / 10634 / 2054
Регистрация: 27.09.2012
Сообщений: 26,736
Записей в блоге: 1
19.09.2013, 21:16 6
Цитата Сообщение от ninja2 Посмотреть сообщение
Шкалата!!!
Гуру!!!
6
0 / 0 / 1
Регистрация: 19.09.2013
Сообщений: 48
19.09.2013, 21:17  [ТС] 7
Цитата Сообщение от ninja2 Посмотреть сообщение
Шкалата!!!
что поделить,только второй день изучаю
0
погромист
415 / 251 / 30
Регистрация: 27.08.2012
Сообщений: 550
19.09.2013, 21:20 8
ninja2, для тролинга нужно использовать другие ресурсы а не технической форум
Кликните здесь для просмотра всего текста

Не по теме:

ах да, всегда хотел сказать, ты сам себя ведешь как ,,шкалата,, ибо я на 60% уверен что ты ею являешься

1
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
19.09.2013, 21:24 9
Цитата Сообщение от Kristinka!! Посмотреть сообщение
что поделить,только второй день изучаю
Ну ничо второй день не первый, мб через годок второй что нить и выучишь, со временем разберешься не переживай. Но ты вообще нулевой я тебе честно скажу, просто не люблю врать, но правда нулевущий. (ужас )
0
0 / 0 / 1
Регистрация: 19.09.2013
Сообщений: 48
19.09.2013, 21:27  [ТС] 10
Цитата Сообщение от ninja2 Посмотреть сообщение
Ну ничо второй день не первый, мб через годок второй что нить и выучишь, со временем разберешься не переживай. Но ты вообще нулевой я тебе честно скажу, просто не люблю врать, но правда нулевущий. (ужас )
а я и не спорю что пока ни чего особо не понимаю в этом языке программирования
0
193 / 170 / 32
Регистрация: 09.09.2013
Сообщений: 522
19.09.2013, 21:47 11
Kristinka!!, чтобы лучше понять как меняются значения двух переменных. приведу пример из жизни.
есть две чашки. в одной налит чай, в другой кофе. И теперь их содержимое нужно обменять. что делать? на ум только одно приходит, это взять какую-нибудь дополнительную посуду для временного хранения
0
~ Эврика! ~
1256 / 1005 / 74
Регистрация: 24.07.2012
Сообщений: 2,002
19.09.2013, 22:26 12
Лучший ответ Сообщение было отмечено как решение

Решение

Цитата Сообщение от _ Посмотреть сообщение
Kristinka!!, чтобы лучше понять как меняются значения двух переменных. приведу пример из жизни.
есть две чашки. в одной налит чай, в другой кофе. И теперь их содержимое нужно обменять. что делать? на ум только одно приходит, это взять какую-нибудь дополнительную посуду для временного хранения
Как _ в жизни меняет значения:
Код
 |  1   |      |  2   |         |  1   |      |  2   |
 | чай  |      | кофе |  ---->  | чай  |      | кофе |
 \______/      \______/         \______/      \______/

                                       |  3   |
                                       |      |
                                       \______/
      
                                          |
                                          v

 |  1   |      |  2   |         |  1   |      |  2   |
 | кофе |      |      |         |      |      | кофе |
 \______/      \______/  <---=  \______/      \______/ 
                               
        |  3   |                       |  3   |
        | чай  |                       | чай  |
        \______/                       \______/
           
           |
           v

 |  1   |      |   2  |
 | кофе |      |  чай |
 \______/      \______/         |  1   |      |  2   |
                         ---->  | кофе |      | чай  |
        |   3  |                \______/      \______/ 
        |      |
        \______/
Как это обычно делает компилятор:
Код
 |  1   |      |  2   |         |  2   |      |  1   |
 | чай  |      | кофе |  ---->  | кофе |      | чай  |
 \______/      \______/         \______/      \______/
5
gray_fox
19.09.2013, 22:28
  #13

Не по теме:

Цитата Сообщение от _ Посмотреть сообщение
есть две чашки. в одной налит чай, в другой кофе. И теперь их содержимое нужно обменять. что делать?
xor swap!

1
2662 / 2237 / 240
Регистрация: 03.07.2012
Сообщений: 8,138
Записей в блоге: 1
20.09.2013, 01:24 14
Когда что-то непонятно, можно спросить так: почему сделано так, когда можно сделать иначе (и это иначе короче/быстрее) ? Может, у ТС есть способ, как меньше чем за три опрации обменять 2 значения без временной переменной...
0
Сгибальщик
42 / 42 / 4
Регистрация: 18.05.2013
Сообщений: 220
20.09.2013, 06:51 15
Цитата Сообщение от zer0mail Посмотреть сообщение
Может, у ТС есть способ, как меньше чем за три опрации обменять 2 значения без временной переменной...
Без временной можно, но опять же за три операции:
C++
1
2
3
a += b;
b = a - b;
a -= b;
0
Неэпический
17869 / 10634 / 2054
Регистрация: 27.09.2012
Сообщений: 26,736
Записей в блоге: 1
20.09.2013, 07:14 16
Цитата Сообщение от Бендерродригез Посмотреть сообщение
Без временной можно, но опять же за три операции:
ну что ж, напишите свою шаблонную функцию таким методом, а мы посмотрим
0
Сгибальщик
42 / 42 / 4
Регистрация: 18.05.2013
Сообщений: 220
20.09.2013, 08:11 17
Цитата Сообщение от Croessmah Посмотреть сообщение
ну что ж, напишите свою шаблонную функцию таким методом, а мы посмотрим
А в чём, собственно говоря, сложность?

Добавлено через 8 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
using namespace std; //сойдёт и так
template<typename T>
void Swap(T &t1, T &t2){
    t1 += t2;
    t2 = t1 - t2;
    t1 -= t2;
}
void main(){
    setlocale(0, "RUS");
    int q = 10;
    int w = 13;
    cout << q << ' ' << w << endl;
    Swap(q, w);
    cout << q << ' ' << w;
    cin.get();
}
Всё компилится и работает, vs2012.
0
Неэпический
17869 / 10634 / 2054
Регистрация: 27.09.2012
Сообщений: 26,736
Записей в блоге: 1
20.09.2013, 08:19 18
Цитата Сообщение от Бендерродригез Посмотреть сообщение
А в чём, собственно говоря, сложность?
А в функцию передадут скажем...ну... объекты, что тогда?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
template<typename T>
void Swap(T &t1, T &t2){
    t1 += t2;
    t2 = t1 - t2;
    t1 -= t2;
}
 
 
struct MYSUPERPUPERTYPE {
    double x1 ;
    double x2 ;
    int x3 ;
    MYSUPERPUPERTYPE * p1 ;
} ;
 
 
int main(){
    MYSUPERPUPERTYPE q ;
    MYSUPERPUPERTYPE w ;
    Swap(q, w);
}
Ваш способ сугубо специфичный.

Добавлено через 20 секунд

Не по теме:

Цитата Сообщение от Бендерродригез Посмотреть сообщение
Всё компилится и работает, vs2012.
Не помню чтобы студия пропускала void main

0
193 / 170 / 32
Регистрация: 09.09.2013
Сообщений: 522
20.09.2013, 12:10 19
Цитата Сообщение от OhMyGodSoLong Посмотреть сообщение
Как это обычно делает компилятор:
хотел вчера спросить, но не успел. надо было компьютер выключать.
если честно, то не совсем понял что это означает. как можно обменять значения двух переменных за одну операцию?

x=2, y=3 обменяйте их значения за одну операцию!
0
Сгибальщик
42 / 42 / 4
Регистрация: 18.05.2013
Сообщений: 220
20.09.2013, 15:08 20
Цитата Сообщение от Croessmah Посмотреть сообщение
А в функцию передадут скажем...ну... объекты, что тогда?

Ваш способ сугубо специфичный.

Добавлено через 20 секунд

Не по теме:


Не помню чтобы студия пропускала void main

Тогда переопределять operator+ и operator-, так, чтобы работали с каждым членом обхекта подобным образом по отдельности, но это идиотизм, поскольку этот "мой" метод не специфичен, а скорее из раздела занимательных задач по программированию. Хотя вопрос ещё одной переменной при обмене значений и решается, но подобная скупость на ресурсы - это уже паранойя.

Не по теме:

А void в данном случае - наследие чьего-то скопипазженного для проверки кода. Студии всё равно, даже предупреждений нет.

0
20.09.2013, 15:08
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.09.2013, 15:08
Помогаю со студенческими работами здесь

Зачем нужно закрывать файл?
Зачем надо в конце выполнения программы использовать такую команду? stream.close();

Конструкторы - что это и зачем нужно?
Объясните, пожалуйста, для чего нужны конструкторы и деструкторы? Что это вообще?

Зачем нужно private наследование в классах?
Если можно, то покажите небольшой пример

Сортировка пузырьком. Зачем нужно 2 цикла?
for(int j=1;j&lt;=k;j++) for(int i=1;i&lt;=k;i++) if(A&lt;A) { max=A; ...


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

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

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