61896

ОПЕРАТОРИ ЦИКЛУ

Конспект урока

Педагогика и дидактика

Призначення операторів циклу. Кожний з трьох засобів організації циклу має свої особливості для кожного засобу є своє коло задач які найбільш природно вирішуються саме з його допомогою.

Украинкский

2014-06-02

93.5 KB

0 чел.

                          Т Е М А   6.

                        ОПЕРАТОРИ ЦИКЛУ.

  1.  Призначення операторів циклу.

    Лінійні  алгоритми і алгоритми з розгалудженням не дозволяють

в багатьох випадках эфективно використовувати    одну   з головних

складових продуктивності комп'ютера - його  швидкодію (до 10^9

операцій  в  секунду).   Для    цього   необхідні   програми, в

яких  окремі   фрагменти  виконуються  багаторазово.  Одним з

найбільш простих  засобів  організації повторного виконування серії команд є ЦИКЛИ.

Командою повторення або циклом називається така форма організації дій, при якій одна й та сама послідованість дій повторюється до тих пір, поки зберігається значення деякого логічного виразу. При змінюванні значення логнчного виразу на протилежне повторення припиняються (цикл завершується).

Розрізняють цикли з відомою кількістю повторень (цикл з параметром) і ітераційні (з перед- і постумовою).

    В мові Паскаль можлива організація циклів трьох видів:

            1. цикли з передумовою (поки - while);

            2. цикли з параметром (для - to/downto);

            3. цикли з постумовою (до - repeat/until).

Кожний  з трьох засобів організації циклу має свої особливості, для  кожного  засобу  є  своє  коло задач,  які найбільш  природно
вирішуються саме з його допомогою.

2. Оператор циклу з передумовою (цикл - поки/while).

    Цикл    "поки" використовують в тому випадку, коли необхідно,

щоб   спочатку   перевірялася деяка умова, а потім, якщо  умова є

істинною,  виконувались  деякі дії.  В процесі   виконування

цих дій видбувається зміна  значень   змінних, які  входять в

указану умову, в  якості  операндів.  Тому  при N-кратному

виконуванні   циклу   відбувається  зміна  значення  логічного

виразу  -  умови  з  TRUE  на FALSE. В  цьому  випадку виконування

циклу закінчується  і виконується перший оператор, що стоїть після

оператора   циклу.  Якщо  при  запису  умови  або  операторів, які

виконуються в  циклі, була  зроблена  помилка, то в такій сітуації

можливе   зациклювання  -  значення  логічного  виразу  ніколи  не

стане  FALSE  і,  як  наслідок,  група  операторів  в  циклі  буде

виконуватись  "вічно".

    Цикл ─ "поки"  служить для організації N-кратного виконування

групи   операторів   ( тіла  циклу ) до тих  пір, поки залишається

істинною    умова   виконування   циклу.  Цикл  з  передумовою  має такий  формат :

                      while  <умова>  do

                             <оператор> ;

Структурна схема циклу  з  передумовою

     вхід

     вихід

    Виконується  цей цикл таким  чином.

  •  Обчислюється значення виразу-умови.  
    Якщо  воно істинно   (приймає  значення  TRUE), то

виконується   тіло   циклу.

  •  В  протилежному  випадку  виконується

оператор, який  стоїть  після  оператора  циклу "поки    (тобто тіло циклу   виконується  до тих  пір,  поки  значення  умови  не стане дорівнювати FALSE).

Зауваження:

    1. В   якості  тіла  циклу  може  бути  використаний  будь-

       який   оператор,  в   тому   числі складений.   Це  дає

        можливість  циклічно  повторювати  не одну, а декілька  

       дій.

  В цому  випадку  конструкція циклу "поки"  набуває   

  вигляду:

                   while <умова>  do

                        begin

                            <оператор_1> ;

                                 . . .

                            <оператор_n> ;

                        end {while};

     2. Якщо < умова >  в  операторі  while  має значення FALSE

        вже  при  першій перевірці, то тіло циклу не виконується

        жодного разу.

     3. Дозволяється  використання   вкладених   циклів,  тобто  

          конструкцій,  в  котрих  деякі  оператори   тіла  циклу

          самі  можуть  бути  циклами. Іньший  засіб вкладання

          циклів  НЕ ДОПУСКАЄТЬСЯ.

          Приклад:

                   while <умова_1>  do

                        while <умова_2>  do

                              begin

                                   <оператор_k>

                                       while <умова_3>  do

                                             <оператор_n>;

                                   <оператор_l>;

                              end {while};

       4. Треба   підбирати   умову   для   циклу   "поки"  таким

          чином,  щоб  в  якийсь  момент  вона   змінила значення

          з   TRUE   на   FALSE,  інакше  настане  "зациклювання"

          програми  -  тобто  виконування  тіла   циклу  до  того

          моменту,  коли   ресурси   комп'ютера  будуть вичерпані

          або до переривання   виконування програми користувачем.

       5. Вхід в тіло циклу  можливий  ТІЛЬКИ через його  

          заголовок.

Приклад  використання  оператора циклу  з  передумовою.

       Задача.

       Обчислити  суму  такого ряду :

                1 + 1/2 + 1/3 + 1/4 + ... + 1/n.

       Рішення.

        {---------------------------------------------}

        {обчислення суми ряда за допомогою циклу while}

        {---------------------------------------------}

        var

          Sum  :  real;

          i, n :  integer;

        begin

          i := n;

          Sum := 0;

          while  i >= 1  do

            begin

              Sum := Sum + 1/i;

              I := i - 1;

            end;

       

         end.

    Точність обчислення  суми   в  даному  випадку  (тобто  при

додаванні в  зворотному  порядку)вище,  ніж   при  додаванні в

прямому. Пов'язано  це з  кінцевісттю  розрядної  сітки комп'ютера.

Тому   додавання   послідовностей   завжди    треба   проводити з  того  кінця,  де елементи  мають  найменьше значення абсолютної

величини.

3. Оператор циклу з параметром.

    Цикл з  параметром  використовується звичайно в тих випадках,

коли  наперед  (до  початку  виконування  циклу)  можна  визначити

кількість  повторень   циклу.  

Цикл  з  параметром   служить   для організації   n-кратного   виконування   тіла  циклу  для  значень параметра циклу  із  деякої  упорядкованої   дискретної   множини.

    Оператор  циклу з параметром  має  дві  форми  запису :

    1.  for <параметр> := <вираз_1> to <вираз_2> do

                         <тіло_циклу>;

    2.  for <параметр> := <вираз_1> downto <вираз_2> do

                         <тіло циклу>;

    Параметр  (його  ще  називають  параметром  циклу,   керуючою

змінною,   індексом,   лічильником )  - це   змінна   діскретного

типу, тобто типу, на множині значень   котрого  визначені  поняття

"попередній   елемент"  та   "наступний   елемент".

Частіше  за все використовуються  змінні   типу  integer  (але  допустимі  char  іboolean). Не  дозволений  до  використання   параметр типу real.

    Вираз_1  (початкове  значення параметра) -   це    константа,

змінна  або  вираз  того же типу, що  і  параметр  циклу.

    Вираз_2  ( кінцеве  значення  параметру ) має  той  же  спосіб визначення, що і вираз_1.

    Тіло  циклу  - це  оператор, наступний за ключовым словом do.

Якщо  необхідно повторити  декілька операторів, то вони  беруться

в  операторні   дужки   begin   та   end,  і  тілом  циклу   стає

складений  оператор.

   Роздивимось  процес виконування операторів циклу з параметром:

   1. Цикл for/to:

                     for  i := a  to  b  do

                          < тіло циклу >;

  1.  Параметру  циклу  i  надається   початкове   значеня  a.
  2.  Воно порівнюється  із  значенням  b.  
    Якщо  в упорядкованій  множині  i<= b, то  виконується тіло  циклу.
  3.  Потім  параметру  i  присвоюється   значення,  і + 1.    
  4.  Потім відбувається  повернення до порівняння з кінцевим значенням.
  5.  Якщо при перевірці з'ясувалося,  що  поточне значення i>b, то відбувається вихід  із циклу - виконується  наступний за тілом циклу оператор.

    

2. Цикл for/downto:

                   for  i := a  downto  b  do

                         < тіло циклу >;

   Цей  цикл  виконується   таким чином.

 

  •  Параметру   циклу і присвоюється  початкове  значення а.
  •  Значення параметра порівнюється
    з  кінцевим   значенням.   
       
  •  Якщо i< b  , то  відбувається вихід із циклу. В протилежному    випадку  виконується    тіло    циклу.
  •  Змінній i присвоюється  значення  i - 1 та програма  повертається до порівняння з кінцевим значенням.

Зауваження:

   1. Цикл  з параметром  зручно  використовувати в тих випадках,

      коли  кількість повторень можна  визначити  заздалегідь.

   2. Тіло   циклу   for   може  не  виконатися жодного  разу. Це

      відбудеться,  якщо    в   упорядкованій  множині   кінцеве

      значення  параметра  циклу  передує  початковому (в випадку

      to)  або  початкове  значення   передує   кінцевому   ( в

      випадку  downto).   Так  відбувається  тому,  що  перевірка

      умови, чи  виконуїться взагалі цикл for, відбувається ПЕРЕД

      виконуванням  циклу.  Тому  на  Паскалі  цикл  з параметром

      є  випадком  циклу  з передумовою  і  має таку ж структурну

 схему.

   3. Параметр    циклу   не   повинен  змінюватись   яким-небудь

      оператором  всередині   циклу.  Параметр   може довільним

      чином   використовуватись   в   виразах  в  тілі циклу, але

      присвоювати  йому нове значення в тілі циклу небажано, бо

 це може   призвести  до  непередбачених  наслідків.

   4. Параметр  циклу, як і  будь-яка  інша  змінна, повинен бути

      описаний  в  розділі  змінних.

   5. Після    виконування     оператора   циклу  параметр  циклу

      вважається  невизначеним  і  не  повинен  використовуватись

      в наступних  операторах  без  попередньго присвоєння йому

      значення.

   6. Вхід в тіло циклу  можливий ТІЛЬКИ через його заголовок.

   7. Дозволяється  використання  вкладених  циклів.Їх реалізація

      повинна проводитися за тими ж правилами, що і для циклів  з

      передумовою.

4. Приклади  використання операторів циклу з параметром.

    

  1.  Задача.

    Обчислити  суму  такого  ряду :

                1 + 1/2 + 1/3 + 1/4 + ... + 1/n.

    Рішення за  допомогою  циклу  for/to :

        {----------------------------------------------}

        {Обчислення суми ряду за допомогою циклу for/to}

        {----------------------------------------------}

           var

             Sum  : real;

             i, n : integer;

           begin

 {Введення n}

             Sum := 0;

             for i := 1 to n do

               Sum := Sum + 1/i;

           ;

           end.

  1.  Задача.
  2.  

    Обчислити значення n!.

    Рішення за  допомогою циклу  for/donto :

        {--------------------------------------------------}

        {Обчислення факторіала за допомогою циклу for/downto}

        {--------------------------------------------------}

           var

             Factorial,

             n, i : integer;

 begin

   {Введення n}

             Factorial := 1;

             for i := n downto 2 do

               Factorial := Factorial * i;

   

    {Виведення Factorial  }   

           end.

5. Оператор циклу з постумовою (цикл - до / repeat/until).

    Цикл  -  "до"  використовуїться в тому випадку, коли доцільно

організувати  повторення  так, щоб  спочатку  виконувалась   деяка

