Цикл с параметром (разбор на примере) Примечание: К уроку надо подготовить таблицу с конструкцией оператора цикла с параметром. Оператор цикла с параметром применяют тогда, когда известно число повторений одного и того же действия. Начальное и конечное значение параметра цикла могут быть представлены константами, переменными или арифметическими выражениями. Рассмотрим, как выполняется оператор цикла с параметром вида For <параметр>:=A To B Do <тело цикла>. Сначала вычисляются значения выражений A и B. Если A<=B, то <параметр> последовательно принимает значения, равные A, A+1,..., B-1, B, и для каждого из этих значений выполняется <тело цикла>. Если A>B, то <тело цикла> не будет выполнен ни разу и выполнение цикла с параметром сразу же закончится. Оператор цикла с параметром For <параметр>:=A DownTo B Do <тело цикла> выполняется аналогичным образом, но значение <параметра> изменяется с шагом, равным -1. Если <тело цикла> состоит из несколько операторов, то операторы тела цикла заключаются в операторные скобки BeginEnd. Пример Составить программу вычисления значения выражения y = ((...(20 2 - 192)2 - 182)2 -...- 12)2. Решение В данном случае целесообразно организовать цикл с параметром, изменяющимся от 20 до 1, то есть шаг изменения параметра равен -1. Обозначим: y - очередное значение квадрата числа; n - параметр цикла. Учитывая это, составим программу: Program Example_5; Var y, n: Integer; Begin y:=sqr(20); For n:19 Downto 1 Do y:=sqr(y-sqr(n)); Writeln('Значение выражения равно'); Writeln(y); End. Пример Из чисел от 10 до 99 вывести те, сумма цифр которых равна n(0<n<=18). Вопросы для обсуждения 1. 2. Каким действием можно выделить последнюю цифру числа? Каким действием можно выделить первую цифру числа? Обозначим: k- это просматриваемое число; p1 - это первая цифра числа k; p2 - это вторая цифра числа k; s - это сумма цифр данного числа k. Число k будем выписывать только в том случае, когда сумма p1 и p2 будет равна s. Program Exampl_6; Var k,n,p1,p2,s : Integer; Begin Writeln('введите целое число '); Readln(n); {вводим целое число} For k:=10 To 99 Do {для(For) К от 10 до(To) 99 делать(Do)} Begin p1:=k Div 10; {выделяем первую цифру} p2:=k Mod 10; {выделяем вторую цифру} s:=p1+p2; {находим сумму цифр} If s=n Then Writeln(k); {если сумма равна n, то выводим K} End; Readln; End. Пример Найти все двузначные числа, в которых есть цифра N или само число делится на N. Решение Если двузначное число соответствует условию задачи, то для него выполняется хотя бы одно из трех условий: первая цифра равна n (p1 = n), или вторая цифра равна n (p2 = n), или само число делится на n (k mod n = 0). Задание Какую логическую операцию необходимо использовать для объединения этих простых условий? Решение 1. Сколько раз будут выполнены операторы из тела циклов в следующих фрагментах программ: For k:=-1 To 1 Do ... For k:=10 To 20 Do ... For k:=20 To 10 Do ... k:=5; r:=15; For i:=k+1 To r-1 Do ... k:=5; r:=15; For i:=0 To k*r Do ... k:=r; For i:=k To r Do ... 2. Определить значение переменной S после выполнения следующих операторов: s := 0; n := 10 For i := 2 To n Do s := s + 100 Div i 3. Составить программу возведения натурального числа в квадрат, используя следующую закономерность: 12 = 1 22 = 1 + 3 32 = 1 + 3 + 5 42 = 1 + 3 + 5 + 7 .... n2 = 1 + 3 + 5 + 7 + 9 + ... + 2n-1 4. 5. 6. 7. 8. Определить количество трехзначных натуральных чисел, сумма цифр которых равна заданному числу N. Составить программу вычисления суммы кубов чисел от 25 до 125. Среди двузначных чисел найти те, сумма квадратов цифр которых делится на 13. Ответ: 23, 32. Написать программу поиска двузначных чисел, таких, что если к сумме цифр этого числа прибавить квадрат этой суммы, то получится это число. Ответ: 12, 42, 90. Квадрат трехзначного числа оканчивается тремя цифрами, которые как раз и составляют это число. Ответ: 376, 625. Написать программу поиска четырехзначного числа, которое при делении на 133 дает в остатке 125, а при делении на 134 дает в остатке 111. Ответ: 1987. 10. Найти сумму положительных нечетных чисел, меньших 100. 11. Найти сумму целых положительных чисел из промежутка от A до B, кратных 4 (значения переменных A и B вводятся с клавиатуры). 12. Найти сумму целых положительных чисел, больших 20, меньших 100, кратных 3 и заканчивающихся на 2, 4 или 8 9.