Как сделать цикл информатика

Добавил пользователь Дмитрий К.
Обновлено: 05.10.2024

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

Как правило, человек составляет программы, в которых каждая команда в отдельности и весь алгоритм в целом выполняются за конечное число повторений.

Алгоритмическая конструкция повторение (цикл) определяет последовательность действий, выполняемых многократно. Эту последовательность действий называют телом цикла.

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

Алгоритмическая конструкция цикл с параметром (цикл со счетчиком) — способ организации цикла, при котором количество повторов зависит от начального и конечного значений параметра цикла.

Таким образом, цикл с параметром организует выполнение команд тела цикла заранее известное число раз (пример 10.1).

Параметр цикла определяет нумерацию действий в цикле. Параметр цикла может принимать только целые значения. Часто нумерацию начинают с 1 и заканчивают числом N (пример 10.2). В этом случае цикл выполнится N раз. Если нумерация установлена двумя произвольными числами N 1 (начальное значение) и N 2 (конечное значение), то цикл выполнится ( N 2 – N 1 + 1) раз.

Алгоритмическая конструкция цикла с параметром может изображаться на блок-схеме следующим образом (значение параметра изменяется от 1 до N ):


В данной конструкции в прямоугольнике(ах) записываются повторяющиеся команды алгоритма (тело цикла), которые выполняются N раз (Да). При этом после каждого выполнения команд тела цикла происходит проверка, который раз выполняется цикл. На блок-схеме переход на проверку условия изображается в виде стрелки, выходящей из тела цикла и возвращающейся к проверке. Как только команды тела цикла выполнятся N раз (Нет), цикл завершается (пример 10.3). Если N  0, то команда тела цикла не выполнится ни разу.

10.2. Использование команды цикла с параметром для исполнителя Робот

Чтобы составлять алгоритмы с циклами для компьютерного исполнителя Робот, нужно знать, как записывается команда цикла.

Для записи цикла с параметром используется команда for . Формат записи команды :

for var i:= N1 to N2 do 1

Операторные скобки — пара слов, определяющих в языке программирования блок команд, воспринимаемый как единое целое, как одна команда.

Слова begin и end; являются операторными скобками в языке Pascal . Если тело цикла состоит из одной команды, операторные скобки можно опустить.

Пример 10.4. Решим задачу с2 из встроенного задачника.

Робот должен закрасить клетки поля, перемещаясь вправо. Для закрашивания всех 10 клеток поля нужно в цикле выполнить 10 раз команды:

Данные команды образуют тело цикла.

Командами, образующими тело цикла, могут быть любые команды из системы команд исполнителя. Кроме того, в теле цикла может вызываться вспомогательный алгоритм. Использование вспомогательного алгоритма позволит сократить запись тела цикла и сделает программу более понятной.

Пример 10.5. Решим задачу с7 из встроенного задачника.

На поле исполнителя Робот присутствуют стены. При обходе стен Робот выполняет следующие команды:

Чтобы решить задачу, Робот должен повторить эти команды 5 раз. Оформим данные команды как вспомогательный алгоритм kvadrat и вызовем его в цикле.

В рассмотренном примере тело цикла состоит из одной команды kvadrat , поэтому операторные скобки begin end ; можно не использовать.

Понятие цикла используется в различных сферах человеческой деятельности.

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

Цикло м называют тот или иной круг наук: гуманитарный цикл наук, физико-математический цикл.

Циклом является законченный ряд каких-либо произведений, чего-либо излагаемого, исполняемого: цикл лекций, цикл стихотворений.


Понятие цикла используется в математике, химии, биологии, геологии, музыке, литературе, информатике и других науках.

Пример 10.1. Приготовление пельменей.


    1. Вскипятить воду.
    2. Для i = 1..10 повторять:

    1. 2.1.
      Достать пельмень из упаковки.
    2. 2.2.
      Бросить пельмень в кипящую воду.

    Блок-схема данного алгоритма будет выглядеть следующим образом:

    Пример 10.2. Вычислим a n (например, 3 5 = 243). Алгоритм возведения числа в степень может быть описан следующим образом:

      1. Ввести значения a и n .
      2. Определить начальное значение результата r = 1.
      3. Для i = 1.. n повторять:
        1. 3.1.Умножить результат на a .

        Пример 10.3. В фольклорных произведениях часто встречается многоголовый Змей Горыныч (количество голов может быть, например, 7). Алгоритм победы над Змеем Горынычем может быть описан следующим образом:

        Иногда необходимо повторять одно и то же действие несколько раз подряд. Для этого используют циклы. В этом уроке мы научимся программировать циклы на C++, после чего посчитаем сумму всех чисел от 1 до 1000.

        Цикл for

        Если мы знаем точное количество действий (итераций) цикла, то можем использовать цикл for . Синтаксис его выглядит примерно так:

        Итерацией цикла называется один проход этого цикла

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

        Счетчик цикла — это переменная, в которой хранится количество проходов данного цикла.

        Описание синтаксиса

        Сначала присваивается первоначальное значение счетчику, после чего ставится точка с запятой.

        Затем задается конечное значение счетчика цикла. После того, как значение счетчика достигнет указанного предела, цикл завершится. Снова ставим точку с запятой.

        Задаем шаг цикла. Шаг цикла — это значение, на которое будет увеличиваться или уменьшаться счетчик цикла при каждом проходе.

        Пример кода

        Напишем программу, которая будет считать сумму всех чисел от 1 до 1000.

        Данный цикл будет выполняться, пока условие, указанное в круглых скобках является истиной. Решим ту же задачу с помощью цикла while. Хотя здесь мы точно знаем, сколько итераций должен выполнить цикл, очень часто бывают ситуации, когда это значение неизвестно.

        Ниже приведен исходный код программы, считающей сумму всех целых чисел от 1 до 1000.

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

        Информатика и информационно-коммуникационные технологии в школе

        MyTestX - лего и удобно

        Учимся программировать!
        Конспекты школьника.

        Циклы в алгоритмах и программах.

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

        С необходимостью повторяющихся вычислений программисты сталкиваются постоянно. Например, если надо подсчитать, сколько раз буква "о" встречается в тексте необходимо перебрать все буквы. При всей простоте этой программы исполнить ее человеку очень трудно, а для компьютера это задача на несколько секунд.

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

        Перечень повторяющихся действий называют телом цикла.

        Например, на уроке физкультуры вы должны пробежать некоторое количество кругов вокруг стадиона.

        Такие циклы называются - циклы со счетчиком.

        На языке Basic они записываются следующим образом:

        FOR Счетчик=НачЗнач TO КонЗнач [STEP шаг]
        тело цикла
        NEXT [Счетчик]

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

        Пример: Вывести на экран все числа от 1 до 100. Для этого можно было бы написать следующую программу:

        REM Вывод чисел от 1 до 100
        PRINT 1
        PRINT 2
        PRINT 3
        PRINT 4
        PRINT 5
        PRINT 6
        PRINT 7
        .
        PRINT 98
        PRINT 99
        PRINT 100
        END

        Всего каких-то 102 строчки ;-). Хотя эту же программу можно написать намного короче:

        REM Вывод чисел от 1 до 100
        FOR I=1 TO 100
        PRINT I
        NEXT
        END

        Немного исправив программу можно сделать, чтобы она выводила все числа от a до b.

        REM Вывод чисел от a до b
        a=55
        b=107
        FOR I=a TO b
        PRINT I
        NEXT
        END

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

        Легко сделать чтобы программа выводила числа в обратном порядке. Для этого шаг цикла должен быть равен -1 (минус один). В этом случае значение счетчика каждый раз после прохождения цикла будет уменьшено на единицу.

        REM Вывод чисел от b до a
        a=55
        b=107
        FOR I=b TO a STEP -1
        PRINT I
        NEXT
        END

        Пример: Вычислить сумму двухзначных натуральных чисел.

        REM Вычислить сумму двухзначных натуральных чисел
        FOR I=10 TO 99
        s=s+I
        NEXT
        PRINT "Результат primer">REM Вычислить факториал числа
        a=5
        f=1
        FOR I=1 TO a
        f=f*I
        NEXT
        PRINT f
        END

        Вы, конечно, заметили, что до начала цикла мы присвоили переменной f значение равное единице. Иначе бы мы получили в результате ноль.

        В субботу вечером вы смотрите телевизор. Время от времени поглядываете на часы и если время меньше полуночи, то продолжаете смотреть телевизор, если это не так, то вы прекращаете просмотр телепередач.

        Циклы такого вида называют - циклы с предусловием.

        На языке Basic они записываются следующим образом:

        DO WHILE условие
        Тело цикла
        LOOP

        В этом цикле проверяется условие и если оно выполняется (ИСТИНА), то выполняется тело цикла до ключевого слова LOOP, затем условие проверяется снова . и так до тех пор пока условие истино.

        DO UNTIL условие
        Тело цикла
        LOOP

        Этот цикл отличается от предыдущего только тем, что он выполняется до тех пор пока условие не истинно (т.е. совсем наоборот).

        Пример: Вывести все натуральные числа меньше данного.

        REM Вывод всех чисел меньше данного
        a=0
        chislo=10
        DO WHILE a


        MyTest X -->
        Компьютерное тестирование знаний учащихся, сертификация и аттестация сотрудников.
        Деcять типов заданий, локальное и сетевое тестирование.

        Сайт учителя информатики. Технологические карты уроков, Подготовка к ОГЭ и ЕГЭ, полезный материал и многое другое.

        § 3.5 Программирование циклических алгоритмов

        Информатика. 8 класса. Босова Л.Л. Оглавление

        Ключевые слова:

        • while (цикл-ПОКА)
        • repeat (цикл-ДО)
        • for (цикл с параметром)

        3.5.1. Программирование циклов с заданным условием продолжения работы

        Цикл с заданным условием продолжения работы (цикл-ПОКА) программируется в языке Паскаль с помощью оператора while. Общий вид оператора:

        while do

        — логическое выражение; пока оно истинно, выполняется тело цикла;

        — простой или составной оператор, с помощью которого записано тело цикла.

        Запишем на языке Паскаль рассмотренный в п. 2.4.3 (пример 14) алгоритм получения частного q и остатка r от деления натурального числа х на натуральное число y без использования операции деления.


        Каким будет результат выполнения программы при х = -10 и у = 3? Как вы можете объяснить этот результат?

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

        Цикл с заданным условием окончания работы (цикл-ДО) программируется в языке Паскаль с помощью оператора repeat. Общий вид оператора:

        repeat until

        ; ; … — операторы, образующие тело цикла;

        — логическое выражение; если оно ложно, то выполняется тело цикла.

        Запишем на языке Паскаль рассмотренный в п. 2.4.3 (пример 17) алгоритм решения задачи о графике тренировок спортсмена.


        3.5.3. Программирование циклов с заданным числом повторений

        Цикл с заданным числом повторений (цикл-ДЛЯ) программируется в языке Паскаль с помощью оператора for. Его общий вид:

        for := to do

        — переменная целого типа;

        и — выражения того же типа, что и параметр, вычисляемые перед началом цикла;

        — простой или составной оператор — тело цикла.

        При выполнении этого оператора после каждого выполнения тела цикла происходит увеличение на единицу параметра цикла; условием выхода из цикла является превышение параметром конечного значения.

        Запишем на языке Паскаль рассмотренный в п. 2.4.3 (пример 19) алгоритм вычисления степени с натуральным показателем n для любого вещественного числа а.


        3.5.4. Различные варианты программирования циклического алгоритма

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

        Пример. Напишем программу, в которой осуществляется ввод целых чисел (ввод осуществляется до тех пор, пока не будет введён ноль) и подсчёт количества введённых положительных и отрицательных чисел.

        Так как здесь в явном виде задано условие окончания работы, то воспользуемся оператором repeat.


        Имеющееся условие окончания работы можно достаточно просто преобразовать в условие продолжения работы — работа продолжается, пока n?0. И мы можем воспользоваться оператором while:


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

        САМОЕ ГЛАВНОЕ

        В языке Паскаль имеются три вида операторов цикла: while (цикл-ПОКА), repeat (цикл-ДО), for (цикл с параметром). Если число повторений тела цикла известно, то лучше воспользоваться оператором for; в остальных случаях используются операторы while и repeat.

        Вопросы и задания

        2. Дана последовательность операторов:


        Сколько раз будет повторен цикл и какими будут значения переменных a, b, s после исполнения этой последовательности операторов?

        3. Требовалось написать программу вычисления факториала числа n (факториал числа n есть произведение всех целых чисел от 1 до n). Программист торопился и написал программу неправильцо. Ниже приведён фрагмент его программы, в котором содержатся пять ошибок:


        Найдите ошибки. Допишите необходимые операторы и выполните программу на компьютере.


        4. Проанализируйте следующий цикл:


        while a

        Сколько раз будет повторён цикл и какими будут значения переменных а, b, s после исполнения этой последовательности операторов?

        7. Напишите программу, в которой осуществляется ввод целых чисел (ввод осуществляется до тех пор, пока не будет введён ноль) и подсчёт суммы и среднего арифметического введённых положительных чисел. Используйте оператор repeat.

        8. Напишите программу, в которой осуществляется ввод целых чисел (ввод осуществляется до тех пор, пока не будет введён ноль) и определение максимального (наибольшего) из введённых чисел. Используйте оператор repeat.

        9. Напишите программу вычисления наибольшего общего делителя двух целых чисел:

        а) используйте оператор repeat;
        б) используйте оператор while.

        10. Сколько раз будет выполнен цикл?

        а) for i:=0 to 15 do s:=s+l;
        б) for i:=10 to 15 do s:=s+l;
        в) for i:=-l to 1 do s:=s+l;
        г)for i:=10 to 10 do s:=s+l;
        д)k:=5;

        for i:=k-l to k+1 do s:=s+l;

        11. Напишите программу, которая 10 раз выводит на экран ваши имя и фамилию.

        12. Напишите программу, выводящую на экран изображение шахматной доски, где чёрные клетки изображаются звёздочками, а белые — пробелами. Рекомендуемый вид экрана после выполнения программы:


        13. Напишите программу, которая вычисляет сумму:

        а) первых n натуральных чисел;
        б) квадратов первых п натуральных чисел;
        в) всех чётных чисел в диапазоне от 1 до n;
        г) всех двузначных чисел.

        14. Напишите программу, которая генерирует 10 случайных чисел в диапазоне от 1 до 20, выводит эти числа на экран и вычисляет их среднее арифметическое.

        15. Запишите на языке Паскаль программы решения задач № 32, 33 из § 2.4. Используйте оператор for.

        16. Напишите программу, которая выводит на экран таблицу степеней двойки (от нулевой до десятой). Рекомендуемый вид экрана после выполнения программы:


        17. Напишите программу, которая выводит на экран таблицу умножения на n (n — целое число в диапазоне от 2 до 10, вводимое с клавиатуры).


        18. Какой из трёх рассмотренных операторов цикла является, по вашему мнению, основным, т. е. таким, что им можно заменить два других? Обоснуйте свою точку зрения.

        Читайте также: