Ксения Райт
Гений
(85875)
1 год назад
А функция как должна работать? Аргумент должен в неё передаваться, а она сама должна определять соответствует ли он её области определения? Тогда можно так:
var x, y: real; yes: boolean;
function f(x: real): real; begin if x < -1.5 then
begin yes := false; f := -1000 end else begin
f := x - sqrt(2 * x + 3); yes := true end end;
begin while true do begin write('x = ');
readln(x); y := f(x); if yes then writeln('y(x) = ', y)
else writeln('x ∉ D(y)') end end.
Это если функция ничего особо полезного не делает, а просто принимает аргумент, оценивает его и если аргумент корректный, то вычисляет своё значение при данном аргументе и возвращает его, а оно уже в основной программе выводится на экран, но если аргумент некорректный, об этом выводится сообщение в самой программе. Проверку условия х ∈ D(y) можно, кстати, осуществлять и в самой основной программе, а не в функции, да можно и вообще без функции обойтись, что даже намного проще:
var x: real; begin while true do begin
write('x = '); readln(x); if x >= -1.5 then
writeln('y(x) = ', x - sqrt(2 * x + 3)) else
writeln('Incorrect argument') end end.
Кублен
Оракул
(96990)
1 год назад
if 2*x+3 >=0 then y:=sqrt( 2*x+3);
Дима ЕрымовУченик (212)
1 год назад
Ты просто преобразовал пример так, как он должен выглядеть в паскале и добавил if, а мне нужно код, который решает его. Если бы ты внимательно прочитал задание, которое написано на картинке ты бы это понял.