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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.12.2015, 18:31   #1
Boris18
Новичок
Джуниор
 
Регистрация: 02.12.2015
Сообщений: 4
По умолчанию Не используя стандартных функций вычислить tg x

Всем привет) Нужна помощь, буду очень благодарен, если поможете.
Вычислить tg x не используя стандартных функций, при этом используя ряд тейлора

Последний раз редактировалось Boris18; 02.12.2015 в 18:35.
Boris18 вне форума Ответить с цитированием
Старый 02.12.2015, 18:39   #2
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

1. Ищите разложение тангенса в ряд Тейлора
2. Программируете с помощью цикла вычисление этого ряда для заданного значения аргумента.
Вадим Мошев вне форума Ответить с цитированием
Старый 02.12.2015, 20:54   #3
Boris18
Новичок
Джуниор
 
Регистрация: 02.12.2015
Сообщений: 4
По умолчанию

Я бы с радостью, но мы к сожалению не проходили еще ряд Тейолра, а нас уже на информатике просят решать такие задачи, поэтому не знаю что делать
Boris18 вне форума Ответить с цитированием
Старый 02.12.2015, 21:14   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Найти ряд Тейлора в для тангенса в интернете, например. Там числа Бернулли всплывут, узнать что это такое. В конце концов и примеры есть в интерне для тангенса, за минуту на разных языках нашел несколько примеров
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 02.12.2015, 21:34   #5
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Числа Бернулли https://ru.wikipedia.org/wiki/%D0%A7...BB%D0%BB%D0%B8

Вот здесь есть разложение тангенса в ряд:
https://ru.wikipedia.org/wiki/%D0%A0...86.D0.B8.D0.B9

Не обращайте внимания на то, что там написано "ряд Маклорена"
================

Либо же можно поступить следующим образом.
Воспользоваться тем, что тангенс = синус / косинус, после чего воспользоваться разложением отдельно для синуса и косинуса (это легче будет, ИМХО).
Вадим Мошев вне форума Ответить с цитированием
Старый 02.12.2015, 23:13   #6
Boris18
Новичок
Джуниор
 
Регистрация: 02.12.2015
Сообщений: 4
По умолчанию

Это и я нашел, у меня вопрос только как это воспроизвести в паскале, я не малейшего представления не имею
Boris18 вне форума Ответить с цитированием
Старый 02.12.2015, 23:34   #7
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Вот почитайте здесь http://www.programmersforum.ru/showp...1&postcount=35
Там, правда, чуть-чуть другое, но, полагаю, вы должны разобраться.
Кстати, там как раз считается косинус, разложенный в ряд.
Вадим Мошев вне форума Ответить с цитированием
Старый 03.12.2015, 10:04   #8
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Код:
function Fact(n: Integer): Double;
begin
  if n=0 then Fact:=1 else Fact:=n*Fact(n-1);
end;

function Bern(n: Integer): Double;
var s,f: Double;
    k: Integer;
begin
  if n=0 then Bern:=1
  else if n=1 then Bern:=-1/2
  else if Odd(n) then Bern:=0
  else begin
    s:=0; f:=Fact(n+1);
    for k:=1 to n do s:=s+f/Fact(k+1)/Fact(n-k)*Bern(n-k);
    Bern:=-s/(n+1);
  end;
end;

function Tangens(x,Eps: Double): Double;
var s,f: Double;
    k: Integer;
begin
  s:=0; k:=1;
  repeat
    f:=Power(-1,k-1)*Power(2,2*k)/Fact(2*k)*(Power(2,2*k)-1)*Bern(2*k)*Power(x,2*k-1);
    s:=s+f;
    Inc(k);
  until Abs(f)<Eps;
  Tangens:=s;
end;
обращение Tangens(Pi/3,0.000001)

ЗЫ - проверил в делфи, в паскале, особенно турбо или абц возможны нюансы

Цитата:
Не используя стандартных функций
Забыл. Odd заменить на проверку на нечетность с помощью mod. Power на свою функцию возведения в целую степень. Ну и от Abs избавиться
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 03.12.2015 в 10:31.
Аватар вне форума Ответить с цитированием
Старый 03.12.2015, 10:35   #9
Boris18
Новичок
Джуниор
 
Регистрация: 02.12.2015
Сообщений: 4
По умолчанию

Ты можешь написать правильную программу, чтобы я просто списал, я в Паскале плохо разбираюсь, я не программист а металлург, мне это просто для зачета нужно, помоги пожалуйста))
Boris18 вне форума Ответить с цитированием
Старый 03.12.2015, 10:50   #10
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Не хочу, тут на форуме много примеров по консольному вводу-выводу данных. Хоть чуть-чуть понимать для зачета не помешает
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Использование стандартных функций динамическо-создаваемого компонента Nugrom Общие вопросы Delphi 3 01.10.2014 22:04
Изменение стандартных функций Ga-sergey Visual C++ 2 22.04.2012 19:42
Задача по массивам и сортировка строк без стандартных функций. AnnieFoxy Помощь студентам 3 19.01.2011 09:45
Замена стандартных процедур и функций для работы со строками Alexar Makken Паскаль, Turbo Pascal, PascalABC.NET 2 18.12.2010 21:59
Переопределение стандартных функций LeoN PHP 1 11.06.2010 08:18