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


              

Глава Числовые последовательности - часть 8


Фактическое значение в этом случае может выражаться числом 0.99999999... . Чтобы устранить неудобства, первоначальному значению k задано значение -1, а останов цикла выполняется после eps > 1.

Добавляя эту функцию в программу, легко использовать ее для вывода результата с требуемым числом десятичных знаков.

Тогда, две вышеприведенные программы могут быть построены так:

Program Problem2a;

     uses WinCrt;

     var

        u        :  longint;

        x, eps :  real;

{----------------------------------------------------------------------------------------}

{ Функция вычисления порядка - кол-во знаков после запятой }

   Function t(eps : real) : integer;

         var

            k : integer;

         begin

            k := -1;

            repeat

                eps := eps*10;

                 k := k + 1

            until eps > 1;

            t := k

         end;

{---------------------------------------------------------------------------------------}

     Procedure Square_root(eps, u : real; var x : real);

           begin

               x := (u + 1)/2;

               repeat

                   x := (1/2)*(x + u/x)

               until abs(x*x - u) <= eps

           end;

{---------------------------------------------------------------------------------------}

     begin

        write('Введите подкоренное выражение '); readln(u);

        write('Задайте точность вычисления '); readln(eps);

        Square_root(eps, u, x);

        writeln('Квадратный корень из ', u, ' равен ', x:6:t(eps));

        writeln('С точностью до ', eps:1:t(eps))

      end.

Program Problem2b;

     uses WinCrt;

     var

        u         :  longint;

        x,  eps :  real;

{----------------------------------------------------------------------------------------}

{ Функция вычисления порядка - кол-во знаков после запятой }

   Function t(eps : real) : integer;

         var

            k : integer;

         begin

            k := -1;




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