Циклы в других языках программирования
Алгоритм Евклида на языке Паскаль записывается сле-дующим образом:
while (a <> 0) and (b <> 0) do
if a > b then
a := a mod b else
b := b mod a;
В языке Паскаль каждое условие в составе сложного условия обязательно взять в скобки, это связано с другим порядком вы-полнения (приоритетом) логических операций.
А вот тот же алгоритм на языке С++:
while (a != 0 && b != 0) {
if ( a > b )
a = a % b; else
b = b % a; }
В языке С++ тело цикла ограничивается фигурными скобками. Если в теле цикла записан всего один оператор, фигурные скобки можно не ставить.
Исследуйте эти фрагменты программы и определите, как записываются в языках Паскаль и С++ отношение «не равно», операция взятия остатка от деления, логическая операция «И».
Обработка потока данных
На вход программы поступает поток данных – последова-тельность целых чисел, которая заканчивается нулём. Требует-ся найти сумму элементов этой последовательности.
В этой задаче не нужно сохранять все данные в памяти, мы можем добавлять их к сумме по одному. Используем две целых
59 http://kpolyakov.spb.ru
05.04.2019 Информатика, 8 класс К.Ю. Поляков, Е.А. Еремин
переменных: в переменной x будем хранить последнее введён-ное число, а в переменной summa – накапливать сумму.
Какое начальное значение нужно присвоить переменной summa?
Как добавить к значению переменной summa значение переменной x?
Сначала запишем основной цикл программ, «скрыв» шаги алгоритма в комментариях:
while x != 0:
# добавить x к сумме
# прочитать следующее число
Однако перед таким циклом нужно прочитать первое число, иначе неясно, откуда возьмётся значение x при первой проверке условия. В итоге получается такая программа:
summa = 0
x = int( input() ) while x != 0:
summa += x
x = int( input() ) print( "Сумма", summa )
Как нужно изменить программу для того, чтобы она вычисляла сумму только положительных чисел?
Циклы по переменной
Вернёмся снова к задаче, которую мы обсуждали в одном из параграфов – вывести на экран несколько раз слово «привет». Фактически нам нужно организовать цикл, в котором блок опе-раторов выполнится заданное число. Для этого можно приме-нить ещё один вид цикла – цикл по переменной (или цикл с па-раметром). На языке Python он записывается так:
for i in range(10):
print( "привет" )
60 http://kpolyakov.spb.ru
05.04.2019 Информатика, 8 класс К.Ю. Поляков, Е.А. Еремин
Здесь слово for означает «для», переменная i (её называют
переменной цикла) изменяется в диапазоне (in range) от 0 до
10, не включая 10 (то есть от 0 до 9 включительно). Таким обра-зом, цикл выполняется для i = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 – ровно 10 раз. Переменная i – это счётчик выполненных итераций цикла. Можно было записать этот цикл и по-другому:
for i in [0,1,2,3,4,5,6,7,8,9]:
Достарыңызбен бөлісу: |