Показать сообщение отдельно
Старый 23.10.2012, 11:11   #7 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от 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.
Изображения
 
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070