Вычислить и вывести на экран в виде таблицы значения функции, заданной графически - Free Pascal (932)
Формулировка задачи:
Вычислить и вывести на экран в виде таблицы значения функции, заданной графически, на интервале Хнач до Хкон с шагом dx. Интревал и шаг вводить с клавиатуры. Таблицу снабдить заголовком и шапкой,
Решение задачи: «Вычислить и вывести на экран в виде таблицы значения функции, заданной графически»
textual
Листинг программы
var x, dx, sx, ex: real;
i: integer;
begin
writeln('Enter margins:');
write('x1 = '); readln(sx);
write('x2 = '); readln(ex);
repeat
write('Step = '); readln(dx);
if dx = 0 then writeln('Enter non-zero step!')
until dx <> 0;
if sx > ex
then begin
x := sx;
sx := ex;
ex := x
end;
if dx < 0 then dx := -dx;
writeln('Tabulation of function:');
writeln(' | -x - 2, if -3 <= x < -2');
writeln(' | sqrt(1 - sqr(x + 1)), if -2 <= x < -1');
writeln('y = | 1, if -1 <= x < 1');
writeln(' | 3 - 2 * x, if 1 <= x < 2');
writeln(' | -1, if 2 <= x <= 5');
writeln(' | undefined, otherwise');
writeln('+---------+---------+');
writeln('| x | y |');
writeln('+---------+---------+');
for i := 0 to round(abs(ex - sx) / dx) do
begin
x := sx + dx * i;
write('|', x:9:3, '|');
if (-3 <= x) and (x < -2)
then write(-x - 2:9:3)
else if (-2 <= x) and (x < -1)
then write(sqrt(1 - sqr(x + 1)):9:3)
else if (-1 <= x) and (x < 1)
then write(1.0:9:3)
else if (1 <= x) and (x < 2)
then write(3 - 2 * x:9:3)
else if (2 <= x) and (x <= 5)
then write(-1.0:9:3)
else write('undefined');
writeln('|')
end;
write('+---------+---------+');
readln
end.
Объяснение кода листинга программы
- В первой части кода объявляются переменные и происходит ввод значений с помощью функции readln.
- Вторая часть кода занимается расчетом значений функции и формированием таблицы.
- Если интервал изменения x не подходит под условие -3 <= x < -2, то выводится значение -x - 2.
- Если интервал изменения x не подходит под условие -2 <= x < -1, то выводится значение sqrt(1 - sqr(x + 1)).
- Если интервал изменения x не подходит под условие -1 <= x < 1, то выводится значение 1.
- Если интервал изменения x не подходит под условие 1 <= x < 2, то выводится значение 3 - 2 * x.
- Если интервал изменения x не подходит под условие 2 <= x <= 5, то выводится значение -1.
- Если интервал изменения x не подходит ни под одно из условий, то выводится значение
undefined. - С помощью цикла for происходит вывод значений функции в виде таблицы.
- Значение x округляется до трех знаков после запятой с помощью функции round.
- Для каждого значения x вычисляется соответствующее значение y.
- Выводится шапка таблицы.
- Выводится сетка таблицы.
- Таблица выводится на экран.
- Ввод данных с помощью функции readln прекращается командой readln.