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

"Научный" формат - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.75
CFYZ
 Аватар для CFYZ
10 / 10 / 0
Регистрация: 21.11.2009
Сообщений: 187
04.02.2011, 14:12     "Научный" формат #1
1. Написать программу решения квадратного уравнения. Ввод и вывод – через потоки ввода-вывода. Вывод результата в "научном" формате. Установить ширину поля 12 символов, установить точность 4 цифры, заменить пробелы символом «~» с помощью функций и манипуляторов. Предусмотреть обработку ошибок.

Что значит "научный" формат??

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
26
27
28
#include<iostream.h>
#include<math.h>
#include<conio.h>
float a,b,c,x1,x2,decr;
//decr  дескрименант
 
void main()
{
  clrscr();
  cout<<"\n Введите коэффициенты a,b,c уравнения: \n a*x^2+bx+c\n";
  cin>>a>>b>>c;   //Вввод с клавиатуры
  decr=b*b-4*a*c;
  if (decr<0)
    cout << "Решение уравнения";
  else
  {
   x1=(-b+sqrt(decr))/(2*a);
   x2=(-b-sqrt(decr))/(2*a);
   cout<<"\n x1=" ;
   cout.width(12);   //ширина поля 10 символов
   cout.precision(4);//точность 4 цифры
   cout.fill('~');   //заполнить вместо пробелов символом $
   cout<<x1<<"\n x2=";
   cout.width(12);   //ширина поля 10 символов
   cout.precision(4);//точность 4 цифры
   cout<<x2;
  }getch();     //ждёт нажатия на любую клавишу
  }
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
04.02.2011, 14:29     "Научный" формат #2
Экспоненциальный. Учёным часто нужны гигантские цифры, записывать которые в обычной нотации слишком длинно и даже специальные системы единиц спасают далеко не всегда. Отсюда на столько частое применение нотации с плавающей запятой, что её даже зовут научной.

Добавлено через 2 минуты
Думал об одном, набрал другое. Исправил.
vx5
 Аватар для vx5
187 / 171 / 4
Регистрация: 04.09.2010
Сообщений: 656
04.02.2011, 15:03     "Научный" формат #3
C++
1
cout << scientific;
CFYZ
 Аватар для CFYZ
10 / 10 / 0
Регистрация: 21.11.2009
Сообщений: 187
04.02.2011, 15:39  [ТС]     "Научный" формат #4
Цитата Сообщение от vx5 Посмотреть сообщение
C++
1
cout << scientific;
Выдает ошибку

Undefined symbol 'scientific'

Подскажите, пожалуйста, как его можно объявить в программе?
Escapable
53 / 53 / 1
Регистрация: 09.11.2010
Сообщений: 120
04.02.2011, 15:47     "Научный" формат #5
C++
1
cout << scientific << x1;
После scientific ставим нужную, для отображения, переменную.
CFYZ
 Аватар для CFYZ
10 / 10 / 0
Регистрация: 21.11.2009
Сообщений: 187
04.02.2011, 16:13  [ТС]     "Научный" формат #6
Цитата Сообщение от Escapable Посмотреть сообщение
C++
1
cout << scientific << x1;
После scientific ставим нужную, для отображения, переменную.
Это я понял, и когда так сделал и появилась эта ошибка.

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
26
27
28
29
30
#include<iostream.h>
#include<math.h>
#include<conio.h>
float a,b,c,d;
float x1,x2;
//decr  дескрименант
 
 
void main()
{
  clrscr();
  cout<<"\n Vvedite koefficienti a,b,c yravneniya: \n a*x^2+bx+c\n";
  cin>>a>>b>>c;   //Вввод с клавиатуры
  d=b*b-4*a*c;
  if (d<0)
    cout << "Reshenie yravneniya v oblasti komplexnix chisel";
  else
  {
   x1=(-b+sqrt(d))/(2*a);
   x2=(-b-sqrt(d))/(2*a);
   cout<<"\n x1=" ;
   cout.width(12);   //ширина поля 10 символов
   cout.precision(4);//точность 4 цифры
   cout.fill('~');   //заполнить вместо пробелов символом $
   cout<<scientific<<x1<<"\n x2=";
   cout.width(12);   //ширина поля 10 символов
   cout.precision(4);//точность 4 цифры
   cout<<scientific<<x2;
  }getch ();     //ждёт нажатия на любую клавишу
  }
alex_x_x
бжни
 Аватар для alex_x_x
2441 / 1646 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
04.02.2011, 16:24     "Научный" формат #7
printf( "%e\n", 123456.23432234 );
CFYZ
 Аватар для CFYZ
10 / 10 / 0
Регистрация: 21.11.2009
Сообщений: 187
04.02.2011, 16:35  [ТС]     "Научный" формат #8
Цитата Сообщение от alex_x_x Посмотреть сообщение
printf( "%e\n", 123456.23432234 );
Это не подходит, нужно обязательно использывовать cin и cout
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
04.02.2011, 16:52     "Научный" формат #9
Ну в память в строку переведи, а потом в cout.
vx5
 Аватар для vx5
187 / 171 / 4
Регистрация: 04.09.2010
Сообщений: 656
04.02.2011, 17:05     "Научный" формат #10
C++
1
std::cout.setf(std::ios_base::scientific, std::ios_base::floatfield);
Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
04.02.2011, 17:09     "Научный" формат #11
ЕМНИП, scientific - это потоковый манипулятор, который объявлен в пространстве имен std (в современных реализациях языка, естественно). Попробуй подключить iomanip, вдруг получится
vx5
 Аватар для vx5
187 / 171 / 4
Регистрация: 04.09.2010
Сообщений: 656
04.02.2011, 17:12     "Научный" формат #12
Цитата Сообщение от Escapable
После scientific ставим нужную, для отображения, переменную.
необязательно, это инерционный бит.
CFYZ
 Аватар для CFYZ
10 / 10 / 0
Регистрация: 21.11.2009
Сообщений: 187
04.02.2011, 18:21  [ТС]     "Научный" формат #13
Ни че не получается, кто-нибудь может просто взять мой код и переделать его так что бы x1 и x2 выводились в научном формате??
Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
04.02.2011, 18:29     "Научный" формат #14
CFYZ, я могу, только ты своим компилятором не сможешь его откомпилировать
vx5
 Аватар для vx5
187 / 171 / 4
Регистрация: 04.09.2010
Сообщений: 656
04.02.2011, 18:38     "Научный" формат #15
Цитата Сообщение от CFYZ Посмотреть сообщение
Ни че не получается, кто-нибудь может просто взять мой код и переделать его так что бы x1 и x2 выводились в научном формате??
что теперь говорит ? и что у вас вообще за компилятор ?

Добавлено через 4 минуты

Не по теме:

за четверту строку вам сразу двойку надо ставить использование глобальных переменных - очень не хороший тон

CFYZ
 Аватар для CFYZ
10 / 10 / 0
Регистрация: 21.11.2009
Сообщений: 187
04.02.2011, 18:47  [ТС]     "Научный" формат #16
говорит все тоже, а когда вставил эту строку:
C++
1
std::cout.setf(std::ios_base::scientific, std::ios_base::floatfield);
начало говорить что это можно использовать в структурах.
А копмилятор borland c 3.1

Добавлено через 1 минуту
Цитата Сообщение от Nameless One Посмотреть сообщение
CFYZ, я могу, только ты своим компилятором не сможешь его откомпилировать
А какой у тебя компилятор?
alex_x_x
бжни
 Аватар для alex_x_x
2441 / 1646 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
04.02.2011, 18:47     "Научный" формат #17
CFYZ, я чето не уверен, что в борланде вообще манипуляторы поддерживаются
таки sprintf + cout
CFYZ
 Аватар для CFYZ
10 / 10 / 0
Регистрация: 21.11.2009
Сообщений: 187
04.02.2011, 18:49  [ТС]     "Научный" формат #18
Всем спасибо, заработало)
vx5
 Аватар для vx5
187 / 171 / 4
Регистрация: 04.09.2010
Сообщений: 656
04.02.2011, 18:50     "Научный" формат #19
Цитата Сообщение от CFYZ Посмотреть сообщение
А копмилятор borland c 3.1
старье, однако..
может так прокатит
C++
1
cout.flags(ios::scientific);
Добавлено через 47 секунд
Всем спасибо, заработало)
в чем была проблема ?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.02.2011, 18:52     "Научный" формат
Еще ссылки по теме:

C++ Подскажите как перегрузить операторы ">>", "<<" и "="
C++ Переменные "емкость", "Галлон", "Бензин"
Классы "Фигура", "Прямоугольник", "Круг" C++

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

Или воспользуйтесь поиском по форуму:
CFYZ
 Аватар для CFYZ
10 / 10 / 0
Регистрация: 21.11.2009
Сообщений: 187
04.02.2011, 18:52  [ТС]     "Научный" формат #20
запустил в buildere, надеюсь в универе прокатит, потому что там требовали что бы мы писали в borland c)

но все равно всем спасибо)
Yandex
Объявления
04.02.2011, 18:52     "Научный" формат
Ответ Создать тему
Опции темы

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