IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Помогите разобраться с переменными в 2-х процедурах.
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 8
Пол: Мужской

Репутация: -  0  +


Всем доброго времени суток! Вот возникла проблемка... Немогу связать 2 процедуры для подсчета arctg(x) через ряд Тейлора... проблема в локальных/глобальных переменных или еще передачу по ссылке или по значению где нить напутал 100%... я в тупике. Пжжалста помогите, кто нить!!! mega_chok.gif
Вот так вот я ее написал:

Program finish;
uses CRT;
Var x,xmin,n,j,xmax,f,dx,eps,q,c,k,m:real;

procedure input(var a:real);
begin
read(a);
end;

procedure arctg(x:real;var f:real);


begin
c:=1;
n:=0;
f:=0;
repeat
j:=-(2*n-1)/((2*n-1)*x*x);
c:=c*j;
f:=f+c;
until abs(f)<eps;
end;

procedure tab(xmin,xmax,q,x:real;var c:real);

begin
k:=0;
x:=xmin;
writeln ('x po Teyloru chislo chlenov arctan(x) ');
while x<=xmax do begin

arctg(x,f);
m:=arctan(x);
k:=k+1;
x:=x+dx;
writeln(x:2:2,' ', c:4:4{zn-e arctg(x)},' ', k:4:1,' ', m:4:4) ;
end;
end;
Begin

clrscr;
writeln('programma vichislyaet znachenie funkcii arctg(x) s pomoshu ryada Teylora');

write('vvedite xmin:');
input(xmin);
write('vvedite xmax:');
input(xmax);
write('vvedite step:');
input(dx);
write('vvedite tochnost:');
input(eps);

tab (xmin,xmax,q,x,c);
readkey;
END.



Сообщение отредактировано: Jack K. -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2





Группа: Пользователи
Сообщений: 8
Пол: Мужской

Репутация: -  0  +


Цитата(Jack K. @ 10.05.2007 22:26) *

Всем доброго времени суток! Вот возникла проблемка... Немогу связать 2 процедуры для подсчета arctg(x) через ряд Тейлора... проблема в локальных/глобальных переменных или еще передачу по ссылке или по значению где нить напутал 100%... я в тупике. Пжжалста помогите, кто нить!!! mega_chok.gif
Вот так вот я ее написал:

Program finish;
uses CRT;
Var x,xmin,n,j,xmax,f,dx,eps,q,c,k,m:real;

procedure input(var a:real);
begin
read(a);
end;

procedure arctg(x:real;var f:real);
begin
c:=1;
n:=0;
f:=0;
repeat
j:=-(2*n-1)/((2*n+1)*x*x);
c:=c*j;
f:=f+c;
until abs(f)<eps;
end;

procedure tab(xmin,xmax,q,x:real;var c:real);

begin
k:=0;
x:=xmin;
writeln ('x po Teyloru chislo chlenov arctan(x) ');
while x<=xmax do begin

arctg(x,f);
m:=arctan(x);
k:=k+1;
x:=x+dx;
writeln(x:2:2,' ', c:4:4{zn-e arctg(x)},' ', k:4:1,' ', m:4:4) ;
end;
end;
Begin

clrscr;
writeln('programma vichislyaet znachenie funkcii arctg(x) s pomoshu ryada Teylora');

write('vvedite xmin:');
input(xmin);
write('vvedite xmax:');
input(xmax);
write('vvedite step:');
input(dx);
write('vvedite tochnost:');
input(eps);

tab (xmin,xmax,q,x,c);
readkey;
END.



з.ы. подправил j в первой процедуре... там "-" на "+" исправил.. аааа, очень надо!! завтра сдавать...

Сообщение отредактировано: Jack K. -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


просто человек
******

Группа: Пользователи
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


формулу разложения дай...


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4





Группа: Пользователи
Сообщений: 8
Пол: Мужской

Репутация: -  0  +


Цитата(мисс_граффити @ 18.06.2007 22:33) *

формулу разложения дай...


Вотъ


Эскизы прикрепленных изображений
Прикрепленное изображение
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Гость






Замени свою процедуру arctg вот на это:
procedure arctg(x:real;var f:real);
var
j: real;
sign, n: integer;
begin
sign := -1;
n := 0;
f := Pi/2;
j := x;
repeat
j := j / (x*x);
c := j / (2*n + 1);
f := f + sign * c;
sign := - sign;
inc(n);
until abs© < eps;
end;



А в процедуре Tab печатай не С, а F:
writeln(x:2:2,'         ', F:4:4{zn-e arctg(x)},'                  ', k:4:1,'              ', m:4:4) ;


Сообщение отредактировано: volvo -
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


просто человек
******

Группа: Пользователи
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


...а еще половину глобальных переменных можно убрать.
у меня, в общем, так получилось:
Program finish;
uses CRT;
Var xmin,xmax,dx,eps:real;

procedure input(var a:real);
begin
readln(a);
end;