послідовність  дій, а  потім  перевірялася  умова   зупинки  її

виконування.

    Цикл  -  "до" служить  для організації n-кратного виконування

групи операторів (тіла циклу) до тих пір, поки умова завершення

циклу не стане істинною.

    Оператор циклу з постумовою має такий формат :

                  

 repeat

                         <оператор 1> ;

                              . . .

                         <оператор N> ;

                    until <умова> ;

    Значення ключових слів : repeat - повторювати,  until - до.

    

Структурна схема оператора циклу з постумовою

    Виконується  оператор  циклу  з постумовою таким   чином.  

  •  Спочатку   виконуються   оператори  тіла  циклу.  
  •  Потім  перевіряється значення  виразу-умови.
    Якщо  воно  хибне  (тобто  його  значення
    дорівнює  FALSE), то  знов виконується тіло циклу.
    В  протилежному випадку  виконується  черговий оператор.

Зауваження:

    1. Тіло  циклу  з  постумовою мати в собі  декілька

       операторів,  які  не треба брати в операторні   дужки. В

       даному  випадку ключові слова repeat та until грають роль

       операторних   дужок,   між   якими  може  знаходитись

       довільна    кількість   операторів.

    2.  <Умова>  є умовою ВИХОДУ із циклу на відміну від

       умови  ПРОДОВЖЕННЯ циклу в циклі з  передумовою  (while).

    3. Не  треба забувати, що тіло циклу з постумовою    завжди

       буде виконуватись хоча б один раз.

    4. Ввійти в тіло циклу  можливо ТІЛЬКИ через  його заголовок.

    5. Дозволяється  виконування  вкладених  циклів. Їх  

       Реалізація повинна  відбуватися за  тими ж  правилами, що  

       і для циклів з  передумовою.

7. Приклад  використання  оператора циклу з передумовою.

       Задача.

       Обчислити  суму  такого ряду :

                1 + 1/2 + 1/3 + 1/4 + ... + 1/n.

        {----------------------------------------------------}

        {Обчислення суми ряда за допомогою циклу repeat/until}

        {----------------------------------------------------}

          

var

            Sum  : real;

            i, n : integer;

          begin

 {Введення n}

                        

            i := n;

            Sum := 0;

            repeat

              Sum := Sum + 1/i;

              i := i - 1;

             until ( i < 1 );

{Виведення Sum}

 

          end.

 

Контрольні питання і завдання

  1.  Назвіть відмінність ітераційних циклів і циклу з параметром.
  2.  Яка структура оператора циклу з параметром? Як виконується цикл з парметром?
  3.  Якого типу повинен бути параметр циклу, його початкове і кінцеве значення в циклі з параметром в мові Pascal?
  4.  Чи можуть параметр циклу, його  початкове і кінцеве значення в циклі з параметром в мові Pascal бути різних типів?  Обгрунтуйте відповідь.
  5.  Чи може один цикл бути вкладеним всередину іншого? Якщо так, то яка глибина цій вкладеності?
  6.  Якою є структура циклів з перед- і постумовою? Як виконуються ці цикли?
  7.  Яка мінімальна і максимальна кількість виконувань циклів з перед- і постумовою? З чим це пов‘язане?
  8.  Скільки разів виконається фрагмент програми?

 For i := 1 to -1 Do

                          k:=k*i;

  1.  Скільки разів виконається фрагмент програми?

 For i := -1 to 1 Do

                          k:=k*i;

  1.  Скільки разів виконається фрагмент програми?

 For i := 1 downto -1 Do k:=k*i;

  1.   Скільки разів виконається фрагмент програми?

             M := 123;   

                While M <> 0 Do

                    M := M Mod 10;

  1.  Для цикла с параметром запишите его полный эквивалент с помощью циклов с пред- и постусловием.
  2.  Для циклу з передумовою запишіть його повний еквівалент за допомогою циклу з постумовою.
  3.  Для циклу з постумовою запишіть його повний еквівалент за допомогою циклу з передумовою


 

