Форум программистов, компьютерный форум, киберфорум
Free Pascal
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 28.08.2013
Сообщений: 30
1

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

01.11.2017, 12:15. Просмотров 540. Ответов 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
Модератор
63330 / 47043 / 32426
Регистрация: 18.05.2008
Сообщений: 114,028
01.11.2017, 12:48 2
Так на калькуляторе нужно перейти из градусов в радианы, Паскаль считает в радианах.
0
0 / 0 / 0
Регистрация: 28.08.2013
Сообщений: 30
01.11.2017, 13:39  [ТС] 3
А мне в градусах и нужно. Как можно в градусах на паскале считать синус?
0
Модератор
63330 / 47043 / 32426
Регистрация: 18.05.2008
Сообщений: 114,028
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
Сообщений: 30
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
Модератор
63330 / 47043 / 32426
Регистрация: 18.05.2008
Сообщений: 114,028
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
Сообщений: 30
02.11.2017, 11:26  [ТС] 8
Понятно. Мне нужно в Edit вывести так, как это в калькуляторе выглядит.
0
Модератор
63330 / 47043 / 32426
Регистрация: 18.05.2008
Сообщений: 114,028
02.11.2017, 11:33 9
Например так
Delphi
1
Edit1.Text:=floattostrF(a*b,ffFixed,11,11);
Есть и другие варианты.
1
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
30898 / 20214 / 7882
Регистрация: 22.10.2011
Сообщений: 35,096
Записей в блоге: 6
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® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.