Цитата:
Сообщение от Alexei18
конешно потерплю, спасибо большое!!!
|
Ну, поехали.
Прежде всего, выражаю своё КРАЙНЕЕ неудовольствие Вашей неряшливостью при выкладывании задания. Откуда вдруг взялся параметр b? Что за b? Ну ладно, будем считать, что b - это x.
Для решения задачи нам нужно запрограммировать целый ряд функций. Функция - это в какой-то мере автономный раздел программы, и пишется строго по определенным правилам. Она содержит название (заголовок), перечень формальных параметров с указанием их форматов, а также формат результата, т.е. значения самой функции. Это всё - содержимое первой строки. Далее, как и в программе, там при необходимости вводится раздел описания внутренних (служебных) переменных - они существуют только внутри функции, основная программа их не видит - и, собственно, тело функции, заключенное в операторные скобки begin-end. При обращении к функции из программы на место формальных параметров подставляются фактические, причем в том же количестве, в тех же форматах и в том же порядке, что и формальные. А теперь посмотрите, что Вы написали... Итак, нам понадобятся:
1. Функция ArcCos, потому что в состав стандартных функций Паскаля она не входит.
2. Функция нахождения максимального из двух чисел. Вообще-то нам понадобится выбор максимального из трех значений, и можно написать и такую функцию, но это будет довольно громоздко, поэтому в программе делается так: сравниваются два числа, а потом максимальное из них сравнивается с третьим.
3. Все три математических выражения в фигурных скобках тоже удобно оформить в виде функций.
Теперь, собственно, смысл задания. Составляем таблицу, причем договоримся, что строки соответствуют значениям х, а столбцы - значениям а. На пересечениях поместим максимальные значения из трех функций, вычисленных при данных х и а. В конце поставим readln, чтобы приостановить выполнение программы и посмотреть на результат.
Код:
Const
An=0.3;
Ak=0.7;
Xn=0.1;
Xk=0.2;
m=3;
n=2;
Var
i,j:byte;
W,Ha,Hx,a,x:real;
Function ArcCos(X:real):real;
begin
if X=1 then ArcCos:=0 else
if X=-1 then ArcCos:=Pi else
ArcCos:=(Pi/2)-ArcTan(X/SQRT(1-X*X));
end;
Function Max(g1,g2:real):real;
begin
if g1>g2 then Max:=g1 else Max:=g2;
end;
Function F1(a1,x1:real):real;
begin
F1:=ArcTan(a1*x1)*3;
end;
Function F2(a2,x2:real):real;
begin
F2:=Sqrt(Sqr(a2)+Sqr(x2));
end;
Function F3(a3,x3:real):real;
begin
F3:=ArcCos(a3+x3/10);
end;
Begin
Ha:=(Ak-An)/m;
Hx:=(Xk-Xn)/n;
Write(' x\a ');
For j:=0 to m do Write((An+Ha*j):7:3);
Writeln;
For i:=0 to n do
begin
Write((Xn+Hx*i):7:3);
For j:=0 to m do
begin
a:=An+Ha*j;
x:=Xn+Hx*i;
W:=Max(Max(F1(a,x),F2(a,x)),F3(a,x));
Write(W:7:3);
end;
Writeln;
end;
Readln
End.