Инфоурок Информатика КонспектыКонспект на тему: "Алгоритмы с повторениями. Цикл с параметром FOR. Цикл с предусловием WHILE. Цикл с постусловием REPEAT"

Конспект на тему: "Алгоритмы с повторениями. Цикл с параметром FOR. Цикл с предусловием WHILE. Цикл с постусловием REPEAT"

Скачать материал

hello_html_648175e3.gifhello_html_648175e3.gifhello_html_648175e3.gifТема урока:   Алгоритмы с повторениями. Цикл  с параметром FOR. Цикл с предусловием WHILE. Цикл с постусловием REPEAT.

Цели занятия:

Обучающая:

  1. Сформировать понятие о циклах;

  2. Познакомиться с циклами WHILE и REPEAT;

  3. Научиться использовать счётный цикл FOR;

  4. Получить навыки решения алгоритмов с повторениями.

Развивающая:

  1. Формирование навыков работы при создании программ, отработать приемы вставки в программу блоков цикла;

  2. Формирование у учащихся приемов логического и алгоритмического мышления;

  3. Развитие познавательного интереса;

  4. Развитие умения планировать свою деятельность.

Воспитывающая:

  1. Воспитывать необходимость связывать изучение нового материала с уже известными фактами;

  2. Воспитывать ответственность за выполняемую работу;

  3. Воспитывать аккуратность при выполнении вычислений.

Тип урока: получения новых знаний.

Формы учебной работы учащихся: фронтальная, индивидуальная работа за ПК.

Ход урока

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

Организационный момент (вступительное слово учителя)

2. Формирование умений и навыков

Изучение нового материала 

Циклический алгоритм – описание действий, которые должны повторяться в указанной последовательности несколько раз или пока не выполнится заданное условие.

Для многократного повторения участка программы используется цикл. Существует два принципиально различных типа операторов цикла: оператор с параметром и операторы цикла с условиями.  

1. Оператор цикла с параметром - счетный  цикл  FOR;

2. Операторы цикла с условием:

а) цикл  WHILE  с  предусловием;

б) цикл  REPEAT...UNTIL  c  постусловием.

На первом нашем занятии постараемся познакомиться и научимся использовать счётный цикл FOR .

Цикл с параметром. В этом цикле используется целая переменная – счётчик (или параметр цикла), которая автоматически при каждом повторении изменяется на 1 от начального значения до конечного. Если начальное значение меньше конечного, то на Паскале он записывается так (на языке блок-схем данный оператор будет выглядеть так):

for  i:=1 to 20 do

begin

    команда;

    команда;

    ........

end;

Если начальное значение больше конечного, то записанный выше цикл не выполнится ни разу. Чтобы он повторял тело цикла, меняя счётчик в сторону уменьшения, заголовок цикла нужно изменить так:

for  i:=20 downto 1 do

begin

    команда;

    команда;

    ........

end;

Цикл FOR удобно использовать тогда, когда точно известно количество повторений.

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

  • Пример использования цикла for: Найти сумму первых 30 натуральных чисел. Слово «первых» обозначает, что начинаем с 1. Сумма в цикле увеличивается, но чтобы было к чему прибавить самое первое число, до начала цикла сумму обнуляем (присваиваем ей начальное значение 0).

program summa;

var

    s,i: integer;

begin

    s := 0;

    for i:=1 to 30 do

        s:= s + i ;

    writeln (’Сумма 30-ти чисел равна ’,s);

    readln;

end.

Цикл с предусловием (с условием перед телом цикла). В этом цикле перед началом «тела цикла» (повторяющегося участка программы) проверяется условие, которое определяет, нужно ли продолжать повторение. Если условие выполняется, тело цикла повторяется. Если условие перестало выполняться, цикл заканчивается. На Паскале этот цикл записывается так (на языке блок-схем данный оператор будет выглядеть так):

while a do<>

begin

   команда;

   команда;

   ........

end;

Если в теле цикла только  одна команда, то begin и end  не обязательны.

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

  • Пример использования цикла while: Известна сумма S1, положенная в банк и годовая процентная ставка P. Через сколько лет накопится сумма S2 ?

program bank;

var

   s1,s2,p:real;

   g:integer;

