Паскаль. Основы программирования


              

Эту функцию мы устроим уже


Эту функцию мы устроим уже известным нам способом и назовем fx:
    Function fx(x : real) : real;
          begin
             fx := cos(x) - 0.1*x
          end;
В основной программе, естественно потребовать от пользователя ввода границ промежутка и шага. В качестве границ промежутка будут переменные a и b, а для шага - h (в качестве значения шага, при выполнении программы возьмем 0.1).
Для подсчета числа промежутков будет служить счетчик k. Первоначальное значение левой границы: x1:=a; а первая правая граница будет равна сумме левой границы и шага: x2:=x1+h; значение функции в левой границе первого промежутка: y1:=fx(x1).
Последовательно к левой границе добавляется шаг h и так должно продолжаться пока
это значение не станет равно правой границе данного промежутка b. Значит, необходимо организовать цикл "пока": while x2 <= b do
В цикле, вычислять значение функции в точке x2, которая уже получилась от увеличения x1 на h: y2 := fx(x2).
Теперь следует проверить знак произведения значений функций на концах промежутка (fx(x1)*fx(x2)) и, если оно отрицательно, то на этом промежутке будет существовать корень, а значит надо выдать на экран координаты этого промежутка и его номер:
         if y1*y2 < 0 then
                               begin
                                   k := k + 1;
                                   writeln(k,'-й корень на [',x1:6:4,'; ',x2:6:4,']')
                               end;
Далее следует продолжить движение к правой границе, а для этого выполнить следующие операторы:
x1 := x2; x2 := x1 + h; y1 := y2
Вот и вся несложная тактика этой программы. Полностью она приводится ниже:
Program
Separation_root; { Программа отделения корней }
    uses WinCrt;
    var
        a, b, h, x1, x2, y1, y2 : real;
        k : integer;
{----------------------------------------------------------------------------------------}
    Function fx(x : real) : real;
       begin
          fx := cos(x) - 0.1*x
       end;

Содержание  Назад  Вперед