Циклические конструкции
Внимание! Все тесты в этом разделе разработаны пользователями сайта для собственного использования. Администрация сайта не проверяет возможные ошибки, которые могут встретиться в тестах.
Тест по проверки знаний на тему циклические конструкции у учебнику Босова Л.Л. 8 класс Информатика
Система оценки: 5 балльная
Список вопросов теста
Вопрос 1
В каком цикле, тело цикла будет выполняться до тех пор пока условие будет истинным
Варианты ответов
- Цикл с ветвлением
- Цикл с постусловием
- Цикл с параметром
- Верного ответа нет
- Цикл с предусловием
Вопрос 2
Какой цикл изображен на блок-схеме?
Варианты ответов
- Цикл с параметром
- Цикл с постусловием
- Цикл с предусловием
- Цикл с ветвлением
Вопрос 3
В каком цикле, тело цикла будет выполняться до тех пор пока условие будет ложным
Варианты ответов
- Цикл с параметром
- Верного ответа нет
- Цикл с постусловием
- Цикл с ветвлением
- Цикл с предусловием
Вопрос 4
Сколько раз исполнится цикл:
1. Сколько раз исполнится цикл:i:=6; while i
1. При выполнении фрагмента программы:
i:=6; while iцикл выполниться 4 раза:
1 раз: i:=9.
2 раз: i:=12.
3 раз: i:=15.
4 раз: i:=18.
2. После выполнения фрагмента программы:
sum:=0; for i:=7 to 9 do sum:=sum+i;
переменная sum будет равна 24.
То есть:
При i = 7, переменная sum = 0 + 7 = 7.
При i = 8, переменная sum = 7 + 8 = 15.
При i = 9, переменная sum = 15 + 9 = 24.
Ответ: переменная sum будет равна 24.
2. Сколько раз исполнится цикл: i=6
while i i=i+2
хмара це1) велике текстове поле2) деякий сервер, де зберігаються дані та програми, які використовують користувачі за допомогою глобальної мережі3) про … грама для роботи з текстовою інформацією 4) інший варіант
Завдання 1 Рядки тексту перемішані між собою, потрібно встановити рядки тексту у правильному порядку один за всіх, а дві краще. тихіше їдеш, один раз … відріж. сім разів відміряй, то і поїж з охотою. попрацюєш до поту, далі будеш. одна голова добре, краще, ніж добра сварка. поганий мир кращий, всі за одного.
Переведи число 59 из десятичной системы счисления в двоичную и шестнадцатеричную. Запиши ответы в текстовые поля внизу. Для записи шестнадцатеричных ц … ифр используй латиницу. Число 59 в двоичной системе счисления равно Число 59 в шестнадцатеричной системе счисления равно
Операторы цикла
Познакомимся с первым из них – оператором цикла с предусловием while.
Циклы с предусловием используются тогда, когда выполнение цикла связано с некоторым логическим условием. Оператор цикла с предусловием имеет две части: условие выполнения цикла и тело цикла.
При выполнении оператора while определенная группа операторов выполняется до тех пор, пока определенное в операторе while булево условие истинно. Если условие сразу ложно, то оператор не выполнится ни разу.
Общая форма записи следующая
while do begin группа операторов end; |
На русском языке это звучит примерно так:
пока выполняется это условие, делай
от начала
группа операторов
до конца;
Вполне понятно, что операторные скобки ставят, чтобы отделить от остальной программы ту группу операторов, которую нужно повторить в цикле. Если в цикле нужно выполнить только один оператор, то операторные скобки не ставят.
При использовании цикла с предусловием надо помнить следующее:
-
значение условия выполнения цикла должно быть определено до начала цикла;
Вернемся к нашей задаче вычисления суммы чисел. При вычислении суммы используем следующий прием: вначале, когда еще не задано ни одно слагаемое, сумму полагают равной нулю (S:=0), а затем, получая очередное слагаемое, прибавляют его к сумме (S:=S+x) (см. программу ниже).
Очень важную роль в операторе цикла играет так называемая переменная цикла. В нашей программе она называется i. С ее помощью мы обращаемся к пользователю за очередным числом (write (‘Введите ‘,i,’-ое число ’)) и считаем количество уже введенных чисел (i:=i+1), чтобы не запросить лишнее. Одновременно переменная цикла участвует в булевом выражении (i<=N).
Рассмотрите внимательно программу, решающую нашу задачу.
Program Summa; Uses Crt; Var i, N : integer; x, S : real; Begin ClrScr; write (‘Сколько чисел для сложения? ‘); readln (N); S:=0; i:=1; while i begin write (‘Введите ‘,i,’-е число ‘); readln (x); S:=S+x; i:=i+1; end; write (‘Сумма введенных чисел равна ‘,s:5:2); readln; End. |
Хотелось бы, чтобы Вы смогли представить работу этой программы. Давайте попробуем вместе.
Пусть нам требуется сложить следующие числа: 5, 7, -4, 0, 8, 20. Посчитаем, сколько их всего – шесть. Это число мы введем, когда программа задаст вопрос: Сколько чисел для сложения? Теперь наша программа запросит ввести 1-ое число, т. к. на первом шаге переменная i равна 1. Мы введем число 5. Программа считает его в переменную х. Теперь число 5 сложим с числом 0 и результат присвоим переменной S (оператор S:=S+x). В этот момент S становится равной 5. Чтобы перейти к следующему числу, увеличим значение переменной i на 1 (оператор i:=i+1). Выполнение операторов тела цикла закончено. Теперь программа переходит опять к анализу условия вхождения в цикл (i<=N). Переменная цикла i=2, переменная N=6, поэтому значение логического условия 2<=6 равно True. Значит снова выполняется тело цикла:
while i begin write (‘Введите ‘,i,’-ое число ‘); readln (x); S:=S+x; i:=i+1; end; |
Итак, мы сложили два числа и переходим опять к проверке условия. Ответим на вопрос: 3
while i begin write (‘Введите ‘,i,’-ое число ‘); readln (x); S:=S+x; i:=i+1; end; |
Аналогично, мы сложим и остальные числа. Но когда же операторы цикла выполнятся последний раз и остановится работа цикла? Когда сложим последнее число. Проверим это.
while i begin write (‘Введите ‘,i,’-ое число ‘); readln (x); S:=S+x; i:=i+1; end; |
В этом примере известно заранее количество повторений — N раз. Но чаще всего этот вид цикла используется тогда, когда количество повторений заранее не известно и зависит от выполнения какого-либо условия. Рассмотрим еще один пример.
Отвлечемся от цифр и вспомним окружающую жизнь. Сколько циклических алгоритмов можно увидеть вокруг, если внимательно посмотреть на события: чередование времен года, посещения магазинов, школы или секции, получение оценок за контрольные и др. Попробуем записать их.
Например, рассмотрите следующие циклические алгоритмы
а) Пока не сдал выпускные экзамены делай:
начало
готовь уроки;
посещай школу;
конец;
б) Пока есть желание, возможность и здоровье делай:
посещай занятия спортом
Задание. Выберите самостоятельно сказку из предложенных (или придумайте другой циклический алгоритм из жизни или произведений известных авторов) и напишите программы, с помощью которых можно в шутливой форме проверить знания первоклассников.
-
“Репка”. “Дед тянет-потянет, вытянуть не может. Позвал бабку. Бабка за дедку, дедка за репку, тянут потянут, вытянуть не могут. Позвала бабка внучку. И вытянули репку”.
Продолжим изучение цикла с предусловием на примере решения следующей задачи.
Задача. Найти сумму чисел в непустой последовательности.
Рассмотрим алгоритм решения. Пусть нам дана такая последовательность чисел:
3, -4, 0, 5, 19, -20, 6, 2
Для работы нам нужно организовать обращение к каждому элементу последовательности. Нетрудно догадаться, что это будет происходить через порядковый номер каждого члена последовательности. Пронумеруем эти числа:
1 2 3 4 5 6 7 8
3, -4, 0, 5, 19, -20, 6, 2
Получилось, что всего у нас чисел восемь, на первом месте стоит число 3, на втором — число (-4), на третьем — число 0 и т.д. Тогда переменная цикла i будет пробегать числа от 1 до 8, становясь на каждом шаге больше на 1 и запрашивая каждый раз очередное число. Поэтому общая схема цикла будет выглядеть так:
i:=1; while i begin write (‘Введите ‘,i,’-ое число’); readln (x); . . . i:=i+1; end; |
Здесь N — количество чисел последовательности (в нашем случае 8), х — член последовательности, i — порядковый номер очередного члена последовательности. Просмотрим, как будет работать этот цикл.
i:=1; while i begin write (‘Введите ‘,i,’-ое число’); readln (x); . . . i:=i+1; end; |
while i begin write (‘Введите ‘,i,’-ое число’); readln (x); . . . i:=i+1; end; |
while i begin write (‘Введите ‘,i,’-ое число’); readln (x); . . . i:=i+1; end; |
while i begin write (‘Введите ‘,i,’-ое число’); readln (x); . . . i:=i+1; end; |
Итак, у нас уже организован цикл считывания чисел. Осталось только вписать в тело цикла оператор, который бы суммировал все эти числа. Для этого опишем переменную Summa в разделе описания переменных и присвоим ей нулевое значение перед выполнением цикла. Тогда при каждом шаге нашего цикла значение этой переменной должно быть изменено на х. Это произойдет при выполнении оператора
Если Вам не совсем понятно, что происходит при выполнении этого оператора, Вам нужно вспомнить, как происходит присваивание значение переменной: сначала вычисляется значение выражения в правой части (в нашем случае Summa+x, т.е., значение переменной Summa увеличиваем на х), а затем присваиваем это значение переменной с именем, записанным в левой части (Summa). Таким образом, в переменной Summa собирается сумма всех считанных чисел.
Задание. Напишите полный текст программы, находящей сумму N чисел последовательности. Дополните программу нахождением среднего арифметического этих чисел.
Примечание. Средним арифметическим чисел называется сумма этих чисел, деленная на их количество.