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

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

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

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

Pascal RGR

  • Автор темы Автор темы Rume
  • Дата начала Дата начала

Rume

Новые
Регистрация
7 Дек 2011
Сообщения
39
Реакции
0
Баллы
0
Добрый вечер.
В общем возникла неприятность, блок схемы для этой ргр я сделал, а вот с программой тупик, т.к. паскаль практически не знаю, а с нашим преподавателем так и не узнаю. Вы последняя надежда, так сказать :)
В общем от меня требуется написать Текст процедуры ввода массива, процедуры табулирования, подпрограммы-функции, процедуры нахождения корня трансцендентного уравнения методом простой итерации, текст процедуры ввода данных.
Текст процедуры ввода массива я написал, текст подпрограммы-функции тоже, с остальным завал.
Вот само задание:
Табулируемая функция f(x, a, b)

tg(ax/b), при x<1
(sqrt(a^2 * x^4 + b^2))/x^3, иначе

Нелинейное уравнение:
Условие задачи:Вычислить первый положительный корень уравнения F(x)=0 с заданной погрешностью E(только прописная) (E=10^(-3) -:- 10^(-6)) на интервале [c, d]

e^cos(0.3x-0.2) - ln(x+2.2)

Изменяемые входные данные:
аргумент Х:
Xn, Dx, N
Параметр А:
An, Ak, Da

Вроде бы все написал
Просто это единственный предмет, из-за которого могу вылететь (причем ни я один), и сдать это нужно завтра(Понимаю, затянул).
Поэтому буду просто нескончаемо благодарен за любую помощь.
 
Сразу скажу - я практически бессилен Вам помочь. Во-первых, я, извините, без понятия, что такое RGR (впервые вижу эту аббревиатуру), что до табулирования функции - должны быть заданы значения параметров a и b, а я их не вижу, во-вторых, методом простой итерации (на самом деле вовсе не простым) я, к сожалению, не владею. Вот если бы просто решить уравнение - пожалуйста, а так... И самое главное, Вы действительно дотянули до последнего, иначе можно было бы попытаться преодолеть указанные трудности. Но увы - сейчас я ухожу из OnLine, буду только завтра утром, и то ненадолго.
Может быть, кто другой возьмется, а я - пас.
Сочувствую.
 
RGR - Расчетно графическая работа
Уравнения решить можно несколькими способами, в задании я просто написал один из них (Если память не подводит есть еще метод Ньютона и еще что-то).
Что касаемо значений а и б - попробую получше само задание посмотреть.
Если все-таки найдется до понедельника свободная минутка - очень прошу, выручите. Пока сам попробую что-либо приблизительно написать, хотя наврят ли выйдет.
 
An Ak - начальное и конечное значение параметра А
Da - шаг изменения
а параметр b нужно вычислить через интеграл в промежутке от a до b f(x)dx
(x^2+x+2)^2 * cos(2x), где пределы интегрирования
a = 2,51
b=-0,69
 
В общем, кто сможет помочь, запнулся на вот таком моменте
Program RumeRgr7
type
Ma=Array[1..20] of real;
My=Array[1..20,1..20] of real;
Mx=Array[1..20] of real;
Er1=Array[1..20] of boolean;
var
Xn, Xk, Dx:real;
a:ma;
I,J,K,N:Integer;
er:er1;
b:real;
Procedure DataIn(N: Integer; var A: ma);
var
I:Integer;
begin
writeln('Vvedite kol-vo elementov massiva');
for I:= 1 to N do
readln(A);
End;
Procedure Tab (B, Xn,Xk, Dx:real; er:er1; a:ma;My:real);
Var
I,J:integer;
X,Y:real;
begin
for J:=1
If J<=k then
a:=Ma[J];
I:=1;
X:=Xn;
Er[J,I]:=0;
Else
End;
repeat
If X<1 then
Y:=(sin(ax/b))/(cos(ax/b))
else if x>0 then
y:=(sqrt(a*a*x*x*x*x+b*b))/(x*x*x)
else Er[J,I]:=1;
Mx:=X; My[J,I]:=Y;
I:=I+1;
X:=X+Dx;
until X>Xk;
end;
end;

Помогите ошибки найти, 1й раз программу пишу)
 
Вы извините за прямоту, но пока что как формулировка задания, так и программа - это некий сумбурный, мутный и невразумительный набор слов и значков. В программе вообще ошибка на ошибке, всё несогласовано, так что пока программу оставим. Задание бы понять.
Итак, требуется протабулировать функцию
Rume_1.webp
Так? Чудесно. Но возникает вопрос о значениях параметров a и b и об интервалах по a, b и x для табуляции. И тут я уже перестаю что-либо понимать. Например:
An Ak - начальное и конечное значение параметра А Da - шаг изменения а параметр b нужно вычислить через интеграл в промежутке от a до b f(x)dx (x^2+x+2)^2 * cos(2x), где пределы интегрирования a = 2,51 b=-0,69
Чему равны An и Ak? Причем тут интеграл? Ну сосчитаю я интеграл в заданных Вами пределах, ну получу число, и что мне с ним делать прикажете - на зиму солить?
В общем, так.
Предлагаю для начала ясно, четко, подробно и однозначно сформулировать задачу. Начнем с задачи о табуляции функции. Чтобы было всё ясно - как считаются и откуда берутся пределы изменений всех параметров. Тогда займемся решением и программой. Если нужно не "вчера", а за выходные, то шанс довести всё это до ума есть.
 
Я смог договориться до понедельника:)
Через интегральное уравнение мы находим параметр "b", пределы интегрирования от 0 до 9. Так, далее.
Теперь что на счет параметра "а". АН,АК,ДА,ХН,ХК,ДХ любые ( можно целые и дробные например 0.2)
 
точнее Пределы интегрирования от 2.51 до -0.69
 
а параметр b нужно вычислить через интеграл в промежутке от a до b f(x)dx (x^2+x+2)^2 * cos(2x), где пределы интегрирования a = 2,51 b=-0,69
Через интегральное уравнение мы находим параметр "b", пределы интегрирования от 0 до 9.
точнее Пределы интегрирования от 2.51 до -0.69
Ну ладно, не хотите толком сформулировать задание - как хотите. В конце концов это Вам нужно, не мне. Видимо, готовитесь к карьере чиновника ЖКХ и отрабатываете технику отписок.
Итак, еще раз. Из приведенных выше цитат вроде бы следует, что требуется сосчитать интеграл
Rume_2.webp
Если так - еще раз повторяю вопрос: раз в интеграле нет никаких параметров, значит он - просто число. Допустим, мы это число определили - что дальше? Как из него извлечь значение параметра b?
Или может быть "интегральное уравнение" имеет вид
Rume_3.webp
где
Rume_1.webp?
Но тогда нужно точно знать а и, главное, наперед заданное значение интеграла - только в этом случае можно определить b. Это так?

В общем, резюмирую. Я искренне хотел Вам помочь, но тащить из Вас клещами каждое слово, да и то получать какие-то отписки, я не могу.
Извините.

P.S. Всё же попробуйте еще раз сформулировать задачу о табуляции, только именно сформулировать с чистого листа, а не пытаться кидать невразумительные краткие уточнения.
 
Так, для более четкой формулировки мне требуется вам фотографии показать, но выложить их могу только на радикале(
 
Ладно, попробуем без фотографий.
Задание слово-в-слово пишу :)
Условие задачи.
Разработать схему алгоритма, составить Pascal-программу и Delphi-проект вычисления таблицы значений функции Y=f(X,A,B) при заданных изменениях значений аргумента X и параметра A. Параметр В принимает значения, численно равное корню нелинейного уравнения или интеграллу.
Обозначения:
Xn (An), Xk (Ak) - начально и конечное значения аргумента (параметра А)
Dx (Da) - шаг изменения аргумента (параметра)
N - число значений аргумента (параметра), изменяемого от значения Xn, (An) с шагом Dx (Da);
M - число значений аргумента (параметра), не зависящих друг от друга.

