41 / 4 / 0
Регистрация: 24.11.2013
Сообщений: 139
|
||||||
1 | ||||||
Неправильно работает небольшая программа-калькулятор08.07.2014, 22:16. Показов 2548. Ответов 43
Метки нет (Все метки)
это калькулятор фунтов, шиллингов и пенсов по старой системе. он должен уметь складывать, вычитать суммы, а также, умножать на число. складывает, вычитает, а умножать отказывается. помогите!
ан нет, наисправляла, теперь вообще не считает
0
|
08.07.2014, 22:16 | |
Ответы с готовыми решениями:
43
неправильно работает программа на с++. Неправильно работает программа Неправильно работает программа Неправильно работает программа |
393 / 368 / 111
Регистрация: 03.02.2013
Сообщений: 1,127
|
||||||
08.07.2014, 23:08 | 2 | |||||
Вот это школокод, я далеко не сразу догадался что такое t4k, хотя было в его обозначении понятно )))
жесть... в общем так не пишут... либо возьмитесь за учебники С++, исключите из лексикона подобную фигню, а так же например #include "stdafx.h" и system ("pause"); либо поставьте нормально задачу что на входе, что на выходе, этот кошмарный код очень мало объясняет, не удивительно что он у вас не умножал, если там
0
|
41 / 4 / 0
Регистрация: 24.11.2013
Сообщений: 139
|
|
08.07.2014, 23:16 [ТС] | 3 |
насчет #include "stdafx.h", мой вижуал не запускает ничего без него( а паузу я знаю еще можно getche, но привыкла уже так
я и так учусь по Лафоре) правда самостоятельно Х) наверное поэтому мой код такой чудаковатый... после else прописано умножение, но блин, после ввода данных не происходит ничего после нажатия enter
0
|
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
|
||||||
08.07.2014, 23:31 | 4 | |||||
P.S. Код ужасный) Полностью сотри его - напиши на листочке блоки if switch и стрелочками покажи куда что идёт, и только тогда садись писать программу. Сейчас это больше похоже на этикетку туалетной бумаги чем на код)
0
|
393 / 368 / 111
Регистрация: 03.02.2013
Сообщений: 1,127
|
||||||||||||||||
08.07.2014, 23:32 | 5 | |||||||||||||||
Pari
Смотрите, дело не Visual, язык универсален, есть стандарт C++, уж какими заголовками обрамить в вашей среде это дело десятое, я намекаю что например вот это:
я намекаю что вот те строчки
это не есть универсальность и кроссплатформенность, можно сделать куда элегантнее внутри страндарта C++, не привлекая лишних сущностей (см. бритва Оккама) Теперь к делу - после принятия операции в ch условие разбирает лишь два варианта + и - (никакого умножения) если одно - делает сложение, если второе - вычитание, после этого условие закачнивается и происходит некий вывод в этих строках:
да и вообще ввод данных в таком формате как тут вводятся - бред, почему бы не вводить в строку (std::string) например и потом парсить по точкам?
0
|
41 / 4 / 0
Регистрация: 24.11.2013
Сообщений: 139
|
||||||
08.07.2014, 23:47 [ТС] | 6 | |||||
так, для начала надо переписать код, это я уже поняла.
далее, объясните конкретно, что не так с моими переменными? вы мне говорите про кроссплатформенность, но я еще дальше циклов не продвинулась, мне бы хоть вот такие программки строгать без сбоев. и насчет string я еще не знаю что это такое, вот такой я вот неуч, потому исхожу из того материала, что прошла Добавлено через 7 минут теперь мое детище складывает, отнимает, но умножать не хочет по понятным причинам, и я не знаю как это прописать. но немного структурировала сам код.
0
|
393 / 368 / 111
Регистрация: 03.02.2013
Сообщений: 1,127
|
|
08.07.2014, 23:54 | 7 |
Perl
а что там после циклов? рекурсии и фракталы? бросьте, для этой задачи и циклов не надо, давайте сперва сформулируем задачу собственно, Вам её надо сделать для школы или для себя? насколько я понял задачу задаётся некие два опернда вида A.B.C.D и операция +/-/*, где A - максимальная валюта, B - 1/x от этой максимальной A, C - 1/y от B, D - 1/z от C естественно должна быть функция упрощения, т.е. по русски - ответ в 125 копеек упрощать до 1 рубля 25 копеек... это как я понял задачу, в общем если это так, то предалагаю решить её в общем виде, где x,y,z произвольные числа Добавлено через 1 минуту забудьте про свой код, расскажите о своей задаче )
0
|
2782 / 1935 / 570
Регистрация: 05.06.2014
Сообщений: 5,600
|
|
08.07.2014, 23:55 | 8 |
0
|
41 / 4 / 0
Регистрация: 24.11.2013
Сообщений: 139
|
|
09.07.2014, 00:03 [ТС] | 9 |
это чисто для себя. хотя я учусь на специальности непосредственно связанной с программированием, потому не мешало бы мне хорошо так подтянуть его за лето)
дело в том, что в 1 фунте - 20 шиллингов. в 1 шиллинге - 12 пенсов. а так, суть задачи вы сами описали) Добавлено через 56 секунд там довольно проблематичный пересчет в фунто-шиллинги, потому решила идти по дороге попроще.
0
|
2782 / 1935 / 570
Регистрация: 05.06.2014
Сообщений: 5,600
|
||||||
09.07.2014, 00:09 | 10 | |||||
0
|
41 / 4 / 0
Регистрация: 24.11.2013
Сообщений: 139
|
|
09.07.2014, 00:14 [ТС] | 11 |
вот фигово я дружу с остатком от деления, спасибо
в свое оправдание могу сказать что я начала изучать С++ чуть больше недели назад)
0
|
393 / 368 / 111
Регистрация: 03.02.2013
Сообщений: 1,127
|
|
09.07.2014, 00:17 | 12 |
Pari
Ok Смотрите, просим человека ввести фунт-шиллинг-пенс как первый операнд допустим он вводит 1 2 3 из ваших соотношений 1/20, 1/12 имеем: A1 = 1*20*12 + 2*12 + 3 = 267 пенсов просим ввести теперь второй операнд тоже из трёх чисел, допустим это 3 2 1 : A2 =3*20*12 + 2*12 + 1 = 745 пенсов просим указать операцию, допустим это +, тогда A1+A2 = 1012 всё, ответ 1012 пенсов, осталось привести к нормальному виду... мы знаем, что в фунте 20*12 пенсов, значит 1012 div (20*12) = 4 ок, 4*20*12 = 960, значит осталось описать 1012-960 = 52 пенса мы знаем, что в шиллинге 12 пенсов, значит 52 div 12 = 4 ок, 4*12 = 48, значит остался остаток в пенсах 52-48 = 4 всё, ответ 4 4 4 ) вот и весь алгоритм
1
|
41 / 4 / 0
Регистрация: 24.11.2013
Сообщений: 139
|
|
09.07.2014, 00:29 [ТС] | 13 |
говорила мне мама, учи математику(
вот долго еще я буду втыкать в эту часть пока пойму. 1012 div (20*12) = 4 ок, 4*20*12 = 960, значит осталось описать 1012-960 = 52 пенса мы знаем, что в шиллинге 12 пенсов, значит 52 div 12 = 4 ок, 4*12 = 48, значит остался остаток в пенсах 52-48 = 4 а как насчет ввода числа, на которое надо умножать фунто-пенсы? как это прописать, чтобы человек мог ввести наравне со вторым операндом состоящим из 3 цифр операнд состоящий из 1 цифры? а что такое div?
0
|
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
|
||||||
09.07.2014, 00:33 | 14 | |||||
1
|
41 / 4 / 0
Регистрация: 24.11.2013
Сообщений: 139
|
|
09.07.2014, 00:41 [ТС] | 15 |
что такое A_value, B_value, А, В?
0
|
393 / 368 / 111
Регистрация: 03.02.2013
Сообщений: 1,127
|
|
09.07.2014, 00:41 | 16 |
Pari
маму слушайтесь) поясняю, div это целочисленное деление, в Си/С++ это операция % смысл - в общем берёте калькулятор, делите число 10 на 3, получаете 3,3333(...) и откидываете всё после запятой - значит 10 div 3 = 3 кроме того, я не делал никаких тайных операций, всё на поверхности, заменяете свои 20 и 12 на x и y, вводимые числа на A1,B1,C1 и A2,B2,C2 (помним, что div = %) думаю догадаетесь как составить алгоритм на C++ в общем если совсем никак - проявите фантазию и опишете как можете, то что я написал, я поправлю
0
|
41 / 4 / 0
Регистрация: 24.11.2013
Сообщений: 139
|
|
09.07.2014, 00:45 [ТС] | 17 |
хорошо, попытаюсь написать, но еще раз повторю последний вопрос:
а как насчет ввода числа, на которое надо умножать фунто-пенсы? как это прописать, чтобы человек мог ввести наравне со вторым операндом состоящим из 3 цифр операнд состоящий из 1 цифры?
0
|
393 / 368 / 111
Регистрация: 03.02.2013
Сообщений: 1,127
|
|
09.07.2014, 00:55 | 18 |
Pari
тут варианта два - либо эти x и y жётско заданы программистом (через код/файл) либо просим пользователя указать эти соотношения, это уж как вам надо для задачи, мы её решили в общем виде, в нашем случае можно воодить хоть 20000 20000 20000, ответ будет преобразован в правильный кратый x и y поразрядно, т.е. по русски - если мне лень переводить 1234 пенса мелочью сколько там шиллингов, я так и введу что у меня 1234 пенса, т.е. 0 0 1234, ответ тем не менее ожидаю увидеть переведённым хотя может я не так понял вопрос... переформулируйте
0
|
41 / 4 / 0
Регистрация: 24.11.2013
Сообщений: 139
|
|
09.07.2014, 01:09 [ТС] | 19 |
хорошо, сейчас приступлю к ваянию, ночь длинная, а я тормоз, понимать-понимаю, а как до практики доходит - работаю очень медленно. подозреваю что слишком мало практики. ну это я себя успокаиваю. чтобы не потерять желание дальше учиться Х)
Добавлено через 2 минуты а теперь еще раз, пожалуйста, Добавлено через 11 минут все равно, начинаю писать, настроилась на стройный и звонкий код, а получается какая-то лажа с кучей переменных. да что ж такое
0
|
393 / 368 / 111
Регистрация: 03.02.2013
Сообщений: 1,127
|
||||||
09.07.2014, 01:13 | 20 | |||||
Pari
Ой, ну давайте всё же переведём мои слова в алгоритм, а потом обсудим как и что куда задавать, это вовсе не сложно, уверяю, я умышленно пропускаю ввод данных, потому что это не важно, но пусть a1,b1,c1 - введённые числа фунтов, шиллиногов и пенсов как операнд один, пусть a2,b2,c2 - та же история как операнд два... пишем код с моей строчки
0
|
09.07.2014, 01:13 | |
09.07.2014, 01:13 | |
Помогаю со студенческими работами здесь
20
Программа работает неправильно Неправильно работает программа программа работает неправильно Неправильно работает программа Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |