Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
relax-z
0 / 0 / 0
Регистрация: 23.09.2010
Сообщений: 32
#1

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

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

в С++ новичок,написал программку для решения уравнения 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.09.2010, 19:32
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Посоветуйте пожалуйста,как и что добавить программе (C++):

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

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

Эмулятор Машины Тьюринга: посоветуйте, что можно добавить/улучшить - C++
Сделал эмулятор МТ на C++. Может, кому-то пригодится. Можете посоветовать, что можно добавить/улучшить. Файл src.txt - код на языке...

Коментарии к программе. Объясните пожалуйста что выполняют функции - C++
#include &lt;cstdlib&gt; #include &lt;iostream&gt; using namespace std; typedef struct node { int number; node *next; ...

есть ошибки в программе, может что то с компилятором у меня, подскажите пожалуйста. - C++
Программа для решения обычных уравнений методом адамса, не работает.... 3 ошибки здесь: #include &lt;math.h&gt; #include &lt;stdio.h&gt; const...

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

11
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
23.09.2010, 19:36 #2
Как сделать так что бы при вводе с клавиатуры буквенного значения, программа выдавала ошибку?
( а то если вводить букву, то программа высчитывает y)
Считывать значение в виде строки и потом его проверять и конвертировать в double
Как сделать "y" более точным? а то в ответе странное число получается, вроде связано с /180...
Писать не 2, а 2.0 и установить манипуляторы точности для cout.
0
relax-z
0 / 0 / 0
Регистрация: 23.09.2010
Сообщений: 32
23.09.2010, 19:39  [ТС] #3
Цитата Сообщение от gooseim Посмотреть сообщение
Считывать значение в виде строки и потом его проверять и конвертировать в double
а можно поподробнее? а то совсем не догоняю...
0
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
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
relax-z
0 / 0 / 0
Регистрация: 23.09.2010
Сообщений: 32
23.09.2010, 19:50  [ТС] #5
спасибо большое, директивы еще нужно какие нибудь подключать? ну которые в начале include
0
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
23.09.2010, 20:05 #6
#include <stringstream>
#include <boost/lexical_cast.hpp>
и др.
смотря что вы будете использовать
boost только надо еще установить
0
relax-z
0 / 0 / 0
Регистрация: 23.09.2010
Сообщений: 32
23.09.2010, 20:12  [ТС] #7
спасибо! очень помогли.
0
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
23.09.2010, 22:21 #8
Только я описался
не <stringstream> а <sstream>
0
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, выводилась надпись, "хотите начать заново расчет или выйти"
0
asics
Freelance
Эксперт С++
2848 / 1783 / 144
Регистрация: 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
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
24.09.2010, 20:30 #11
relax-z, введите в качестве x "123qwer" и ошибки не будет.
0
relax-z
0 / 0 / 0
Регистрация: 23.09.2010
Сообщений: 32
25.09.2010, 10:05  [ТС] #12
Спасибо! Работает)
0
25.09.2010, 10:05
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.09.2010, 10:05
Привет! Вот еще темы с ответами:

функции, указатели, пожалуйста, посоветуйте, как исправить - C++
Ввести 2 массива из N неотрицательных чисел разной размерности. Считать N≤100. Конец ввода элементов индицирует ввод отрицательного числа. ...

Как добавить стирание символов в программе - C++
Как добавить стирание символов в программе(после запуска ctrl+F5) в visual c++ ? То есть,чтобы я мог писать и стирать символы при запуске...

Как в Turbo C добавить параметры запуска к программе? - C++
В Visual studio были настройки проекта, в которых можно выставить параметры, а вот с TC возникли проблемы. Не подскажете, как установить...

Подскажите пожалуйста как добавить конструктор копирования в готовую программу - C++
Вот код программы: # include &lt;iostream&gt; # include &lt;conio.h&gt; # include &lt;string&gt; # include &lt;stdio.h&gt; # include &lt;cstdlib&gt; ...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru