Точки разрыва - Turbo Pascal
Формулировка задачи:
Программа не выполняется из-за точек разрыва функции,как их исключить?
Решение задачи: «Точки разрыва»
textual
Листинг программы
uses crt;
var x,y,h:real;
k:integer;
begin
clrscr;
x:=0;
h:=pi/20;
k:=0;
while x<4*pi do
begin
if(x<=0)or(cos(sqrt(x))<=0)or(cos(1/3*ln(x))<=0)
then writeln('x=',x:4:2,' y не определено')
else
begin
y:=exp(4*ln(cos(sqrt(x))))-exp(3*ln(cos(1/3*ln(x))))-sqr(cos(exp(1/4*ln(x))));
writeln('x=',x:4:2,' y=',y:8:4);
end;
k:=k+1;
if k mod 20=0 then
begin
write('Нажмите Enter для продолжения');
readln;
end;
x:=x+h;
end;
readln;
end.
Объяснение кода листинга программы
Этот код написан на языке Turbo Pascal и выполняет следующие действия:
- Инициализирует переменные x, y и h значениями 0, пи/20 и 0 соответственно.
- Очищает экран.
- В цикле while, пока значение x меньше 4*пи, выполняет следующие действия:
- Проверяет условие: если x меньше или равно 0, или cos(sqrt(x)) меньше или равно 0, или cos(1/3*ln(x)) меньше или равно 0, то выводит сообщение 'x=', значение x в формате 4p2, и строку ' y не определено'.
- Если условие не выполняется, то вычисляет значение y по формуле exp(4ln(cos(sqrt(x)))), exp(3ln(cos(1/3ln(x)))), sqr(cos(exp(1/4ln(x)))), и выводит значения x и y в формате 4p2 и 8p4 соответственно.
- Увеличивает значение k на 1.
- Если значение k делится на 20 без остатка, то выводит сообщение 'Нажмите Enter для продолжения' и считывает ввод пользователя.
- После завершения цикла, выводит сообщение 'Нажмите Enter для выхода'.