Тема: «Задачи на циклы»
Цель: Научить учащихся записывать циклические алгоритмы на языке Паскаль, используя операторы While, For и решать олимпиадные задачи
Ход занятия:
Организационный момент (проверка присутствующих, проверка готовности к работе)
Актуализация знаний
– Что такое алгоритм?
– Вы уже знаете, что алгоритмы любой степени сложности состоят из трёх базовых типов алгоритмических конструкций. Назовите, пожалуйста, эти конструкции? Ответ:(следование, ветвление и цикл).
Вы умеете записывать линейные и разветвляющиеся алгоритмы на языке Паскаль. На этом занятии нам предстоит познакомиться с операторами для организации циклов. Но прежде чем мы начнём с ними знакомиться, давайте вспомним некоторые определения и понятия связанные с циклами.
Основные понятия:
алгоритмическая структура Цикл представляет собой последовательность команд, выполняемых многократно
циклические алгоритмы могут быть организованы в нескольких вариантах:
цикл со счётчиком (с параметром)
цикл с условием (предусловием и постусловием)
При разработке алгоритмов циклической структуры выделяют следующие понятия:
параметр (переменная цикла) – величина, с изменением значения которой связано многократное выполнение цикла
начальное и конечное значения параметра цикла
шаг параметра цикла - значение, на которое изменяется параметр цикла при каждом повторении
тело цикла – команды, выполняемые в цикле
Материал для работы с учащимися:
З
(Цикл с предусловием)
(Цикл с постусловием)
(Цикл со счётчиком)
адание 1: Назовите разновидность цикла представленного в виде блок-схемы
ЗНЗПЦ – задание начального значения параметра цикла
ЗИПЦ – закон изменения параметра цикла
В языке программирования Pascal каждому виду циклов соответствует свой оператор.
Цикл с предусловием
Формат оператора:
while условие do оператор;
где условие – логическое выражение, управляющее числом повторений – вычисляется перед каждой итерацией.
Выполнение оператора while заключается в следующем: проверяется условие, - если оно выполняется (значение его – TRUE), то выполняется оператор (тело цикла), записанный после слова do, - если же условие не выполняется (значение его – FALSE), происходит выход из цикла. Процесс повторяется до тех пор, пока условие не станет ложным. Здесь в качестве условия записывается условие продолжения цикла
Цикл со счетчиком
Цикл с увеличением счетчика
Формат оператора:
for Счетчик НачальноеЗначение to КонечноеЗначение do Оператор;
Цикл с уменьшением счетчика
Формат оператора:
for Счетчик НачальноеЗначение downto КонечноеЗначение do Оператор;
Переменная, стоящая после for в операторе цикла, называется счетчиком, параметром или [управляющей] переменной цикла. Счетчик цикла – переменная порядкового типа; начальное и конечное значения счетчика, в общем случае, - выражения того же типа, что и тип счетчика. Оператор, стоящий после слова do, - тело цикла - может быть составным.
Мы познакомились с операторами языка программирования Pascal для записи циклических алгоритмов. Воспользуемся этими операторами для решения следующей задачи:
Задача: Получить таблицу температур по Цельсию от 0 до 100 градусов и их эквивалентов по шкале Фаренгейта, используя для перевода формулу
.
Запишем сначала решение данной задачи, воспользовавшись «циклом с предусловием»
Program prim1;
Var Tc:integer; {температура по Цельсию тип целый}
Tf:real; {температура по Фаренгейту тип действительный}
Begin
Tc:=0;
While Tc
Begin
Tf:=9/5*Tc+32;
Writeln(Tc,Tf); Тело Цикла
Tc:=Tc+1;
End;
End.
Запишем эту же задачу, используя «цикл со счётчиком»
P
rogram prim2;
Var Tc:integer; {температура по Цельсию тип целый}
Tf:real; {температура по Фаренгейту тип действительный}
Begin
For Tc:=0 to 100 do
Begin
Tf:=9/5*Tc+32;
Writeln(Tc,Tf); Тело Цикла
End;
End.
Вы обратили внимание, что одну и ту же задачу мы записали при помощи двух различных операторов.
Какие выводы вы можете сделать? (Можно использовать любой оператор цикла. Есть ограничения в использовании цикла For (шаг изменения параметра цикла должен быть 1 или -1). Если не известно сколько раз будет выполняться цикл, то используем While)
Закрепление Для закрепления материала решим следующую задачу:
Задача.№3903. Количество чисел
Сколько всего натуральных чисел состоят из не менее чем а цифр и не более, чем b цифр?
Входные данные
Вводятся два произвольных натуральных числа а и b через пробел. Каждое не превышает 10 000.
Выходные данные
Выведите одно число: количество чисел, обладающих указанным свойством.
Примеры
Входные данные | Выходные данные |
1 2 | 99 |
1 1 | 9 |
Задача.№3903. Количество чисел
Разбор Автор И.А. Шуйкова
Составим модель задачи
Входные данные: a, b – натуральные числа, не превышающие 10 000 (тип данных integer).
Выходные данные: количество натуральных чисел, состоящих из не менее, чем а цифр и не более, чем b цифр.
Решение задачи
Перед решением задачи необходимо вспомнить все математические определения и термины, которые используются в тексте задачи. Напомним, что натуральные числа – это числа, использующиеся при счете предметов, то есть числа 1, 2, 3 и т.д.
Для решения любой задачи и ее понимания полезно сразу разобрать примеры, приведенные в задаче. Согласно первому примеру при а=1 и b=2, количество натуральных чисел равно 99. Действительно, это числа 1, 2, 3, 4, 5, 6, 7, 8, 9 (они состоят из одной цифры),10,11,…,99 (они состоят из двух цифр). Всего получается 99 чисел.
Согласно второму примеру при а=1 и b=1, количество натуральных чисел равно 9. Действительно, это числа 1, 2, 3, 4, 5, 6, 7, 8, 9 (они состоят из одной цифры).
Когда вы разобрали примеры, приведенные в задаче, и поняли их, полезно будет привести свой пример и разобрать его.
Пример. а=2 и b=2, количество натуральных чисел равно всем двузначным числам: 10,11,12,…,99. Всего получается 99-10+1=90 чисел.
Как видим, в ответах разобранных примеров встречаются только лишь нули и девятки. Если рассмотреть другие примеры, то ответы также будет содержать нули и девятки.
Проанализировав различные ситуации входных данных, можно сделать вывод:
1. При а=b в ответе будет число, состоящее из одной девятки и нулей, количество которых равно (a-1).
2. При ав ответе будет число, состоящее из b цифр. В конце числа (a-1) нулей, а в начале числа – девятки. Количество девяток, таким образом, (b - a+1).
3. При ab в ответе будет 0 (таких чисел нет).
Таким образом, для решения этой задачи нет необходимости делать какие-либо вычисления. Фрагмент кода задачи приведен ниже и содержит только печать нужного количества девяток и нулей.
for i := a to b do write(9);
for i := 1 to a - 1 do write(0);
Обратите внимание, что предварительно составленная модель задачи позволяет в ряде случаев обойтись без сложных вычислений. Во многих олимпиадных задачах есть «изюминка», увидев которую, вы решите задачу легко и красиво.
Решение
{ Программа № 3D. Количество чисел }
{ --------------------------------------------------- }
{ Сколько всего натуральных чисел состоят из не менее }
{ чем а цифр и не более, чем b цифр?
{ Темы: [Циклы] }
{ Источник: http://informatics.mccme.ru/ }
{ Командные олимпиады, Турнир Архимеда,2011, Задача C }
{ --------------------------------------------------- }
program task_3d;
var
a, b, i: integer;
begin
read(a, b);
if a b then write(0)
else begin
for i := a to b do write(9);
for i := 1 to a - 1 do write(0);
end
end.
Подведение итогов
Сегодня на занятии мы познакомились с операторами для записи циклов в языке программирования Паскаль. Применили полученные знания при решении задач. Выяснили, что подавляющее большинство задач с циклами можно решать разными способами, используя при этом один из двух операторов цикла. Часто решения, использующие различные операторы цикла, оказываются равноценными. В некоторых случаях все же предпочтительнее использовать какой-то один из операторов.
Завершите фразу:
• Сегодня я узнал…
• Я научился…
• У меня получилось …
• Было трудно…
Тема «Задачи на циклы»
Основные понятия:
алгоритмическая структура Цикл представляет собой последовательность команд, выполняемых многократно
циклические алгоритмы могут быть организованы в нескольких вариантах:
цикл со счётчиком (с параметром)
цикл с условием (предусловием и постусловием)
При разработке алгоритмов циклической структуры выделяют следующие понятия:
параметр (переменная цикла) – величина, с изменением значения которой связано многократное выполнение цикла
начальное и конечное значения параметра цикла
шаг параметра цикла - значение, на которое изменяется параметр цикла при каждом повторении
тело цикла – команды, выполняемые в цикле
Задание: Подпишите разновидность цикла представленного в виде блок-схемы
(……………………….)
( ………………………)
(……………………….)
ЗНЗПЦ – задание начального значения параметра цикла
ЗИПЦ – закон изменения параметра цикла
Задача: Получить таблицу температур по Цельсию от 0 до 100 градусов и их эквивалентов по шкале Фаренгейта, используя для перевода формулу
.
Олимпиадная задача:
Задача.№3903. Количество чисел
Сколько всего натуральных чисел состоят из не менее чем а цифр и не более, чем b цифр?
Входные данные
Вводятся два произвольных натуральных числа а и b через пробел. Каждое не превышает 10 000.
Выходные данные
Выведите одно число: количество чисел, обладающих указанным свойством.
Примеры
Входные данные | Выходные данные |
1 2 | 99 |
1 1 | 9 |