Страница 1 из 1

Pascal. процедуры и функции. Помогите плиз отладить программу

Добавлено: 05 дек 2008, 15:44
derhummel
Задание:
1)Описать функцию для определeния f(x,y)
2)Задать конкретные значения s,t и вычислить a,b
3)Описать рекурсивные функции для определения P(i), H(i). Задать значения z и вычислить c.
4)Задать три последовательности случайных чисел N(i), M(j), L(k) и произвести действия над каждым элементом этих последовательностей(N(i), M(j), L(k) кратные трем ===> умножить на a, b и с соответсвенно), используя процедуру(количество элементов i=12, j=11, k=10)!

На экран вывести: a,b,c, заданные и преобразованные последовательности N(i), M(j), L(k)--каждую последовательность чисел вывести в одну строку!!!
p.s. пишет ошибка 200: Division by zero ((((( :confused:
===========================================
uses crt;
type mas= array [1..12] of real;
VAR A,B,C,S,T:REAL;
z:integer;
n, m, l:mas;
FUNCTION F(X,Y:REAL):REAL;
BEGIN
F:=(sqrt(sqr(x)+sqr(y)))*(x+y)
END;
FUNCTION P(i:INTEGER):REAL;
BEGIN
IF i=1 THEN P:=z
ELSE P:=SQRT(ABS(P(I-1)-1))/sqr(P(I-1));
END;
FUNCTION H(i:INTEGER):REAL;
BEGIN
IF i=1 THEN H:=8;
if i=2 THEN H:=12
ELSE H:=cos(H(i-1))-H(i-1);
END;
PROCEDURE D(W:MAS; K:INTEGER; y:real);
VAR P:INTEGER;

BEGIN

RANDOMIZE;
FOR P:=1 TO K DO
BEGIN

W[P]:=RANDOM(100);
WRITE(W[P]:7:2);
begin
if p mod 3=0 then
W[P]:=W[p]*Y;
end;
writeln('Izm:');
FOR P:=1 TO K DO WRITE(W[P]:7:2, ' ');
writeln;
end;
END;

BEGIN
clrscr;
WRITE('VVEDITE ZNACHENIA T & S: ');
READLN(T,S);
A:=F(T,S+5)+F(T+5,S);
B:=F(T,SQR(S))/S+F(SQR(T),S);
WRITEln('A=',A:7:2,'; ','B=',B:7:2);
write('Vvedite z: ');
read(z);
C:=H(9)/P(3)+H(4);
WRITEln('C= ', C:7:2);
writeln('n: ');
d(n, 12, a);
writeln('*******************************');
writeln('m[j]: ');
d(m, 11, b);
writeln;
writeln('*******************************');
writeln('l[k]: ');
d(l, 10, c);
repeat until keypressed;



end. :confused:

Re: Pascal. процедуры и функции. Помогите плиз отладить программу

Добавлено: 10 дек 2008, 20:35
Хыиуду
а что тут удивляться? Значения задаются случайным образом, где-то образовалось деление на ноль, программа встала. Попробуйте выполнять ее по шагам (клавиши F7, F8)