Немного теории
Циклический алгоритм – это алгоритм, в котором некоторая серия команд выполняется несколько раз.
Чаще всего циклический алгоритм задают двумя способами:
- с помощью счетчика (цикл для), по которому действие выполняется указанное число раз
- с помощью условия (цикл пока), по которому происходит повтор действия
Блок-схема циклического алгоритма

Цикл для
Плевдокод цикла для
для счетчик от начального значения до конечного значения шаг интервал
тело цикла
кон для
Командная структура цикла для в Small Basic
В Small Basic для записи циклического алгоритма для используется следующая серия команд:
For счетчик=начального значения To конечного значения Step интервал
тело цикла
EndFor
Например:
For k = 1 To 100 Step 1
s = 1.1*s
EndFor
При выполнении данной программы действие s = 1.1*s выполнится 100 раз. При этом значение s будет увеличиваться с каждым разом на 10%.
Программа "Сумма последовательности чисел"
Напишем программу вычисления суммы чисел от 1 до 100.
Код программы:
'сумма чисел от 1 до 100
s = 0
For k=1 to 100 Step 1
s = s + k
EndFor
TextWindow.WriteLine("Сумма чисел от 1 до 100 равна " + s)
В четвертой строке происходит суммирование чисел задаваемых счетчиком k.
Цикл пока
Плевдокод цикла пока
пока условие
тело цикла
кон пока
Командная структура цикла пока в Small Basic
В Small Basic для записи циклического алгоритма пока используется следующая серия команд:
While условие
тело цикла
EndWhile
Например:
While s>1
s = 0.9*s
EndWhile
При выполнении данной программы действие s = 0.9*s выполнится некоторое число раз (возможно ни разу). При этом значение s будет уменьшаться с каждым разом на 10%, пока не станет меньше или равным 1.
Программа "Угадай число"
Напишем программу в которой компьютер задумывает число, а человек его угадывает.
Код программы:
'угадай число
a = Math.GetRandomNumber(10)
TextWindow.Write("Я задумал число от 1 до 10. Угадай его! ")
b = TextWindow.ReadNumber()
While b<>a
TextWindow.Write("Не угадал. ")
b = TextWindow.ReadNumber()
EndWhile
TextWindow.WriteLine("Угадал!")
Во второй строке значение переменной а задается с помощью генератора случайных чисел GetRandomNumber.
Безусловный переход
В Small Basic с помощью меток и оператора безусловного перехода Goto можно организовать еще один вид цикла.
Программа "История"
Напишем программу, в которой компьютер спрашивает историческую дату, до тех пор, пока человек не введет правильный ответ.
Код программы:
'история
TextWindow.Write("В каком году произошла Куликовская битка? ")
metka1:
d = TextWindow.ReadNumber()
If d<1380 Then
TextWindow.Write("Позже! ")
Goto metka1
Else
If d>1380 Then
TextWindow.Write("Раньше! ")
Goto metka1
Else
TextWindow.WriteLine("Верно!")
EndIf
EndIf
В третьей строке задается метка, к которой происходит переход в случае неверного ответа.
Вопросы и задания
- Почему цикле пока число повторений заранее не известно?
- Что такое зацикливание? В каком случае оно происходит?
- Напишите программу вычисления факториала числа n! (произведение чисел от 1 до n)
- Напишите программу в которой компьютер просит печенье, до тех пор, пока человек не напишет это слово
- Напишите программу угадывания чисел, в которой компьютер делает подсказки: меньше или больше.
Файлы программ
Сумма последовательности чисел (скачать архив zip)
Угадай число (скачать архив zip)
История (скачать архив zip)
Факториал (скачать архив zip)
Печенье (скачать архив zip)
Угадай с подсказкой (скачать архив zip)