Протабулировать функцию - Pascal (80374)
Формулировка задачи:
Помогите решить данное задание
Создать программу табулирования ф-ции z = f (x, y) в прямоугольнику [a, b]x[c, d] с шагом табуляции h
Функция - lg(x+y+sqrt(sqr(x)+sqr(y)))
a=2
b=4
c=1
d=3
h=0.20
Решение задачи: «Протабулировать функцию»
textual
Листинг программы
uses crt;
const a=2;
b=4;
c=1;
d=3;
h=0.2;
function f(x,y:real):real;
begin
f:=ln(x+y+sqrt(sqr(x)+sqr(y)))
end;
var t:array[0..15,0..15] of real;
n,i,j:byte;
begin
n:=round((b-a)/h)+1 ;
for i:=1 to n do
t[i,0]:=a+(i-1)*h;
for i:=1 to n do
t[0,i]:=c+(i-1)*h;
for i:=1 to n do
for j:=1 to n do
t[i,j]:=f(t[i,0],t[j,0]);
for i:=1 to (n+1)*6+2 do write('-');
writeln;
write('| x\y |');
for i:=1 to n do
write(t[0,i]:6:2);
writeln('|');
for i:=1 to (n+1)*6+2 do write('-');
writeln;
for i:=1 to n do
begin
write('|',t[i,0]:5:2,'|');
for j:=1 to n do
if i+j>0 then write(t[i,j]:6:2);
writeln('|');
end;
for i:=1 to (n+1)*6+2 do write('-');
end.
{while x<b+h/2 do
begin
y:=c;
while y<d+h/2 do
begin
write(' x=',x:4:1,' y=',y:4:1,' f=',f(x,y):5:2);
y:=y+h;
end;
writeln;
x:=x+h;
end;
end.
Объяснение кода листинга программы
- Подключение к модулю
crt. - Задание констант:
a=2,b=4,c=1,d=3,h=0.2. - Создание функции
fс аргументамиxиy, возвращающей значение типаreal. В функции вычисляется значение по формулеln(x+y+sqrt(sqr(x)+sqr(y))). - Объявление переменных:
t- двухмерный массив размером 16x16 с типомreal,n,iиj- переменные типаbyte. - Инициализация переменной
nкакround((b-a)/h)+1. - Заполнение первого столбца массива
tзначениями отaдоbс шагомh. - Заполнение первой строки массива
tзначениями отcдоdс шагомh. - Вычисление и заполнение значений массива
tс использованием функцииf. - Вывод горизонтальной черты.
- Вывод заголовка таблицы.
- Вывод горизонтальной черты.
- Обход значений массива
tи вывод их в виде таблицы, а также визуализация границ ячеек таблицы. - Вывод горизонтальной черты.
Код также содержит закомментированную часть с циклами
while, но они в настоящее время отключены из-за использования блок-комментариевcurly brackets.