Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Delphi, Kylix and Pascal


Ответ
 
Опции темы Опции просмотра
Старый 28.11.2012, 16:57   #1 (permalink)
Аннет
Новичок
 
Регистрация: 28.11.2012
Сообщений: 6
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Очень прошу, помогите, пожалуйста, решить задание курсовой работы по информатике

Задание: разработать схему алгоритма, составить программу на Pascal "вычисление таблицы значений функции".
Y = f(x,A,B) - представлена в виде системы:
tg (ax/b), при x<1
(sqrt((a^2)*(x^4)+b^2))/x^3, иначе

При заданных изменениях значение аргумента X и параметра A.
Аргумент Х: Xn, Dx, N; Параметр A: An, Ak, Da,
где Xn(An), Xk(Ak) - начальные и конечные значения аргумента; Dx(Da) - шаг изменения аргумента (параметра); N - число значений аргумента (параметра), изменяемого от значения Xn(An) с шагом Dx(Da).
Параметр B принимает значение численно равное интегралу f(x) = (x^2+x+2)^2*cos(2*x); предел интегрирования: a=2,51; b=-0,69
Аннет вне форума   Ответить с цитированием

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

Предлагаю вам почитать схожие темы

Пожалуйста, помогите решить простую задачу по информатике в FORTRAN про массив
Очень сложное задание, кто сможет помогите
Помогите решить домашнее задание по электронике
Помогите с паскалем очень прошу
Нужно решить формулу по информатике

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

Цитата:
Сообщение от Аннет Посмотреть сообщение
f(x) = (x^2+x+2)^2*cos(2*x)
Косинус в показателе или множитель? Вы бы хоть скобки поставили...
Vladimir_S вне форума   Ответить с цитированием
Старый 28.11.2012, 22:53   #3 (permalink)
Аннет
Новичок
 
Регистрация: 28.11.2012
Сообщений: 6
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Извините за ошибку)))...
косинус множитель....
Помогите пожалуйста, три недели бьюсь на этим заданием....
Аннет вне форума   Ответить с цитированием
Старый 29.11.2012, 10:11   #4 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Аннет Посмотреть сообщение
Извините за ошибку)))...
косинус множитель....
Помогите пожалуйста, три недели бьюсь на этим заданием....
Если косинус - множитель, то интеграл спокойно берется "по частям" аналитически. Дальше осталось запрограммировать вывод значений функции двух переменных в виде таблицы с предварительным заданием границ и шагов. Такие задачи здесь рассматривались неоднократно, например Помогите, пожалуйста, написать на Паскале программу "Циклический алгоритм" . Что именно не получается?
Vladimir_S вне форума   Ответить с цитированием
Старый 29.11.2012, 13:55   #5 (permalink)
Аннет
Новичок
 
Регистрация: 28.11.2012
Сообщений: 6
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Если честно, вообще ничего не получается).....уже так запуталась, что вообще "соображалка" не работает.....
Ну вот как нам объяснили это задание......даже просто по составлению алгоритма: алгоритм должен включать в себя главную программу и процедуры.
В начале считаем параметр B через вычисление интеграла...Я показала вот такую программку:
Program G;
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.
Мне сказали, что вообще не правильно.....интеграл необходимо рассчитывать методом трапеции.
После этого мы должны взять массив, в котором должны включить циклический процесс для прокрутки параметра A с аргументом X....
Я что-то вот из таких объяснений не совсем понимаю как нужно полностью оформить эту программу....
Очень надеюсь на вашу помощь....сегодня вечером уже сдавать.....Просто молю о помощи!)
Аннет вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 29.11.2012, 14:10   #6 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Аннет Посмотреть сообщение
Мне сказали, что вообще не правильно
Да, вероятно. Потому что я вообще не понимаю смысла Ваших действий. Правильно ли я вижу подынтегральную функцию?
[(x² + x + 2)²]*Cos(2x). Так?
Цитата:
Сообщение от Аннет Посмотреть сообщение
интеграл необходимо рассчитывать методом трапеции.
Численно считать берущийся интеграл?! Ну что за бред...
Vladimir_S вне форума   Ответить с цитированием
Старый 29.11.2012, 14:28   #7 (permalink)
Аннет
Новичок
 