procedure arctg(x:real;var f:real;var n: integer);
var c,j: real;
begin
n:=0;
c:=-x;
f:=pi/2;
repeat
j:=1/((2*n+1)*c);
c:=-c*sqr(x);
n:=n+1;
f:=f+j;
until abs(j)<eps;
end;

procedure tab(xmin,xmax,dx:real);
var x,f: real;
k: integer;
begin
x:=xmin;
writeln ('x po Teyloru chislo chlenov arctan(x) ');
while x<=xmax do
begin
arctg(x,f,k);
writeln(x:2:2,' ', f:4:4{zn-e arctg(x)},' ', k:4,' ', arctan(x): 4 : 4) ;
x:=x+dx;
end;
end;

Begin

clrscr;
writeln('programma vichislyaet znachenie funkcii arctg(x) s pomoshu ryada Teylora');

write('vvedite xmin:');
input(xmin);
write('vvedite xmax:');
input(xmax);
write('vvedite step:');
input(dx);
write('vvedite tochnost:');
input(eps);

tab (xmin,xmax,dx);
readkey;
END.


Сообщение отредактировано: мисс_граффити -


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7





Группа: Пользователи
Сообщений: 8
Пол: Мужской

Репутация: -  0  +


мисс_граффити ,volvo ОГРОМЕННОЕ ВАМ СПА-СИ-БО!!! good.gif и "+" соответственно ))

т.е. я так понял, что у меня была с рекурентной формулой беда?

Сообщение отредактировано: Jack K. -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


просто человек
******

Группа: Пользователи
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


И с формулой, и выводил не совсем то.


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9





Группа: Пользователи
Сообщений: 8
Пол: Мужской

Репутация: -  0  +


blink.gif уже 30 минут ищу кнопочку чтобы + поставить wacko.gif почему то рядом с вашим числом плюсов, картинки с изображением + и - не активны... наверно я еще оч мало на этом форуме.. недостаточно прав.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


просто человек
******

Группа: Пользователи
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


да, мало сообщений.


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Michael_Rybak
*****

Группа: Пользователи
Сообщений: 1 046
Пол: Мужской
Реальное имя: Michael_Rybak

Репутация: -  32  +


Цитата
уже 30 минут ищу кнопочку чтобы + поставить
почему то рядом с вашим числом плюсов, картинки с изображением + и - не активны... наверно я еще оч мало на этом форуме.. недостаточно прав.


Увеличил обоим.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12





Группа: Пользователи
Сообщений: 8
Пол: Мужской

Репутация: -  0  +


сегодня сдал!!! это была последня прога с прошлого семестра на зачет, штук 15 я сдал в январе-феврале, а с этой запарился))

Выкладываю итоговую версию задачи smile.gif (вдруг кому пригодится)
Задание было таким:
Вычислить и вывести на экран в виде таблицы значения функции, заданной с помощью ряда Тейлора, на интервале от xmin до xmax с шагом dx с точностью e.
Каждая строка таблицы должна содержать значение аргумента, значение функции и количество просуммированных членов ряда. Операции ввода исходных данных, вычисления функции с помощью ряда Тейлора и табулирования функции реализовать в виде отдельных подпрограмм (процедур и функций).

  Program finish;
uses CRT;
Var c,x,xmin,xmax,dx,eps,k,m,f:real;

procedure input(var a:real);
begin
read(a);
end;

procedure arctg(x:real;var f:real);
var
j: real;
sign, n: integer;
begin
n := 1;
c:=-1/x;
f := Pi/2+c;

repeat
c :=c*(-(2*n-1)/((2*n + 1)*(x*x)));
f := f + c;
inc(n);
until abs© < eps;
end;

procedure tab(xmax,x:real;var c:real);
var k,m:real;
begin
k:=0;
x:=xmin;
writeln ('x po Teyloru chislo chlenov arctan(x) ');
while x<=xmax do begin
arctg(x,f);
m:=arctan(x);
k:=k+1;
writeln(x:2:2,' ', f:6:6{zn-e arctg(x)},' ', k:4:1,' ', m:6:6) ;
x:=x+dx;
end;
end;
Begin

clrscr;
writeln('programma vichislyaet znachenie funkcii arctg(x) s pomoshu ryada Teylora');

write('vvedite xmin:');
input(xmin);
write('vvedite xmax:');
input(xmax);
write('vvedite step:');
input(dx);
write('vvedite tochnost:');
input(eps);

tab (xmax,x,c);

readkey;
END.


p.s. Michael_Rybak, спсиб за плюсы smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #13


просто человек
******

Группа: Пользователи
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


странную вещь ты сотворил....
зачем - я не поняла. я ж вроде выложила полную работающую программку, без лишних глобальных переменных... без НЕИСПОЛЬЗУЮЩИХСЯ переменных (а у тебя и такие есть).
ну взял бы подпрограмму arctg у volvo ... но брать описание переменных в его версии, а все остальное - в моей... оригинально.


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 28.03.2024 17:23
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name