Автор Тема: Помогите с программой в паскале  (Прочитано 5313 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Walker

  • Пользователь
  • **
  • Сообщений: 30
    • Просмотр профиля
Помогите с программой в паскале
« : 13 Апреля 2011, 00:28:40 »
Задание
1)составить алгоритм и программу вычисления функций
\( f(x)=\begin{cases}
 & \text 2sin\frac{3x}{4} , \: if \:  x\leq \frac{\pi }{2}  \\
 & \text (\frac{x}{2})\tan \frac{x+1}{3} , \: if\:   x> \frac{\pi }{2}
\end{cases} \)
2)в тех случаях,когда тангенс не имеет значений, вывести сообщение "функции не существует".

меня интересует вопрос как выполнить вторую часть задания?

программа получилась следующая

Program T;
var
x,f:real;
begin {T}
write('vvedite zna4enie x=');
ReadLn(x);
if x<=Pi/2 then f:=2*sin((3*x)/4);
if x>Pi/2 then f:=(x/2)*(sin((x+1)/3)/cos((x+1)/3));
writeln('f=',f);
end. {T}

Оффлайн Selyd

  • Старожил
  • ****
  • Сообщений: 408
    • Просмотр профиля
Re: Помогите с программой в паскале
« Ответ #1 : 14 Апреля 2011, 18:42:12 »
Задание
1)составить алгоритм и программу вычисления функций
\( f(x)=\begin{cases}
 & \text 2sin\frac{3x}{4} , \: if \:  x\leq \frac{\pi }{2}  \\
 & \text (\frac{x}{2})\tan \frac{x+1}{3} , \: if\:   x> \frac{\pi }{2}
\end{cases} \)
2)в тех случаях,когда тангенс не имеет значений, вывести сообщение "функции не существует".
меня интересует вопрос как выполнить вторую часть задания?
программа получилась следующая
Program T;
var
x,f:real;
begin {T}
write('vvedite zna4enie x=');
ReadLn(x);
if x<=Pi/2 then f:=2*sin((3*x)/4);
if x>Pi/2 then f:=(x/2)*(sin((x+1)/3)/cos((x+1)/3));
writeln('f=',f);
end. {T}

if x<=Pi/2 then f:=2*sin((3*x)/4);
Вставь проверку кратности Х периоду тангенса - (Х-Pi/2)/Pi должно быть целым.
И его пропускай. Пробно проверь, чтобы проверка работала.

if x>Pi/2 then f:=(x/2)*(sin((x+1)/3)/cos((x+1)/3));





Оффлайн Walker

  • Пользователь
  • **
  • Сообщений: 30
    • Просмотр профиля
Re: Помогите с программой в паскале
« Ответ #2 : 20 Апреля 2011, 02:25:14 »
А можешь поподробнее объяснить каким образом проверку сделать? А то я мало в паскале понимаю :)

Оффлайн Selyd

  • Старожил
  • ****
  • Сообщений: 408
    • Просмотр профиля
Re: Помогите с программой в паскале
« Ответ #3 : 20 Апреля 2011, 22:59:49 »
Там есть функции выделения целой и дробной части.
Период тангенса Pi, от нуля смещение Pi/2.
Надо проверять (Х-Pi/2)/Pi.
Выделяешь целую С=[(Х-Pi/2)/Pi], потом если C*Pi=(Х-Pi/2)/Pi обходишь
goto L
if x>Pi/2 then f:=(x/2)*(sin((x+1)/3)/cos((x+1)/3));
L:
Может на всякий случай стоит поставить проверку в виде
if abs(C*Pi=(Х-Pi/2)/Pi)<0.001
Попадание в точку может гулять немножко.
Разбери функции выделения целой и дробной частей действительных чисел.
Удачи!