Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.01.2014, 10:27   #1
MATTT
Новичок
Джуниор
 
Регистрация: 05.01.2014
Сообщений: 10
По умолчанию

Вычислить значения функции y=f(x) вещественного аргумента x, исключая точки разрыва. Функция f(x) задана на отрезке [a, b]. Аргумент x изменяется от а до b с шагом h.
y := ((sin(x)*sin(x))/((x*x)-4))+((cos(x)*cos(x)))/((x-3)*(x-5));

Помогите,пожалуйста,а то все делаю и не получается.

Последний раз редактировалось Stilet; 05.01.2014 в 11:59.
MATTT вне форума Ответить с цитированием
Старый 05.01.2014, 10:37   #2
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

А что не получается-то? Вы ваш код покажите и ошибки, которые возникают.
ZX Spectrum-128 вне форума Ответить с цитированием
Старый 05.01.2014, 10:41   #3
MATTT
Новичок
Джуниор
 
Регистрация: 05.01.2014
Сообщений: 10
По умолчанию

Код:
uses
  SysUtils,
  math;

function fx(x: double) : double;
begin
 fx:=(sin(x)*sin(x))/((x*x)-4)+((cos(x)*cos(x))/((x-3)*(x-5))
 var
     a1, b1, d1 : double;
     a2, b2, d2 : double;
     x,y : double;
     flag:integer;
begin
      x:=a1;
if x=2 then begin
writeln('y=vvedite drygoe znachenie'y);read(y);
if x=-2 then begin
writeln('y=vvedite drygoe znachenie'y);read(y);
if x=3 then begin
writeln('y=vvedite drygoe znachenie'y);read(y);
if x=5 then begin
writeln('y=vvedite drygoe znachenie'y);read(y);
end;

begin
 flag:=-20;
 while flag>-20 do
       writeln('Input a1 b1 d1')
       readln( a1, b1, d1);
       writeln('Input a2 b2 d1');
       readln(a2,b2,d2);
       x:=a1;


________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE]
(это кнопочка на панели форматирования с решёточкой #)
Не забывайте об этом!

Модератор.


Код:
uses
  SysUtils;

var
  a, b, h: real;
  x, y: real;

begin
  x := a;
  while x <= b do
  begin
    y := ((sin(x)*sin(x))/((x*x)-4))+((cos(x)*cos(x)))/((x-3)*(x-5));
    writeln('|', x:9:4, '|', y:9:4, '|');
    readln(x,y);
    x := x + h;
    readln(x,y);
     while a=-2  do
     writeln('tochka razriva'y);
     readln(a,y);
     while a=2  do
     writeln('tochka razriva'y);
     readln(a,y);
     while a=3  do
     writeln('tochka razriva'y);
     readln(a,y);
     while a=5  do
     writeln('tochka razriva'y);
     readln(a,y);




end;
ВОТ ДРУГИМ СПОСОБОМ ПОПРОБОВАЛ А ТОЖ ЕРУНДА КАКАЯ-ТО ПОЛУЧАЕТСЯ



________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE]
(это кнопочка на панели форматирования с решёточкой #)
Не забывайте об этом!

Модератор.

Последний раз редактировалось Stilet; 05.01.2014 в 12:00.
MATTT вне форума Ответить с цитированием
Старый 05.01.2014, 10:51   #4
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

Вам функцию в цикле нужно вычислять.
Код:
X:=a;
While x<b do
 Begin
  Y:=
  X:=x+h;
... 
 End;
Примерно так.

Последний раз редактировалось ZX Spectrum-128; 05.01.2014 в 10:54.
ZX Spectrum-128 вне форума Ответить с цитированием
Старый 05.01.2014, 10:53   #5
MATTT
Новичок
Джуниор
 
Регистрация: 05.01.2014
Сообщений: 10
По умолчанию

А КАК УКАЗАТЬ ТОЧКИ РАЗРЫВА? ЧТОБЫ ПРИ ПОДСЧЕТЕ ОНА МНЕ НАПИСАЛА ЭТО В КОНСОЛЕ ,ЧТО ДАННАЯ ТОЧКА ЯВЛЯЕТСЯ ТОЧКОЙ РАЗРЫВА?
MATTT вне форума Ответить с цитированием
Старый 05.01.2014, 10:55   #6
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

Во в второй программе не инициализированы а и b. Сделайте их ввод ДО цикла.
ZX Spectrum-128 вне форума Ответить с цитированием
Старый 05.01.2014, 10:56   #7
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,504
По умолчанию

MATTT, впечатление такое, что это - вообще первое, что вы пытались написать на Паскале.
Я даже не знаю, что посоветовать. У вас все правильно до конца строки
Код:
fx:=(sin(x)*sin(x))/((x*x)-4)+((cos(x)*cos(x))/((x-3)*(x-5)) ; // ; забыли
Все остальное - ничего не понятно.
Хотя бы посчитайте количество begin и end . Вы не поверите, но количества должны совпадать.


PS Я про первый вариант.
type_Oleg вне форума Ответить с цитированием
Старый 05.01.2014, 10:57   #8
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

Там где идет деление на ноль, это и есть точка разрыва. Формулу разделите на две части - выделите отдельно числитель и знаменатель. Если знаменатель равен 0 , это точка разрыва.
ZX Spectrum-128 вне форума Ответить с цитированием
Старый 05.01.2014, 11:02   #9
MATTT
Новичок
Джуниор
 
Регистрация: 05.01.2014
Сообщений: 10
По умолчанию

вообще мало что понимаю)) а экзамен надо сдавать)))

сейчас попробую)

каким лучше способом, или какой вернее?
Код:
uses
  SysUtils;

var
  a, b, h: real;
  x, y: real;

begin
  x := a;
  while x < b do
  begin
  y := ((sin(x)*sin(x))/((x*x)-4))+((cos(x)*cos(x)))/((x-3)*(x-5));
   X:=x+h;
   writeln(x,y);
   readln(x,y);



end;


begin
  { TODO -oUser -cConsole Main : Insert code here }
end;

end.
СДЕЛАЛ ТАК ФОРМА ПОЯВЛЯЕТСЯ И СРАЗУ ИСЧЕЗАЕТ,НЕ ЗАДЕРЖИВАЕТСЯ НА ЭКРАНЕ

Последний раз редактировалось Stilet; 05.01.2014 в 12:03.
MATTT вне форума Ответить с цитированием
Старый 05.01.2014, 11:14   #10
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,504
По умолчанию

Естественно сразу исчезнет. Потому что a, x, b никто не определил. Они скорее всего = 0, поэтому условие во while ни разу не выполняется, и сразу end

Кто-то же должен сообщить программе входные данные - a, b, h. Откуда она их узнает.
Надо же ReadLn(a,b,h), что-то вроде того.
type_Oleg вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вычислить значение функции в Delphi StudentYulia Помощь студентам 21 16.09.2011 21:09
Функции С++, консольное приложение Veselyn Помощь студентам 5 28.12.2009 17:11
Для аргумента Х, изменяющегося от -0.6 с шагом 0.05, вычислить 20 значений функции J@ck Помощь студентам 2 13.05.2009 14:14
Вычислить значение функции на Delphi 7. Miracle01 Помощь студентам 6 02.05.2009 00:35
Вычислить значение функции Y=F(x) для аргумента x, изменяющегося от xн до xк с шагом изменения Hx. dr.Chas Общие вопросы по программированию, компьютерный форум 1 12.12.2008 13:58