SlideShare a Scribd company logo
1 of 16
АЛГОРИТМИЧЕСКАЯ СТРУКТУРА “ ЦИКЛ”
            В PASCAL


            Да                Нет
                    Условие



         Оператор
Три вида циклов.


      i := a1, a2, s
                                                Условие


    тело цикла                                  тело цикла

                                   Условие

                                  Цикл             Цикл
Цикл со счетчиком
                             с постусловием   с предусловием




В языке программирования Pascal они
нет
                                  i := a1..a2
Цикл со счетчиком                  да
(с известным числом               тело цикла
      повторений)



For i:= a1 to a2 do   i - параметр цикла, выполняет
                      роль счетчика;
   begin              a1 - начальное значение
      тело цикла      счетчика;
                      a2 - конечное значение
    end;              счетчика.
                                                Назад
ПОСЛЕДОВАТЕЛЬНОСТЬ ВЫПОЛНЕНИЯ КОМАНД
        ОПЕРАТОРА FOR ...TO ...DO...
1.Определяются значения переменных a1 и a2;
2.Переменной i присваивается значение
переменной a1;
3.Проверяется условие выполнения тела цикла
i ≤ a2;
4.Если это условие истинно, то выполняется
тело цикла;
5.Увеличивается значение переменной i на 1;
6.Переход к пункту 3.
Тело цикла будет выполнено a2 – a1 + 1
В операторе For ... значение счетчика может
не только увеличиваться, но и уменьшаться.
В этом случае оператор выглядит так:




 Условие выполнения тела цикла: i ≥ a1.

 Тело цикла будет выполнено a2 – a1 + 1 раз.
Задача 1. Написать программу, которая вычисляет
Задача 1. Написать программу, которая вычисляет
         сумму положительных из n введенных с
          сумму положительных из n введенных с
         клавиатуры целых чисел.
          клавиатуры целых чисел.
Program summa;
Var i, n, x: integer;
Begin
  Writeln (‘ввести количество чисел’);
   Readln(n);
   s :=0;
   For i := 1 to n do
      Begin
         Writeln(‘ввести число’);
         Readln(x);
         If x > 0 then s := s + x;
      End;
  Writeln (‘сумма >0 =‘, s);
Readln;
Задача 2.. Написать программу,
Задача 2 Написать программу,
          выводящую на экран степени
           выводящую на экран степени
          числа 2 (от 0 до 10) в виде
           числа 2 (от 0 до 10) в виде
          таблицы.
           таблицы.
Program stepen2;
Var i, x: integer;
Begin
//Вывод поясняющей записи
Writeln (‘Tabliza’);
  Writeln (‘---------------------------’);
//Присваивание
x :=1;
//Оператор цикла пересчет
For i := 0 to 10 do
      Begin // начало операторных скобок
        Writeln (‘2^’, i:2, ‘=‘, x:5); //i:2 означает два пробела до значения i,
соответственно х:5 озночает пять пробелов до переменной х
         x := x*2;
         Writeln;
       End; //конец операторных скобок
End.
1. Сколько раз будет выполнено тело
   цикла?                               Верно:
   1. for i:= –5 to 5 do тело цикла; 1. 11 раз
   2. for i:= 6 to 2 do тело цикла;     2. 0 раз
   3. for i:= 3 to 3 do тело цикла;     3. 1 раз
   4. for i:= 3 downto 4 do тело цикла; 4. 0 раз
   5. for i:= 3 downto 1 do тело цикла; 5. 3 раза
нет

    Цикл
                            Условие

                             да
с предусловием              тело цикла




                  Тело цикла выполняется,
                   пока условие
                  Чтобы не было
                 зацикливания, переменные,
                 входящие в условие,       должны
                 изменяться в теле цикла.
                                               Назад
Задача 3. Найти количество цифр в введенном с
Задача 3. Найти количество цифр в введенном с
         клавиатуры числе ((n > 0).
          клавиатуры числе n > 0).
 ...
 Write(‘n=‘);
 Readln(n);
     m := n; k :=0;
     While m <> o do
       Begin
          m := m div 10;
          k := k +1;
      End;
   Writeln (‘количество цифр в числе‘, n, ‘=‘, k);
 End.
Цикл              Тело цикла

с постусловием   Да                Нет
                        Условие




                               Назад
