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

Простейший калькулятор - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 60, средняя оценка - 4.97
Василий-Робот
TECHNO
 Аватар для Василий-Робот
26 / 26 / 5
Регистрация: 04.11.2009
Сообщений: 366
09.10.2010, 18:37     Простейший калькулятор #1
Калькулятор считает сумму, разность, произведение и частное двух чисел a и b

Код:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>
#include <conio.h>
int main()
{
float a,b;
char ch;
printf ("eta programma - prosteishiy kal'kulyator\n");
printf ("vvelite pervoe chislo, zatem znak: '+', '-', '*', '/' ili '%'\n");
printf ("zatem vvedite vtoroe chislo\n");
printf ("vvod dannix:\n");
scanf ("%f%c%f",&a,&ch,&b);
switch (ch)
{
case '+': printf("=%g",a+b); break;
case '-': printf("=%g",a-b); break;
case '*': printf("=%g",a*b); break;
case '/': if (b) printf("=%g",a/b); break; 
}
getch();
}
Работает, но!

1) я хочу сделать так, чтобы если ввод был неверный, программа сообщила пользователю об ошибке;
2) также я хочу получать остаток от деления этих двух чисел;
3) чтобы ровно с результатом стояло сразу за вводом, а не на новой строке;
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.10.2010, 18:37     Простейший калькулятор
Посмотрите здесь:

Простейший счетчик C++
C++ простейший калькулятор
C++ Простейший калькулятор на YACC
C++ Написать простейший калькулятор
Простейший калькулятор C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Mencey
 Аватар для Mencey
145 / 92 / 7
Регистрация: 22.07.2010
Сообщений: 424
09.10.2010, 18:46     Простейший калькулятор #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>
#include <conio.h>
int main()
{
float a,b;
char ch;
printf ("eta programma - prosteishiy kal'kulyator\n");
printf ("vvelite pervoe chislo, zatem znak: '+', '-', '*', '/' ili '%'\n");
printf ("zatem vvedite vtoroe chislo\n");
printf ("vvod dannix:\n");
scanf ("%f%c%f",&a,&ch,&b);
switch (ch)
{
case '+': printf("=%g",a+b); break;
case '-': printf("=%g",a-b); break;
case '*': printf("=%g",a*b); break;
case '/': if (b) printf("=%g",a/b); break;
case '%': printf("=%g",a%b); break; // Остаток от деления
}
getch();
}
.::.DIMA.::.
142 / 142 / 4
Регистрация: 26.10.2008
Сообщений: 782
09.10.2010, 18:46     Простейший калькулятор #3
1) try{...}catch
2) В чём проблема? a % b.
3) Поставьте '\n'
Василий-Робот
TECHNO
 Аватар для Василий-Робот
26 / 26 / 5
Регистрация: 04.11.2009
Сообщений: 366
09.10.2010, 19:06  [ТС]     Простейший калькулятор #4
поставить \n - это конечно замечательно, но где?
нужен исправленный код
Mencey, на твой код выдается ошибка:
invalid operands of types `float' and `float' to binary `operator%'
TheMachinist
 Аватар для TheMachinist
242 / 174 / 15
Регистрация: 14.06.2010
Сообщений: 422
09.10.2010, 19:49     Простейший калькулятор #5
Остаток от деления можно получить используя ф-ю fmod включив math.h
Если пользователь вместо +,-,/,* или % нажал что-нибудь другое ,выводится "input error"(ошибка ввода")

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include<math.h>
#include <stdio.h>
#include <conio.h>
int main()
{
float a,b;
char ch;
printf ("eta programma - prosteishiy kal'kulyator\n");
printf ("vvelite pervoe chislo, zatem znak: '+', '-', '*', '/' ili '%'\n");
printf ("zatem vvedite vtoroe chislo\n");
printf ("vvod dannix:\n");
scanf ("%f%c%f",&a,&ch,&b);
switch (ch)
{
case '+': printf("=%g",a+b); break;
case '-': printf("=%g",a-b); break;
case '*': printf("=%g",a*b); break;
case '/': if (b) printf("=%g",a/b); break;
case '%': printf("=%g",fmod(a,b)); break;
default: printf("Input error!!!");
}
getch();
}
Василий-Робот
TECHNO
 Аватар для Василий-Робот
26 / 26 / 5
Регистрация: 04.11.2009
Сообщений: 366
09.10.2010, 19:56  [ТС]     Простейший калькулятор #6
а как сделать чтобы программа выдавала выражение в одну строку?
Пример: 3+2=5
А не это: 3+2
=5
TheMachinist
 Аватар для TheMachinist
242 / 174 / 15
Регистрация: 14.06.2010
Сообщений: 422
09.10.2010, 20:26     Простейший калькулятор #7
а как сделать чтобы программа выдавала выражение в одну строку?
Пример: 3+2=5
А не это: 3+2
=5
Я могу рекомендовать только очистку экрана clrscr()
В case прописывается примерно следующее:

(я совсем не силен а синтаксисе С) printf(a ch b "=%g",.......);

то есть стираем то что ввели и переписываем выражение сначала
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
09.10.2010, 20:34     Простейший калькулятор #8
NikolaWhite, Если я не ошыбаюсь то clrscr() есть только в борланде.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.10.2010, 20:44     Простейший калькулятор
Еще ссылки по теме:

Простой калькулятор и калькулятор с парсингом C++
C++ Простейший калькулятор
C++ Не могу найти ошибку "Простейший калькулятор"

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

Или воспользуйтесь поиском по форуму:
TheMachinist
 Аватар для TheMachinist
242 / 174 / 15
Регистрация: 14.06.2010
Сообщений: 422
09.10.2010, 20:44     Простейший калькулятор #9
Лично я пользуюсь system("cls"); для очистки экрана
Yandex
Объявления
09.10.2010, 20:44     Простейший калькулятор
Ответ Создать тему
Опции темы

Текущее время: 10:15. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru