|
|
Опции темы | Опции просмотра |
22.10.2012, 19:02 | #1 (permalink) |
Member
Регистрация: 22.10.2012
Сообщений: 32
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Помогите, пожалуйста, написать на Паскале программу "Циклический алгоритм"
An=0.3 , Ak=0.7 , Xn=0.1 , Xk=0.2 , m=3 , n=2 W=max{3*arctg(ax);√(a^2+b^2 );arcos(a+ x/10)} An≤A≤Ak , Ha=(Ak-An)/m Xn≤X≤Xk, Hx=(Xk-Xn)/n Помогите пожалуйста ни как не могу сделать... |
22.10.2012, 19:02 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Если хотите решить проблемы быстрее - посмотрите аналогичные темы Пожалуйста, помогите написать программу в Паскале. Ребята помогите написать программу на паскале Пожалуйста, помогите написать программу на Паскале |
22.10.2012, 20:23 | #3 (permalink) |
Member
Регистрация: 22.10.2012
Сообщений: 32
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
program lab2;
var A,An,Ak,X,Xn,Xk,Ha,Hx,Hn,Hk,W:real; function max(b,c:real):real; begin if b<c then max:=b; writeln('vvedi An,Ak,Ha'); readln(An,Ak,Ha); writeln('vvedi Xn,Xk,Hx'); readln(Xn,Xk,Hx); writeln('èñõîäíûå äàííûå'); writeln('An=',An:5:2,'Ak=',Ak:5:2); writeln('Xn=',Xn:5:2,'Xk=',Xk:5:2); writeln('Hn=',Hn:5:2,'Hk=',Hk:5:2); writeln('òàáëèöà çíà÷åíèé'); writeln('W':9,'A':9,'X':9); A:=An; repeat X:=Xn; repeat W:=max(3*arctan(a*x));sqrt(sqr(a)+sqr(x));arctan(s qrt(1-sqr(x))/x*(a+x/10)); writeln(W:7:2,A:7:2,X:7:2); X:=X+Hx untilX>Xk; A:=A+Ha untilA>Ak; writeln('Wmax=',Wmax:7:2); writeln('Amax=',Amax:7:2); writeln('Xmax=',Xmax:7:2); end. |
22.10.2012, 20:47 | #5 (permalink) | |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Цитата:
Да... смотрю, Вы ни в задаче, ни в Паскале толком не разобрались. Сейчас вынужден отключиться, если терпит до завтра, попробую объяснить, как решать эту задачу. |
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
23.10.2012, 11:11 | #7 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Ну, поехали.
Прежде всего, выражаю своё КРАЙНЕЕ неудовольствие Вашей неряшливостью при выкладывании задания. Откуда вдруг взялся параметр 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. |
23.10.2012, 16:27 | #10 (permalink) |
Member
Регистрация: 22.10.2012
Сообщений: 32
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
всю хорошо я просто поинтересовался, Огромная вам благодарность!!!, сам бы я такого ни когда не сделал.
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|