
Другие языки программирования и технологии
Паскаль. For, while, repeat, until, min/max, div/mod.

А функция как должна работать? Аргумент должен в неё передаваться, а она сама должна определять соответствует ли он её области определения? Тогда можно так:
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.
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.
if 2*x+3 >=0 then y:=sqrt( 2*x+3);
Константин Гуськов
Ты просто преобразовал пример так, как он должен выглядеть в паскале и добавил if, а мне нужно код, который решает его. Если бы ты внимательно прочитал задание, которое написано на картинке ты бы это понял.
Алексей Осинцев
За работу надо платить, за помощь -благодарить
Похожие вопросы
- Информатика. Что такое счетчик *i* в паскале у операторов for,while,repeat, его роль и как с ним работать? Спасибо
- Составьте программу, отыскивающую наибольший элемент массива A(N) из числа принадлежащим интервалу {min,(min+max\2))
- решите, пожалуйста, задачу на языке с с помощью циклов (for, while, do...while)
- Сколько всего существует еще циклов, кроме for, while, do while ???
- Паскаль. Цикл While. Определить остаток от деления большего числа а на меньшее число b, не используя стандартные функции
- ЧТо делает Div и Mod в Паскале ?
- дан массив целых чисел F1,F2...Fn. распечатать элементы, нах-ся между min и max и их номера. подскажите где я ошибся
- for и while всегда обрабатывают формулы? С++
- Написать max и min в с++
- Азы C++: "while" заменяем на "for"