Pascal. Функции.
Здравствуйте. Помогите пожалуйста с задачей на Паскале.
Используя пошаговую детализацию, спроектировать схему алгоритма вычисления сложной функции, при заданных значениях a,b,x.
Задание.
Составить алгоритм табулирования функции y=f(a,b,x) из предыдущего задания, если параметр х изменяется от -0,5 до 2,5 с шагом 0,5, параметр а изменяется от 0,1 с постоянным шагом 0,2 до 1,9, а переменная b=sqrt((1+a)/(1+x)) (Корень квадратный из числа (1+a)/(1+x)
См. Фото, b - это тоже переменная..
Вот есть свои наработки, но проблема с выводом ответа: должно выводиться некое подобие таблицы, где описаны изменения х,а,у.
Код:
var x,a,b,hx,x0,ha,y,ao,xn,an:real;
begin
clrscr;
writeln('vvedite x0 '); readln(x0);
writeln('vvedite a0 '); readln(ao);
Writeln('vvedite ha'); readln(ha);
writeln('vvedite hx'); readln(hx);
writeln('vvedite xn '); readln(xn);
writeln('vvedite an '); readln(an);
writeln('vvedite B '); readln(b);
clrscr;
a:=ao;
writeln(''); writeln('');writeln('');writeln('') ;writeln('');writeln('');
writeln(''); writeln('');writeln('');writeln('') ;writeln('');writeln('');
writeln(''); writeln('');writeln('');
write(' x ||');
write(' a ||');
writeln(' y ||'); a:=ao;
repeat begin
x:=x0;
repeat begin
if x<0 then y:=(sqr(a)+sqr(b)*x)/sqrt(1+a) else y:=sqr(sqr(a)+sqr(b));
if x>0 then begin
if x<1 then y:=ln(x)/(sqr(x)+sqr(b)) else y:=sqrt(x*(sqr(a)+sqr(b)));
write(x:4:2,'||');
write(a:4:2,'||');
write(y:3:2,'||');
writeln('');
x:=x+hx;
end;
end;
until x>xn;
{x:=x+hx;} a:=a+ha;
end;
until a>an;
writeln('===================');
repeat until keypressed;
end.
Здравствуйте. Помогите пожалуйста с задачей на Паскале.
Используя пошаговую детализацию, спроектировать схему алгоритма вычисления сложной функции, при заданных значениях a,b,x.
Задание.
Составить алгоритм табулирования функции y=f(a,b,x) из предыдущего задания, если параметр х изменяется от -0,5 до 2,5 с шагом 0,5, параметр а изменяется от 0,1 с постоянным шагом 0,2 до 1,9, а переменная b=sqrt((1+a)/(1+x)) (Корень квадратный из числа (1+a)/(1+x)
См. Фото, b - это тоже переменная..
Вот есть свои наработки, но проблема с выводом ответа: должно выводиться некое подобие таблицы, где описаны изменения х,а,у.
Код:
var x,a,b,hx,x0,ha,y,ao,xn,an:real;
begin
clrscr;
writeln('vvedite x0 '); readln(x0);
writeln('vvedite a0 '); readln(ao);
Writeln('vvedite ha'); readln(ha);
writeln('vvedite hx'); readln(hx);
writeln('vvedite xn '); readln(xn);
writeln('vvedite an '); readln(an);
writeln('vvedite B '); readln(b);
clrscr;
a:=ao;
writeln(''); writeln('');writeln('');writeln('') ;writeln('');writeln('');
writeln(''); writeln('');writeln('');writeln('') ;writeln('');writeln('');
writeln(''); writeln('');writeln('');
write(' x ||');
write(' a ||');
writeln(' y ||'); a:=ao;
repeat begin
x:=x0;
repeat begin
if x<0 then y:=(sqr(a)+sqr(b)*x)/sqrt(1+a) else y:=sqr(sqr(a)+sqr(b));
if x>0 then begin
if x<1 then y:=ln(x)/(sqr(x)+sqr(b)) else y:=sqrt(x*(sqr(a)+sqr(b)));
write(x:4:2,'||');
write(a:4:2,'||');
write(y:3:2,'||');
writeln('');
x:=x+hx;
end;
end;
until x>xn;
{x:=x+hx;} a:=a+ha;
end;
until a>an;
writeln('===================');
repeat until keypressed;
end.