А также другие работы, которые могут Вас заинтересовать

24740. Линейные списки – стеки, очереди, деки. Набор процедур для работы со связанным стеком, очередью 1.08 MB
  Способы обхода бинарного дерева. Древовидная структура – это конечное множество содержащее один или более узлов n такое что: 1 имеется один специально обозначенный узел называемый корнем данного дерева. Линия связи между парой узлов дерева называется обычно ветвью. Те узлы которые не ссылаются ни на какие другие узлы дерева называются листьями или терминальными вершинами рис.
24741. English Speaking Countries 17.49 KB
  The Commonwealth of Australia territories are the continent of Australia the island of Tasmania and number of smaller islands. Australia has an area of nearly eight million square kilometres. The population of Australia is over sixteen million people.
24742. Outstanding people of Russia Federation 16.41 KB
  The names of Russian scientists and writers poets composers and painters are worldfamous Pushkin Lermontov Chehov Levitan. It is almost impossible to name a branch of science in the development of which the Russian scientists haven't played the greatest role. Works of our Russian writes and poets are translated into many languages.
24743. Службы разрешения имен DNS и WINS 15.76 KB
  Для решения этой проблемы Windows XP и Windows Server 2003 обеспечивают возможность сопоставления разрешения IPадреса с именем компьютера. В состав Windows XP и Windows Server 2003 входят также две службы обеспечивающие централизованное хранение информации о соответствии имен компьютеров IPадресам и обслуживание запросов на поиск такого соответствия: служба WINS Windows Internet Name Service обеспечивающая управление именами NetBIOS. Эта служба включена для поддержки клиентских компьютеров управляемых версиями Windows 9x Me NT; ...
24744. Сетевая технология 23.5 KB
  Принципиально эти решения можно разделить на три группы: передача разных типов трафика по отдельным физическим линиям создание двух независимых сетевых инфраструктур; передача различных типов трафика по одной линии; преобразование одного вида трафика в другой с последующей транспортировкой и коммутацией.
24745. Физическая структуризация сетей. Примеры 26.36 KB
  Примеры Для построения простейшей односегментной сети достаточно иметь сетевые адаптеры и кабель подходящего типа. Повторитель улучшает электрические характеристики сигналов и их синхронность и за счет этого появляется возможность увеличивать общую длину кабеля между самыми удаленными в сети станциями. Логический сегмент построенный с использованием концентраторов Появление устройств централизующих соединения между отдельными сетевыми устройствами потенциально позволяет улучшить управляемость сети и ее эксплуатационные характеристики...
24746. Логическая структуризация сети 26 KB
  Логическая структуризация сети Несмотря на появление новых дополнительных возможностей основной функцией концентраторов остается передача пакетов по общей разделяемой среде. Коллективное использование многими компьютерами общей кабельной системы в режиме разделения времени приводит к существенному снижению производительности сети при интенсивном трафике. Общая среда перестает справляться с потоком передаваемых кадров и в сети возникает очередь компьютеров ожидающих доступа. Это явление характерно для всех технологий использующих разделяемые...
24747. Функции маршрутизатора в сети 26.5 KB
  Функции маршрутизатора в сети Маршрутиза́тор сетевое устройство пересылающее пакеты данных между различными сегментами сети и принимающее решения на основании информации о топологии сети и определённых правил заданных администратором. Нередко маршрутизатор используется для обеспечения доступа из локальной сети в глобальную сеть Интернет осуществляя функции трансляции адресов и межсетевого экрана.
24748. Функции шлюза в сети 23.5 KB
  Функции шлюза в сети Сетевой шлюз аппаратный маршрутизатор или программное обеспечение для сопряжения компьютерных сетей использующих разные протоколы например локальной и глобальной. Сетевой шлюз может быть специальным аппаратным роутером или программным обеспечением установленным на обычный сервер или персональный компьютер.