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

Исправление - C++

Восстановить пароль Регистрация
 
St56383
0 / 0 / 0
Регистрация: 12.10.2013
Сообщений: 56
16.11.2013, 19:39     Исправление #1
Написал данную программу

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
using namespace std;
 
int main()
{
    int x,center;
    cout<<"Enter number x";
    cin>>x;
    int left=1,right=x;
    center=left+right;
    cout>>center;
    return 0;
}
Выдаёт ошибку
Код
1>c:\users\вм\documents\visual studio 2005\projects\лр5\лр5\main.cpp(11) : error C2784: 'std::basic_istream<_Elem,_Traits> &std::operator >>(std::basic_istream<_Elem,_Traits> &,_Elem *)' : could not deduce template argument for 'std::basic_istream<_Elem,_Traits> &' from 'std::ostream'
1>        c:\program files\microsoft visual studio 8\vc\include\istream(930) : see declaration of 'std::operator >>'
1>c:\users\вм\documents\visual studio 2005\projects\лр5\лр5\main.cpp(11) : error C2784: 'std::basic_istream<_Elem,_Traits> &std::operator >>(std::basic_istream<_Elem,_Traits> &,_Elem *)' : could not deduce template argument for 'std::basic_istream<_Elem,_Traits> &' from 'std::ostream'
1>        c:\program files\microsoft visual studio 8\vc\include\istream(930) : see declaration of 'std::operator >>'
1>c:\users\вм\documents\visual studio 2005\projects\лр5\лр5\main.cpp(11) : error C2676: binary '>>' : 'std::ostream' does not define this operator or a conversion to a type acceptable to the predefined operator
1>Build log was saved at "file://c:\Users\ВМ\Documents\Visual Studio 2005\Projects\ЛР5\ЛР5\Debug\BuildLog.htm"
1>ЛР5 - 25 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 fail
Как исправить ?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.11.2013, 19:39     Исправление
Посмотрите здесь:

C++ Исправление программы
C++ Небольшое исправление
C++ Исправление ошибок в C++
C++ исправление ошибок
Функции. Исправление C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
FreeMan108
 Аватар для FreeMan108
120 / 120 / 6
Регистрация: 04.03.2013
Сообщений: 368
16.11.2013, 19:46     Исправление #2
Цитата Сообщение от St56383 Посмотреть сообщение
cout>>center;
C++
1
cout << center << endl;

Не по теме:


Используйте теги c++

katsidelin
 Аватар для katsidelin
60 / 21 / 2
Регистрация: 15.11.2013
Сообщений: 112
Записей в блоге: 3
16.11.2013, 19:49     Исправление #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
using namespace std;
 
int main()
{
int x,center;
cout<<"Enter number x";
cin>>x;
int left=1,right=x;
center=left+right;
//cout>>center;
cout<<center;
return 0;
}
Повнимательнее, mon ami!
St56383
0 / 0 / 0
Регистрация: 12.10.2013
Сообщений: 56
16.11.2013, 20:05  [ТС]     Исправление #4
#include <iostream>
using namespace std;

int main()
{
int x,e,center;
cout<<"Enter number x";
cin>>x;
cout<<"Enter number e";
cin>>e;
int left=1,right=x;
center=(left+right)/2;
while (|center*center-x|>e)
{
if (center*center>x)
right=center;
else
left=center
}
cout<<"center="<<center;
return 0;
}
Что я не так сделал в записи программы ?
Миниатюры
Исправление  
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
16.11.2013, 20:07     Исправление #5
Цитата Сообщение от St56383 Посмотреть сообщение
Что я не так сделал в записи программы ?
C++
1
while (|center*center-x|>e)
Думаете это скобки такие прямые?
St56383
0 / 0 / 0
Регистрация: 12.10.2013
Сообщений: 56
16.11.2013, 20:09  [ТС]     Исправление #6
я извиняюсь а как будет верно написать ?
Peregrin
33 / 33 / 1
Регистрация: 16.11.2012
Сообщений: 59
16.11.2013, 20:13     Исправление #7
while( abs(center*center-x)>e )
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
16.11.2013, 20:13     Исправление #8
используя функцию взятия модуля конечно. http://www.cplusplus.com/reference/cmath/abs/
katsidelin
 Аватар для katsidelin
60 / 21 / 2
Регистрация: 15.11.2013
Сообщений: 112
Записей в блоге: 3
16.11.2013, 20:16     Исправление #9
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
#include <iostream>
using namespace std;
 
int main()
{
int x,e,center;
cout<<"Enter number x";
cin>>x;
cout<<"Enter number e";
cin>>e;
int left=1,right=x;
center=(left+right)/2;
//while (|center*center-x|>e)
while ( (center*center-x)>e )
{
if (center*center>x)
right=center;
else
//left=center
left=center;
}
cout<<"center="<<center;
return 0;
}
St56383
0 / 0 / 0
Регистрация: 12.10.2013
Сообщений: 56
16.11.2013, 20:16  [ТС]     Исправление #10
mne nado #include <cmath> i vsjo ili 4to to esjo ? ?
katsidelin
 Аватар для katsidelin
60 / 21 / 2
Регистрация: 15.11.2013
Сообщений: 112
Записей в блоге: 3
16.11.2013, 20:18     Исправление #11
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
#include <iostream>
#include <cmath>
using namespace std;
 
int main()
{
int x,e,center;
cout<<"Enter number x";
cin>>x;
cout<<"Enter number e";
cin>>e;
int left=1,right=x;
center=(left+right)/2;
//while (|center*center-x|>e)
//while ( (center*center-x)>e )
while ( abs(center*center-x)>e )
{
if (center*center>x)
right=center;
else
//left=center
left=center;
}
cout<<"center="<<center;
return 0;
}
St56383
0 / 0 / 0
Регистрация: 12.10.2013
Сообщений: 56
16.11.2013, 20:21  [ТС]     Исправление #12
7. Вводится число X>1 и точность e. Вычислить с заданной точностью квадратный корень введенного числа X, не пользуясь функцией SqRt (один из самых простых методов решения этой задачи - деление пополам. Начинаем с отрезка [1;X]. Берем его середину, возводим в квадрат и сравниваем с X. Если результат оказался больше, отбрасываем правую половину отрезка, иначе - левую и повторяем все с начала. Действуем так, пока длина отрезка не станет меньше e).
Выходит я верно понял и сделал задачу ?
katsidelin
 Аватар для katsidelin
60 / 21 / 2
Регистрация: 15.11.2013
Сообщений: 112
Записей в блоге: 3
16.11.2013, 21:40     Исправление #13
Вычислить с заданной точностью квадратный корень введенного числа X
Не вижу корня в программе.

Добавлено через 6 минут
C++
1
center=(left+right)/2;
Я не силён в математике, но если ты этот кусок как-то не вставишь в блок while,
то твой цикл не будет делать всё сначала, а будет мослать center.

Добавлено через 26 минут
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>
#include <cmath>
using namespace std;
 
int main()
{
double x,e,center;
cout<<"Enter number x";
cin>>x;
cout<<"Enter number e";
cin>>e;
double left=1,right=x;
 
 
do
{
    center=(left+right)/2;
if (center*center>x)
right=center;
else
 
left=center;
}
while ( abs(center*center-x)>e );
 
cout<<"center="<<center<<endl;
return 0;
}
Вообще не понял, почему ты выбрал int, который не имеет дробной части?
Мой код даёт лишь приблизительное значение, которое не удовлетварит математика,
допиливай сам.

Добавлено через 8 минут
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>
#include <cmath>
#include <iomanip>
 
using namespace std;
 
int main()
{
long double x,e,center;
cout<<"Enter number x";
cin>>x;
cout<<"Enter number e";
cin>>e;
long double left=1,right=x;
 
 
do
{
    center=(left+right)/2;
if (center*center>x)
right=center;
else
 
left=center;
}
while ( abs(center*center-x)>e );
 
cout<<"center=" << setprecision(10) << center<<endl;
return 0;
}
Я хотел добавить точности, но у меня не выходит.
salam
157 / 138 / 11
Регистрация: 10.07.2012
Сообщений: 709
16.11.2013, 22:17     Исправление #14
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
const   long double EPS =       0.0000000000000001;
 
int main()
{
    long double x;
    scanf("%Lf", &x);
    long double l = 0, r = x;
    while((r - l) > EPS) {
        long double cur = (r + l) / 2;
        if(cur * cur - x > EPS)
            r = cur;
        else l = cur;
    }
    printf("%.15Lf\n", l);
    return 0;
}
вроде нормальную точность дает.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.11.2013, 08:01     Исправление
Еще ссылки по теме:

Исправление программы C++
C++ Исправление ошибок
Исправление ошибок C++

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

Или воспользуйтесь поиском по форуму:
katsidelin
 Аватар для katsidelin
60 / 21 / 2
Регистрация: 15.11.2013
Сообщений: 112
Записей в блоге: 3
17.11.2013, 08:01     Исправление #15
Ваш код работает на Линуксе в gcc.
Спасибо, мне тоже пригодится!
Yandex
Объявления
17.11.2013, 08:01     Исправление
Ответ Создать тему
Опции темы

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