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

Посоветуйте пожалуйста,как и что добавить программе - C++

Восстановить пароль Регистрация
 
relax-z
0 / 0 / 0
Регистрация: 23.09.2010
Сообщений: 32
23.09.2010, 19:32     Посоветуйте пожалуйста,как и что добавить программе #1
в С++ новичок,написал программку для решения уравнения y=2*(tgx+sinx/2)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <string>
#include <math.h>
using namespace std;
int main()
{
double x, y ;
cout<< "введите x:";
cin>> x;
y=2*(tan(x)+sin(x)/2);
cout<< "y="<< y<< "\n" ;
return 0;
}

есть 2 вопроса:
1)Как сделать так что бы при вводе с клавиатуры буквенного значения, программа выдавала ошибку?
( а то если вводить букву, то программа высчитывает y)
2)Как сделать "y" более точным? а то в ответе странное число получается, вроде связано с /180...

помогите пожалуйста
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.09.2010, 19:32     Посоветуйте пожалуйста,как и что добавить программе
Посмотрите здесь:

есть ошибки в программе, может что то с компилятором у меня, подскажите пожалуйста. C++
C++ как переделать массив что бы не было его остановки и как добавить индекс
Пожалуйста, посоветуйте, что делать C++
функции, указатели, пожалуйста, посоветуйте, как исправить C++
C++ Как добавить стирание символов в программе
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
gooseim
Эксперт C++
500 / 404 / 35
Регистрация: 23.09.2010
Сообщений: 1,139
23.09.2010, 19:36     Посоветуйте пожалуйста,как и что добавить программе #2
Как сделать так что бы при вводе с клавиатуры буквенного значения, программа выдавала ошибку?
( а то если вводить букву, то программа высчитывает y)
Считывать значение в виде строки и потом его проверять и конвертировать в double
Как сделать "y" более точным? а то в ответе странное число получается, вроде связано с /180...
Писать не 2, а 2.0 и установить манипуляторы точности для cout.
relax-z
0 / 0 / 0
Регистрация: 23.09.2010
Сообщений: 32
23.09.2010, 19:39  [ТС]     Посоветуйте пожалуйста,как и что добавить программе #3
Цитата Сообщение от gooseim Посмотреть сообщение
Считывать значение в виде строки и потом его проверять и конвертировать в double
а можно поподробнее? а то совсем не догоняю...
gooseim
Эксперт C++
500 / 404 / 35
Регистрация: 23.09.2010
Сообщений: 1,139
23.09.2010, 19:47     Посоветуйте пожалуйста,как и что добавить программе #4
Считывать значение в виде строки и потом его проверять и конвертировать в double
а можно поподробнее? а то совсем не догоняю...
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <string>
#include <math.h>
using namespace std;
int main()
{
double x, y ;
string x_str;
cout<< "введите x:";
cin>> x_str;
if(!isnumber(x_str))
  cout<<"Error"<<endl;
else
{
  y=2*(tan(x)+sin(x)/2);
  cout<< "y="<< y<< "\n" ;
}
return 0;
}
Где bool isnumber(const string&) эта функция, проверяющая, является ли введенное слово числом. Как ее реализовать - много вариантов. Хоть посимвольно, хоть используя стандартные/нестандартные библиотеки.
PS
Еще забыл про перевод из string в double. Лучше всего воспользоваться stringstream или boost::lexical_cast.
relax-z
0 / 0 / 0
Регистрация: 23.09.2010
Сообщений: 32
23.09.2010, 19:50  [ТС]     Посоветуйте пожалуйста,как и что добавить программе #5
спасибо большое, директивы еще нужно какие нибудь подключать? ну которые в начале include
gooseim
Эксперт C++
500 / 404 / 35
Регистрация: 23.09.2010
Сообщений: 1,139
23.09.2010, 20:05     Посоветуйте пожалуйста,как и что добавить программе #6
#include <stringstream>
#include <boost/lexical_cast.hpp>
и др.
смотря что вы будете использовать
boost только надо еще установить
relax-z
0 / 0 / 0
Регистрация: 23.09.2010
Сообщений: 32
23.09.2010, 20:12  [ТС]     Посоветуйте пожалуйста,как и что добавить программе #7
спасибо! очень помогли.
gooseim
Эксперт C++
500 / 404 / 35
Регистрация: 23.09.2010
Сообщений: 1,139
23.09.2010, 22:21     Посоветуйте пожалуйста,как и что добавить программе #8
Только я описался
не <stringstream> а <sstream>
relax-z
0 / 0 / 0
Регистрация: 23.09.2010
Сообщений: 32
24.09.2010, 19:44  [ТС]     Посоветуйте пожалуйста,как и что добавить программе #9
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <string>
#include <math.h>
#include <istream>
using namespace std;
int main()
{
double x, y ;
string x_str;
cout<< "Enter x:";
if(!(cin >> x))
  cout<<"Error"<<endl;
else
{
  y=2*(tan(x)+sin(x)/2);
  cout<< "y="<< y<< endl ;
}
return 0;
}
вот как получилось, только еще нужно сделать цикл, чтоб после того как выщитывало y, выводилась надпись, "хотите начать заново расчет или выйти"
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
24.09.2010, 20:24     Посоветуйте пожалуйста,как и что добавить программе #10
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <iostream>
#include <string>
#include <math.h>
#include <istream>
using namespace std;
int main()
{
double x, y ;
string x_str;
char k;
do
{
cout<< "Enter x:";
if(!(cin >> x))
cout<<"Error"<<endl;
else
{
y=2*(tan(x)+sin(x)/2);
cout<< "y="<< y<< endl ;
}
cout << "хотите начать заново расчет или выйти? (y/n) ";
cin >> k;
}while(k == 'y');
return 0;
}
gooseim
Эксперт C++
500 / 404 / 35
Регистрация: 23.09.2010
Сообщений: 1,139
24.09.2010, 20:30     Посоветуйте пожалуйста,как и что добавить программе #11
relax-z, введите в качестве x "123qwer" и ошибки не будет.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.09.2010, 10:05     Посоветуйте пожалуйста,как и что добавить программе
Еще ссылки по теме:

C++ Как отсортировать в обратном порядке? Что надо добавить?
Подскажите пожалуйста как добавить конструктор копирования в готовую программу C++
Что такое genData.exe и как её использовать в C++-программе? C++

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

Или воспользуйтесь поиском по форуму:
relax-z
0 / 0 / 0
Регистрация: 23.09.2010
Сообщений: 32
25.09.2010, 10:05  [ТС]     Посоветуйте пожалуйста,как и что добавить программе #12
Спасибо! Работает)
Yandex
Объявления
25.09.2010, 10:05     Посоветуйте пожалуйста,как и что добавить программе
Ответ Создать тему
Опции темы

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