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.  Для циклу з постумовою запишіть його повний еквівалент за допомогою циклу з передумовою


 

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

24368. Возникновение науки. Две стратегии порождения знаний: обобщение практического опыта и конструирование теоретических моделей 104 KB
  Такой например характер имели геометрические знания древних египтян. Однако по мере развития практики наряду с отмеченными способами познания формируется новый способ построения знания. При таком методе исходные идеальные объекты черпаются уже не из практики а заимствуются из ранее сложившихся систем знаний языка и применяются в качестве строительного материала при формировании нового знания. Таким образом в науке наряду с эмпирическими правилами и зависимостями которые знала и преднаука формируется особый тип знания теория...
24369. Античный этап развития науки: логика и математика 104 KB
  Первые европейские ученые и философы любители мудрости Фалес Анакасимен Анаксимандр Гераклит опираясь на факты и логику впервые мыслили вещи не фантастически а стремились к естественнонаучном безличному целостному описанию природы космоса мира. Осуществляя многочисленные наблюдения за поведением планет Солнца природных и общественных явлений используя также и мифологически воззрения от них полностью устраниться не удалось они пытались найти как общие законы изменения и устройства мира так и частные его характеристики....
24370. Наука средневековья. Роль христианской теологии в изменении созерцательной позиции ученого 114 KB
  Начало мира это сам Бог. В результате христианское учение постепенно стало приобретать форму рациональной теологии где определенное место отводилось вопросам познания устройства мира. Предельность конечность мира в пространстве включала геоцентризм Аристотеля и Птоломея и оттеняла космическую функцию Христа. Он как бы замещал исследование причинноследственных связей превращался в важнейший способ восприятия мира и выражения опыта развивал мышление позволяя превращать истины веры в зрительные образы.
24371. Формирование идеалов (математизированное и опытное, экспериментальное знание) науки Нового времени (Г. Галилей, Ф. Бэкон, Р. Декарт) 127 KB
  это время становления новой современной науки. Этому способствовали как внутренние изменения самой науки уже Коперник и Кеплер свою гелиоцентрическую картину мира обосновывают с помощью математического расчета. Давление воды на лопатку движение деталей насоса кузнечного молота шелкопрядильной машины включали в себя непрерывную цепь механических причин и следствий ставших основой механической картины мира классического идеала науки.
24372. Формирование и соотношение естественных, технических и социально-гуманитарных наук: сходство и различия 106 KB
  Лпркшпрожю Развитие технических наук стимулирует развитие естествознания их взаимосвязь не прервалась и после выделения технической науки в отдельную область знания. В то же время существует большой разрыв между действительным применением результатов технической науки на практике и занятием самой этой наукой. С методологической точки зрения исследование в технической науке не сильно отличается от естественнонаучного исследования. Таким образом в научнотехнических дисциплинах необходимо четко различать исследования включенные в инженерную...
24373. Многообразие типов научного знания. Сущность и структура эмпирического знания 55 KB
  Материализация и первичное обобщение данных отражения в форме знания на основе правил соответствия узнавание сравнение измерение описание образуют эмпирические факты эмпирические объекты эмпирическую информацию. Эмпирические факты условно можно разделить на два вида: а факты в основание которых лежат не зависящие от субъекта явления например природные процессы и б факты созданные человеком например экономика экономические отношения. Эмпирические факты обладают большей степенью общности чем единичные данные но меньшей чем...
24374. Сущность и структура теоретического знания 52.5 KB
  Теория это высшая самая развитая форма организации научного знания дающая целостное представление о закономерностях и существенных связях определенное области действительности объекта данной теории 77. С помощью этих знаковых образований языка теории возникает возможность более точно и глубоко судить о соответствующей изучаемой предметной области. Кроме того тот или иной вид теории определяется предметом и задачами исследования глубиной раскрытия сущности предметов и др. Также имеют место попытки поиска идеальной схемы...
24375. Основания науки: нормы и идеалы науки, роль философских идей и принципов в обосновании научного знания (законы и категории) 116.5 KB
  Среди идеалов и норм можно выделить два взаимосвязанных блока: а собственно познавательные установки которые регулируют процесс воспроизведения в различных формах научного знания; б социальные нормативы фиксируют роль науки и ее ценность для общественной жизни на определенном этапе исторического развития. Существует еще и такое мнение что в период нормального эволюционного периода развития науки возможно бессознательное использование многих научных идеалов и норм. Закон единства и борьбы противоположностей является ядром диалектики...
24376. Понятие научной картины мира. Ее исторические формы. Функции научной картины мира (как онтология, форма систематизации знаний, исследовательская программа) 119.5 KB
  Функции научной картины мира как онтология форма систематизации знаний исследовательская программа По Радугину стр. 93 Становление понятия научной картины мира Вопрос о существовании научной картины мира и ее месте и роли в структуре научного знания впервые был поставлен и в определенной степени разработан выдающимися ученымиестествоиспытателями М.Планк в рамках обсуждения проблемы онтологических оснований научного знания поставил вопрос о существовании научной картины мира.