Transcript pps

Slide 1


Slide 2

Цель урока:

План урока:
1. Проверка домашнего задания.

2. Вложенные циклы.
3. Решение задач.
4. Домашнее задание.


Slide 3

Проверка домашнего задания
1.1 Дана последовательность операторов:
а:=1; b:=1;
while a+b<8 do Begin
а:=а+1; b:=b+2 End;
s:=a+b
Сколько раз будет повторен цикл, и какими будут значения переменных
а, b, и s после завершения этой последовательности операторов?
Ответ: 2 раза, s=8, a=3, b=5
1.2. Определить значение переменной s после выполнения следующих
операторов:
s:=0; i:=l;
Repeat s:=s+5 Div i; i:= i -l;
Until i<=1;
Ответ: s=5


Slide 4

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


Slide 5

Вложенные циклы
Например.
Даны натуральные числа п и k. Составить программу
вычисления выражения 1k+2k+...+nk.
Решение
Для вычисления указанной суммы целесообразно
организовать цикл с параметром i, в котором, вопервых, вычислялось бы очередное значение y=ik и,
во-вторых, осуществлялось бы накопление суммы
прибавлением полученного слагаемого к сумме всех
предшествующих (s= s+y).


Slide 6

Program Prim1;
uses crt;
Var n, k, y, i, s, m: Integer;
Begin
clrscr;
Writeln ('n= k=');
ReadLn(n, k); s:=0;
For i:=1 To n Do Begin
y:=1;
For m:=1 To k Do Begin
y:= y*i; Нахождение степени k числа i
End;
s:=s+у; Нахождение промежуточной суммы.

End;
WriteLn(' Отвem: ',s);
Readln;
End.
TP


Slide 7

Модифицировать предыдущую программу так, чтобы
она вычисляла сумму 11+22+...+nn.
Решение
Данная задача отличается от предыдущей тем, что
показатель степени очередного слагаемого
совпадает со значением ее основания,
следовательно, параметры внутреннего цикла
(цикла, в котором вычисляется очередное
слагаемое) совпадают с параметрами внешнего
цикла.
For m:=1 To i Do


Slide 8

Пример.
Старинная задача. Сколько можно купить быков, коров и
телят, если плата за быка 10 рублей, за корову — 5
рублей, за теленка — полтинник (0,5 рубля), если на 100
рублей надо купить 100 голов скота.
Решение
Обозначим через b — количество быков; k — количество
коров; t — количество телят. После этого можно
записать два уравнения: 10b+5k+0.5t=100 и b+k+t=100.
Преобразуем их: 20b+10k+t=200 и b+k+t=100. На 100
рублей можно купить: не более 10 быков, т.е. 0<=b<=10
- не более 20 коров, т.е. 0<=k<=20
- не более 200 телят, т.е. 0<=t<=200.
Таким образом, получаем:


Slide 9

Program prim3
uses crt;
Var b, k, t: Integer;
Begin

clrscr;
For b:=0 To 10 Do
For k:=0 To 20 Do
For t:=0 To 200 Do

If (20*b+10*k+t=200) And (b+k+t=100) Then
WriteLn('Быков ',b,'коров ',k,' телят ',t);
Readln;
End.
QB

TP


Slide 10

Написать программу, которая находит и выводит на
печать все четырехзначные
abcd, числа a, b, c, d—
различные цифры, для которых выполняется:
ab—
cd=a+b+c+d.
Решение
Задачу можно решать несколькими способами. Одним из
возможных способов является перебор всех
четырехзначных чисел и проверка для каждого из них
выполнения условий. Попробуем сократить перебор,
для этого преобразуем второе условие:
10a+b-(10c+d) = a + b + c + d;
9(a-c)=2(c+d);
(a-c)/(c+d)=2/9
Проанализировав первое условие, получаем, что а=с+2,
d=9-c, следовательно 0<= c <=7.


Slide 11

Program Prim4;

uses crt;
Var a, b, c, d: Integer;
Begin
clrscr;

For c:=0 To 7 Do Begin
a:=c+2; d:=9-c;
For b:=0 To 9 Do Begin
If (b<>c) And (b<>a) And (b<>d) Then

Write (a, b, c, d');

Writeln
End;
End;
Readln;

End.
QB

TP


Slide 12

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


Slide 13

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


Slide 14

Program prim5;
uses crt;
Var n,k,s: Longint;
Begin

clrscr;
Writeln(' число=');
Readln(n);
s:=n;
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);
Readln;
End.


Slide 15

Домашнее задание
Что будет выведено на экране монитора после
выполнения следующего фрагмента программы:
а:=28;
For i:=1 То a div 2 Do Begin
if a mod i =0 then Writeln(i);

End;
Решение какой задачи выражает этот фрагмент
программы?


Slide 16

Контрольная работа №1
Вариант №1
1. Дано натуральное число:
(a) найти сумму цифр этого числа;
(b) верно ли, что число начинается и заканчивается одной и
той же цифрой.
2. Найти все трехзначные числа, такие, что сумма цифр
равна А, а само число делится на В (А и В вводятся с
клавиатуры).
3. Дано натуральное число. Приписать к нему такое же
число.


Slide 17

Вариант №2
1. Дано натуральное число:

(a) найти произведение цифр числа;
(b) верно ли, что в данном числе нет данной цифры А
(цифру А вводить с клавиатуры).

2. Найти все трехзначные числа, которые при
увеличении на 1 делятся на 2, при увеличении на 2
делятся на 3, при увеличении на 3 делятся на 4, а при
увеличении на 4 делятся на 5.
3. Из данного натурального числа удалить все цифры А
(А вводится с клавиатуры).


Slide 18

Вариант №3
1. Дано натуральное число:
(a) найти количество цифр данного числа;
(b) верно ли, что данное число заканчивается на
нечетную цифру.
2. Найти количество трехзначных чисел, сумма цифр
которых равна А, а само число заканчивается
цифрой В (А и В вводятся с клавиатуры).
3. Найти все трехзначные симметричные натуральные
числа из промежутка от А до В (А и В вводятся с
клавиатуры).


Slide 19

Вариант №4
1. Дано натуральное число:
(a) найти количество четных цифр числа;
(b) верно ли, что данная цифра А встречается в числе
более двух раз (А вводить с клавиатуры).
2. Найти все четырехзначные числа, у которых сумма
крайних цифр равна сумме средних цифр, а само
число делится на 6 и 27.
3. Найти количество различных цифр данного
натурального числа


Slide 20

Ответы к контрольной работе №1
Вариант №1
N=121, сумма равна 4, верно.
А=15, В=17, 357, 663,816
45, 4545
Вариант №2
А=5, N=121, нет
121, 181, 241,301, 361, 421, 481, 541, 601, 661, 721, 781, 841,
901, 961
N=1234, А=3, N=124


Slide 21

Вариант №3
N=1235, К=4, да
А=17, В=5, 395, 485, 575, 665, 755, 845, 935
А=478, В=535, 484, 494, 505, 515, 525, 535
Вариант №4
N=12242, А=2 , цифра 2 встречается более двух
раз.

1185, 1458, 1728, 3186, 3456, 3726, 5184, 5454,
5724, 7182, 7452, 7722, 9180, 9450, 8720
N=13234, различных цифр 4.


Slide 22

Контрольная работа №2
Вариант № 1
1. Найти количество делителей натурального числа.
Сколько из них четных?
2. Найти все натуральные числа а, b и с из интервала от 1
до 20, для, которых выполняется равенство: a2+b2=с2.
Вариант № 2
1.

Найти сумму нечетных делителей натурального
числа.

2.

Найти все равновеликие прямоугольники, стороны
которых выражены целыми числами а и b, а площадь
равна S (а и b принадлежат интервалу от 1 до 20, а S
вводится с клавиатуры).


Slide 23

Вариант №3
1.

Найти все натуральные числа из промежутка от 1 до
200, у которых количество делителей равно N (N
вводить с клавиатуры).

2.

Найти все натуральные числа а, b и с из интервала
от 1 до 20, для которых выполняется равенство:
а+b2=с2.

Вариант № 4

Найти количество делителей натурального числа,
больших К (К ввод. с клавиатуры).
Найти все такие тройки натуральных чисел х, у и z из
интервала от 1 до 20, для которых выполняется
равенство: х2—у =z2.


Slide 24

Ответы к контрольной работе №2

Вариант №1
1. N=24, К=7, четных 5.
2. 3, 4, 5
15, 17

4, 3, 5
9, 12, 15

12, 9, 15

5, 12, 13
12, 5, 13

12, 16,20

6, 8, 10

15, 8, 17

16, 12, 20.

Вариант №2
1. N=27, нечетных 3.
2. S=42,

3,14

6,7

7,6

8, 6, 10

14,3

8,


Slide 25

Вариант №3
N=9, 49, 80, 112, 162, 176
312

523
734
813
12 2 4
13 6 7 15 1 4
17 8 9
19 9 10
20 4 6

9 4 5 11 5 6
15 7 8 16 3 5

Вариант №4
N=196, К=6 , количество делителей больших К пять. Это
7, 14, 28, 49, 98.
2,3,1 3,5,2
5,9,4
5,16,3
9,17,8

3,8,1
6,4,5
10,19,9

4,7,3
6,20,4

4,12,2
7,13,6

4,15,1
8,15,7