Регистрация: 28.11.2012
Сообщений: 6
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

да подынтегральная функция именно такая....
я не знаю, что это за бред....у нас вообще не предмет, а полная неразбериха...Нам даже Pascal толком не объяснили...как с ним работать....Дали и сказали решайте...
Я в полном отчаянии((((.....
Аннет вне форума   Ответить с цитированием
Старый 29.11.2012, 14:40   #8 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Аннет Посмотреть сообщение
да подынтегральная функция именно такая....
я не знаю, что это за бред....у нас вообще не предмет, а полная неразбериха...Нам даже Pascal толком не объяснили...как с ним работать....Дали и сказали решайте...
Я в полном отчаянии((((.....
Ладно-ладно, спокойно, без паники. Постараюсь Вам помочь. Хотя, на будущее, брать нас за горло типа "мне сегодня сдавать!" - последнее дело. Я, между прочим, на работе, а Вы просите написать курсовую, которая Вам явно не вчера была дана - то есть побросайте все дела и пишите. Хорошо, не буду больше ворчать. Попробую.
Vladimir_S вне форума   Ответить с цитированием
Старый 29.11.2012, 14:41   #9 (permalink)
Аннет
Новичок
 
Регистрация: 28.11.2012
Сообщений: 6
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

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

Вроде так:
Код:
Var
 b,Xn,Dx,An,Ak,Da,a,x:real;
 i,j,Nx,Na:Integer;

Function Trapezium:real;
 const
  Eps=0.00001;
  a=2.51;
  b=-0.69;

 var
  i,N:Integer;
  Sum1,Sum2,h:Real;

 function F(q:real):real;
  begin
   F:=Sqr(Sqr(q)+q+2)*Cos(q*2);
  end;

 begin
  N:=10;
  h:=(b-a)/N;
  Sum1:=(F(a)+F(b))/2*h;
  for i:=1 to N-1 do
   Sum1:=Sum1+h*F(a+h*i);
  Sum2:=Sum1;
  Repeat
   Sum1:=Sum2;
   N:=N*2;
   h:=(b-a)/N;
   Sum2:=(F(a)+F(b))/2*h;
   for i:=1 to N-1 do
    Sum2:=Sum2+h*F(a+h*i);
  Until ABS(Sum2-Sum1)<Eps;
  Trapezium:=Sum2;
 end;

Function FU(xf,af:real):real;
 begin
  If xf<1 then
   FU:=Sin(af*xf/b)/Cos(af*xf/b)
  else
   FU:=SQRT(Sqr(af)*Sqr(Sqr(xf))+Sqr(b))/(xf*xf*xf);
 end;

Begin
 b:=Trapezium;
 Writeln('b= ',b:0:3);
 Write('Xn= ');
 Readln(Xn);
 Write('Dx= ');
 Readln(Dx);
 Write('N= ');
 Readln(Nx);
 Write('An= ');
 Readln(An);
 Write('Ak= ');
 Readln(Ak);
 Write('Da= ');
 Readln(Da);
 Na:=Round(Abs((Ak-An)/Da));
 Writeln;
 Write('  x\a  ');
 For j:=0 to Na do Write((An+Da*j):7:3);
 Writeln;
 For i:=0 to Nx do
  begin
   Write((Xn+Dx*i):7:3);
   For j:=0 to Na do
    begin
     a:=An+Da*j;
     x:=Xn+Dx*i;
     Write(FU(x,a):7:3);
    end;
   Writeln;
  end;
 Readln
End.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

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

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

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

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




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

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