shrederdron
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору var da,an,ak,aa,b1:integer; I,N,m,j:integer; x: array [1..50] of integer; y: array [1..50,1..50] of real; function proc(x,a,b:real): real; var y:real; begin if (x>0) and (x<2) then y:=a*sin(b*x)*sin(b*x)*sin(b*x) else y:=sqr(a)-cos(x*x); writeln(' x=',x:4:4,' a=',a:4:4,' b=',b:4:4,' y=',y); proc := y; end; function BB:real; var c,d,f,e:real; begin c:=0; d:=8; e:=0.001; f:=(c+d)/2; while abs(d-c)>e do begin if (sin(c)+c-1)*(sin(f)+f-1)<0 then d:=f else c:=f; f:=(c+d)/2; end; BB:=(c+d)/2; end; begin writeln('введите M'); readln(M); for i:=1 to m do begin writeln('введите X[',i,']:'); read(x[i]); end; writeln('введите A начальное, N, D(A)'); readln(An,n,DA); b1:=bb; for i:=1 to m do begin aa:=an; for j:=1 to n do begin y:=proc(x[i],aa,b1); aa:=aa+da; end; end; end. вот вроде сделал. но выдает ошибку связанную с тем, что типы переменных разные... подскажите какие типы можно заменить ? Добавлено: а конкретно где B1:BB пишет "попытка присвоить переменной типа INTEGER выражение типа REAL" как это можно избежать ? |