Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.95/21: Рейтинг темы: голосов - 21, средняя оценка - 4.95
 Аватар для Gothic Angelos
1 / 1 / 1
Регистрация: 29.05.2010
Сообщений: 153

При подсчёте косинуса компилятор выдаёт неверное значение

15.03.2011, 21:40. Показов 4420. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
И снова здравствуйте,возникла очередная проблема в моей программе,при элементарном подсчёте косинуса компилятор выдаёт неверное значение,даю весь код чтобы не спрашивали,что и откуда берётся....проблема в последней функции в извлечении косинуса

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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#include<iostream.h>
#include<math.h>
#include<conio.h>
float a[3][2]={-0.3,0.1,-0.1,0.2,0.3,-0.1};
float x1[3]={0.7,0.6,-0.4};
 
float modul (float x1[3],float X);
float klaster1 (float a[3][2]);
float klaster2 (float a[3][2]);
 
float kos(float x1[3], float a[3][2],float X,float A);
void main()
{
clrscr ();
float X1,X,A,B,c,C;
X=modul (x1,X);
A=klaster1(a);
B=klaster2(a);
 
kos(x1,a,X,A);
getch();
}
 
float  modul ( float x1[3],float X)
{
float X1;
for (int i=0;i<3;i++)
 
X=pow(X1+=pow(x1[i],2),0.5);
 
 
cout<<X<<" "<<"modul of vector"<<endl;;
return X;
 
}
 
float klaster1 (float a[3][2])
{
float a1,A;
 
for(int j=0;j<3;j++)
 
A=pow(a1+=pow(a[j][0],2),0.5);
 
cout<<A<<" "<<endl;
return A;
}
float klaster2 (float a[3][2])
{
float b,B;
for (int j=0;j<3;j++)
 
B=pow(b+=pow(a[j][1],2),0.5);
 
cout<<B<<" "<<endl;
return B;
}
 
 
float kos(float x1[3], float a[3][2],float X,float A)
{
float c,C,C1,D;
for (int j=0; j<3;j++)
{
c+=x1[j]*a[j][0];
}
//cout<<c<<" ";
C=c/(X*A);
cout<<C<<" "<<endl;
D=cos(C);
cout<<D<<" "<<endl;
return D;
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.03.2011, 21:40
Ответы с готовыми решениями:

Почему при подсчёте min -выдаёт 0 из списка?
Не пойму Почему при подсчёте min -выдаёт 0 из списка? При max всё нормально ... :( #include &lt;stdio.h&gt; #include...

При решении программа выдаёт значение функции, равное 0 или выдаёт ошибку. Что не так?
#include &lt;iostream&gt; #include &lt;iomanip&gt; #include &lt;cmath&gt; using namespace std; long Fact(short m)// функция вычисления факториала ...

Неверное значение при умножении больших чисел
Добрый день, столкнулся с такой вещью: Понадобилось умножить 30000*30000*30000, проверил через диапазоны типов данных, long long...

5
221 / 135 / 48
Регистрация: 12.04.2010
Сообщений: 248
15.03.2011, 21:45
А всё-таки... в чем ошибка? Чему равно C при ошибке и какой результат в D?

Проверьте в каких единицах передаете аргумент к функции cos. Скорее всего ошибка где-то в другом месте.
0
 Аватар для Gothic Angelos
1 / 1 / 1
Регистрация: 29.05.2010
Сообщений: 153
15.03.2011, 21:55  [ТС]
Все переменные проверил они правильные,а от подсчёта косинуса жду совершенно другой результат,на всех калькуляторах проверил,должно быть другое число,но мой компилятор настойчиво утверждает другое(

Добавлено через 7 минут
Кажется понял в чём ошибка...а можно как-то заставить компилятор считать в градусах,а не радианах?
0
221 / 135 / 48
Регистрация: 12.04.2010
Сообщений: 248
15.03.2011, 21:58
Не хотите смотреть значицца
Смотрим в отладчике С = - 0,890281
после выполнения D = cos(C);
получаем D = 0,6291936
Естественно мы помним, что все аргументы в радианах, а не в градусах.
Поэтому берем калькулятор и считаем cos( -0,890281 ) в радианах и получаем
0,62919364456601410768730021309207
Похоже?

C
1
2
rad = grad * PI / 180;
grad = rad * 180 / PI
1
 Аватар для Gothic Angelos
1 / 1 / 1
Регистрация: 29.05.2010
Сообщений: 153
15.03.2011, 22:02  [ТС]
Спасибо,я уже сам дошёл))) сглупил,что позабыл о радианах...у меня потом ещё будет 9 векторов и все переводить??? может можно как-то "заставить"компилятор считать в градусах)
0
 Аватар для IrineK
2023 / 1641 / 425
Регистрация: 23.02.2011
Сообщений: 6,002
Записей в блоге: 25
15.03.2011, 22:46
Цитата Сообщение от Gothic Angelos Посмотреть сообщение
...у меня потом ещё будет 9 векторов и все переводить??? может можно как-то "заставить"компилятор считать в градусах)
Компилятору будет легче перевести 9 векторов.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.03.2011, 22:46
Помогаю со студенческими работами здесь

Неверное значение при передаче параметра в метод operator=
Здравствуйте. Есть код vector.h #pragma once //#include &quot;vector.h&quot;

Неверное выводимое значение при смене беззнаковой переменной на знаковую
Вот задача: На спутнике «Фотон» установлен прибор, предназначенный для измерения энергии космических лучей. Каждую минуту прибор...

Предикат выдаёт неверное значение
SWI_Prolog Проблема кажется простая, но решения пока не вижу: Предикат по поиску определённых слов: pronoms_relatifs('qui'). ...

Калькулятор логических формул выдаёт неверное значение
Или я неправильно делаю. Короче вот формула , забиваю её в этот хвалёный онлайн калькулятор http://www.wolframalpha.com/ И...

Компилятор выдаёт кучу ошибок при решениии транспортной задачи
Условия задачи 1) Составить опорный план методом северо-западного угла 2) Составить опорный план методом минимального элемента ...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru