Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 22.10.2012, 19:02   #1 (permalink)
Alexei18
Member
 
Регистрация: 22.10.2012
Сообщений: 32
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Помогите, пожалуйста, написать на Паскале программу "Циклический алгоритм"

Распечатать таблицу значений W при изменении перменных величин a и x в данных промежутках с данными шагами:
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

Помогите пожалуйста ни как не могу сделать...
Alexei18 вне форума   Ответить с цитированием

Старый 22.10.2012, 19:02
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Если хотите решить проблемы быстрее - посмотрите аналогичные темы

Пожалуйста, помогите написать программу в Паскале.
Ребята помогите написать программу на паскале
Пожалуйста, помогите написать программу на Паскале

Старый 22.10.2012, 19:15   #2 (permalink)
XELFAER
Member
 
Аватар для XELFAER
 
Регистрация: 22.07.2012
Сообщений: 392
Записей в дневнике: 2
Сказал(а) спасибо: 95
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 3462
По умолчанию

что именно не выходит? Покажите ваш пример решения..
XELFAER вне форума   Ответить с цитированием
Старый 22.10.2012, 20:23   #3 (permalink)
Alexei18
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.
Alexei18 вне форума   Ответить с цитированием
Старый 22.10.2012, 20:24   #4 (permalink)
Alexei18
Member
 
Регистрация: 22.10.2012
Сообщений: 32
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

W:=max(3*arctan(a*x)) после этого пишет "ошибка неверное колличество фактических параметров"
Alexei18 вне форума   Ответить с цитированием
Старый 22.10.2012, 20:47   #5 (permalink)
Vladimir_S
Специалист
 
Аватар для Vladimir_S
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 26,357
Сказал(а) спасибо: 289
Поблагодарили 507 раз(а) в 165 сообщениях
Репутация: 91953
По умолчанию

Цитата:
Сообщение от Alexei18 Посмотреть сообщение
W:=max(3*arctan(a*x)) после этого пишет "ошибка неверное колличество фактических параметров"
Естественно! Вы же описали функцию выбора максимальной из ДВУХ величин, а пытаетесь впихнуть ТРИ! Да и функцию Вы недоописали, а бросили на полпути. И к тому же при обращении к функции параметры перечисляются через запятую, а не точку с запятой. В общем - ошибка на ошибке.

Да... смотрю, Вы ни в задаче, ни в Паскале толком не разобрались.
Сейчас вынужден отключиться, если терпит до завтра, попробую объяснить, как решать эту задачу.
__________________
With Mozilla Firefox - straight to communism!
Vladimir_S на форуме   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 22.10.2012, 21:06   #6 (permalink)
Alexei18
Member
 
Регистрация: 22.10.2012
Сообщений: 32
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

конешно потерплю, спасибо большое!!!
Alexei18 вне форума   Ответить с цитированием
Старый 23.10.2012, 11:11   #7 (permalink)
Vladimir_S
Специалист
 
Аватар для Vladimir_S
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 26,357
Сказал(а) спасибо: 289
Поблагодарили 507 раз(а) в 165 сообщениях
Репутация: 91953
По умолчанию

Цитата:
Сообщение от 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.
Миниатюры
aaa01fff.jpg  
__________________
With Mozilla Firefox - straight to communism!
Vladimir_S на форуме   Ответить с цитированием
Старый 23.10.2012, 16:12   #8 (permalink)
Alexei18
Member
 
Регистрация: 22.10.2012
Сообщений: 32
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

это решение всего моего примера???
Alexei18 вне форума   Ответить с цитированием
Старый 23.10.2012, 16:25   #9 (permalink)
Vladimir_S
Специалист
 
Аватар для Vladimir_S
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 26,357
Сказал(а) спасибо: 289
Поблагодарили 507 раз(а) в 165 сообщениях
Репутация: 91953
По умолчанию

Цитата:
Сообщение от Alexei18 Посмотреть сообщение
это решение всего моего примера???
А что Вас так удивляет? Мало? Много? Как задача сформулирована, так и решена.
__________________
With Mozilla Firefox - straight to communism!
Vladimir_S на форуме   Ответить с цитированием
Старый 23.10.2012, 16:27   #10 (permalink)
Alexei18
Member
 
Регистрация: 22.10.2012
Сообщений: 32
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

всю хорошо я просто поинтересовался, Огромная вам благодарность!!!, сам бы я такого ни когда не сделал.
Alexei18 вне форума   Ответить с цитированием
Ads

Яндекс

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

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 14:32.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.