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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.70
Tinusha
0 / 0 / 0
Регистрация: 28.10.2011
Сообщений: 23
#1

Помогите найти ошибку - C++

28.10.2011, 02:29. Просмотров 1262. Ответов 25
Метки нет (Все метки)

Пожалуйста, помогите найти ошибку. Компилятор выдает 2 ошибки. Думаю, что намудрила с переменной a.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream.h>
 
#include <math.h>
 
int main()
{
double x, y, z, a, b, s;   // îáüÿâèëГ* ïåðåìåГ*Г*ûå.
cout << "Vvedite x:";     // ââîä Г§Г*Г*Г·ГҐГ*ГЁГ©
cin >> x;
cout << "Vvedite y:";
cin >> y; 
cout << "Vvedite z:";
cin >> z;
a=sqrt(y+(x-1, 1/3.), 1/4.);     // âû÷èñëåГ*ГЁГҐ âûðГ*æåГ*ГЁГї
b=fabs(x-y)*pow(sin,2(z)+tan(z);
s=a/b
cout << "Result h="<<h<<endl;   // âûâîä ðåçóëüòГ*ГІГ*
    return 0;          // Г§Г*âåðøåГ*ГЁГҐ ïðîãðГ*ììû
}
 Комментарий модератора 
Используйте теги форматирования кода!


Вот для этого уравнения писала:
[IMG]http://s56.***********/i153/1110/35/4dc9878db92f.jpg[/IMG]
Заранее очень признательна за помощь.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
greeezz
272 / 165 / 4
Регистрация: 10.07.2011
Сообщений: 441
28.10.2011, 03:12     Помогите найти ошибку #2
сразу после #include надо добавить
using namespace std;

Цитата Сообщение от Tinusha Посмотреть сообщение
s=a/b
как минимум тут нет точки с запятой.
#include <iostream.h>
вроде как #include <iostream>

b=fabs(x-y)*pow(sin,2(z)+tan(z);
закрывающейся скобки нехватает

cout << "Result h="<<h<<endl
тут вы используете переменную которую не инициализировали

Добавлено через 23 минуты
я добавил переменную "c" чтобы выделить для наглядности действие.
попробуйте так.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <math.h>
#include <stdlib.h>
using namespace std;
 
int main() {
    double x, y, z, a, b, c, s;
    cout << "Vvedite x:";
    cin >> x;
    cout << "Vvedite y:";
    cin >> y;
    cout << "Vvedite z:";
    cin >> z;
 
    a = pow((x-1), (1 * 1.0 / 3));   //чтобы вычислить корень n-ной 
    b = pow((a+y), (1 * 1.0 / 4));  //степени нужно число возвести в степень (1/n)
    c = abs(x-y)*(pow(sin(z), (1.0*2))+tan(z));
    s = b/c;
    cout << "Result s="<<s<<endl;
    return 0;
}
Toshkarik
1139 / 856 / 51
Регистрация: 03.08.2011
Сообщений: 2,383
Завершенные тесты: 1
28.10.2011, 03:20     Помогите найти ошибку #3
C++
1
 c = abs(x-y)*(pow(sin(z), (1.0*2))+tan(z));
Разве нельзя вместо 1.0*2 написать 2.0?
C++
1
 c = abs(x-y)*(pow(sin(z), 2.0)+tan(z));
greeezz
272 / 165 / 4
Регистрация: 10.07.2011
Сообщений: 441
28.10.2011, 03:24     Помогите найти ошибку #4
Цитата Сообщение от Toshkarik Посмотреть сообщение
Разве нельзя вместо 1.0*2 написать 2.0?
можно. это просто для наглядности преобразования типов.
Tinusha
0 / 0 / 0
Регистрация: 28.10.2011
Сообщений: 23
29.10.2011, 21:29  [ТС]     Помогите найти ошибку #5
Цитата Сообщение от greeezz Посмотреть сообщение
сразу после #include надо добавить
using namespace std;


как минимум тут нет точки с запятой.

вроде как #include <iostream>


закрывающейся скобки нехватает


тут вы используете переменную которую не инициализировали

Добавлено через 23 минуты
я добавил переменную "c" чтобы выделить для наглядности действие.
попробуйте так.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <math.h>
#include <stdlib.h>
using namespace std;
 
int main() {
    double x, y, z, a, b, c, s;
    cout << "Vvedite x:";
    cin >> x;
    cout << "Vvedite y:";
    cin >> y;
    cout << "Vvedite z:";
    cin >> z;
 
    a = pow((x-1), (1 * 1.0 / 3));   //чтобы вычислить корень n-ной 
    b = pow((a+y), (1 * 1.0 / 4));  //степени нужно число возвести в степень (1/n)
    c = abs(x-y)*(pow(sin(z), (1.0*2))+tan(z));
    s = b/c;
    cout << "Result s="<<s<<endl;
    return 0;
}
Спасибо огромное за помощь и быстрый ответ. Лучше поняла синтаксис. Но программа почему-то не выдает результат, а сразу после ввода значений завершается.
greeezz
272 / 165 / 4
Регистрация: 10.07.2011
Сообщений: 441
29.10.2011, 22:24     Помогите найти ошибку #6
Цитата Сообщение от Tinusha Посмотреть сообщение
Спасибо огромное за помощь и быстрый ответ. Лучше поняла синтаксис. Но программа почему-то не выдает результат, а сразу после ввода значений завершается.
добавьте в конец программы перед return 0; строчку: system("pause");
C++
1
2
3
4
...
 system("pause");
return 0;
}
Tinusha
0 / 0 / 0
Регистрация: 28.10.2011
Сообщений: 23
30.10.2011, 02:16  [ТС]     Помогите найти ошибку #7
Цитата Сообщение от greeezz Посмотреть сообщение
добавьте в конец программы перед return 0; строчку: system("pause");
C++
1
2
3
4
...
 system("pause");
return 0;
}
Помогло. Спасибо. Только почему-то ответ не совпал. Выдало 0,338549, должно быть 0,330564.

Добавлено через 9 минут
Цитата Сообщение от greeezz Посмотреть сообщение
добавьте в конец программы перед return 0; строчку: system("pause");
C++
1
2
3
4
...
 system("pause");
return 0;
}
Помогло. Спасибо. Только почему-то ответ не совпал. Выдало 0,338549, должно быть 0,330564.
aeshes
437 / 200 / 13
Регистрация: 07.10.2011
Сообщений: 462
30.10.2011, 02:24     Помогите найти ошибку #8
Tinusha, при каких значениях x, y, z проверяете?
Tinusha
0 / 0 / 0
Регистрация: 28.10.2011
Сообщений: 23
01.11.2011, 03:26  [ТС]     Помогите найти ошибку #9
aeshes,
x=17,421, y=10,365∙10-3, z=0,828∙10(со степенью 5)
greeezz
272 / 165 / 4
Регистрация: 10.07.2011
Сообщений: 441
01.11.2011, 03:42     Помогите найти ошибку #10
Tinusha посомотрите приложеный файл.
Цитата Сообщение от Tinusha Посмотреть сообщение
должно быть 0,330564.
Миниатюры
Помогите найти ошибку  
Tinusha
0 / 0 / 0
Регистрация: 28.10.2011
Сообщений: 23
01.11.2011, 05:11  [ТС]     Помогите найти ошибку #11
greeezz, Вы значение переменной y,z перевели?
greeezz
272 / 165 / 4
Регистрация: 10.07.2011
Сообщений: 441
01.11.2011, 05:28     Помогите найти ошибку #12
да.
x=17.421
y=10,365∙10 (в степени -3) = 0.010365
z=0,828∙10(в степени 5) = 82800
Tinusha
0 / 0 / 0
Регистрация: 28.10.2011
Сообщений: 23
02.11.2011, 01:53  [ТС]     Помогите найти ошибку #13
А вы значение переменных y и z перевели?
greeezz
272 / 165 / 4
Регистрация: 10.07.2011
Сообщений: 441
02.11.2011, 02:00     Помогите найти ошибку #14
Цитата Сообщение от Tinusha Посмотреть сообщение
А вы значение переменных y и z перевели?
я же вроде вам ответил в предыдущем посте.

да.
x=17.421
y=10,365∙10 (в степени -3) = 0.010365
z=0,828∙10(в степени 5) = 82800
Tinusha
0 / 0 / 0
Регистрация: 28.10.2011
Сообщений: 23
04.11.2011, 00:44  [ТС]     Помогите найти ошибку #15
Цитата Сообщение от greeezz Посмотреть сообщение
я же вроде вам ответил в предыдущем посте.
Простите, мне сразу не показало мое старое сообщение..
Tinusha
0 / 0 / 0
Регистрация: 28.10.2011
Сообщений: 23
08.11.2011, 17:56  [ТС]     Помогите найти ошибку #16
greeezz, А желательно вводить без перевода значений:
x=17.421 y=10.365e-3 z=0.828e5
Но тогда ответ не верен:

Посмотрите вложение

Почему?
Миниатюры
Помогите найти ошибку  
Tinusha
0 / 0 / 0
Регистрация: 28.10.2011
Сообщений: 23
08.11.2011, 18:02  [ТС]     Помогите найти ошибку #17
Еще можете подсказать, где можно прочесть про математическую библиотеку подробнее? И желательно с примерами. Заранее спасибо.
greeezz
272 / 165 / 4
Регистрация: 10.07.2011
Сообщений: 441
08.11.2011, 23:32     Помогите найти ошибку #18
добавьте три строки в функцию чтобы увидеть цифры которые вы вводите. честно говоря я не знаю что у вас не так. я протестировал на 64битной машине и на 32двух битной тоже. результат одинаковый. (см. приложение)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
int main() {
    double x, y, z, a, b, c, s;
    cout << "Vvedite x:";
    cin >> x;
    cout << x << endl;
    cout << "Vvedite y:";
    cin >> y;
    cout << y << endl;
    cout << "Vvedite z:";
    cin >> z;
    cout << z << endl;
 
    a = pow((x-1), (1 * 1.0 / 3));   //чтобы вычислить корень n-ной 
    b = pow((a+y), (1 * 1.0 / 4));  //степени нужно число возвести в степень (1/n)
    c = abs(x-y)*(pow(sin(z), (1.0*2))+tan(z));
    s = b/c;
    cout << "Result s="<<s<<endl;
    system("pause");
    return 0;
}
Поподробнее про <cmath> он же <math.h> - ТУТ
Миниатюры
Помогите найти ошибку  
Tinusha
0 / 0 / 0
Регистрация: 28.10.2011
Сообщений: 23
09.11.2011, 03:17  [ТС]     Помогите найти ошибку #19
Не знаю в чем дело, но на моем компьютере и нетбуке результат одинаков. Завтра еще где-нибудь проверю.

Вот код (вроде, как и у вас):
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>
#include <math.h>
#include <stdlib.h>
using namespace std;
int main() {
    double x, y, z, a, b, c, s;
    cout << "Vvedite x:";
    cin >> x;
        cout << x << endl;
    cout << "Vvedite y:";
    cin >> y;
        cout << y << endl;
    cout << "Vvedite z:";
    cin >> z;
        cout << z << endl;
 
    a = pow((x-1), (1 * 1.0 / 3));   //÷òîáû âû÷èñëèòü êîðåГ*Гј n-Г*îé 
    b = pow((a+y), (1 * 1.0 / 4));  //Г±ГІГҐГЇГҐГ*ГЁ Г*ГіГ¦Г*Г® ÷èñëî âîçâåñòè Гў Г±ГІГҐГЇГҐГ*Гј (1/n)
    c = abs(x-y)*(pow(sin(z), (1.0*2))+tan(z));
    s = b/c;
    cout << "Result s="<<s<<endl;
        system("pause");
    return 0;
}
Миниатюры
Помогите найти ошибку  
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.11.2011, 03:21     Помогите найти ошибку
Еще ссылки по теме:

Помогите найти ошибку C++
ПОмогите найти ошибку C++
Помогите найти ошибку C++
Помогите найти ошибку C++
Помогите найти ошибку C++

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

Или воспользуйтесь поиском по форуму:
greeezz
272 / 165 / 4
Регистрация: 10.07.2011
Сообщений: 441
09.11.2011, 03:21     Помогите найти ошибку #20
чем компилируете код?
Yandex
Объявления
09.11.2011, 03:21     Помогите найти ошибку
Ответ Создать тему
Опции темы

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