Программа с постусловием не правильно считает результат - Pascal
Формулировка задачи:
Добрый день! Согласно задания:
Разработать алгоритм и программу, имеющих структуру цикла с постусловием и осуществляющих табулирование заданной функции при изменении аргумента x от начального значения x0 с постоянным шагом hx , т.е. x = x0 (hx) xn.
Дана сложная функция f(x):
f(x)=
2sin^2(Pi/4 – x/2), если - Pi/2<=x<= - Pi/4
(1-cos2x)/sin2x, если - Pi/4<x< - Pi/8
x/(2+cosx), если - Pi/8<=x<= 0
При других значениях x функция f(x) не определена.
написал программу. Но почему-то при значениях x0=-1.5, шаге hx=0.5 и конечном значении xn=0
программа считает постоянно по первой формуле.
Подскажите пожалуйста что не так.
Огромное спасибо.
{************************************************} {Программа: Tab, лаб.раб. №5, вар.15 } {Цель:табулирование функции y=f(x) с помощью } { оператора цикла с постусловием. } {Описание параметров и переменных: } {x - аргумент функции; } {x0,xn - начальное и конечное значения аргумента;} {hx - шаг изменения аргумента; } {y - значение функции. } {Требуемые подпрограммы: нет. } {Программист: ********** } {Дата написания: 07 иая 2016 г. } {************************************************} Program Tab; Var hx,x,x0,xn,y:Real; Begin {Tab} {Ввод и эхо-печать исходных данных} Writeln('ВНИМАНИЕ! При x<-Pi/2(-1.5707) и x>0 функция f(x) не определена'); Write('x0='); Read (x0); Write('hx='); Read (hx); Write('xn='); Read (xn); Writeln('X0=',x0,' HX=',hx,' XN=',xn); {Табулирование функции} x:=x0; repeat {начало цикла} if(x<-Pi/2) or (x>0) then Writeln('При x=',x:6:4,' функция f(x) не определена') else begin if (x>=-Pi/2) or (x<=-Pi/4) then y:=2*sqr(sin(Pi/4-x/2)) else if (x>-Pi/4) or (x<-Pi/8) then y:=(1-cos(2*x))/sin(2*x) else if (x>=-Pi/8) or (x<=0) then y:=x/(2+cos(x)); Writeln('X=',x,' Y=',y);{эхо-печать} end; x:=x+hx until x>xn+hx/2 {конец цикла} End.{Tab}
Решение задачи: «Программа с постусловием не правильно считает результат»
textual
Листинг программы
if (x>=-Pi/2) and (x<=-Pi/4) then
Объяснение кода листинга программы
- Условие проверки диапазона значений переменной
x
:- Переменная
x
должна быть больше либо равна-Pi/2
и одновременно меньше либо равна-Pi/4
.
- Переменная
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д