СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

Проведение занятия по теме «Задачи на циклы» в рамках Образовательной сессии по программированию

Категория: Информатика

Нажмите, чтобы узнать подробности

Образовательная сессия по программированию 

Тема: «Задачи на циклы»

Цель: Научить учащихся записывать циклические алгоритмы на языке Паскаль, используя  операторы While, For и решать олимпиадные задачи

Просмотр содержимого документа
«Проведение занятия по теме «Задачи на циклы» в рамках Образовательной сессии по программированию»

Тема: «Задачи на циклы»


Цель: Научить учащихся записывать циклические алгоритмы на языке Паскаль, используя операторы While, For и решать олимпиадные задачи


Ход занятия:


  1. Организационный момент (проверка присутствующих, проверка готовности к работе)


  1. Актуализация знаний

– Что такое алгоритм?

– Вы уже знаете, что алгоритмы любой степени сложности состоят из трёх базовых типов алгоритмических конструкций. Назовите, пожалуйста, эти конструкции? Ответ:(следование, ветвление и цикл).

Вы умеете записывать линейные и разветвляющиеся алгоритмы на языке Паскаль. На этом занятии нам предстоит познакомиться с операторами для организации циклов. Но прежде чем мы начнём с ними знакомиться, давайте вспомним некоторые определения и понятия связанные с циклами.

Основные понятия:

  • алгоритмическая структура Цикл представляет собой последовательность команд, выполняемых многократно

  • циклические алгоритмы могут быть организованы в нескольких вариантах:

    • цикл со счётчиком (с параметром)

    • цикл с условием (предусловием и постусловием)

При разработке алгоритмов циклической структуры выделяют следующие понятия:

  • параметр (переменная цикла) – величина, с изменением значения которой связано многократное выполнение цикла

  • начальное и конечное значения параметра цикла

  • шаг параметра цикла - значение, на которое изменяется параметр цикла при каждом повторении

  • тело цикла – команды, выполняемые в цикле


Материал для работы с учащимися:


З

(Цикл с предусловием)

(Цикл с постусловием)

(Цикл со счётчиком)

адание 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)


  1. Закрепление Для закрепления материала решим следующую задачу:

Задача.№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.





  1. Подведение итогов

Сегодня на занятии мы познакомились с операторами для записи циклов в языке программирования Паскаль. Применили полученные знания при решении задач. Выяснили, что подавляющее большинство задач с циклами можно решать разными способами, используя при этом один из двух операторов цикла. Часто решения, использующие различные операторы цикла, оказываются равноценными. В некоторых случаях все же предпочтительнее использовать какой-то один из  операторов.

Завершите фразу:

•       Сегодня я узнал…

•       Я научился…

•       У меня получилось …

•       Было трудно…

Тема «Задачи на циклы»

Основные понятия:

  • алгоритмическая структура Цикл представляет собой последовательность команд, выполняемых многократно

  • циклические алгоритмы могут быть организованы в нескольких вариантах:

    • цикл со счётчиком (с параметром)

    • цикл с условием (предусловием и постусловием)

При разработке алгоритмов циклической структуры выделяют следующие понятия:

  • параметр (переменная цикла) – величина, с изменением значения которой связано многократное выполнение цикла

  • начальное и конечное значения параметра цикла

  • шаг параметра цикла - значение, на которое изменяется параметр цикла при каждом повторении

  • тело цикла – команды, выполняемые в цикле


Задание: Подпишите разновидность цикла представленного в виде блок-схемы














(……………………….)

( ………………………)



(……………………….)






ЗНЗПЦ – задание начального значения параметра цикла

ЗИПЦ – закон изменения параметра цикла





Задача: Получить таблицу температур по Цельсию от 0 до 100 градусов и их эквивалентов по шкале Фаренгейта, используя для перевода формулу .




























Олимпиадная задача:

Задача.№3903. Количество чисел

Сколько всего натуральных чисел состоят из не менее чем а цифр и не более, чем b цифр?

Входные данные

Вводятся два произвольных натуральных числа а и b через пробел. Каждое не превышает 10 000.

Выходные данные

Выведите одно число: количество чисел, обладающих указанным свойством.

Примеры

Входные данные

Выходные данные

1 2

99

1 1

9