begin

    write(’Введите начальную сумму   ’); readln(s1);

    write(’Введите конечную сумму    ’); readln(s2);

    write(’Введите процентную ставку ’); readln(p);

    g:=0;

    while s1<="" span="">do

    begin

       s1:=s1 + s1 * p / 100;

       g:=g + 1;

    end;

    writeln(’До накопления суммы пройдёт ’,g,’ лет’);

end.

Цикл с постусловием (с условием после тела цикла). В этом цикле после тела цикла проверяется условие, которое определяет, нужно ли закончить цикл. Если условие выполняется, цикл заканчивается. Если условие ещё не выполнилось, цикл повторяется.

На Паскале этот цикл записывается так (на языке блок-схем данный оператор будет выглядеть так):

repeat

   команда;

   команда;

   ........

until a >= b;

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

  • Пример использования такого цикла: Найти сумму чисел, первое из которых R (R>1) задано с клавиатуры, а каждое следующее в 1.5 раза меньше. Последнее из этих чисел (которое не входит в сумму) – меньше 0.001.

program summa;

var

   s,r: real;

begin

   write(’Введите число R (> 1) ’);  readln(r);

   s:=0;

repeat

      s:=s+r ;

      r:=r/1.5 ;

   until r<0.001;

   writeln (’Сумма чисел равна ’,s:7:4);

end.

Как выбрать цикл?

Если в задаче повторяются одинаковые (или похожие) действия, нужно использовать цикл. Но какие из 3-х видов цикла в каких задачах лучше применить? Для выбора цикла рассуждайте так:

  1. Так как чаще всего встречается цикл FOR, в первую очередь попробуем его. FOR годится, если число повторов точно известно до начала цикла. Если число повторов заранее неизвестно, а проясняется только по ходу выполнения цикла, используется один из условных циклов: WHILE или REPEAT.

  2. Если возможно придумать такие исходные данные к задаче, при которых тело цикла не должно выполниться ни разу, то нужно использовать WHILE.

  3. Если первый раз тело цикла обязательно требуется выполнить при любых условиях, и только в ходе выполнения вводятся или вычисляются данные, позволяющие принять решение об окончании цикла, то нужно использовать REPEAT.

Во всех остальных случаях WHILE или REPEAT являются одинаково пригодными.

  1. Применение полученных умений и навыков на практике:

Теперь мы перейдем к практической работе за компьютером.

Отладить блоки программ за компьютером.

Рассмотрим несколько примеров:

  • Задано натуральное n.  Вычислить  сумму  ряда:

S=1 - 1/2 + 1/3 - 1/4 + 1/5-........±1/n

program zadacha1;

     var i,n,a:integer;

    s:real;

Begin

   writeln('Введите  n');

   readln(n);

   s:=1;a:=1;

   for i:=2 to n do

          begin

                a:=(-1)*a;

                s:=s+a/i;

          end;

   writeln('Сумма  ряда   S= ',s);

End.

  • Определить количество трёхзначных натуральных чисел, сумма цифр которых равна заданному числу N.

program zadacha2;

     var с1,с2,с3,i,n,kol:integer;

Begin

   writeln('Введите  n');

   readln(n);

   kol:=0;

   for i:=100 to 999 do

          begin

                c1:=i div 100;

    c2:=(i div 10) mod 10;

                c3:=i mod 100;

                if c1+c2+c3=n   then kol:=kol+1;

          end;

   writeln('Количество таких чисел = ',kol);

End.

  • Задано натуральное число n.  Вычислить  сумму  цифр числа.

program zadacha3;

     var n,sum,cif:integer;

Begin

   writeln('Введите  n'); readln(n);

   sum:=0;

   while n>0 do

          begin

cif:=n mod 10;

sum:=sum+cif;

n:=n div 10;

          end;

   writeln('Сумма  цифр введённого числа = ',sum);

End.

  • Найти минимальное натуральное число, которое при делении на 2 даёт  в остатке 1, при делении на 3 даёт в остатке 2, при делении на 4 - в остатке 3, при делении на 5 - в остатке 4, при делении на 6 - в остатке 5 а при делении на 7 дают в остатке 6.

program zadacha4;

 var i, kl:longint;

Begin

  kl:=0;  i:=0;

  while kl=0 do

     begin

i:=i+1;

