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

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

Форум «Всё о Паскале» _ Задачи _ Одномерные массивы

Автор: Needhelp 26.04.2007 23:41


const
n = 10;
type
dimen = array[1..n] of Real;
var
D,S: dimen;
i,j : Integer;
a,b,y,h,x,q,l: Real;
Procedure massiv;
begin
for i:=1 to n do
begin
D[i]:=a+(i-1)*h;
end;
for j:=1 to n do
begin
x:=a+(j-1)*h;
y:=sin(x)+1/x;
q:=exp(2*ln(cos((x*x*x)/((x*x)-4))));
l:=exp(2*ln(sin((x*x*x)/((x*x)-4))));
S[j]:=y/-(exp(1/3*ln(l/q)));
end;
end;
begin
WriteLn('a');
Readln(a);
WriteLn('b');
ReadLn(b);
h:=(b-a)/(n+1);
massiv;
for i:=1 to n do
Write(D[i]);
for j:=1 to n do
Write(S[j]);
end.



При вводе a=4 и b=6...выдает ошибку (плав. точка) в этой строке "l:=exp(2*ln(sin((x*x*x)/((x*x)-4))))" ...
Тормознул...в общем я тут))

Автор: Tan 26.04.2007 23:45

Как ты считаешь, чтобы помоч тебе, нам стоит знать задание ? Или его можно придумать ?

Автор: Needhelp 26.04.2007 23:58

Цитата(Tan @ 26.04.2007 20:45) *

Как ты считаешь, чтобы помоч тебе, нам стоит знать задание ? Или его можно придумать ?

Задание специально не писал (просто, пока только часть задания)...Массив D[i] по формуле D[i]:=a+(i-1)*h, а массив S[j] по 2м:
1)x:=a+(j-1)*h;
2)S[i]:=(sin(x)+(1/x))/-(exp(1/3*ln(exp(2*ln(sin((x*x*x)/((x*x)-4))))/exp(2*ln(cos((x*x*x)/((x*x)-4))))))); (как видишь они связаны между собой)

Автор: volvo 27.04.2007 0:04

Цитата
выдает ошибку (плав. точка) в этой строке

Ln от отрицательного аргумента не определен, вот и выдает ошибку ...

Добавлено через 2 мин.
Можно было просто сделать sqr(...), а не так вычислять квадрат?

Автор: Needhelp 27.04.2007 0:12

Цитата(volvo @ 26.04.2007 21:04) *

Ln от отрицательного аргумента не определен, вот и выдает ошибку ...

Добавлено через 2 мин.
Можно было просто сделать sqr(...), а не так вычислять квадрат?

yes2.gif Ага!!! можно...сразу не подумал..Спасибо))А то я на "x^a = Exp(a*Ln(x))" сбился wink.gif