
c837728d7d475f748bca9ebff18a72ec.ppt
- Количество слайдов: 34
Операторы цикла на Паскале
Цикл Это последовательность операторов, которая выполняется многократно. В Паскале имеется три разновидности циклов: • Цикл со счетчиком (с параметром) • Цикл с постусловием • Цикл с предусловием
Цикл с параметром (счетчиком) For Счетчик: =Начальноезначение to Конечноезначение do Begin Операторы; End; Конечноезначение – Начальноезначение + 1 – количество исполнений цикла Конечноезначение >= Начальноезначение
Цикл с параметром For i: =n to k do оператор; For i: =n to k do Begin оператор1; оператор2; ……; oператор n; End; For – для, i – параметр (счетчик), n – начальное значение, to – до, k – конечное значение, do – делать. k – n + 1 – количество исполнений тела цикла k >= n Пример 1
Цикл с параметром (счетчиком) For Счетчик: =Начальноезначение downto Конечноезначение do Begin Операторы; End; Начальноезначение – Конечноезначение + 1 – количество исполнений цикла Конечноезначение <= Начальноезначение Пример 2
Счетчик, начальное и конечное значения • Счетчик (параметр) должен быть порядкового типа: например, integer; • Счетчик (параметр) может изменятся (уменьшатся или увеличиваться) только на 1 • Начальное и конечное значения могут быть числами, константами, переменными, выражениями. • Начальное и конечное значения должны быть одного порядкового типа: например, integer;
Цикл с параметром (счетчиком) For Счетчик: =Начальноезначение to Конечноезначение do Begin Операторы; End; Заголовок цикла Тело цикла Этот вид цикла используется, когда известно количество повторений. Пример 3
Блок-схема i : = N 1, N 2, 1 Тело цикла
Вывести на экран 10 надписей “Hello”: Program Hel; Var i: integer; Begin For i: =1 to 10 do Writeln(' Hello '); End. Файл Hello. pas Program Hel; Var i: integer; Begin For i: =1 to 10 do Begin Writeln(' Hello '); End.
Операторы цикла на Паскале Цикл с предусловием
Оператор цикла с предусловием <условие> - это условие входа в цикл. While <условие> do оператор; While <условие> do Begin оператор1; оператор2; ………. . ; оператор n; End; Заголовок цикла Тело цикла Пример 4
Блок-схема Условие повтора да Тело цикла нет
Вывести на экран 10 надписей “Hello”: Program Hel; Var i: integer; Begin For i: =1 to 10 do Writeln(‘Hello’); End. Program Hel; Var i: integer; Begin i: =1; While i <=10 do Begin Writeln(‘Hello’); i: = i + 1; или i: =succ(i) end; End.
Операторы цикла на Паскале Цикл с постусловием
Оператор цикла с постусловием <условие> - это условие Repeat выхода из цикла оператор1; оператор2; Пример: ………. . ; Repeat оператор n; х: =2*х+1; Until <условие> Writeln(‘x= ’, x); Until x => 50; Пример 5
Действие оператора • После слова REPEAT 1 раз выполняется без проверки условия. Затем проверяется условие, если оно ложно то повторяется тело цикла от REPEAT до UNTIL. Если условие истинно то выполняется оператор после оператора UNTIL. • В цикле с постусловием тело цикла выполняется обязательно 1 раз, поэтому условие ставится не перед циклом, а после него.
Блок-схема Тело цикла нет Условие окончания да
Вывести на экран 10 надписей “Hello”: Program Hel; Var i: integer; Begin For i: =1 to 10 do Writeln(‘Hello’); End. Файл Hello. pas Program Hel; Var i: integer; Begin x: =0; Repeat х: =х+1; Writeln(‘Hello’); Until x => 10 End.
Задания 1. 2. 3. 4. 5. 6. 7. 8. Вывести 15 раз слово Hello в отдельных строках. Вывести 20 раз слово Hello в строчку. Найти сумму первых 15 натуральных чисел. Найти сумму чисел от 15 до 100. Найти произведение первых 20 натуральных чисел. Вычислить квадраты натуральных чисел от 10 до 30. Вычислить квадраты натуральных чисел от -10 до 10. Вычислить кубы натуральных чисел от -1 до 15.
Пример программы: Вычислить сумму первых 5 натуральных чисел: Program Summ 2; Var i, S: integer; Файл Сумма 5. pas Begin S: =0; For i: =1 to 5 do S: =S + i; Writeln(‘Сумма = ’, S); End.
Пример программы: Вычислить квадраты натуральных чисел от 1 до 15: Program Kvadr; Результат программы Var i, Kv: integer; Квадрат числа 1 = 1 Квадрат числа 2 = 4 Begin Квадрат числа 3 = 9 For i: =1 to 15 do Квадрат числа 4 = 16 Квадрат числа 5 = 25 Begin Kv: =sqr(i); Writeln(‘Квадрат числа ’, i , ‘ = ‘, Kv); End; Файл квадрат 15. pas End.
Задание • Дано натуральное число N, вычислить: 5 в степени N.
Решение var i, N, St : integer; begin Writeln('Введите степень '); Readln(N); St: =1; For i: =1 to N do begin St: =5*St ; end; Write('5 в степени ', N, ' = ', St) end.
Задание Напечатать таблицу перевода от 1 до 10 дюймов в сантиметры. 1 дюйм = 2. 54 см
Решение Uses crt; var d : integer; S : real; begin Writeln(‘Дюймы Сантиметры '); For d: =1 to 10 do begin S : = d * 2. 54; Writeln( d , ' ', S); end.
Решение (2 вариант) Uses crt; var d : integer; S : real; begin For d: =1 to 10 do begin S : = d * 2. 54; Writeln( d , ' см end; end. = ', S, ' дюймов' );
Вычислить:
Решение uses crt; var a : integer; S : real; begin a: = 5; While a<=26 do Begin S: =S + Sqrt(a); a: = a + 1; end; Writeln('Ответ = ', S); end.
Вывести на экран числа от 10 до 0: Program Hel; Var i: integer; Begin For i: =10 downto 0 do i: =10; While i >=0 do Begin Writeln(i); End. i: = i - 1; или i: =pred(i) end; End.
Вывод чисел от 0 до 10 через 2 Пример: x: =0; While x < 10 do Begin x: =x+2; Writeln(‘x= ’, x); End;
Задачи • Одноклеточная амеба каждые 3 часа делится на 2 клетки. Определить, сколько амеб будет через 3, 6, 9, 12, …, 24 часа. • Начав тренировки, спортсмен в первый день пробежал 10 км. Каждый день он увеличивал дневную норму на 10% нормы предыдущего дня. Какой суммарный путь пробежит спортсмен за 7 дней? • У гусей и кроликов вместе 64 лапы. Сколько может быть гусей и кроликов (вывести все возможные сочетания)? • Составить алгоритм решения задачи: сколько можно купить быков, коров и телят, платя за быка 10 руб. , за корову — 5 руб. , а за теленка — 0, 5 руб. , если на 100 руб. надо купить 100 голов скота?
Задача Амеба 1 вариант uses crt; {модуль для окна} var a, t, ch: integer; {описываем 3 переменные: а – амеба, сh-время, t – количество троек в 24 часах} Begin { начало исполнительной части программы} a: =1; {начальное количество амеб} ch: =0; {начальное время} For t: =1 to 8 do begin {цикл, который исполняется 8 раз} ch: =Ch+3; {меняем время через 3 часа} a: =a*2; {увеличиваем в 2 раза амеб каждые 3 часа } Writeln('время ', ch, ' Амеб ', a); {выводим на экран через каждые 3 часа количество амеб} end; {заканчиваем цикл} end. {заканчиваем программу}
Задача Амеба 2 вариант uses crt; {модуль для окна} var a, t: integer; {описываем 2 переменные} Begin { начало исполнительной части программы} a: =1; {начальное количество амеб} t: =0; {начальное время} while t<24 do begin {цикл до 24 часов} t: =t+3; {меняем время через 3 часа} a: =a*2; {увеличиваем в 2 раза амеб каждые 3 часа } Writeln('Время ', t, ' Амеб ', a); {выводим на экран} end; {заканчиваем цикл} end. {заканчиваем программу}
Спортсмен uses crt; var d: integer; {описываем 1 переменную целого типа d – количество дней} S, P: real; {описываем 2 переменные действительного типа S – пробежка за день, P – проюежка за все дни} begin S: =10; {пробежка в 1 день} d: =1; {в 1 день} P: =10; {за все дни пока пробежал 10 км} Writeln('День ', d, ' км ', S); {вывод на экран пробежки за 1 день} For d: =2 to 7 do begin {цикл со 2 по 7 день} S: =S+S*0. 1; {пробежка каждый день} P: =P+S; {считаем сумму пробежек за все дни} Writeln('День ', d, ' км ', S); {вывод на экран пробежки за все дни} end; {конец цикла} Writeln('Итого за 7 дней ', P, ' км ') {итоговый ответ} end. {конец программы}