Понедельник, 29.04.2024
Small Basic
Меню сайта
Форма входа
Поиск
Циклический алгоритм

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

Блок-схема циклического алгоритма

Цикл для
Плевдокод цикла для
для счетчик от начального значения до конечного значения шаг интервал
тело цикла
кон для

Командная структура цикла для в 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


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

Вопросы и задания
  1. Почему цикле пока число повторений заранее не известно?
  2. Что такое зацикливание? В каком случае оно происходит?
  3. Напишите программу вычисления факториала числа n! (произведение чисел от 1 до n)
  4. Напишите программу в которой компьютер просит печенье, до тех пор, пока человек не напишет это слово
  5. Напишите программу угадывания чисел, в которой компьютер делает подсказки: меньше или больше.

Файлы программ


Сумма последовательности чисел (скачать архив zip)
Угадай число (скачать архив zip)
История (скачать архив zip)
Факториал (скачать архив zip)
Печенье (скачать архив zip)
Угадай с подсказкой (скачать архив zip)

Наш опрос
Какой язык программирования вы используете (знаете)?
Всего ответов: 271
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Статистика

    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0
    Copyright MyCorp © 2024
    Создать бесплатный сайт с uCoz