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

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

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

> Помогите разобраться с переменными в 2-х процедурах.
Jack K.
сообщение 10.05.2007 21:26
Сообщение #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. - 10.05.2007 21:31
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
мисс_граффити
сообщение 18.06.2007 22:17
Сообщение #2


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

Группа: Модераторы
Сообщений: 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.


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


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

Сообщений в этой теме


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

 



- Текстовая версия 10.05.2024 23:57
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"