Пожалуйста помогите. Очень надо срочно! Всего лишь нужно найти ошибку. Не пугайтесь...

0 голосов
37 просмотров

Пожалуйста помогите. Очень надо срочно! Всего лишь нужно найти ошибку. Не пугайтесь объема вопроса. Составьте программы на языке
Turbo Pascal с использованием цикла с предусловием, с постусловием,
используя, условный оператор IF.
. Вычислите значения функции У:(картинка).
Решение:
1 способ.
program funk_F1;
var x,t,y:real;
begin
t:=0;
while t<=6 do begin<br> if t<=1 then x:=2*t-6 else<br> if t>=3 then x:=ln(1+t*t) else
x:=sqrt(t)+ln(t);
y:=2.2*exp(4*ln(x))+0.3*x;
writeln('y(',t:2:1, ')=', y:6:2);
t:=t+0.5;
end;
readln;
end.
2 способ.
program funk_F2;
var x,t,y:real;
begin
t:=0;
repeat
if t<=1 then x:=2*t-6 else<br> if t>=3 then x:=ln(1+t*t)else
x:=sqrt(t)+ln (t);
y:=2.2*exp(4*ln(x))+0.3*x;
writeln('y(',t:2:1, ')=', y:6:2);
t:=t+0.5;
until x>6;
readln;
end.
Пишет что в 9 строчке ошибка. В чем она заключается не могу понять.


image

Информатика (39 баллов) | 37 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

Скорее всего, ошибка у Вас получается уже на этапе выполнения программы, потому что синтаксических ошибок нет. Вы напрасно использовали конструкцию exp(4*ln(x)) - в Вашем случае правильнее и эффективнее использовать sqr(sqr(x))
В самом деле, при t=0 значение x=2t-6 будет равно -6, и попытка вычислить логарифм от -6 закончится печально. Полагаю, это и есть причина выдачи сообщения об ошибке, текст которого Вы почему-то не сочли нужным приложить.

(142k баллов)