Примеры задач с циклами while и repeat

Содержание

Слайд 2

Итерационные алгоритмы

Так называются циклические алгоритмы в которых для вычислений в качестве исходных

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

Слайд 3

Примеры заданий

Примеры заданий

Слайд 4

Итерационная формула для вычисления кубического корня

Итерационная формула для вычисления кубического корня

Слайд 6

Программа вычисления кубического корня

function mySqrt3(a, eps:real):real;
var x:real;
begin
result:=a; if result=0 then

Программа вычисления кубического корня function mySqrt3(a, eps:real):real; var x:real; begin result:=a; if
exit;
repeat
x:=result;
result:=x-(x*x*x-a)/2/x/x;
until abs(result-x)end;

Слайд 7

Алгоритмы вычисления сумм бесконечных рядов

В этих алгоритмах производится суммирование последовательно вычисляемых

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

Слайд 8

Примеры заданий

Примеры заданий

Слайд 9

Бесконечный ряд для вычисления синуса

Бесконечный ряд для вычисления синуса

Слайд 11

Программа вычисления синуса

function sequence (x,eps:real):real;
var u:real; i:integer;
begin
i :=1; u :=x;

Программа вычисления синуса function sequence (x,eps:real):real; var u:real; i:integer; begin i :=1;
result := u;
repeat
i:=i+1;
u:=-u*x*x/(2*i-2)/(2*i-1);
result:=result+u;
until abs(u)<=eps;
end;

Слайд 12

Будет ли работать программа при больших значениях х ?

Ряд при больших значениях

Будет ли работать программа при больших значениях х ? Ряд при больших
х сходится медленно,
а факториал и «х в степени» растут очень быстро.
Это приводит к тому, что значащие цифры этих чисел перестают помещаться в разрядной сетке и, следовательно, обрезаются, вследствие чего результат искажается.

Слайд 14

Реализация программы

procedure cutX(var x:real);
begin
while abs(x)>=2*pi do
x:=(abs(x)-2*pi)*sign(x);
end;

Реализация программы procedure cutX(var x:real); begin while abs(x)>=2*pi do x:=(abs(x)-2*pi)*sign(x); end;

Слайд 15

Сколько цифр в целом числе?

function numOfFig(n : integer) : integer;
begin

Сколько цифр в целом числе? function numOfFig(n : integer) : integer; begin
result:=0;
repeat
n:=n div 10; result:=result+1;
until n=0;
end;

Слайд 16

Найти сумму цифр в числе

function sumOfFig( n : integer ) :

Найти сумму цифр в числе function sumOfFig( n : integer ) :
integer;
begin
result:=0;
while abs(n)>0 do
begin
result := result + (n mod 10);
n := n div 10;
end;
end;

Слайд 17

Функция random

Существует две функции с таким именем:
function random():real;
Возвращает случайные положительные вещественные числа

Функция random Существует две функции с таким именем: function random():real; Возвращает случайные
меньшие1.
function random(m:integer):integer;
Возвращает случайные положительные целые числа меньшие m.

Слайд 18

Варианты использования функции random

Двоичные цифры:
fig2 := random(2);
Случайные оценки от 2 до 5:
mark:=2+random(4);
Температура

Варианты использования функции random Двоичные цифры: fig2 := random(2); Случайные оценки от
хворих у лікарні:
t:=35+random()*5;

Слайд 19

Угадайка

function howManyTimes( n : integer ) : integer;
begin
result:=0;
while random(100)<>n do
result:=result+1;
end;

Угадайка function howManyTimes( n : integer ) : integer; begin result:=0; while
Имя файла: Примеры-задач-с-циклами-while-и-repeat.pptx
Количество просмотров: 349
Количество скачиваний: 0