Язык программирования Паскаль. Типы данных. Основные операторы, страница 4

«Цикл-до»

to

tor (имя переменной) : = (выражение)   

                                                                            downto

<выражение> do <оператор>;

В этом операторе возможны два варианта изменения значений счетчика цикла — в прямом (to) и обратном направлениях, в сто­рону уменьшения, изменении значений (downto).

S : =0

For I :=1 to n do s : = s + x [ i] * c [ i ];

Этот оператор изменяет значения переменной цикла i от 1 до n, выполняя n раз оператор s := s + х [ i ] * - с  [ I ]               для значений  i = 1, 2, ..., n.

Оператор перехода имеет вид

goto  метка

и используется для принудительного (безусловного) перехода в не которую точку программы, отмеченную специальной меткой. Метка — это натуральное число, содержащее не более четырех |цифр. Ее можно поставить перед любым оператором, обязательно отделив от этого оператора двоеточием .В отличие от языков Бейсик и Фортран, метки, используемые в программе, обязательно должны быть описаны в разделе меток, например

label  10 , 20 , 30;

Этот  оператор  описывает  три метки — 10, 20 и 30.

пусть требуется  вычислить  выражение



  1, (c , x ) > 0

z ( x) =                0, ( c , x ) = 0

-  1 , (c , x ) <0

-   

program sqpt ( input , output );

label 10 , 20;

var c , x : array  (1..20] of real;

s: real ; z , I : integer ;

begin z : = 0.;

(* ввод данных x и c*)

for   I : = 1 to 20 do read ( [ i ]) ;

readln ;

for I : = 1 to 20 do

begin

read (x [ I ]) ; s + c [ I ] * x [ I ]

end ;

( вычисление функции z ( x ) * )

if s < = 0 then goto 10 ;

z : =1

goto 20 ;

10 : if s < 0  then z  : = - 1 else z : = 0 ;

20 : writeln ( z )

end

Следует заметить , что приведенная выше программа имеет значение

как иллюстрация использования меток.     Но     подобные          элементы

программ гораздо более понятны, удобны и просты в следующем виде:

( * вычисление функции z ( x ) * )  ;

z : = 1 ;

if s = 0.  then  z : = 0 ;

if s <  0.  then  z : = - 1 ;

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

сase выражение of

метка 1 : оператор 1 ;

метка 2 : оператор 2 ;

…..         ……….

метка 3 : оператор 3 ;

end

Пример

case  i  of

1 : z : = x + 1 ;

  2 : z : = sqr ( x ) ;

3 : z : = sqrt ( x ) ;

end

Здесь если i = 1, то z = х + 1; если i == 2, то z = х2 ; если i = 3,

то  z = V х.

Значение селекторной переменной перед началом выполнения оператора case должно быть определено и  совпадать со значением одной из меток вариантов действий; в противном случае может возникнуть ошибка при выполнении программы.

lype

пол = (м, ж);

……

var признак : пол;

…….

cese признак of

м : счетмуж : = счетмуж +1 ;

ж : счетжен : == счетжен + 1 ;

 end;

ИТЕРАЦИОННЫЕ МЕТОДЫ РЕШЕНИЯ УРАВНЕНИЙ

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

Метод Ньютона (касательных) решения трансцендентных урав­нений. Данный метод служит для уточнения корня уравнения f (х) = 0 на отрезке [а; b]. Требуется, чтобы производная f'(x) и вторая производная f"(х} были непрерывны и не меняли знаков на [а ; b]. Идея метода заключается в следующем : в качестве на­чального приближения  берется один из концов отрезка , а именно тот , в котором f"(x) • f (x) > 0 . В выбраннон точке проводится касательная к кривой f (х) и находится точка пересечения касатель­ной f’(х) с осью абсцисс — точка x1. Из полученной точки прово­дится новая касательная f"(x) и получается точка x2 на оси ОХ Таким образом , очередное приближение Xn+1  вычисляется    по  формуле

Xn+1 = Xn -  f (Xn)

                      F ‘(Xn)

Вычисления прекращаются при достижении заданной точности, т. е.

[Xn+1 – Xn ] <  e

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