Помогите дописать программу на Pascal

Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду

Ответить
ALIZE
Сообщения: 1
Зарегистрирован: 09 дек 2007, 17:38

09 дек 2007, 18:01

y= 2.5*x+4.1*e^x, если 0<=х<=3, или 4*x/21+2*x*x-6, если х>3
при x=(8.6*z)/(z*z+4.1), для zn=1 и zk=6 с шагом 1.
что нужно дописать в программу, чтобы при х<0 выводилось сообщение "у не определён"
Программа:
var z,y,x,zn,zk,dz:real;
begin
write('zn=');readln(zn);
write('zk=');readln(zk);
write('dz=');readln(dz);
z:=zn;
while z<=zk do
begin
x:=(8.6*z)/(z*z+4.1);
if x>=0 then
begin if x<=3 then y:=2.5*x+4.1*exp(x)
else y:=(4+x)/21+2*x*x-6;
end;
writeln('x=',x:5:2,'y=',y:5:2,'z=',z:5:2);
z:=z+dz;
end;
end.
BHy4ok
Сообщения: 229
Зарегистрирован: 01 май 2007, 09:03
Откуда: г.Находка
Контактная информация:

09 дек 2007, 19:45

Поставить условие.
If x<0 then writeln('у не определён'); goto ...
АЛИСА
Сообщения: 1
Зарегистрирован: 09 дек 2007, 19:49

09 дек 2007, 20:41

Нужно решить задачку
Разработать схему алгоритма и составить программу вычисления таблицы значений аргумента X и одного из параметров функции
Второй параметр принимает значение корня нелинейного уравнения.


bsinx
Y= ------------
a корень x+5 корень X

Аргумент XN,XK,DX;
Параметр :N значения A
Уравнение x квадрат ln(x+1,2)=0


Я вот тут сделала но не могу понять почему не правильно заранее спасибо..

Program P1 {Raschetno graficheskya};
type mc=array [1..99] of real;
a=array[1..99] of real;
var x:mc;y:ma;
b,xn,dn,xk,eps:real;
er,km,i,l,q:integer;
Function f1(x:mc;a:mc;l,q:integer):real;
Function f2(a,b,eps,fa,fcf,w,c:real;km,i:integer):real;
Function F(x:real):real;
begin
F:=x*x-ln(x+1.2)
end;
begin
fa:=F(a)
for i:=1 to km do
begin
c:=(a+b)/2; fc:=F(c); w:=abs(fc);
if w>eps then
if fa*fc>0 then a:=c
else b:=c
else
begin b:=c; exit end;
er:=1
end;
begin
if x>0 then
begn f1:=b*sinx[l]/(a[q]*sqrt(x[l]+5sqrt(x[l])))
end;
else er:=1
end;
Procedure proc1(a:mc;l;q:integer;y:ma;xn,xk,dx:real;er:byte);
begin q:=1; a[q]:=a[1];
while q<=N do
begin
l:=1;xn:=x[l];
while x[l]<xk do begin
y[q,l]:=f1(x,a)
end;
x[l]:=x[l-1]+dx;
l:=l+1;
end;
q:=q+1
end;
Procedure proc2(a:mc;N:integer;xn,xk,dx:real;er:byte;y:ma)
begin
if er:=1 then writeln ('Reshenia net')
else begin
for q:=1 to N do
for l:=1 to xk +N/dx do
writeln('x'y[q,l]:7:5);
end;
end;
begin
write('Vvedite znachenia xn;xk;dx;eps;km;a;b');
readln(xn;xk;dx;eps;km;a;b);
write('Vvedite znachenia N'); readln(N);
i:=1
repeat
write('Vvedite znachenia a[',i,']=');
readln(a);
until i>N
y[q,l]:=f1(x,a,q,l);
proc1(a,l,q,y,xn,xk,dx,er);
proc2(a,N,xn,xk,dx,er);
end.
Хыиуду
Сообщения: 2388
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

10 дек 2007, 11:11

Алиса, не надо дублировать свое сообщение в разные темы
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Аватара пользователя
annihilator
Сообщения: 30
Зарегистрирован: 27 ноя 2007, 00:22

10 дек 2007, 20:52

и что это за бред? напиши математическую формулу и диапазон значений, твой код абсолютно нечитабельный
Вот представьте себе: чистое поле - ни кустика, ни деревца, и вдруг из-за угла выезжает танк!
Ответить