|
Циклический алгоритм
Немного теории Циклический алгоритм – это алгоритм, в котором некоторая серия команд выполняется несколько раз. Чаще всего циклический алгоритм задают двумя способами:
- с помощью счетчика (цикл для), по которому действие выполняется указанное число раз
- с помощью условия (цикл пока), по которому происходит повтор действия
Блок-схема циклического алгоритма
Цикл для Плевдокод цикла для для счетчик от начального значения до конечного значения шаг интервал тело цикла кон для
Командная структура цикла для в 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)
|
|
Статистика |
Онлайн всего: 1 Гостей: 1 Пользователей: 0 |
|