if (i mod 2=1) and (i mod 3=2) and (i mod 4=3) and (i mod 5=4) and (i mod 6=5) and (i mod 7=6) then  kl:=1;

    end;

  writeln(i);

End.

Иногда на уроке полезно рассмотреть решение одной задачи,  используя  циклы FOR, WHILE, REPEAT

Например: Решим  задачу «Найти сумму всех натуральных чисел от 1 до n», используя  циклы FOR, WHILE  и  REPEAT  и попытаемся понять принцип работы этих циклов.

1)  цикл  FOR

program zadacha1a;

     var i,n,s:integer;

Begin

     writeln(' введите  натуральное n');  readln(n);

     s:=0;

     for i:=1  to n do

                   s:=s+i;

     writeln('сумма  от  1  до',n,' = ',s);

End.

2)  цикл  WHILE

program zadacha1b;

     var i,n,s:integer;

Begin

   writeln('введите натуральное n');  readln(n);

   s:=0;    i: =1;

   while i<=n do

        begin

           s:=s+i;

           i:=i+1;

        end;

   writeln('сумма от 1 до',n,'=',s);

End.

Цикл WHILE будет выполняться до тех пор, пока выполняется условие i<=n.  Причем переменную i изменяем внутри цикла.

3)  цикл  REPEAT

program zadacha1c;

      var i,n,s:integer;

Begin

    writeln(' введите  натуральное n');  readln(n);

    s:=0; i:=1;

    repeat

          begin

               s:=s+i;

               i:=i+1;

          end;

    until i>n;

    writeln('сумма от 1 до',n,' = ',s);

End.

Цикл  REPEAT  . . . UNTIL  будет выполняться до тех пор, пока не выполниться  условие i>n.

4. Подведение итогов. Задать вопросы учащимся. Выставление оценок:

  1. Для чего предназначен оператор цикла?

  2. Какие существуют циклы в языке Паскаль?

  3. Какой формат записи имеет оператор FOR?

  4. Как работает оператор FOR?

  5. В каких случаях применяется оператор FOR?

  6. Какие циклы существуют в языке Паскаль?

  7. Какой формат записи имеют циклы WHILE и REPEAT?

  8. В каких случаях удобно применять эти циклы?

  9. Чем отличается  цикл WHILE от цикла REPEAT?

5. Домашнее задание:

Задача.  Дано натуральное число N. Определить, является ли оно простым.

{Для решения задачи:

  • формируем тело программы и описываем переменные;

  • вводим натуральное число;

  • в интервале от 2 до N/2 порождаем натуральные числа и проверяем, являются ли они делителями числа N;

  • в зависимости от значения флага F выводим результат.

program P;

        var         i, n, f : integer;

begin

        repeat

                write('Ввeдитe натуральное число n = ');

                readln(n);

        until  n > 0;

        f:= 0;

        for i := 2 to n div 2 do

                if n mod i = 0 then f := 1;

        if f = 0 then

        writeln('Число ', n : 6, ' простое')

        else writeln('Число ', n : 6, ' нe простое')

end.}

Раздать карточки:

Задания для самостоятельной работы:

  1. Найти сумму всех нечётных трёхзначных чисел.

  2. Найти сумму положительных кратных 7 чисел, меньших 100.

  3. Найти все числа, которые делятся на N среди:

  1. всех двухзначных чисел;

  2. всех трёхзначных чисел.

  1. Составить программу вычисления суммы квадратов чисел от 1 до n.

  2. Среди двузначных чисел найти те, сумма квадратов цифр которых делится на 13.

  3. Найти все делители для заданного числа n.

  4. Дано натуральное число n. Вычислить:

a)  2n;                        b)  3n                        c)   n!;

  1. Среди четырёхзначных чисел выбрать те, у которых:

  1.  все четыре цифры различны (например: 3167, 9012);

  2. имеются три одинаковые цифры (например: 1311, 7779);

  3. цифры попарно различны (например: 1331, 7979, 2255);

  4. цифры образую возрастающую последовательность (например: 1389, 4678);

  1. Написать программу поиска чисел <1000, которые при делении на 2 дают в остатке 1, при делении на 3 дают в остатке 2, при делении на 4 - в остатке 3, при делении на 5 - в остатке 4, при делении на 6 - в остатке 5 а при делении на 7 дают в остатке 6.

  2. Дано натуральное число n.

  1. Сколько цифр в числе n?

  2. Сколько чётных цифр в числе n?

  1. Дано натуральное число n.

  1. Вычислить, входит ли цифра 3 в запись числа n2.

  2. Поменять порядок цифр числа n на обратный.

  3. Переставить первую и последнюю цифры числа n.

  4. Приписать по единице в начало и в конец записи числа n.

  5. Является ли число n - палиндромом? (9889 - да, 9878 -нет)

  1. Дано натуральное число n. Является ли n степенью 3.

  2. Для  данного  натурального   числа  m>1  найдите  максимальное   k,  для  которого  ещё выполняется   равенство   2k<="" span="">

  3. Для  данного  натурального   числа  m>1  найдите  минимальное  k,  для  которого  уже выполняется   равенство   k!>m.  (например,  если  m=10,  то  k=4).  



Просмотрено: 0%
Просмотрено: 0%
Скачать материал
Скачать материал "Конспект на тему: "Алгоритмы с повторениями. Цикл с параметром FOR. Цикл с предусловием WHILE. Цикл с постусловием REPEAT""

Методические разработки к Вашему уроку:

Получите новую специальность за 2 месяца

Менеджер образования

Получите профессию

Интернет-маркетолог

за 6 месяцев

Пройти курс

Рабочие листы
к вашим урокам

Скачать

Скачать материал

Найдите материал к любому уроку, указав свой предмет (категорию), класс, учебник и тему:

6 665 040 материалов в базе

Скачать материал

Другие материалы

Вам будут интересны эти курсы:

Оставьте свой комментарий

Авторизуйтесь, чтобы задавать вопросы.

  • Скачать материал
    • 26.11.2015 1791
    • DOCX 40.2 кбайт
    • 14 скачиваний
    • Оцените материал:
  • Настоящий материал опубликован пользователем Аубакирова Гульзия Мухийденовна. Инфоурок является информационным посредником и предоставляет пользователям возможность размещать на сайте методические материалы. Всю ответственность за опубликованные материалы, содержащиеся в них сведения, а также за соблюдение авторских прав несут пользователи, загрузившие материал на сайт

    Если Вы считаете, что материал нарушает авторские права либо по каким-то другим причинам должен быть удален с сайта, Вы можете оставить жалобу на материал.

    Удалить материал
  • Автор материала

    • На сайте: 8 лет и 11 месяцев
    • Подписчики: 1
    • Всего просмотров: 47588
    • Всего материалов: 20

Ваша скидка на курсы

40%
Скидка для нового слушателя. Войдите на сайт, чтобы применить скидку к любому курсу
Курсы со скидкой

Курс профессиональной переподготовки

Фитнес-тренер

Фитнес-тренер

500/1000 ч.

Подать заявку О курсе

Курс профессиональной переподготовки

Создание и обеспечение электронного архива с использованием информационно-коммуникационных технологий

Специалист по формированию электронного архива

600 ч.

9840 руб. 5600 руб.
Подать заявку О курсе
  • Сейчас обучается 30 человек из 22 регионов
  • Этот курс уже прошли 36 человек

Курс профессиональной переподготовки

Математика и информатика: теория и методика преподавания в профессиональном образовании

Преподаватель математики и информатики

500/1000 ч.

от 8900 руб. от 4150 руб.
Подать заявку О курсе
  • Сейчас обучается 41 человек из 23 регионов
  • Этот курс уже прошли 53 человека

Курс профессиональной переподготовки

Управление сервисами информационных технологий

Менеджер по управлению сервисами ИТ

600 ч.

9840 руб. 5600 руб.
Подать заявку О курсе
  • Сейчас обучается 26 человек из 19 регионов
  • Этот курс уже прошли 34 человека

Мини-курс

Основы психологических трансформационных игр

4 ч.

780 руб. 390 руб.
Подать заявку О курсе
  • Сейчас обучается 55 человек из 33 регионов
  • Этот курс уже прошли 32 человека

Мини-курс

Финансовые аспекты и ценности: концепции ответственного инвестирования

4 ч.

780 руб. 390 руб.
Подать заявку О курсе

Мини-курс

Литературные пути: от биографий к жанрам

4 ч.

780 руб. 390 руб.
Подать заявку О курсе