2 / 2 / 1
Регистрация: 02.10.2012
Сообщений: 169
|
|||||||||||
1 | |||||||||||
Функция дужки(приоритет операций) в калькуляторе21.11.2012, 12:47. Показов 5758. Ответов 24
Метки нет (Все метки)
Надо сделать скобки в калькуляторе: сделать дополнительную ф-цию которая будет считать введеные даные после ввода "(", после ввода ")" возвращает результат в главную функцию(ну вместо ). Ну глянув на код ошибок вроде нет, но не компиируесть он.
Теперь компилюеться, но не работает так как надо(
0
|
21.11.2012, 12:47 | |
Ответы с готовыми решениями:
24
Приоритет операций приоритет операций Приоритет побитовых операций Логические операции и приоритет операций |
6 / 6 / 2
Регистрация: 11.03.2011
Сообщений: 40
|
|
21.11.2012, 12:48 | 2 |
Не хватает закрывающей фигурной скобки в функции "calc2"
1
|
41 / 41 / 3
Регистрация: 02.06.2012
Сообщений: 351
|
||||||
21.11.2012, 13:11 | 3 | |||||
приведи пример (чему равно res2) из этой строки:
1
|
2 / 2 / 1
Регистрация: 02.10.2012
Сообщений: 169
|
|
21.11.2012, 13:31 [ТС] | 4 |
margarin, в смысле?
0
|
41 / 41 / 3
Регистрация: 02.06.2012
Сообщений: 351
|
||||||
21.11.2012, 13:50 | 5 | |||||
спрашиваю, целочисленный тип для res2 подходит?
второй вопрос, что ты тут вводишь?
1
|
2 / 2 / 1
Регистрация: 02.10.2012
Сообщений: 169
|
|||||||||||
21.11.2012, 13:57 [ТС] | 6 | ||||||||||
Теперь выводит токо то что было в скобках. Как сделать чтоб то что поза скобками додавалось(отнималось, делилось...)
к результату в скобках?
margarin, нет, так как в скобках тоже надо вводить действительные числа. "cin >> str;" - Здесь вводиться строка(сначала число, ентер, знак операции, ентер, опять число.... или = и вивод результата) Добавлено через 4 минуты а, понял, там был флоат, а там инт. исправил. Но всеравно, как сделать правильно скобки не знаю( Добавлено через 21 секунду
0
|
margarin
|
21.11.2012, 14:18
#7
|
Не по теме: а зачем ты str массивом сделал то?О_о
1
|
2 / 2 / 1
Регистрация: 02.10.2012
Сообщений: 169
|
|
21.11.2012, 14:24 [ТС] | 8 |
margarin, я не знаю, как препод написал на доске, так я и сделал себе. Несчитая скобок, калькулятор считал все правильно.
0
|
41 / 41 / 3
Регистрация: 02.06.2012
Сообщений: 351
|
||||||
21.11.2012, 14:30 | 9 | |||||
ты какой то беспощадный программист
Если я правильно понимаю, то тут так же нужно писать str[0] или нет? На счёт скобок: ты передаешь
Добавлено через 1 минуту Не по теме: если даже всё работает - это не значит, что всё правильно и в следствии могут вылезти проблемы...
1
|
2 / 2 / 1
Регистрация: 02.10.2012
Сообщений: 169
|
||||||
21.11.2012, 14:31 [ТС] | 10 | |||||
margarin, я же res2 тут просваеваю значения(зависимо от операции)
0
|
41 / 41 / 3
Регистрация: 02.06.2012
Сообщений: 351
|
|||||||||||
21.11.2012, 14:37 | 11 | ||||||||||
это уже в calc2...
Ну вот смотри: я тебе говорю посчитай (2-4) ты считаешь и говоришь -2 а вот это "-2" я не запоминаю... А в моей "res2" остаётся (2-4) Получается, что зря считал Добавлено через 1 минуту могу ошибаться (ещё не всё понял), но попробуй вместо:
1
|
2 / 2 / 1
Регистрация: 02.10.2012
Сообщений: 169
|
|||||||||||
21.11.2012, 14:46 [ТС] | 12 | ||||||||||
margarin, и как "запомнить" ето значение? Во так?
Добавлено через 5 минут И так тоже((
0
|
41 / 41 / 3
Регистрация: 02.06.2012
Сообщений: 351
|
||||||
21.11.2012, 14:50 | 13 | |||||
Совсем не то...
Я же тебе во второй строке "код C++" написал как надо) в твоем примере "calc2(res2, RES);" ты передаешь в функцию две переменные - ошибка, нужна только одна. ты передаешь функции res2, а она вместо себя подставит (вернет) RES. По этому тебе нужно сделать так (это на старый пример кода, где ты ещё RES не пришпандорил):
0
|
2 / 2 / 1
Регистрация: 02.10.2012
Сообщений: 169
|
|
21.11.2012, 14:52 [ТС] | 14 |
margarin, ну так в самом последнем коде сделал так как ты сказал
0
|
41 / 41 / 3
Регистрация: 02.06.2012
Сообщений: 351
|
|
21.11.2012, 15:02 | 15 |
ну тогда подожди немного, сейчас выводы понаделаю)))
Прочитай код, ну введи число (мысленно) и так далее... Посмотри где неправильно тебя программа поведет... жесть как она есть) Кликните здесь для просмотра всего текста
Input string: 1
Input string: 2 Input string: 3 Input string: + Input string: 3 Input string: ( Input string: 2 Input string: - Input string: 2 Input string: ) Input string: = = // это я весь массив str вывел, правда изначально я его очистил (забил нулями) 123+3(2=-2 // нужно понять, почему такой бред получился))
1
|
2 / 2 / 1
Регистрация: 02.10.2012
Сообщений: 169
|
|
21.11.2012, 15:05 [ТС] | 16 |
я вводил так
5 * (5 - 3) = считало токо то что в дужках и после них(перед ними не считает)
0
|
41 / 41 / 3
Регистрация: 02.06.2012
Сообщений: 351
|
||||||
21.11.2012, 15:37 | 17 | |||||
что то прорисовывается)
ну что сказать, добавь в начале функции calc2:
Добавлено через 5 минут Не по теме: что то у меня складывается мнение, что лучше сделать всё иначе и по новой) Добавлено через 10 минут Input string: 5 Input string: * Input string: ( Input string: 5 5 qwewqeInput string: - qwewqeInput string: 3 qwewqeInput string: + qwewqeInput string: 2 qwewqeInput string: ) res2 = 4 Input string: = = 5*(5=4 получается, что нам нужно убрать из history "(5=" тогда мы получим 5*4 - то что нужно не? ну ближе к вечеру забегу)
1
|
2 / 2 / 1
Регистрация: 02.10.2012
Сообщений: 169
|
|
21.11.2012, 20:32 [ТС] | 18 |
margarin, как по новой? я до етого так долго делал етот калькулятор, а теперь из за етих скобок все наново делать?
Добавлено через 2 минуты margarin, "cout << "Мы в функции calc2" << endl;" выводиться после первой введеной цифры после скобок Добавлено через 14 секунд margarin, "cout << "Мы в функции calc2" << endl;" выводиться после первой введеной цифры после скобок
0
|
41 / 41 / 3
Регистрация: 02.06.2012
Сообщений: 351
|
|
21.11.2012, 20:57 | 19 |
не совсем, я видимо слишком писимистически написал___)))
Дело в том, что многие нюансы кода я не понимаю) например зачем переменную char превращать в массив и т.д. мне недавно мысля пришла, сейчас проверю и отпишусь)
1
|
2 / 2 / 1
Регистрация: 02.10.2012
Сообщений: 169
|
|
21.11.2012, 20:58 [ТС] | 20 |
margarin, хорошо, мне одногрупник свой код кинул, вроде рабочий, я там посмотрю, может подумаю как в своем сделать ети скобки
0
|
21.11.2012, 20:58 | |
21.11.2012, 20:58 | |
Помогаю со студенческими работами здесь
20
Перегрузка операций: friend-функция или функция-член класса Приоритет операций в калькуляторе Приоритет логических операций и операций над множествами. Приоритет операций Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |