Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 1
Регистрация: 23.09.2010
Сообщений: 32
1

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

23.09.2010, 19:32. Показов 921. Ответов 11
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
в С++ новичок,написал программку для решения уравнения 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...

помогите пожалуйста
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.09.2010, 19:32
Ответы с готовыми решениями:

Нужно отделить части адреса как в комментарии к программе. Но почему то не работает. Скажите пожалуйста. Что не так?)
Нужно отделить части адреса как в комментарии к программе. Но почему то не работает. Скажите...

Создание простого приложения для Windows 9x/NT, решил как смог. Пожалуйста подскажите что исправить или добавить
задание: окно фон зелёный размер 500х400 курсор IDT_HAND При закрытии...

Посоветуйте пожалуйста что взять
Посоветуйте пожалуйста что взять %-) (EVGA GeForce GTX 1070 Ti 08G-P4-5671-KR )или(Palit GeForce...

Пожалуйста посоветуйте что выбрать
Прошу помогите что из этих двух миниторов выбрать для игр?

11
Эксперт С++
516 / 421 / 92
Регистрация: 23.09.2010
Сообщений: 1,165
23.09.2010, 19:36 2
Как сделать так что бы при вводе с клавиатуры буквенного значения, программа выдавала ошибку?
( а то если вводить букву, то программа высчитывает y)
Считывать значение в виде строки и потом его проверять и конвертировать в double
Как сделать "y" более точным? а то в ответе странное число получается, вроде связано с /180...
Писать не 2, а 2.0 и установить манипуляторы точности для cout.
0
0 / 0 / 1
Регистрация: 23.09.2010
Сообщений: 32
23.09.2010, 19:39  [ТС] 3
Цитата Сообщение от gooseim Посмотреть сообщение
Считывать значение в виде строки и потом его проверять и конвертировать в double
а можно поподробнее? а то совсем не догоняю...
0
Эксперт С++
516 / 421 / 92
Регистрация: 23.09.2010
Сообщений: 1,165
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.
1
0 / 0 / 1
Регистрация: 23.09.2010
Сообщений: 32
23.09.2010, 19:50  [ТС] 5
спасибо большое, директивы еще нужно какие нибудь подключать? ну которые в начале include
0
Эксперт С++
516 / 421 / 92
Регистрация: 23.09.2010
Сообщений: 1,165
23.09.2010, 20:05 6
#include <stringstream>
#include <boost/lexical_cast.hpp>
и др.
смотря что вы будете использовать
boost только надо еще установить
0
0 / 0 / 1
Регистрация: 23.09.2010
Сообщений: 32
23.09.2010, 20:12  [ТС] 7
спасибо! очень помогли.
0
Эксперт С++
516 / 421 / 92
Регистрация: 23.09.2010
Сообщений: 1,165
23.09.2010, 22:21 8
Только я описался
не <stringstream> а <sstream>
0
0 / 0 / 1
Регистрация: 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, выводилась надпись, "хотите начать заново расчет или выйти"
0
Freelance
Эксперт С++
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
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;
}
1
Эксперт С++
516 / 421 / 92
Регистрация: 23.09.2010
Сообщений: 1,165
24.09.2010, 20:30 11
relax-z, введите в качестве x "123qwer" и ошибки не будет.
0
0 / 0 / 1
Регистрация: 23.09.2010
Сообщений: 32
25.09.2010, 10:05  [ТС] 12
Спасибо! Работает)
0
25.09.2010, 10:05
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.09.2010, 10:05
Помогаю со студенческими работами здесь

Пожалуйста, посоветуйте, что делать
Здравствуйте!!! Мне надо написать программу для решения ГРГ(расчетно-графическая работа), только я...

Посоветуйте что добавить на сайт!
Посоветуйте пожалуйста что добавить на сайт! Может какие-то разделы или ещё что нибудь! Вот сайт:...

Объясните пожалуйста, что такое i, j, k в программе
#include &quot;stdafx.h&quot; #include &quot;stdio.h&quot; #include &quot;stdlib.h&quot; #include &quot;locale.h&quot; #include...

Что можно добавить к программе?
Что можно добавить к курсовой с бд. Так сказать сделать изюминку в программе?)


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru