Повторение 1. Дана последовательность операторов: а := 1; b := 1; while a + b < 8 do begin а := а + 1; b := b + 2; end; s := a + b; Сколько раз будет повторен цикл, и какими будут значения переменных а, b, и s после завершения этой последовательности операторов?
Cлайд 3
Повторение 2. Определить значение переменной s после выполнения следующих операторов: s := 0; i := l; Repeat s := s + 5 div i; i := i - l; Until i
Cлайд 4
При решении некоторых задач приходится использовать вложенные циклы. Внутренний и внешний циклы могут быть любыми из трех рассмотренных ранее видов: с параметром, с предусловием или с постусловием. Правила организации как внешнего, так и внутреннего циклов такие же, как и для простого цикла каждого из этих видов. Но при использовании вложенных циклов необходимо соблюдать следующее условие: внутренний цикл должен полностью укладываться в циклическую часть внешнего цикла. Вложенные циклы
Cлайд 5
Задача 1. Написать программу, которая находит и выводит на печать все четырехзначные числа abcd, числа a, b, c, d - различные цифры, для которых выполняется условие: ab — cd = a + b + c + d. Задачу можно решать несколькими способами.
Cлайд 6
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 (ab) and (ac) and (ad) and (bc) and (bd) and (cd) and(a*10+b)-(c*10+d)=a+b+c+d then writeln (x); end; End.
Cлайд 7
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 (ab) and (ac) and (ad) and (bc) and (bd) and (cd) and ((a*10+b)-(c*10+d)=a+b+c+d) then writeln (a, b, c, d); End.
Cлайд 8
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лайд 9
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
Cлайд 10
Задача 2. Если мы сложим все цифры какого-либо числа, затем все цифры найденной суммы и будем повторять много раз, мы, наконец, получим однозначное число (цифру), называемое цифровым корнем данного числа. Например, цифровой корень числа 34697 равен 2 (3 + 4 + 6 + 9 + 7 = 29; 2 + 9 = 11; 1 + 1 = 2). Составим программу для нахождения цифрового корня натурального числа.
Cлайд 11
Решение Сколько переменных потребуется для решения задачи, какого типа будут эти переменные? Всегда ли необходимо вычислять сумму цифр числа (а если введенное число является однозначным)? Вычислим сумму цифр числа: для этого будем выделять цифры числа и увеличивать текущую сумму. Какую конструкцию необходимо использовать для этого? В результате выполнения цикла мы получили число. Является ли оно однозначным (корнем данного числа)? Какую конструкцию необходимо использовать для нахождения корня числа? Какие действия должна выполнять программа внутри этой конструкции? Программа, вычисляющая корень данного числа, может выглядеть следующим образом:
Cлайд 12
Var n, k, s: longint; Begin read (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); End. QB TP
Cлайд 13
Домашнее задание 1. Старинная задача Сколько можно купить быков, коров и телят, если плата за быка 10 рублей, за корову — 5 рублей, за теленка — полтинник (0,5 рубля) и на 100 рублей надо купить 100 голов скота.
Cлайд 14
2. Задание Что будет выведено на экране монитора после выполнения следующего фрагмента программы: а := 28; for i:=1 tо a div 2 do if a mod i = 0 then writeln (i); Решение какой задачи выражает этот фрагмент программы?