• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Помогите, пожалуйста, написать на Паскале программу "Циклический алгоритм"

Alexei18

Новые
Регистрация
22 Окт 2012
Сообщения
32
Реакции
0
Баллы
0
Помогите, пожалуйста, написать на Паскале программу "Циклический алгоритм"

Распечатать таблицу значений 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

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

Да... смотрю, Вы ни в задаче, ни в Паскале толком не разобрались.
Сейчас вынужден отключиться, если терпит до завтра, попробую объяснить, как решать эту задачу.
 
конешно потерплю, спасибо большое!!!
 
конешно потерплю, спасибо большое!!!
Ну, поехали.
Прежде всего, выражаю своё КРАЙНЕЕ неудовольствие Вашей неряшливостью при выкладывании задания. Откуда вдруг взялся параметр 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.webp
    AAA01fff.webp
    6.5 KB · Просмотры: 79
это решение всего моего примера???
 
всю хорошо я просто поинтересовался, Огромная вам благодарность!!!, сам бы я такого ни когда не сделал.
 
а можно вас попросить научить меня составить блок схему???
 
а можно вас попросить научить меня составить блок схему???
А вот это, к сожалению, нет: блок-схемами не занимаюсь. Но у нас есть специалисты по ним, подождите, может быть помогут. Или пошарьте по форуму и в Сети: есть какие-то программы, которые их рисуют по листингу, где-то у нас кто-то даже ссылки когда-то давал...
 
спасибо, но к сожелению она мне не помогла(((
 
Блок-схема:
 

Вложения

  • Alexei18_1.webp
    Alexei18_1.webp
    5.1 KB · Просмотры: 274
  • Alexei18_2.webp
    Alexei18_2.webp
    4.8 KB · Просмотры: 164
  • Alexei18_3.webp
    Alexei18_3.webp
    8.6 KB · Просмотры: 629
  • Alexei18_4.webp
    Alexei18_4.webp
    15.3 KB · Просмотры: 408
  • Alexei18_5.webp
    Alexei18_5.webp
    23.5 KB · Просмотры: 414
Ух ты! Класс! Красота неописуемая! Вот здорово, что я блок-схемами не пользуюсь. :D.
P.S. Анжелика, а, это, F3 - не надо? Впрочем, там просто арккосинус.
 

Вложения

  • Alexei18_6.webp
    Alexei18_6.webp
    4.9 KB · Просмотры: 91
Назад
Сверху