Урок 15. Цикл с постусловием Do . . . Loop Until

Урок из серии: «Программирование на Visual Basic.NET для школьников»

Существует несколько разновидностей циклов с неизвестным числом повторений.

На прошлом уроке мы рассмотрели цикл с предусловием Do While.

На этом уроке познакомимся с ещё одной разновидностью цикла с условием — циклом с постусловием, научимся его использовать.

Цикл называется циклом с постусловием, если условие выхода из цикла стоит в конце, после тела цикла.

Visual-Basic.NET-Urok15-1 Алгоритм выполнения оператора:
  1. Выполняется тело цикла.
  2. Изменяется значение переменной цикла.
  3. Проверяется условие окончания цикла.
  4. Если условие истинно (True), поисходит выход из цикла.
  5. Если условие ложно(False), то действия повторяются с пункта 1.

Особенностью этого цикла является то, что тело цикла в любом случае выполняется хотя бы один раз (независимо от того, выполняется условие или нет).

Цикл с постусловием реализуется с помощью конструкции  Do . . . Loop Until.

Общий вид оператора:

Do
<тело цикла>
Loop Until <условие выхода>

Преждевременный выход из цикла программист может организовать при помощи конструкции Exit Do.

Проект «Проверка номера»

Смоделируйте ситуацию проверки правильности набора номера телефона в городе N. Будем считать, что телефон набран верно, если количество набранных цифр соответствует длине телефонного номера для данного города.

Технология выполнения

  1. Создайте интерфейс по образцу.Visual-Basic.Net-Urok15-2
  2. Установите для текстового поля значение свойства MaxLength равным 9 (максимальное количество цифр, которое  позволяется ввести в поле),  выберите для надписи  label2 значение свойства BorderStyle равным  Fixed3D.
  3. В окне редактора кода после строки
    «Код, автоматически созданный конструктором форм Windows»
    введите строку кода:
    Const nmax = 6  'Константа, определяющая длину набора в данном городе
  4.  Наберите программный код процедуры Button1_Click:
    Dim n As Integer 'Введенный номер
    Dim k As Byte 'Счетчик цифр
    n = Val(TextBox1.Text)
    k = 0
    Do
       k = k + 1
       n = n \ 10
    Loop Until n = 0
    If k = nmax Then
      Label2.Text = "Соединение возможно" : Beep()
    ElseIf k < nmax Then
      Label2.Text = "Неправильно набран номер: не хватает цифр"
    Else
      Label2.Text = "Неправильно набран номер: слишком много цифр"
    End If
  5. Запустите программу несколько раз для проверки всех возможных ситуаций.
  6. сохраните программу.

Проект «Простые множители»

Требуется создать программу разложения произвольного целого числа на простые множители. Предлагается следующий алгоритм: сначала число делится на 2 до тех пор, пока не станет нечетным. Затем оно делится последовательно на 3, 5, 7, пока результат леления не станет равным 1.

Технология выполнения

  1. Создайте интерфейс по образцу.Visual-Basic.Net-Urok15-3
  2. С помощью окна Свойства  задайте следующие значения свойств:
    Объект Свойство Значение
    Form1 Text «Простые множители»
    Label1 TextTextAlign «Введите число:»
    MiddleCenter
    TextBox1 TextMax
    Length
    TextAlign
    пусто
    10
    Center
    Button Text
    TextAlign
    «Разложить»
    MiddleCenter
    Label2 Text
    TextAlign
    BorderStyle
    пусто
    MiddleCenter
    Fixed3D

    Для текстового поля TextBox1 свойство MaxLength задает максимальную длину числа при вводе данных с клавиатуры.

  3. Наберите текст программы
    ' Разложение на простые множители
    Dim n, n1 As Integer    'Исходное число и его дубликат
    Dim del As Byte         'Простой делитель
    Dim str As String       'Строка для вывода
    n = Val(TextBox1.Text)
    del = 2
    n1 = n
    Str = ""
    Do
       If n Mod del = 0 Then
           n = n \ del
           'В строку добавляется новый множитель
           str = str & CStr(del)
           'Выводится "*" после всех множителей, кроме последнего
           If n <> 1 Then str = str & "*"
       Else
           'После "2" все простые множители нечетны
           If del = 2 Then del = 3 Else del = del + 2
       End If
    Loop Until n = 1
    Label2.Text = n1 & "=" & str
  4. Сохраните программу.
  5. Доработайте программу таким образом, чтобы она подсчитывала количество множителей.
  6. Введите проверку на равенство подсчитанного количества множителей единице. Если равенство выполняется, выведите сообщение, что введенное число является простым
  7. Сохраните доработанную программу.

До встречи на следующем уроке.

Подписаться
Уведомить о
guest

0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии