Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ проблемы: разложение sin(x) в ряд и сортировка массива

Автор: greteon 27.05.2007 23:24

Просидел с простейшими программами...Так и не втыкнул как сделать...

Код

function Mysin(x:real;eps:real): real;
var add,sum:real;
    i:integer;
begin
add:=x;
sum:=0;
i:=0;
repeat
sum:=sum+add;

add:=-add*x*x/(2*i+2)/(2*i+3);
i:=i+1;
until abs(add/sum)<=eps;
mysin:=sum;
end;

Вычисляет правильно малые значения параметра х, а при больших значения(45 рад) выдаёт большие числа... как внедрить формулу приведения с отбрасыванием 2пn;

Код

procedure babble(var x:matrix;n:integer);
var
     tmp:real;
     i,j:integer;
begin
for i:=1 to n do


  if x[j]>x[j+1] then
   begin
    tmp:=x[j+1];
    x[j+1]:=x[j];
    x[j]:=tmp;
   end;


end;

делал по лекциям, не работает...
Укажите ошибки пожалуйста.

Автор: мисс_граффити 27.05.2007 23:55

1. http://forum.pascal.net.ru/index.php?s=&showtopic=4535&view=findpost&p=44175
2. цикл по j забыл

 ! 
Заголовок темы должен быть информативным!


Срочно переименуй.

Автор: greteon 28.05.2007 0:21

2мисс_граффити
Не понял как переименовать...

1. Я сперва смотрел задачу из той темы...Она тоже выдаёт бредовые результаты на больших х.
2. Логику программы можете объяснить...

Автор: мисс_граффити 28.05.2007 0:34

1. А какие границы применения этой формулы разложения? В каком интервале должен быть х?
2. http://algolist.manual.ru/sort/bubble_sort.php

Автор: greteon 28.05.2007 0:48

Oграничено только возможностями pascal.
sin(x), который идёт по умолчанию считает павильно, ибо научен формулам приведения.


Автор: мисс_граффити 28.05.2007 0:53

я про математику, а не паскаль.
там ограничение есть, при котором это разложение справедливо. я его не помню.

Автор: greteon 28.05.2007 0:55

ограничение можно наверное обойти...