Программа для компьютера

Сформулируем этот метод в виде алгоритма для компьютера, то есть конечной последовательности четких шагов или правил, которая решает задачу. Затем мы будем разрабатывать программу, реализующую этот алгоритм. Метод Эйлера описывается следующим алгоритмом:

1. Выбираются начальные условия, величина шага и количество итераций.

2. Определяется у и наклон в начальной точке отрезка.

3. Вычисляется значение у в конечной точке отрезка и печатается результат.

4. Шаги 2 и 3 повторяются требуемое число раз.

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

Ниже приведен пример программы на языке Паскаль. Вы вправе использовать ЛЮБОЙ другой язык программирования.

В Паскале используются следующие договоренности:

1. Подпрограмма описывается инструкцией Procedure

2. Присваивание значений переменным осуществляется инструкцией  :=

3. Комментарии расположены внутри {} и могут располагаться в любом месте программы.

4. Конец программы – инструкция End.

 

Следующая задача заключается в реализации метода Эйлера и выводе на экран результата каждой итерации:

Procedure Euler (var y, x, dx: real; var n: integer);

  var

      slope, change: real;

      i: integer;

  begin

    for i:= 1 to n do       { цикл повторяется n раз }

         begin

           slope:= 2.0 * x; { наклон в начальной точке }

      change:= slope * dx; { оценка изменения функции }

           y:= y + change;  { новое значение y }

           x:= x + dx;      { приращение величины х }

           writeln('x =', x,'  y =', y);

         end;

В программе Euler использованы две дополнительные инструкции:

1. Цикл FOR...to. Управляющей переменной цикла является переменная i целого типа. Начальное значение устанавливается равным 1.

2. Инструкция Writeln выдает значение указанных переменных на экран. Полный листинг программы приводится ниже:

Program Example (input,output);

var                                      { описания переменных }

  y,x,dx: real;

  n: integer;

 Procedure initial (var y,x,dx: real;

                     var n: integer);

  var

      xmax: real;

  begin

    x:= 1.0;                       { начальное значение х }

    xmax:= 2.0;               { максимальное значение х }

    y:= 1;                          { начальное значение y }

    dx:= 0.1;                     { величина шага }

    n:= trunc((xmax - x) / dx)

  end;

 procedure Euler (var y, x, dx: real;

                  var n: integer);

  var

      slope, change: real;

      i: integer;

  begin

    for i:= 1 to n do           { цикл повторяется n раз }

         begin

           slope:= 2.0 * x;      { наклон в начальной точке }

           change:= slope * dx; { оценка изменения функции }

           y:= y + change;     { новое значение y }

           x:= x + dx;             { приращение величины х }

           writeln('x =', x,'  y =', y);

         end;

  end;

 

 

begin                                   { основная программа }

Initial (y, x, dx, n);

Euler (y, x, dx, n);

end.

Если вы не знакомы с языком программирования, запустите эту программу и посмотрите, как она работает. Отметим следующие особенности языка Паскаль, которые использованы в программе Exampl e:

 

Внешние подпрограммы Initial, Euler располагаются перед основной программой. Они представляют собой отдельные программные единицы и не имеют с основной программой общих переменных, если эти переменные не передаются в основную из основной программы. В дальнейшем будут еще примеры использования внешних подпрограмм.

 

Программа Example является примером структурного программирования (модульная программа), включает по крайней мере головную программу, содержащую выполняемые инструкции. Обычно основная программа состоит из ряда вызовов или обращений к подпрограммам. Эти подпрограммы бывают двух видов: собственно подрограммы (subroutine) и функции (function).

 

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

необходимо описать глобальные переменные, которые используются в двух и более программных единицах. В языке Паскаль подпрограммы передают информацию в основную программу или в другие подпрограммы посредством параметров, содержащихся в обращении к процедуре. Передача информации осуществляется в обе стороны. Так, если переменная передается из основной программы в подпрограмму и в ней значение переменной изменяется, то обратно в головную программу она возвращается с новым значением.

Помните, что порядок следования и количество параметров в каждом обращении к подпрограмме и в ее описании должны совпадать.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: