0 / 0 / 0
Регистрация: 28.08.2013
Сообщений: 31
1

Не правильно считается Sin(x) - на проге одно н калькуляторе другое

01.11.2017, 12:15. Показов 785. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Похоже, что я что-то не правильно делаю. Вопрос дурацкий

Калькулятор выдаёт sin(2874,19863) = −0,10108008575
Моя программа считает sin(2874.19863) = 0,351008611648819

В чём же моя ошибка? Вот код:

Pascal
1
2
3
4
5
6
7
procedure TForm1.Button1Click(Sender: TObject);
var
  a,b:double;
begin
  a:=StrToFloat(Edit1.Text);
  b:=sin(a);
  Edit2.Text:=FloatToStr(b)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.11.2017, 12:15
Ответы с готовыми решениями:

при вычислении выражении - одно значение,а в калькуляторе другое!
есть,самое простое выражение: 21/5*3 но на калькуляторе будет - 21/5=4.2(логично?) и умноженное...

С моим кодом что-то не так! на калькуляторе одно число,а в программе другое(
вот код программы,я только учусь,через неделю олимпиаду писать, так что выручайте)) #include...

На калькуляторе 0, но php выводит совсем другое
Есть кусок кода: $tmp = 2.8/4.8; $tmp = -$tmp; $tmp *= 4.8; $tmp += 2.8; echo $tmp; ...

Для заданного числа x распечатать числовую последовательность: sin(x), sin(sin(x), sin(sin(sin(x), …
var x,z:integer; y:real; begin readln(x); y:=abs(sin(x)); while y>0.01 do begin ...

9
Почетный модератор
64291 / 47589 / 32740
Регистрация: 18.05.2008
Сообщений: 115,181
01.11.2017, 12:48 2
Так на калькуляторе нужно перейти из градусов в радианы, Паскаль считает в радианах.
0
0 / 0 / 0
Регистрация: 28.08.2013
Сообщений: 31
01.11.2017, 13:39  [ТС] 3
А мне в градусах и нужно. Как можно в градусах на паскале считать синус?
0
Почетный модератор
64291 / 47589 / 32740
Регистрация: 18.05.2008
Сообщений: 115,181
01.11.2017, 14:16 4
Pascal
1
2
3
4
5
6
var u:real;
begin
write('Угол в градусах u=');
readln(u);
writeln('синус=',sin(u*pi/180):0:3);
end.
1
0 / 0 / 0
Регистрация: 28.08.2013
Сообщений: 31
02.11.2017, 00:04  [ТС] 5
Тут ещё одна странная вещь. Просто два числа.

0.000014*0.62192818 = 8,70699452E-6

Калькулятор считает совсем иначе и правильно = 0,00000870699

Вот это уже совсем странно. На самом деле это часть формулы, где 0.000014*T^2, а T=0.788624231. В квадрат всё прекрасно возводится, получаем число 0.62192818. Но стоит умножить, возникает вот такое странное число. Почему так происходит, и как бы это исправить?
0
Почетный модератор
64291 / 47589 / 32740
Регистрация: 18.05.2008
Сообщений: 115,181
02.11.2017, 06:38 6
Pascal
1
writeln(a*b:0:11);
0
35 / 35 / 45
Регистрация: 26.10.2016
Сообщений: 85
02.11.2017, 09:57 7
Alex Kelmair, Запись 8,70699452E-6 означает вот что:
https://www.cyberforum.ru/cgi-bin/latex.cgi?8,70699452\cdot {10}^{-6}
То что перед "Е" - это основа, то, что после - степень десятки на которую основа умножается.
Экспоненциальная запись, Википедия
0
0 / 0 / 0
Регистрация: 28.08.2013
Сообщений: 31
02.11.2017, 11:26  [ТС] 8
Понятно. Мне нужно в Edit вывести так, как это в калькуляторе выглядит.
0
Почетный модератор
64291 / 47589 / 32740
Регистрация: 18.05.2008
Сообщений: 115,181
02.11.2017, 11:33 9
Например так
Delphi
1
Edit1.Text:=floattostrF(a*b,ffFixed,11,11);
Есть и другие варианты.
1
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32630 / 21097 / 8139
Регистрация: 22.10.2011
Сообщений: 36,362
Записей в блоге: 8
02.11.2017, 11:34 10
Выводи:
Pascal
1
2
  f := 0.000014*0.62192818;
  Edit1.Text := Format('%.15f', [f]); // выводится 0.000008706994520
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.11.2017, 11:34
Помогаю со студенческими работами здесь

Вычислить первое из чисел sin(x), sin(sin(x)), sin(sin(sin(x))), ... , меньшее по модулю 10^-4
1)Вычислить y - первое из чисел sinx, sin sinx,sin sin sinx,..., меньшее по модулю 10^-4 ...

Вычислить у - первое из чисел sin х, sin sin x, sin sin sin x, ., меньшее по модулю 10-4
Вычислить у - первое из чисел sin х, sin sin x, sin sin sin x, ..., меньшее по модулю 10-4 Видел...

Для заданных n и x посчитать выражение s=sin x+sin sin x+...+sin sin sin...sin x
Для заданных n и x посчитать выражение s=sin x+sin sin x+...+sin sin sin...sin x (n раз).

Рассчитать функцию y=sin(sin(sin(…(sin(x))))), в которой имя функции «sin» повторяется n раз.
1. Вычислить элементы последовательности, используя рекурсию. L0(x)=1, L1(x)= +1-x,...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru