Тема урока: «Операторы цикла»
Написать программу вычисления значения выражения Особенность: одинаковые действия выполняются 20 раз. Можно ли решить известными методами? ? ? Задача.
Циклы позволяют многократно выполнять одну или группу команд, причем в тексте программы нет необходимости записывать эти команды несколько раз. Цикл – это многократное выполнение одинаковой последовательности действий.
три вида циклов: В языке программирования PASCAL существует три вида циклов: 1. Арифметический (с параметром) цикл FOR 2. Логический цикл с предусловием WHILE 3. Логический цикл с постусловием REPEAT
Арифметический цикл Арифметический цикл FOR for := to do begin {тело цикла} end; for := to do begin {тело цикла} end; Увеличение переменной на 1:
Уменьшение переменной на 1: for := downto do begin {тело цикла} end; for := downto do begin {тело цикла} end;
Особенности арифметического цикла: число повторений операторов тела цикла известно заранее; переменная цикла может быть только целой; шаг изменения переменной цикла всегда равен 1 или -1 ;
если в теле цикла только один оператор, слова begin и end можно не писать: если конечное значение меньше начального, цикл не выполняется ни разу. for i:=1 to 8 do writeln('Привет'); for i:=1 to 8 do writeln('Привет');
Количество повторений находится по формуле n2 - n1 + 1
10 program zadacha1; var i:integer; y:real; y:real;Begin y:=0; y:=0; for i:=1 to 20 do for i:=1 to 20 do y:=y+1/i; y:=y+1/i; writeln(Сумма чисел =,y:2:2); writeln(Сумма чисел =,y:2:2); readln(y); readln(y);End. Написать программу вычисления значения выражения
ЗАДАЧА 2: Написать программу вычисления суммы квадратов чисел от 10 до 80.
Задача 3: Среди всех двузначных чисел найти те, сумма цифр которых равно данному числу.
13 Логический цикл с предусловием WHILE Особенности: можно использовать сложные условия: если в теле цикла только один оператор, слова begin и end можно не писать: while (a<b) and (b<c) do begin {тело цикла} end; while (a<b) and (b<c) do begin {тело цикла} end; while a < b do a := a + 1; while a < b do a := a + 1; while do begin {тело цикла} end; while do begin {тело цикла} end;
14 Особенности: условие пересчитывается каждый раз при входе в цикл если условие на входе в цикл ложно, цикл не выполняется ни разу если условие никогда не станет ложным, программа зацикливается a := 4; b := 6; while a > b do a := a – b; a := 4; b := 6; while a > b do a := a – b; a := 4; b := 6; while a < b do d := a + b; a := 4; b := 6; while a < b do d := a + b;
15 Сколько раз выполняется цикл? a := 4; b := 6; while a > b do a := a + 1; a := 4; b := 6; while a > b do a := a + 1; a := 4; b := 6; while a < b do b := a - b; a := 4; b := 6; while a < b do b := a - b; a := 4; b := 6; while a < b do a := a - 1; a := 4; b := 6; while a < b do a := a - 1; a := 4; b := 6; while a < b do a := a + 1; a := 4; b := 6; while a < b do a := a + 1; a := 4; b := 6; while a < b do a := a + b; a := 4; b := 6; while a < b do a := a + b; 2 раза a = 6 2 раза a = 6 1 раз a = 10 1 раз a = 10 0 раз a = 4 0 раз a = 4 1 раз b = -2 1 раз b = -2 зацикливание
Задача 4: Написать программу вычисления суммы чисел от 1 до N Program zadacha4; Var a,s,n:integer; BEGIN writeln(Введите число n); readln(n); a:=1; s:=0; while a<=n then begin s:=s+a; a:=a+1; end; writeln(Сумма =,s); readln(s); END. Program zadacha4; Var a,s,n:integer; BEGIN writeln(Введите число n); readln(n); a:=1; s:=0; while a<=n then begin s:=s+a; a:=a+1; end; writeln(Сумма =,s); readln(s); END.
Логический цикл с постусловием REPEAT Repeat {тело цикла} until ; Repeat {тело цикла} until ; Особенности: Тело цикла выполняется хотя бы один раз; Программа зацикливается в случае, когда условие не может выполнится никогда. a := 4; b := 6; repeat a := a + b until a < b; a := 4; b := 6; repeat a := a + b until a < b;
Домашнее задание: 1)Выучить теорию 2)Написать программу, которая находит все целые трехзначные числа, произведение цифр которых рано данному числу. Домашнее задание: 1)Выучить теорию 2)Написать программу, которая находит все целые трехзначные числа, произведение цифр которых рано данному числу.