Что такое findslide.org?

FindSlide.org - это сайт презентаций, докладов, шаблонов в формате PowerPoint.


Для правообладателей

Обратная связь

Email: Нажмите что бы посмотреть 

Яндекс.Метрика

Презентация на тему Циклы

Содержание

ЦиклыЦикл – это многократное выполнение одинаковой последовательности действий.цикл с известным числом шаговцикл с неизвестным числом шагов (цикл с условием)Примеры:Вывести на экран значение квадратов и кубов чисел от 1 до 10Определить количество цифр в заданном числе
Циклы ЦиклыЦикл – это многократное выполнение одинаковой последовательности действий.цикл с известным числом шаговцикл ЦиклыЕсли количество повторений известно, то используются циклы с параметром:FOR … TO … ЦиклыПри работе с операторами цикла можно использовать следующие процедуры:BreakContinueBreak –позволяет досрочно выйти Цикл FOR Цикл с переменной	for := to   do begin  {тело цикла} Циклыvar i:byte;begin for i:=1 to 10 do begin  WriteLn(i:3,sqr(i):4, i*i*i:5); end; Особенности:переменная цикла может быть только целой (integer, byte, word и т.п.)шаг изменения Особенности:в теле цикла не разрешается изменять переменную циклаЦиклы c параметромn := 8;for Особенности:Начальное и конечное значения цикла определяются заранее, поэтому при изменении начального и Особенности:после выполнения цикла во многих системах устанавливается первое значение переменной цикла, при a := 1;for i:=1 to 3 do a := a+1;a = 4a Как изменить шаг?Задача. Вывести на экран квадраты и кубы нечётных целых чисел Как изменить шаг? – IIИдея: Надо вывести всего 5 чисел, переменная k Как изменить шаг? – IIIИдея: Надо вывести всего 5 чисел, переменная k Цикл с параметромЗадача: Определить, является ли число N простым.Идея: Если у числа АлгоритмначалоСоставноеконецдаN mod i = 0?F := True;   Предполагаем, что N Цикл с параметромvar i, N:byte;  F : Boolean; begin Write(‘Введите N:’);ReadLn(N); Цикл с параметромЗадача: Определить, является ли число N совершенным. Совершенное число равно АлгоритмначалоНесовершконецдаN mod i = 0?S := 0;   S := S Цикл с параметромvar i, N:byte;  S : word; begin Write(‘Введите N:’);ReadLn(N); Цикл с параметромЗадача: Определить, количество совершенных чисел в диапазоне от 1 до Цикл с параметромvar i, N:1..1000;  S , k: word; Begin k Циклы с условием Циклы с неизвестным числом шаговЗадача: Ввести целое число ( Алгоритмначалоcountконецнетдаn 0?count := 0;count := count + 1;  n := n Программаprogram qq;var n, count: integer;begin writeln('Введите целое число'); read(n); count := 0; Цикл с предусловием	while  do begin  {тело цикла} Цикл с предусловиемОсобенности:условие пересчитывается каждый раз при входе в циклесли условие на Сколько раз выполняется цикл?a := 4; b := 6;while a < b Замена for на while и наоборотfor i:=1 to 10 do begin {тело Цикл с постусловиемЗадача: Ввести целое положительное число ( проверку условия цикла надо Цикл с постусловием: алгоритм началоконецданетn > 0?тело циклаусловие ВЫХОДАблок Программаprogram qq;var n: integer;begin  repeat   writeln('Введите положительное число'); ПрограммаОсобенности: тело цикла всегда выполняется хотя бы один разпосле слова until ( Сколько раз выполняется цикл?a := 4; b := 6;repeat a := a ПоследовательностиПримеры:1, 2, 3, 4, 5, …1, 2, 4, 7, 11, 16, …1, ПоследовательностиЗадача 1: найти сумму всех элементов последовательности,  которые по модулю больше АлгоритмначалоSконецнетда|a| > 0.001?S := S + a;S := 0; b := 1; Программаprogram qq;var b, c, z: integer;  S, a: real;begin  S ПоследовательностиЗадача 2: Дана последовательность из N целых чисел. Требуется вычислить среднее арифметическое АлгоритмначалоS/kконецдаX mod 2 = 0?S := 0; k := 0; Последовательностиvar i, N, k, X:byte;  s: integer; begin Write(‘Введите N:’);ReadLn(N); s ПоследовательностиЗадача 3: Дана последовательность целых чисел, за которой следует ноль. Требуется вычислить АлгоритмначалоS/kконецдаX mod 5 = 0?S := 0; k := 0; Последовательностиvar i, N, k, X:byte;  s: integer; begin Write(‘Введите X:’);ReadLn(X); s
Слайды презентации

Слайд 2 Циклы
Цикл – это многократное выполнение одинаковой последовательности действий.
цикл

ЦиклыЦикл – это многократное выполнение одинаковой последовательности действий.цикл с известным числом

с известным числом шагов
цикл с неизвестным числом шагов (цикл

с условием)

Примеры:
Вывести на экран значение квадратов и кубов чисел от 1 до 10
Определить количество цифр в заданном числе

Слайд 3 Циклы
Если количество повторений известно, то используются циклы с

ЦиклыЕсли количество повторений известно, то используются циклы с параметром:FOR … TO

параметром:
FOR … TO … DO
FOR … DOWNTO … DO
В

противном случае:
цикл с предусловием – WHILE … DO
цикл с постусловием – REPEAT … UNTIL.


Слайд 4 Циклы
При работе с операторами цикла можно использовать следующие

ЦиклыПри работе с операторами цикла можно использовать следующие процедуры:BreakContinueBreak –позволяет досрочно

процедуры:
Break
Continue
Break –позволяет досрочно выйти из цикла
Continue – позволяет перейти

к новой итерации цикла, даже если предыдущая итерация еще не завершена


Слайд 5 Цикл FOR

Цикл FOR

Слайд 6 Цикл с переменной
for :=

Цикл с переменной	for := to  do begin {тело цикла}

to
do
begin
{тело

цикла}
end;

Увеличение параметра на 1:

for <параметр цикла> := <начальное значение> downto <конечное значение> do
begin
{тело цикла}
end;

Уменьшение параметра на 1:


Слайд 7 Циклы
var i:byte;
begin
for i:=1 to 10 do
begin

Циклыvar i:byte;begin for i:=1 to 10 do begin WriteLn(i:3,sqr(i):4, i*i*i:5); end;

WriteLn(i:3,sqr(i):4, i*i*i:5);
end;
readln;
end.
Пример 1: Вывести на экран

квадраты и кубы чисел от 1 до 10

Слайд 8 Особенности:
переменная цикла может быть только целой (integer, byte,

Особенности:переменная цикла может быть только целой (integer, byte, word и т.п.)шаг

word и т.п.)
шаг изменения переменной цикла всегда равен 1

(to) или -1 (downto)
если в теле цикла только один оператор, слова begin и end можно не писать:


если конечное значение меньше начального, цикл (to) не выполняется ни разу (проверка условия в начале цикла, цикл с предусловием)

Циклы c параметром

for i:=1 to 10 do
WriteLn(i:3,sqr(i):4, i*i*i:5);


Слайд 9 Особенности:
в теле цикла не разрешается изменять переменную цикла



Циклы

Особенности:в теле цикла не разрешается изменять переменную циклаЦиклы c параметромn :=

c параметром
n := 8;
for i:=1 to n do begin

writeln('Привет');
i := i + 5;
end;

Запрещено, т.к. параметр i может не достигнуть значения n. Зацикливание


Слайд 10 Особенности:
Начальное и конечное значения цикла определяются заранее, поэтому

Особенности:Начальное и конечное значения цикла определяются заранее, поэтому при изменении начального

при изменении начального и конечного значения внутри цикла количество

шагов не изменится:

Циклы c параметром

n := 8;
for i:=1 to n do begin
writeln('Привет');
n := n + 1;
end;

нет зацикливания


Слайд 11 Особенности:
после выполнения цикла во многих системах устанавливается первое

Особенности:после выполнения цикла во многих системах устанавливается первое значение переменной цикла,

значение переменной цикла, при котором нарушено условие:
for i:=1 to

8 do
writeln('Привет');
writeln('i=', i);

for i:=8 downto 1 do
writeln('Привет');
writeln('i=', i);

i=9

i=0

Циклы c параметром


Слайд 12 a := 1;
for i:=1 to 3 do a

a := 1;for i:=1 to 3 do a := a+1;a =

:= a+1;
a = 4
a := 1;
for i:=3 to 1

do a := a+1;

a = 1

a := 1;
for i:=1 downto 3 do a := a+1;

a = 1

a := 1;
for i:=3 downto 1 do a := a+1;

a = 4

Определите значение переменной a


Слайд 13 Как изменить шаг?
Задача. Вывести на экран квадраты и

Как изменить шаг?Задача. Вывести на экран квадраты и кубы нечётных целых

кубы нечётных целых чисел от 1 до 9.
Особенность: переменная

цикла должна увеличиваться на 2.
Решение:
...
for i:=1 to 9 do begin

if ??? then begin
i2 := i*i;
i3 := i2*i;
writeln(i:4, i2:4, i3:4);
end;
end;
...

i mod 2 = 1

выполняется только для нечетных i


Слайд 14 Как изменить шаг? – II
Идея: Надо вывести всего

Как изменить шаг? – IIИдея: Надо вывести всего 5 чисел, переменная

5 чисел, переменная k изменяется от 1 до 5.

Начальное значение i равно 1, с каждым шагом цикла i увеличивается на 2.
Решение:
...
???
for k:=1 to 5 do begin
i2 := i*i;
i3 := i2*i;
writeln(i:4, i2:4, i3:4);
???
end;
...

i := i + 2;

i := 1;


Слайд 15 Как изменить шаг? – III
Идея: Надо вывести всего

Как изменить шаг? – IIIИдея: Надо вывести всего 5 чисел, переменная

5 чисел, переменная k изменяется от 1 до 5.

Зная k, надо рассчитать i.


Решение:
...
for k:=1 to 5 do begin
???
i2 := i*i;
i3 := i2*i;
writeln(i:4, i2:4, i3:4);
end;
...

i := 2*k – 1;

i = 2k-1


Слайд 16 Цикл с параметром
Задача: Определить, является ли число N

Цикл с параметромЗадача: Определить, является ли число N простым.Идея: Если у

простым.
Идея: Если у числа есть делители, отличные от 1

и N, то число N – составное, иначе - простое

Для обозначения наличия делителей у числа, зададим переменную-флаг, которая будет принимать значение true (простое) или false (составное)

Слайд 17 Алгоритм
начало
Составное
конец
да
N mod i = 0?


F := True;
Предполагаем,

АлгоритмначалоСоставноеконецдаN mod i = 0?F := True;  Предполагаем, что N

что N - простое
F := False;
Break;
ввод n
i =2,N div

2

i

F?

Простое

нет

да

нет


Слайд 18 Цикл с параметром
var i, N:byte;
F :

Цикл с параметромvar i, N:byte; F : Boolean; begin Write(‘Введите N:’);ReadLn(N);

Boolean;
begin
Write(‘Введите N:’);ReadLn(N);
F := True;
for i

:= 2 to N div 2 do
if N mod i = 0 then begin
F := false;
break;
end;
if F then write(‘Простое’)
else write(‘Составное’);
readln;
end.

Программа:


Слайд 19 Цикл с параметром
Задача: Определить, является ли число N

Цикл с параметромЗадача: Определить, является ли число N совершенным. Совершенное число

совершенным. Совершенное число равно сумме своих делителей (кроме самого

числа N)
Пример: 6 = 1 + 2 + 3

Идея: 1. Определить сумму делителей числа N
2. Сравнить сумму с N, если равны – совершенное число, иначе – нет


Слайд 20 Алгоритм
начало
Несоверш
конец
да
N mod i = 0?


S := 0;
S

АлгоритмначалоНесовершконецдаN mod i = 0?S := 0;  S := S

:= S + i
ввод n
i =1,N div 2
i
S

= N?

Совершенное

нет

да

нет


Слайд 21 Цикл с параметром
var i, N:byte;
S :

Цикл с параметромvar i, N:byte; S : word; begin Write(‘Введите N:’);ReadLn(N);

word;
begin
Write(‘Введите N:’);ReadLn(N);
S := 0;
for i

:= 1 to N div 2 do
if N mod i = 0 then S := S + i;
if S = N then write(‘Совершенное’)
else write(‘Несовершенное’);
readln;
end.

Программа:


Слайд 22 Цикл с параметром
Задача: Определить, количество совершенных чисел в

Цикл с параметромЗадача: Определить, количество совершенных чисел в диапазоне от 1

диапазоне от 1 до 1000

Идея: 1.Запустить цикл от 1

до 1000
2. Для каждого из чисел диапазона, выполнить шаги предыдущего алгоритма
3. Если число – совершенное, увеличить счетчик на 1


Слайд 23 Цикл с параметром
var i, N:1..1000;
S ,

Цикл с параметромvar i, N:1..1000; S , k: word; Begin k

k: word;
Begin
k := 0;
for N :=

1 to 1000 do
begin
S := 0;
for i := 1 to N div 2 do
if N mod i = 0 then S := S + i;
if S = N then inc(k);
end;
WriteLn(‘Количество совершенных чисел =’,k);
readln;
end.

Программа:


Слайд 24 Циклы с условием

Циклы с условием

Слайд 25 Циклы с неизвестным числом шагов
Задача: Ввести целое число

Циклы с неизвестным числом шаговЗадача: Ввести целое число (

(

последовательно последнюю цифру, увеличиваем счетчик.




Проблема: Неизвестно, сколько шагов надо сделать.
Решение: Надо остановиться, когда n = 0, т.е. надо делать "пока n <> 0".

0

0


Слайд 26 Алгоритм
начало
count
конец
нет
да
n 0?
count := 0;
count := count +

Алгоритмначалоcountконецнетдаn 0?count := 0;count := count + 1; n := n

1;
n := n div 10;
обнулить счетчик цифр
ввод

n

выполнять "пока n <> 0"


Слайд 27 Программа
program qq;
var n, count: integer;
begin
writeln('Введите целое число');

Программаprogram qq;var n, count: integer;begin writeln('Введите целое число'); read(n); count :=

read(n);
count := 0;
while n 0 do

begin
count := count + 1;
n := n div 10;
end;
writeln('В числе ', n, ' нашли ',
count, ' цифр');
end.

, n1: integer;

n1 := n;

n1,

выполнять "пока n <> 0"


Слайд 28 Цикл с предусловием
while do begin
{тело

Цикл с предусловием	while do begin {тело цикла}  end;Особенности:можно использовать сложные

цикла}
end;
Особенности:
можно использовать сложные условия:




если в

теле цикла только один оператор, слова begin и end можно не писать:

while (a {тело цикла}
end;

while a < b do
a := a + 1;


Слайд 29 Цикл с предусловием
Особенности:
условие пересчитывается каждый раз при входе

Цикл с предусловиемОсобенности:условие пересчитывается каждый раз при входе в циклесли условие

в цикл
если условие на входе в цикл ложно, цикл

не выполняется ни разу



если условие никогда не станет ложным, программа зацикливается

a := 4; b := 6;
while a > b do
a := a – b;

a := 4; b := 6;
while a < b do
d := a + b;


Слайд 30 Сколько раз выполняется цикл?
a := 4; b :=

Сколько раз выполняется цикл?a := 4; b := 6;while a <

6;
while a < b do a := a +

1;

2 раза
a = 6

a := 4; b := 6;
while a < b do a := a + b;

1 раз
a = 10

a := 4; b := 6;
while a > b do a := a + 1;

0 раз
a = 4

a := 4; b := 6;
while a < b do b := a - b;

1 раз
b = -2

a := 4; b := 6;
while a < b do a := a - 1;

зацикливание


Слайд 31 Замена for на while и наоборот
for i:=1 to

Замена for на while и наоборотfor i:=1 to 10 do begin

10 do begin
{тело цикла}
end;
i := 1;
while i

10 do begin
{тело цикла}
i := i + 1;
end;

for i:=a downto b do
begin
{тело цикла}
end;

i := a;
while i >= b do begin
{тело цикла}
i := i - 1;
end;

Замена while на for возможна только тогда, когда можно заранее рассчитать число шагов цикла.

Замена цикла for на while возможна всегда.


Слайд 32 Цикл с постусловием
Задача: Ввести целое положительное число (

Цикл с постусловиемЗадача: Ввести целое положительное число ( проверку условия цикла

и определить число цифр в нем.
Проблема: Как не

дать ввести отрицательное число или ноль?
Решение: Если вводится неверное число, вернуться назад к вводу данных (цикл!).
Особенность: Один раз тело цикла нужно выполнить в любом случае => проверку условия цикла надо делать в конце цикла (цикл с постусловием).

Цикл с постусловием – это цикл, в котором проверка условия выполняется в конце цикла.


Слайд 33 Цикл с постусловием: алгоритм
начало
конец
да
нет
n > 0?
тело цикла
условие

Цикл с постусловием: алгоритм началоконецданетn > 0?тело циклаусловие ВЫХОДАблок

ВЫХОДА
блок "типовой процесс"
ввод n
основной алгоритм


Слайд 34 Программа
program qq;
var n: integer;
begin
repeat

Программаprogram qq;var n: integer;begin repeat  writeln('Введите положительное число');  read(n);

writeln('Введите положительное число');
read(n);
until n

> 0;
... { основной алгоритм }
end.

until n > 0;

условие ВЫХОДА


Слайд 35 Программа
Особенности:
тело цикла всегда выполняется хотя бы один

раз
после слова until ("до тех пор, пока не…") ставится

условие ВЫХОДА из цикла
В отличие от цикла While цикл REPEAT повторяется пока условие ложно!
Независимо от количества операторов в теле цикла, слова begin и end можно не писать

a := 4; b := 6;
repeat
d := a + b;
a := a + 1;
until a>b;

2 оператора в теле цикла.
begin и end не ставятся


Слайд 36 Сколько раз выполняется цикл?
a := 4; b :=

Сколько раз выполняется цикл?a := 4; b := 6;repeat a :=

6;
repeat a := a + 1; until a >

b;

3 раза
a = 7

a := 4; b := 6;
repeat a := a + b; until a > b;

1 раз
a = 10

a := 4; b := 6;
repeat a := a + b; until a < b;

зацикливание

a := 4; b := 6;
repeat b := a - b; until a < b;

2 раза
b = 6

a := 4; b := 6;
repeat a := a + 2; until a < b;

зацикливание


Слайд 37 Последовательности
Примеры:
1, 2, 3, 4, 5, …
1, 2, 4,

ПоследовательностиПримеры:1, 2, 3, 4, 5, …1, 2, 4, 7, 11, 16,

7, 11, 16, …
1, 2, 4, 8, 16, 32,



an = n

a1 = 1, an+1 = an+1

a1 = 1, an+1 = an + n

an = 2n-1

a1 = 1, an+1 = 2an

b1 = 1, bn+1 = bn+1

c1 = 2, cn+1 = 2cn


Слайд 38 Последовательности
Задача 1: найти сумму всех элементов последовательности,

ПоследовательностиЗадача 1: найти сумму всех элементов последовательности, которые по модулю больше

которые по модулю больше 0,001:
Элемент последовательности (начиная с

№2):

b := b+1;

c := 2*c;

z := -z;


Слайд 39 Алгоритм
начало
S
конец
нет
да
|a| > 0.001?
S := S + a;
S :=

АлгоритмначалоSконецнетда|a| > 0.001?S := S + a;S := 0; b :=

0; b := 1; c := 2; z :=

-1; a := 1;

начальные значения

a := z*b/c;
b := b + 1; c := 2*c; z := -z;

первый элемент

новый элемент

изменение


Слайд 40 Программа
program qq;
var b, c, z: integer;
S,

Программаprogram qq;var b, c, z: integer; S, a: real;begin S :=

a: real;
begin
S := 0; z := -1;

b := 1; c := 2; a := 1;
while abs(a) > 0.001 do begin
S := S + a;
a := z * b / c;
z := - z;
b := b + 1;
c := c * 2;
end;
writeln('S =', S:10:3);
end.

переход к следующему слагаемому

начальные значения

увеличение суммы

расчет элемента последовательности


Слайд 41 Последовательности
Задача 2:
Дана последовательность из N целых чисел.

ПоследовательностиЗадача 2: Дана последовательность из N целых чисел. Требуется вычислить среднее

Требуется вычислить среднее арифметическое четных чисел последовательности.
Особенность: Сначала определяем

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

Слайд 42 Алгоритм
начало
S/k
конец
да
X mod 2 = 0?


S := 0; k

АлгоритмначалоS/kконецдаX mod 2 = 0?S := 0; k := 0;

:= 0;
начальные значения
S := S + X;
k

:= k + 1;

ввод n

ввод X

i =1,10

i

k = 0?

Нет четных

нет

да

нет


Слайд 43 Последовательности
var i, N, k, X:byte;
s: integer;

Последовательностиvar i, N, k, X:byte; s: integer; begin Write(‘Введите N:’);ReadLn(N); s


begin
Write(‘Введите N:’);ReadLn(N);
s := 0; k := 0;

for i:=1 to N do
Read(X);
if x mod 2 = 0 then
inc(s,X); inc(k);

if k=0 then write(‘Нет четных чисел’) else write(‘Среднее арифм.=’, s/k);
readln;
end.

Программа:


begin


end;


begin


end;


Слайд 44 Последовательности
Задача 3:
Дана последовательность целых чисел, за которой

ПоследовательностиЗадача 3: Дана последовательность целых чисел, за которой следует ноль. Требуется

следует ноль. Требуется вычислить среднее арифметическое кратных 5 элементов

последовательности.
Особенность: Заранее неизвестно количество чисел последовательности.

Слайд 45 Алгоритм
начало
S/k
конец
да
X mod 5 = 0?


S := 0; k

АлгоритмначалоS/kконецдаX mod 5 = 0?S := 0; k := 0;

:= 0;
начальные значения
S := S + X;
k

:= k + 1;

Ввод x

ввод X

k = 0?

Нет четных

нет

да

нет

X <> 0?

да

нет


  • Имя файла: tsikly.pptx
  • Количество просмотров: 128
  • Количество скачиваний: 0