Вычислить и вывести на экран в виде таблицы значения функции, заданной графически - Free Pascal (886)
Формулировка задачи:
Здравствуйте!!!
Помогите пожалуйста вычислить и вывести на экран в виде таблицы значения функции, заданной
графически , на интервале от хнач до хкон с шагом dx. Интервал и шаг вводить
с клавиатуры. Таблицу снабдить заголовком и шапкой. Вариант 25
Фото задания тут
ps//Зарание благодарю!Решение задачи: «Вычислить и вывести на экран в виде таблицы значения функции, заданной графически»
textual
Листинг программы
uses crt;
var r,xn,xk,dx,x,y:real;
begin
clrscr;
repeat
write('R>0 R=');
readln(r);
until r>0;
write('Начало интервала xn=');
readln(xn);
repeat
write('Введите конец интервала xk>',xn:0:1,' xk=');
readln(xk);
until xk>xn;
repeat
write('Введите шаг табуляции, положительное число меньше ',xk-xn:0:2,' dx=');
readln(dx);
until (dx<xk-xn)and(dx>0);
writeln('Таблица табулирования функции заданной графически');
writeln(' на интервале ',xn:0:2,' ',xk:0:2,' с шагом ',dx:0:2);
writeln('--------------------');
writeln('| x | y |');
writeln('--------------------');
x:=xn;
while x<=xk+dx/2 do
begin
if x<=-2*r then y:=-0.5*x-r
else if x<=-4*r/3 then y:=x+2*r
else if x<=0 then y:=-0.5*x
else if x<=r then y:=-sqrt(r*r-x*x)
else if x<=2*r then y:=sqrt(r*r-sqr(x-2*r));
if x>2*r then writeln('|',x:6:2,' | y не опр.|')
else writeln('|',x:6:2,' |',y:9:4,' |');
x:=x+dx;
end;
writeln('--------------------');
readln
end.
Объяснение кода листинга программы
- Объявлены переменные: r, xn, xk, dx, x, y (реальные числа).
- Цикл repeat-until считывает значение переменной r (повторяется до тех пор, пока r больше нуля).
- Цикл repeat-until считывает начальное значение переменной xn.
- Цикл repeat-until считывает конечное значение переменной xk.
- Цикл repeat-until считывает шаг табуляции dx (повторяется до тех пор, пока dx меньше xk-xn и больше нуля).
- Выводится заголовок таблицы.
- Выводится шаблон таблицы (две колонки: x и y).
- Вычисляется значение переменной x (используется цикл while).
- В зависимости от значения x вычисляется значение переменной y (используется условный оператор if).
- Если x больше 2*r, то выводится сообщение
y не опр.вместо значения y. - Выводится значение x и y (используется цикл while).
- Значение x увеличивается на шаг dx.
- Цикл while повторяется до тех пор, пока x меньше или равно 2*r.
- Выводится нижняя строка таблицы.
- Запрос на чтение (readln).