Протабулировать функцию - Pascal (81280)

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

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

Народ, помогите сделать к завтрашнему утру. Вычислить значение функции, если X меняется от X(начальное) к X(конечное) с шагом ΔX. Результат вычислений вывести в виде таблицы. В случае если вычисления функции невозможно, выдать соответствующее сообщение. Вычислить наименьшее значение функции на этом интервале. Входные данные задать самостоятельно. Написать программу, привести результаты работы программы.

Решение задачи: «Протабулировать функцию»

textual
Листинг программы
const goriz = '+------------------------+------------------------+';
var x, xn, xk, dx, a, xi, y, min: double;
    fmin: boolean;
begin
  write('Xнач = ');
  readln(xn);
  write('Xкон = ');
  readln(xk);
  if xn > xk
    then begin
      x := xn;
      xn := xk;
      xk := x
    end;
  repeat
    write('|dX| > 0;  dX = ');
    readln(dx);
    if dx < 0 then dx := -dx
  until dx > 0;
  write('A = ');
  readln(a);
  write('Ksi = ');
  readln(xi);
  fmin := false;
  x := xn;
  writeln(goriz);
  writeln('|', 'x':12, ' ':12, '|', 'y':12, ' ':12, '|');
  writeln(goriz);
  while x < xk + dx / 2 do
    begin
      write('| ', x, ' | ');
      if (x = 0) or (xi <= 0)
        then write('Функция не определена':22)
        else begin
          y := exp(a * x) + sqrt(sqrt(abs(a * x + xi * xi * xi))) + ln(xi) / 2 / x;
          if not fmin or (y < min) then min := y;
          fmin := true;
          write(y)
        end;
      writeln(' |');
      x := x + dx
    end;
  writeln(goriz);
  if fmin
    then writeln('Минимальное значение: ', min)
    else writeln('Минимальное значение не найдено: на всём интервале функция не определена.');
  readln
end.

Объяснение кода листинга программы

  1. Создается константа goriz для форматирования вывода.
  2. Объявляются переменные: x, xn, xk, dx, a, xi, y, min — все с типом double.
  3. Переменная fmin устанавливается в значение false.
  4. Значение переменной xn присваивается переменной x.
  5. Выводится форматированная строка с константой goriz.
  6. Читаются значения переменных xn и xk с помощью функции readln.
  7. Если xn больше xk, то значения переменных x, xn и xk обновляются.
  8. Запускается цикл while, который выполняется до тех пор, пока x меньше xk + dx/2.
  9. Внутри цикла выводится форматированная строка с константой goriz.
  10. Вычисляется значение y по формуле y = exp(ax) + sqrt(sqrt(abs(ax + xixixi))) + ln(xi)/2/x.
  11. Если не выполнено условие (y < min) или (y == min), то min присваивается значение y.
  12. Устанавливается значение переменной fmin в true.
  13. Выводится значение y.
  14. Выводится форматированная строка с константой goriz.
  15. Если выполнено условие (fmin == true), то выводится минимальное значение min.
  16. Если условие не выполнено, то выводится сообщение о том, что минимальное значение не найдено.
  17. Выполняется чтение следующего значения с помощью функции readln.
  18. Цикл while повторяется.
  19. Выполняется чтение следующего значения с помощью функции readln.
  20. Цикл while повторяется.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

15   голосов , оценка 4 из 5
Похожие ответы