Изменяемые входные данные:
a)Аргумент X:
Xn, Dx, N
б)Параметр А:
An, Ak, Da
Табулируемая функция f(x,a,b):

tg(ax/b), при х<1
(sqrt(a^2 * x^4 + b^2))/x^3, при х>=1

Нелинейное уравнение.
Условие задачи: вычислить первый положительный корень уравнения F(x)=0 с заданной погрешностью E (E=10^-3 -:- 10^-6) на интервале [c,d]

e^cos(0.3x - 0.2) - ln(x+2.2)
Интервал изоляции [c,d]: 0, 9;

Интеграл
Условие задачи: вычислить приблеженно с заданной погрешностью E (тоже самое) значение определенного интеграла (знак интеграла, а внизу b сверху) f(x)dx

(((x^2)+x+2)^2)*cos(2x)

Пределы интегрирования:
a = 2.51
b = -0.69

Вроде бы все описал. Надеюсь, все внятно описано.:(
 
Вроде бы все описал. Надеюсь, все внятно описано.
Пожалуй. Только еще вопрос - насчет параметра b в задании сказано:
Параметр В принимает значения, численно равное корню нелинейного уравнения или интегралу
и приведено как уравнение, так и интеграл. Это что - на выбор студента?
 
Прошу прощения, что так долго отвечаю, с компьютером проблемы последнее время.

Я вчитался в задание, и вышло так, что уравнение не нужно, нужен только интеграл. У меня в варианте так вычисляется b
 
Я вчитался в задание, и вышло так, что уравнение не нужно, нужен только интеграл.
Ладно, попробуем.
Но сразу предупреждаю - я могу только аналитику и Паскаль. Дельфи-проектов не пишу.
 
Все равно огромное спасибо за помощь и терпение:tehnari_ru_953:
 
Ну, поехали:
Rume_4.webp
(Функции-первообразные выужены из справочника).
Теперь составляем программу для определения значения интеграла, оно же значение параметра В:
Код:
CONST
 a=2.51;
 b=-0.69;
VAR
 y:real;

Function I0(x:real):Real;
begin
 I0:=0.5*Sin(x*2);
end;

Function I1(x:real):Real;
begin
 I1:=Cos(x*2)/4+x*Sin(x*2)/2;
end;

Function I2(x:real):Real;
begin
 I2:=x/2*Cos(x*2)+(sqr(x)/2-0.25)*Sin(x*2);
end;

Function I3(x:real):Real;
begin
 I3:=(sqr(x)*0.75-0.375)*Cos(x*2)+(x*sqr(x)/2-0.75*x)*Sin(x*2);
end;

Function I4(x:real):Real;
begin
 I4:=sqr(sqr(x))*Sin(x*2)/2-2.0*((sqr(x)*0.75-0.375)*Sin(x*2)-(x*sqr(x)/2-x*0/75)*Cos(x*2));
end;

BEGIN
 y:=(I4(b)+I3(b)*2+I2(b)*5+I1(b)*4+I0(b)*4)-(I4(a)+I3(a)*2+I2(a)*5+I1(a)*4+I0(a)*4);
 Writeln('B= ',y:8:5);
 Readln;
END.
Запускаем и получаем: В = 31.39329.

Продолжение следует.
 
такс, с паскалем проблема вышла, сейчас перекачаю - проверим (ну на всякий пожарный :) )
 
Толи вирус какой, толи еще что, вчера нормально все открывал, а сейчас нажимаю на опен - выдает ошибку ntvdm.exe - обнаружена ошибка((
 
все, проверил - все нормально)) благодарю)
 
Назад
Сверху