Нейросети и программирование. Выпуск 3 - страница 2

Шрифт
Интервал


readln;
end.

Программа, вычисляющая квадратный корень вещественного аргумента Х с заданной точностью eps по итерационной формуле:

у>n = (y>n-1 + x/y>n-1) /2,

где y>n-1 – предыдущее приближение к корню (в начале вычислений выбирается произвольно), у>n – последующее приближение. Процесс вычислений прекращается, когда приближения станут отличаться друг от друга по абсолютной величине менее, чем на величину заданной точности.

program square_root;

var
X, eps, {аргумент и точность}
Yp, Y: real; {предыдущее и последующее приближение}
begin
repeat
writeln («Введите X, eps’);
readln (X, eps);
until (X> 0) and (eps> 0);
Y:= 1;
repeat
Yp:= Y;
Y:= (Yp + X / Yp) / 2;
until abs (Y – Yp)
writeln («Корень из», Х:6:3, «с точностью», eps:7:5, «равен», Y:9:5);
readln;
end.

1.3.Цикл с параметром for

Параметром цикла называется переменная, которая используется при проверке условия продолжения цикла и принудительно изменяется на одну и ту же величину на каждой итерации. Если параметр цикла целочисленный, то он называется счётчиком цикла.

В циклах for языка Паскаль используется счётчик, который автоматически либо увеличивается, либо уменьшается на единицу.

Соответственно, могут быть две формы записи этого цикла:


for параметр:= выражение_1 to выражение_2 do оператор

for параметр:= выражение_2 downto выражение_1 do оператор


1.3.1.Структурная схема


Рис.2.


1.3.2.Примеры.


1. Вывести на экран в столбик числа от 1 до 10.

program digit;
var i: integer;
begin
for i:= 1 to 10 do writeln (i)
end.

2. Вывести на экран в столбик числа от 10 до 1 и подсчитать их сумму.

program digit;
var i, sum: integer;
begin
sum:= 0;
for i:= 10 downto 1 do
begin
writeln (i);
inc (sum, i) {инкремент – inc (х) —увеличивает х на 1, inc (х, 3) – на 3}
end;
writeln («Сумма чисел:», sum);
readln;
end.

2.Реализация программы, ее тестирование и отладка на примере решения задачи определения наибольшего общего делителя

2.1.Черновой вариант алгоритма определения наибольшего общего делителя