4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
1 | |
"цепной" <<12.02.2010, 06:45. Показов 1876. Ответов 16
Метки нет (Все метки)
0
|
12.02.2010, 06:45 | |
Ответы с готовыми решениями:
16
Найти значение цепной дроби Рекурсивное вычисление цепной дроби Решение цепной дроби рекурсией Решение цепной дроби рекурсией |
paladin
286 / 187 / 7
Регистрация: 25.02.2009
Сообщений: 589
|
||||||
12.02.2010, 07:00 | 2 | |||||
а почему нельзя?
Только вот "\ n" ??? Может
1
|
1674 / 1046 / 174
Регистрация: 27.09.2009
Сообщений: 1,945
|
|
12.02.2010, 17:50 | 3 |
Можно и endl, и "\n". Первое идеологически правильнее (ну и имеет кой-какие дополнительные эффекты, но это уже тонкости).
0
|
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|||||||||||
24.02.2010, 05:01 [ТС] | 4 | ||||||||||
. Тогда правильнее второе. Тем более, идеологически.
0
|
2537 / 833 / 10
Регистрация: 31.05.2009
Сообщений: 1,668
|
||||||
24.02.2010, 05:22 | 5 | |||||
Скажем так, для интереса попробуйте вот такую программу.
0
|
3528 / 2686 / 334
Регистрация: 11.03.2009
Сообщений: 6,168
|
|
24.02.2010, 07:30 | 7 |
Это не эффект ендла, просто если несколько сиаутов идут подряд, то они выполняются в порядке объявления. А для цепной записи с права на лево.
0
|
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
24.02.2010, 10:07 [ТС] | 8 |
Что такое сиауты?
0
|
3528 / 2686 / 334
Регистрация: 11.03.2009
Сообщений: 6,168
|
|
24.02.2010, 10:49 | 9 |
0
|
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|||||||||||
24.02.2010, 12:44 [ТС] | 10 | ||||||||||
С конца здесь не каут выполняется, а инкременты, причём, у них ещё и общий приоритет надо всеми каутами. Уж это даже я понял.
Добавлено через 5 минут Подумай вот о чём: куда выодит второй
0
|
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
|
|
24.02.2010, 16:35 | 11 |
Здесь дело не в приоритете выполнения инкремента, а в вызовах функций и порядке вычисления аргументов. Ведь запись cout << что-то есть по сути cout.operator<<(*this, что-то);
Если "размотать" всю цепочку вызовов, то так и получится. Добавлено через 22 минуты Апичатка: имелось в виду cout& operator<<(cout&, что-то);
0
|
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|||||||||||
25.02.2010, 04:54 [ТС] | 12 | ||||||||||
Тогда в "цепи"
0
|
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
|
|
25.02.2010, 10:20 | 13 |
А вычислялось оно начиная с последнего вот почему: вот у нас выражение
cout<<op1<<op2<<op3<<op4; Рассмотрим каноническую форму оператора: cout& operator<<(cout&, что-то); - функция operator<<() принимает два аргумента, причем первый (левый) должен вычисляться в cout, а второй (правый) - в нечто, имеющее смысл для вывода. Рассмотрим два варианта разбора: (cout) << (op1<<op2<<op3<<op4); и (cout<<op1<<op2<<op3) << (op4); В первом варианте левый аргумент может быть вычислен (а чего его вычислять-то?) в cout, зато правый не может быть вычислен ни во что осмысленное. Поэтому этот вариант отпадает. Во втором варианте левый аргумент может быть вычислен (последовательно рекурсивно) в cout, а правый (а чего его тут вычислять-то?) - в op4. Таким образом, второй вариант приемлем для компилятора. Ну и так далее рекурсивно.....
0
|
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|||||||||||
26.02.2010, 05:42 [ТС] | 14 | ||||||||||
А если написать
Добавлено через 2 минуты http://codepad.org/BZvWh6dv Добавлено через 1 минуту http://codepad.org/cqrDjyYJ Добавлено через 30 секунд http://codepad.org/Xi6smIAo Добавлено через 1 минуту http://codepad.org/QwR7JG2S http://codepad.org/V9wNbJ9p
0
|
3528 / 2686 / 334
Регистрация: 11.03.2009
Сообщений: 6,168
|
|
26.02.2010, 08:02 | 15 |
Не надо путать операцию поместить в поток и операцию сдвига.
1
|
paladin
286 / 187 / 7
Регистрация: 25.02.2009
Сообщений: 589
|
||||||
26.02.2010, 08:24 | 16 | |||||
Расставляй скобки, избегай неоднозначностей (хотя в данном примере никакой неоднозначности нет). Не заставляй коллег напрягать извилины в попытках разобрать, что ты хотел получить.
Хочешь сдвиг, пиши явно:
1
|
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
27.02.2010, 06:33 [ТС] | 17 |
Я хочу вывод в поток, что и делает компил. Но ведь это надо знать, что порядок этого оператора всегда слева на право, так как анализ на основе только возможности вычисления операндов как раз и приводит к неоднозначности, которой на самом деле нет.
0
|
27.02.2010, 06:33 | |
27.02.2010, 06:33 | |
Помогаю со студенческими работами здесь
17
Рекурсия: вычисление цепной дроби Решение цепной дроби рекурсией С++ Преобразование цепной дроби в обычное число Вычисление цепной дроби (рекурсивно и итеративно) Рекурсивная функция для цепной дроби Рекурсия: вычисление значения цепной дроби Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |