Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.09.2015, 07:01   #1
Ixmil
Пользователь
 
Регистрация: 27.09.2015
Сообщений: 47
По умолчанию вичисление синуса в радианах.

Хочется иметь под рукой полную функцию синуса, умеющую вычислять во всех трёх единицах.


Правильно вычисляет в градусах и градах. (Перед Синусом, надлежит сначало вызвать функцию приобразования едениц). У меня грады вводятся как обычное значение без приобразования.
(Если интересно. Функция не моя.)


Код:
unit TSIntIII;


interface


function OvWind(ss: String; ii: integer): String;
function DecToAll(x:integer;i:integer):string;



implementation

var
  i,x,y,z,e,j,r,b,t,y1:integer;
  s,v,v1:string;
  s1:string='11111';

  x1:integer;
  y2,z2,i2,e2:integer;

  ww,ee:integer;
  ss:string;
  w:integer;








function OvWind(ss: String; ii: integer): String;
begin

While y1 <> ii do
begin
v1:= v1+ss[ii-y1];
y1:= y1+1;
end;

Result:= v1;
ss:= '';
v1:= '';
y1:= 0;
end;







//Перевод числа Н ичную систему счисления
function DecToAll(x:integer;i:integer):string;
var
k:string;

begin

z:=x;

  while z >= i do
  begin
  x1:= z mod i; //Остаток деления
  z:= z div i; //Деление на цело
  s:= s+Chr(x1);
  end;

  s:= s+Chr(z);
  s:= OvWind(s,length(s));

Result:=s;

s:='';
z:=0;
x1:=0;
end;


end.


//=====================///

Unit tsin9;



interface









//В грады
function TGd(gradus : real) : real;
//В градусы
function TGr(gradus : real) : real;



function TAbs(w1: real): real; //Абсолютное значение аргумента
function Tsqr(w1: real): real; //Квадрат числа

function TSin(gradus : real) : real;

//изменить знак числа
function TSign(w1 : real) : real;


//Прямой и обратный алгоритм 1/x
function TFE(w1 : real) : real;



function TCos(w1 : real) : real;


function TTan(w1 : real) : real;
function TCtd(w1 : real) : real;


//секанса
Function Sec(w1: Real): real;
//косеканса
Function Csc(w1: Real): real;






//function TInc(gradus : real) : real;
implementation



Const
e=0.0000000001;
TPi = 3.14159265358979323;
TPiDef = 3.14159265358979; //Стандартное
var
x1,sint,next: real;
i:integer;

  x,y,m,t,a: integer;
  r,w,k,z: Real;
//a,b:real;


rr:real;












function TGd(gradus : real) : real;
Begin
Result:= gradus*tPi/200; //грады
End;

function TGr(gradus : real) : real;
Begin
Result:= gradus*tPi/180; //градусы
End;





function TAbs(w1: real): real;
begin

if w1<0 then
begin
w1:= 0-w1;
end;


Result:=w1;
end;


function Tsqr(w1: real): real;
begin
w1:=w1*w1;
Result:=w1;
end;


function TSin(gradus : real) : real;
Begin

next := gradus;

x1:=next;
sint:= 0;
i:= 1;
while tabs(next) >=e do
begin
   sint:=sint+next;
   //inc(i, 2);
   i:=i+2;


   next := - next * Tsqr(x1) / (i-1) / i; 
end;


Result:= sint;
End;



function TSign(w1 : real) : real;
begin
Result:= 0-w1;
end;


function TFE(w1 : real) : real;
begin
w1:= 1/w1;
Result:= w1;
end;


function TCos(w1 : real) : real;
begin
//Косинус
rr:=tsin(w1)*tsin(w1);
rr:=1-rr;
Result:=sqrt(rr);
end;


function TTan(w1 : real) : real;
begin
//тангенс
Result:= tsin(w1)/tCos(w1);
end;

function TCtd(w1 : real) : real;
begin
//катангенс
Result:= tcos(w1)/tsin(w1);
end;







function Sec(w1: Real): Real;
begin
  Result:=1 / tCos(w1);
end;


function Csc(w1: Real): Real;
begin
  Result:=1 / tSin(w1);
end;



end.

Последний раз редактировалось Аватар; 28.09.2015 в 07:41.
Ixmil вне форума Ответить с цитированием
Старый 28.09.2015, 07:05   #2
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Ой, мама! Опять портянка. Да, блин, лень привести проблемный кусочек? Вот, нам делать нечего, только разбираться в чьём-то говнокоде.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 28.09.2015, 07:26   #3
Ixmil
Пользователь
 
Регистрация: 27.09.2015
Сообщений: 47
По умолчанию

Код:
Вот, нам делать нечего, только разбираться в чьём-то говнокоде.
А чё, не разобраться, может кому самому было бы надо. Хотя это теория. Теория... Теория...
Намёк понятен?

Последний раз редактировалось Stilet; 28.09.2015 в 09:22.
Ixmil вне форума Ответить с цитированием
Старый 28.09.2015, 08:35   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Ixmil
У тебя Делфи под рукой есть?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 28.09.2015, 08:50   #5
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Цитата:
Сообщение от Ixmil Посмотреть сообщение
Намёк понятен?
Понятен. Накопипастил, а потом - сделайте всё за меня, а я пойду пивка попью.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 28.09.2015, 08:55   #6
Ixmil
Пользователь
 
Регистрация: 27.09.2015
Сообщений: 47
По умолчанию

Цитата:
Понятен. Накопипастил, а потом - сделайте всё за меня, а я пойду пивка попью.
"Шахматный ход" известный, старый, и избитый аж до последних нервов.
И авторство уж тоже...

Цитата:
Дескать зачем ругаться с врачом, решившим чай попить.
Ведь тебе же туда ещё заходить.
А так много о "завтра" в нашей стране мечтается только некоторым.

From Stilet: попрошу цитаты отделять спецтегом.

Последний раз редактировалось Stilet; 28.09.2015 в 09:21.
Ixmil вне форума Ответить с цитированием
Старый 28.09.2015, 09:31   #7
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
вичисление синуса в радианах.
Синус не бывает в радианах, или градусах, или еще в чем-то. Синус безразмерная величина. А вот углы да - хоть в радианах, хоть в градусах. Так что вычисление синуса от аргумента в радианах или градусах
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 28.09.2015, 09:43   #8
Ixmil
Пользователь
 
Регистрация: 27.09.2015
Сообщений: 47
По умолчанию

Да достаточного было бы правильного преобразования радиан под этот синус.
Ixmil вне форума Ответить с цитированием
Старый 28.09.2015, 09:59   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
достаточного было бы правильного преобразования радиан под этот синус.
У тебя Делфи есть под рукой?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.09.2015, 05:32   #10
Ixmil
Пользователь
 
Регистрация: 27.09.2015
Сообщений: 47
По умолчанию

Под рукой Delphi нет. Есть Turbo 7 и TMT3.
Ixmil вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Описать функцию RadToDeg(R) вещественного типа, находящую величину угла в градусах, если дана его величина R в радианах investr Паскаль, Turbo Pascal, PascalABC.NET 1 02.12.2011 14:47
Формула синуса на Си vinternete Помощь студентам 4 28.06.2011 17:36
Нахождение синуса whatever Помощь студентам 1 17.11.2009 20:23
Реализация синуса angol Помощь студентам 5 07.11.2008 22:00
Генератор синуса Ulex Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 14.09.2008 12:53