Вычисление таблицы значений функции - PascalABC.NET

Узнай цену своей работы

Формулировка задачи:

Помогите составить программу на Pascal для вычисления таблицы значений функции y = (x + 1) / (sqrt (4-x * x)), если х изменяется от a до b с шагом h(Границы интервала a и b и шаг h вводит пользователь). Внимание! В программе надо учитывать область определения функции - то есть те значения х, при которых функция не имеет значения. Для этого в цикле используйте оператор IF ... THEN ... ELSE и выводите на экран соответствующее сообщение.

Решение задачи: «Вычисление таблицы значений функции»

textual
Листинг программы
procedure err(msg : String);
begin
  WriteLn(msg); Halt;
end;
 
const zero = 1e-8;
begin
  var a := ReadLnReal('a =');
  var b := ReadLnReal('b =');
  var h := ReadLnReal('h =');
  if a > b then err('Неверно задан интервал.');
  if h < zero then err('Неверно задан шаг интервала.');
  if (b - a) / h < zero then err('Нельзя разделить данный интервал на отрезки по '+h);
  WriteLn('Табулирование функции y = (x+1) / в€љ(4-xВІ)');
  WriteLn(#32*5+'x'+#32*5+'|'+#32*5+'y');
  WriteLn('-'*11+'|'+'-'*12);
  repeat
    if 4-a*a > zero then
      WriteLn( String.Format('{0,10:0.00000} | {1,10:0.0000000}', a, (a + 1) / sqrt(4 - a * a) ))
    else
      WriteLn( String.Format('{0,10:0.00000} | {1}', a, 'нет решения') );
    
    a += h;
  until a > b;
  WriteLn('-'*11+'|'+'-'*12);
end.

Оцени полезность:

15   голосов , оценка 4.067 из 5