Задача 4.. Найти количество цифр в введенном с
Задача 4 Найти количество цифр в введенном с
           клавиатуры числе ((n > 0).
           клавиатуры числе n > 0).
           Решим эту задачу с оператором Repeat ...
           Решим эту задачу с оператором Repeat ...
 ...
 Write(‘n=‘);       1. Операторные скобки (begin ... end)
                    1. Операторные скобки (begin ... end)
 Readln(n);             здесь не нужны;
                        здесь не нужны;
     m := n; k :=0;
                          2. Тело цикла выполнится
                          2. Тело цикла выполнится
                             хотя бы раз независимо от
                             хотя бы раз независимо от
  Repeat                     условия.
                             условия.
         m := m div 10;
         k := k +1;
    Until m = 0;
   Writeln (‘количество цифр в числе‘, n, ‘=‘, k);
 Readln;
 End.
Пусть x и y одновременно не равные нулю
целые неотрицательные числа и пусть x ≥ y.
Если y = 0, то НОД (x, y) = x, а если y ≠ 0,
то для чисел x, y, и r, где r – остаток от деления
x на y, выполняется равенство
НОД (x, y)= НОД(y, r).
Например, пусть x = 48, а y = 18.
НОД(48, 18) = НОД(18, 12) = НОД(12, 6) =
НОД(6, 0) = 6.
Начало


                x, y                   Program NOD;
                                       Var x, y : integer;
      нет                  да          Begin
               x>y
                                          Write(‘vvod x, y’);
y := y mod x            x := x mod y      Readln (x, y);
                                          Repeat

      нет       x=0                           if x > y then x := x mod y
                 or
                y=0                           else y := y mod x
                   да
                                          Until (x = 0) or (y = 0);
               x+y                        Writeln (‘NOD=‘, x + y);
                                       Readln;
               конец
                                       End.
начало


          x,y                          Program NOD;
                                       Var x, y : integer;
                  -
          x<>y
                                       Begin
            +                             Write(‘vvod x, y’);
    -             +                       Readln (x, y);
          x >y
                                       While x<>y do
                                       if x > y then x := x - y
x:=x-y                y:=y-x
                                               else y := y - x
                                       Writeln (‘NOD=‘, x);
                                                 End.
                               NOD


                               конец

More Related Content

What's hot (9)

20090222 parallel programming_lecture01-07
20090222 parallel programming_lecture01-0720090222 parallel programming_lecture01-07
20090222 parallel programming_lecture01-07
 
Presentation lab3-sem3-c++
Presentation lab3-sem3-c++Presentation lab3-sem3-c++
Presentation lab3-sem3-c++
 
цикл в блог
цикл в блогцикл в блог
цикл в блог
 
Циклы
ЦиклыЦиклы
Циклы
 
цикл в блог
цикл в блогцикл в блог
цикл в блог
 
Урок 24. Фантомные ошибки
Урок 24. Фантомные ошибкиУрок 24. Фантомные ошибки
Урок 24. Фантомные ошибки
 
fp intro
fp introfp intro
fp intro
 
Алгоритмическая конструкция Повторение
Алгоритмическая конструкция ПовторениеАлгоритмическая конструкция Повторение
Алгоритмическая конструкция Повторение
 
Использование стратегии локального поиска для решения задачи об N ферзях
Использование стратегии локального поиска для решения задачи об N ферзяхИспользование стратегии локального поиска для решения задачи об N ферзях
Использование стратегии локального поиска для решения задачи об N ферзях
 

Similar to циклы1

Программирование циклических алгоритмов
Программирование циклических алгоритмовПрограммирование циклических алгоритмов
Программирование циклических алгоритмовAndrey Dolinin
 
лекция1
лекция1лекция1
лекция1ap0f30z
 
Циклические коды. Граница БЧХ
Циклические коды. Граница БЧХЦиклические коды. Граница БЧХ
Циклические коды. Граница БЧХAlex Dainiak
 
циклы
циклыциклы
циклыAndEdr
 
Cоставной
CоставнойCоставной
CоставнойOlgaDask
 
Лекция №15. Методы программирования. Предмет "Структуры и алгоритмы обработки...
Лекция №15. Методы программирования. Предмет "Структуры и алгоритмы обработки...Лекция №15. Методы программирования. Предмет "Структуры и алгоритмы обработки...
Лекция №15. Методы программирования. Предмет "Структуры и алгоритмы обработки...Nikolay Grebenshikov
 
Use of eliptic curves for generating digital signature
Use of eliptic curves for generating digital signatureUse of eliptic curves for generating digital signature
Use of eliptic curves for generating digital signatureAndrei Poliakov
 
05 динамическое программирование
05 динамическое программирование05 динамическое программирование
05 динамическое программированиеFedor Tsarev
 
05 динамическое программирование
05 динамическое программирование05 динамическое программирование
05 динамическое программированиеFedor Tsarev
 
Python и его тормоза
Python и его тормозаPython и его тормоза
Python и его тормозаAlexander Shigin
 
291 цикл уроков на тему массивы
291 цикл уроков на тему  массивы291 цикл уроков на тему  массивы
291 цикл уроков на тему массивыsany0507
 
алгоритм циклический
алгоритм циклическийалгоритм циклический
алгоритм циклическийKhydosilova
 

Similar to циклы1 (20)

8 3-5
8 3-58 3-5
8 3-5
 
Программирование циклических алгоритмов
Программирование циклических алгоритмовПрограммирование циклических алгоритмов
Программирование циклических алгоритмов
 
циклы
циклыциклы
циклы
 
лекция1
лекция1лекция1
лекция1
 
Циклические коды. Граница БЧХ
Циклические коды. Граница БЧХЦиклические коды. Граница БЧХ
Циклические коды. Граница БЧХ
 
циклы
циклыциклы
циклы
 
106170
106170106170
106170
 
106170
106170106170
106170
 
циклы 1 урок
циклы 1 урокциклы 1 урок
циклы 1 урок
 
Cоставной
CоставнойCоставной
Cоставной
 
Pri3
Pri3Pri3
Pri3
 
Лекция №15. Методы программирования. Предмет "Структуры и алгоритмы обработки...
Лекция №15. Методы программирования. Предмет "Структуры и алгоритмы обработки...Лекция №15. Методы программирования. Предмет "Структуры и алгоритмы обработки...
Лекция №15. Методы программирования. Предмет "Структуры и алгоритмы обработки...
 
Use of eliptic curves for generating digital signature
Use of eliptic curves for generating digital signatureUse of eliptic curves for generating digital signature
Use of eliptic curves for generating digital signature
 
05 динамическое программирование
05 динамическое программирование05 динамическое программирование
05 динамическое программирование
 
05 динамическое программирование
05 динамическое программирование05 динамическое программирование
05 динамическое программирование
 
Python и его тормоза
Python и его тормозаPython и его тормоза
Python и его тормоза
 
условия, подпрограммы
условия, подпрограммыусловия, подпрограммы
условия, подпрограммы
 
291 цикл уроков на тему массивы
291 цикл уроков на тему  массивы291 цикл уроков на тему  массивы
291 цикл уроков на тему массивы
 
циклы. проект журнал
циклы. проект журналциклы. проект журнал
циклы. проект журнал
 
алгоритм циклический
алгоритм циклическийалгоритм циклический
алгоритм циклический
 

