Цикл for Формат записи оператора цикла for: for «имя» := «от» to «до» do «оператор» Порядок выполнения цикла FOR В зависимости от начального и конечного значения параметра цикла, которые задаются в заголовке, цикл может выполнится то или иное количество раз. Например, если начальное и конечное значения совпадают, то цикл выполнится только один раз. Если же начальное значение превышает конечное, то цикл не выполнится ни разу! А сколько раз выполнятся циклы со следующими заголовками: for i := 5 to 9 do for i := 0 to 8 do for i := -1 to 10 do for i := 100 to 200 do for i := 0 to 0 do { 5 раз } { 9 раз } { 12 раз } { 101 раз } { 1 раз } С. 97. № 5 program N5; var i, m, n : integer; begin m:=1; n:=5; for i := m to n do writeln(2*i); end. Значение счетчика цикла может использоваться в выражениях, входящих в операторы тела цикла, но изменение значения счетчика цикла этими операторами недопустимо. Правильно записаны фрагменты под номерами 1 и 4. Во фрагментах 2 и 3 в операторах тела цикла производится изменение значение счетчика цикла. Пример, который заставит компьютер напечатать 10 звёздочек: program Zvezdy ; var i : integer ; begin for i := 1 to 10 do write ('*'); end. program piat_chisel; var i : integer; begin for i := 1 to 5 do write (i); end. На экран напечатается 5 чисел без пробелов: 12345 Существует ещё одна разновидность цикла for, в котором вместо служебного слова to используется downto. В этом случае переменная цикла будет каждый раз уменьшать своё значение, а не увеличивать. Например, цикл for i := 5 downto 1 do write (i, ’ ’); напечатает: 54321 Параметр цикла может быть не только числом, но и символом. program Alfavit; var c : char; begin for c := ‘a’ to ‘z’ do write (c); { выводим буквы в строчку } end. На экране будет напечатан весь английский алфавит в одну строчку: abcdefghijklmnopqrstuvwxyz Нахождение суммы Нахождение суммы целых чисел от 1 до 10 program Summa_chisel_ot1do10; var s, i : integer; begin s := 0; { вначале сумма равна 0 } for i := 1 to 10 do s := s + i; { суммируем } writeln (’Сумма чисел от 1 до 10 равна ’, s); end. Измените предыдущую программу, чтобы можно было самому задать количество слагаемых. program Summa_chisel_ot1doN; var s, i, n: integer; begin Write (‘Введите количество слагаемых: '); readln(n); s := 0; { вначале сумма равна 0 } for i := 1 to n do s := s + i; { суммируем } writeln ('Сумма чисел от 1 до ', n, ' равна ', s); end. Нахождение произведения Нахождение произведения целых чисел от 1 до 10 program Proizvedenie_chesel_ot1do5; var p, i : integer; begin p := 1; { вначале произведение равно 1 } for i := 1 to 5 do p := p * i; { находим произведение } writeln (’Произв-е чисел от 1 до 5 равно ’, p); end. program Summa_chisel_ot1doN; var s,p, i, n: integer; begin Write ('Введите количество чисел: '); readln(n); s := 0;p:=1;{вначале сумма равна 0, произведение – 1} for i := 1 to n do s := s + 2*i-1; { суммируем } for i := 1 to n do p:=p*(2*i-1); {умножаем} writeln ('Сумма первых ', n, ' слагаемых равна ', s); writeln ('Произведение первых ', n, ' множителей равна ', p); end. Домашняя работа: С. 97 № 7 b и c.