Вложенные циклы

Содержание

Слайд 2

Повторение

1. Дана последовательность операторов:
а := 1;
b := 1;
while a + b

Повторение 1. Дана последовательность операторов: а := 1; b := 1; while
< 8 do
begin
а := а + 1;
b := b + 2;
end;
s := a + b;
Сколько раз будет повторен цикл, и какими будут значения переменных а, b, и s после завершения этой последовательности операторов?

Слайд 3

Повторение

2. Определить значение переменной s после выполнения следующих операторов:
s := 0;

Повторение 2. Определить значение переменной s после выполнения следующих операторов: s :=
i := l;
Repeat
s := s + 5 div i;
i := i - l;
Until i <= 1;

Слайд 4

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

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

Вложенные циклы

Слайд 5

Задача 1. Написать программу, которая находит и выводит на печать все четырехзначные числа

Задача 1. Написать программу, которая находит и выводит на печать все четырехзначные
abcd, числа a, b, c, d - различные цифры, для которых выполняется условие: ab — cd = a + b + c + d.

Задачу можно решать несколькими способами.

Слайд 6

1 способ. Перебор всех четырехзначных чисел и проверка для каждого из них

1 способ. Перебор всех четырехзначных чисел и проверка для каждого из них
выполнения условий.

Var x, a, b, c, d: integer;
Begin
for x := 1000 to 9999 do
begin
a := x div 1000;
b := x div 100 mod 10;
c := x div 10 mod 10;
d := x mod 10;
if (a<>b) and (a<>c) and (a<>d) and (b<>c) and (b<>d) and
(c<>d) and(a*10+b)-(c*10+d)=a+b+c+d then writeln (x);
end;
End.

Слайд 7

2 способ. Перебор всех чеиырех цифр числа и проверка для каждого набора

2 способ. Перебор всех чеиырех цифр числа и проверка для каждого набора
цифр выполнения условий.

Var x, a, b, c, d: integer;
Begin
for a:=1 to 9 do
For b:=0 to 9 do
For c:=0 to 9 do
For d:= 0 to 9 do
if (a<>b) and (a<>c) and (a<>d) and
(b<>c) and (b<>d) and (c<>d) and
((a*10+b)-(c*10+d)=a+b+c+d)
then writeln (a, b, c, d);
End.

Слайд 8

3 способ. Попробуем сократить перебор, для этого преобразуем второе условие
10a +

3 способ. Попробуем сократить перебор, для этого преобразуем второе условие 10a +
b — (10c + d) = a + b + c + d;
9(a — c) = 2(c + d);
(a — c)/(c + d) = 2/9
Проанализировав первое условие, получаем,
что a = с + 2, d = 9 - c,
следовательно 0 <= c <= 7.

Слайд 9

Var a, b, c, d: integer;
Begin
for c:=0 to 7 do

Var a, b, c, d: integer; Begin for c:=0 to 7 do

begin
a := c + 2;
d := 9 - c;
for b := 0 to 9 do
if (b <> c) and (b <> a) and (b <> d)
then write (a, b, c, d);
end;
End.

QB

TP

Слайд 10

Задача 2.
Если мы сложим все цифры какого-либо числа, затем все цифры

Задача 2. Если мы сложим все цифры какого-либо числа, затем все цифры
найденной суммы и будем повторять много раз, мы, наконец, получим однозначное число (цифру), называемое цифровым корнем данного числа.
Например, цифровой корень числа 34697 равен 2 (3 + 4 + 6 + 9 + 7 = 29; 2 + 9 = 11; 1 + 1 = 2).
Составим программу для нахождения цифрового корня натурального числа.

Слайд 11

Решение
Сколько переменных потребуется для решения задачи, какого типа будут эти переменные?
Всегда

Решение Сколько переменных потребуется для решения задачи, какого типа будут эти переменные?
ли необходимо вычислять сумму цифр числа
(а если введенное число является однозначным)?
Вычислим сумму цифр числа: для этого будем выделять цифры числа и увеличивать текущую сумму. Какую конструкцию необходимо использовать для этого?
В результате выполнения цикла мы получили число. Является ли оно однозначным (корнем данного числа)? Какую конструкцию необходимо использовать для нахождения корня числа? Какие действия должна выполнять программа внутри этой конструкции?
Программа, вычисляющая корень данного числа, может выглядеть следующим образом:

Слайд 12

Var n, k, s: longint;
Begin
read (n);
s := n;

Var n, k, s: longint; Begin read (n); s := n; while
while s > 9 do
begin
k := s;
s := 0;
Repeat
s := s + k mod 10;
k := k div 10;
Until k = 0;
end;
writeln ('цифровой корень числа ', n, ‘ равен ', s);
End.

QB

TP

Слайд 13

Домашнее задание
1. Старинная задача
Сколько можно купить быков, коров и телят, если

Домашнее задание 1. Старинная задача Сколько можно купить быков, коров и телят,
плата за быка 10 рублей, за корову — 5 рублей, за теленка — полтинник (0,5 рубля) и на 100 рублей надо купить 100 голов скота.
Имя файла: Вложенные-циклы.pptx
Количество просмотров: 168
Количество скачиваний: 0