циклы1

  • 1. АЛГОРИТМИЧЕСКАЯ СТРУКТУРА “ ЦИКЛ” В PASCAL Да Нет Условие Оператор
  • 2. Три вида циклов. i := a1, a2, s Условие тело цикла тело цикла Условие Цикл Цикл Цикл со счетчиком с постусловием с предусловием В языке программирования Pascal они
  • 3. нет i := a1..a2 Цикл со счетчиком да (с известным числом тело цикла повторений) For i:= a1 to a2 do i - параметр цикла, выполняет роль счетчика; begin a1 - начальное значение тело цикла счетчика; a2 - конечное значение end; счетчика. Назад
  • 4.
  • 5. ПОСЛЕДОВАТЕЛЬНОСТЬ ВЫПОЛНЕНИЯ КОМАНД ОПЕРАТОРА FOR ...TO ...DO... 1.Определяются значения переменных a1 и a2; 2.Переменной i присваивается значение переменной a1; 3.Проверяется условие выполнения тела цикла i ≤ a2; 4.Если это условие истинно, то выполняется тело цикла; 5.Увеличивается значение переменной i на 1; 6.Переход к пункту 3. Тело цикла будет выполнено a2 – a1 + 1
  • 6. В операторе For ... значение счетчика может не только увеличиваться, но и уменьшаться. В этом случае оператор выглядит так: Условие выполнения тела цикла: i ≥ a1. Тело цикла будет выполнено a2 – a1 + 1 раз.
  • 7. Задача 1. Написать программу, которая вычисляет Задача 1. Написать программу, которая вычисляет сумму положительных из n введенных с сумму положительных из n введенных с клавиатуры целых чисел. клавиатуры целых чисел. Program summa; Var i, n, x: integer; Begin Writeln (‘ввести количество чисел’); Readln(n); s :=0; For i := 1 to n do Begin Writeln(‘ввести число’); Readln(x); If x > 0 then s := s + x; End; Writeln (‘сумма >0 =‘, s); Readln;
  • 8. Задача 2.. Написать программу, Задача 2 Написать программу, выводящую на экран степени выводящую на экран степени числа 2 (от 0 до 10) в виде числа 2 (от 0 до 10) в виде таблицы. таблицы. Program stepen2; Var i, x: integer; Begin //Вывод поясняющей записи Writeln (‘Tabliza’); Writeln (‘---------------------------’); //Присваивание x :=1; //Оператор цикла пересчет For i := 0 to 10 do Begin // начало операторных скобок Writeln (‘2^’, i:2, ‘=‘, x:5); //i:2 означает два пробела до значения i, соответственно х:5 озночает пять пробелов до переменной х x := x*2; Writeln; End; //конец операторных скобок End.
  • 9. 1. Сколько раз будет выполнено тело цикла? Верно: 1. for i:= –5 to 5 do тело цикла; 1. 11 раз 2. for i:= 6 to 2 do тело цикла; 2. 0 раз 3. for i:= 3 to 3 do тело цикла; 3. 1 раз 4. for i:= 3 downto 4 do тело цикла; 4. 0 раз 5. for i:= 3 downto 1 do тело цикла; 5. 3 раза
  • 10. нет Цикл Условие да с предусловием тело цикла  Тело цикла выполняется, пока условие  Чтобы не было зацикливания, переменные, входящие в условие, должны изменяться в теле цикла. Назад
  • 11. Задача 3. Найти количество цифр в введенном с Задача 3. Найти количество цифр в введенном с клавиатуры числе ((n > 0). клавиатуры числе n > 0). ... Write(‘n=‘); Readln(n); m := n; k :=0; While m <> o do Begin m := m div 10; k := k +1; End; Writeln (‘количество цифр в числе‘, n, ‘=‘, k); End.
  • 12. Цикл Тело цикла с постусловием Да Нет Условие Назад
  • 13. Задача 4.. Найти количество цифр в введенном с Задача 4 Найти количество цифр в введенном с клавиатуры числе ((n > 0). клавиатуры числе n > 0). Решим эту задачу с оператором Repeat ... Решим эту задачу с оператором Repeat ... ... Write(‘n=‘); 1. Операторные скобки (begin ... end) 1. Операторные скобки (begin ... end) Readln(n); здесь не нужны; здесь не нужны; m := n; k :=0; 2. Тело цикла выполнится 2. Тело цикла выполнится хотя бы раз независимо от хотя бы раз независимо от Repeat условия. условия. m := m div 10; k := k +1; Until m = 0; Writeln (‘количество цифр в числе‘, n, ‘=‘, k); Readln; End.
  • 14. Пусть x и y одновременно не равные нулю целые неотрицательные числа и пусть x ≥ y. Если y = 0, то НОД (x, y) = x, а если y ≠ 0, то для чисел x, y, и r, где r – остаток от деления x на y, выполняется равенство НОД (x, y)= НОД(y, r). Например, пусть x = 48, а y = 18. НОД(48, 18) = НОД(18, 12) = НОД(12, 6) = НОД(6, 0) = 6.
  • 15. Начало x, y Program NOD; Var x, y : integer; нет да Begin x>y Write(‘vvod x, y’); y := y mod x x := x mod y Readln (x, y); Repeat нет x=0 if x > y then x := x mod y or y=0 else y := y mod x да Until (x = 0) or (y = 0); x+y Writeln (‘NOD=‘, x + y); Readln; конец End.
  • 16. начало x,y Program NOD; Var x, y : integer; - x<>y Begin + Write(‘vvod x, y’); - + Readln (x, y); x >y While x<>y do if x > y then x := x - y x:=x-y y:=y-x else y := y - x Writeln (‘NOD=‘, x); End. NOD конец