Вычислить таблицу значений функции U - Free Pascal
Формулировка задачи:
Прошу помочь с решение задачи.Очень нужна ещё блок-схема.Застрял как раз на стадии её построения.Прошу прощение,что картинкой.
Решение задачи: «Вычислить таблицу значений функции U»
textual
Листинг программы
function min(a, b: Real): Real;
begin
if b<a then min:=b else min:=a;
end;
function v(x, y: Real): Real;
var t: Real;
begin
t:=min(exp(1/3*ln(x+y)),sqr(x)+sqr(y));
if x/y=0 then v:=t else v:=min(Cos(x/y),t);
end;
const
bx=0.0; ex=1.0; hx=0.6; by=1.0; ey=2.0; hy=0.7; W=6; D=1;
var
x, y: Real;
dx, dy: Boolean;
begin
{ выводим заголовки колонок }
Write('y\x':W); x:=bx; dx:=True;
repeat
Write(x:W:D); x:=x+hx;
if dx and (x>=ex) then begin
x:=ex; dx:=False;
end;
until x>ex;
WriteLn;
{ выводим таблицу значений }
y:=by; dy:=True;
repeat
Write(y:W:D); x:=bx; dx:=True;
repeat
Write(v(x,y):W:D); x:=x+hx;
if dx and (x>=ex) then begin
x:=ex; dx:=False;
end;
until x>ex;
WriteLn; y:=y+hy;
if dy and (y>=ey) then begin
y:=ey; dy:=False;
end;
until y>ey;
end.
Объяснение кода листинга программы
- Функция
minпринимает два аргумента типаRealи возвращает минимальное значение из них. - Функция
vпринимает два аргумента типаRealи возвращает значение функцииU. - Константы
bx,ex,hx,by,ey,hy,W,Dопределяют параметры таблицы значений функцииU. - Переменные
x,y,dx,dyиспользуются для вычисления и вывода таблицы значений. - В цикле с помощью
Writeвыводятся заголовки колонок таблицы значений. - В цикле с помощью
Writeвыводятся значения функцииUв каждой ячейке таблицы. - После каждой строки таблицы выводится символ
Lnдля перехода на следующую строку. - Параметры
dxиdyиспользуются для контроля переполнения колонок и строк таблицы. - Значения
xиyувеличиваются наhxиhyсоответственно после каждой итерации цикла. - Если
dxиxбольшеex, тоxустанавливается равнымexиdxустанавливается вFalse. - Если
dyиyбольшеey, тоyустанавливается равнымeyиdyустанавливается вFalse. - Циклы повторяются до тех пор, пока
xиyне превысятexиeyсоответственно. - Значение функции
Uвычисляется с помощью функцииvи выводится на экран. - Значения
xиyувеличиваются наhxиhyсоответственно после каждой итерации цикла. - Если
dxиxбольшеex, тоxустанавливается равнымexиdxустанавливается вFalse. - Если
dyиyбольшеey, тоyустанавливается равнымeyиdyустанавливается вFalse. - Циклы повторяются до тех пор, пока
xиyне превысятexиeyсоответственно. - Значение функции
Uвычисляется с помощью функцииvи выводится на экран. - Значения
xиyувеличиваются наhxиhyсоответственно после каждой итерации цикла. - Если
dxиxбольшеex, тоxустанавливается равнымexиdxустанавливается вFalse. - Если
dyиyбольшеey, тоyустанавливается равнымeyиdyустанавливается вFalse. - Циклы повторяются до тех пор, пока
xиyне превысятexиeyсоответственно. - Значение функции
Uвычисляется с помощью функцииvи выводится на экран.