Вторник, 12.11.2019, 15:49
Главная | Регистрация | Вход Приветствую Вас Гость | RSS


Меню сайта


Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0


Тестування онлайн
тестування онлайн 


Социальные закладк

Приложение:zadanie1.rar
do until_ loop1.rar
 

Занятие 29.  Типы циклов. Организация циклов. Среда Visual Basic Net

I.  Циклы в алгоритмах и в программах. 

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

Фрагмент алгоритма, состоящий из команд, которые могут быть выполнены более одного раза, называется циклом. Алгоритмы, содержащие циклы, называются алгоритмами с циклами.

Рассмотрим примеры таких задач. 

Задача 1. Есть бочка и ведро. Используя ведро, наполнить бочку водой из колодца.

Рассмотрим исполнителя с такой системой команд:
1. Наполнить ведро водой.
2. Вылить воду из ведра в бочку.
3. Проверить условие «Бочка неполная?».

 

Поскольку из условия задачи неизвестно, есть ли в бочке вода, исполнитель должен сначала проверить условие «Бочка неполная?»:

  •  Если результат этой проверки true, то он должен наполнить ведро водой, вылить ее из ведра в бочку и опять проверить условие «Бочка неполная?».
  • И так до тех пор, пока результат проверки этого условия станет falseПосле этого можно закончить исполнение алгоритма.

Приведем алгоритм решения этой задачи для рассмотренного исполнителя в словесной форме и в виде блок-схемы

1. Проверить условие «Бочка неполная?».
2. Если результат выполнения предыдущей команды true, то выполнить команду 3, если false, то закончить исполнение алгоритма.
3. Наполнить ведро водой.
4. Вылить воду из ведра в бочку.
5. Перейти к выполнению команды 1.
В этом алгоритме команды 3-5 могут быть выполнены более одного раза.

Кроме того, если бочка с самого начала была полной, то эти команды не выполнятся ни
разу.

 

В приведенном алгоритме цикл состоит из трех команд: команды проверки условия и двух команд, которые образуют тело цикла.
Рассмотренный выше цикл называется циклом с предусловием, потому что условие проверяется перед началом выполнения команд тела цикла.

 

II Циклы с условием.

Если количество повторений команд тела цикла до начала выполнения команды цикла неизвестно, нужно использовать команду цикла:

  • с предусловием 

или

  • команду цикла с постусловием.


Общий вид команд цикла с условием таков:

С верхним окончанием.

Do {while | until} условие
       а )          б)  
   Операторы цикла
Loop

 

а )   если условие выполняется – выполняется цикл

б)    повторение в цикле продолжается до выполнения условия

 

 

a)  Цикл Do While . . . Loop       (англ. while - пока)

Общий вид цикла с предусловием:

На языке Visual Basic.Net цикл с предусловием реализуется с помощью конструкции Do While . . . Loop

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

Do While Условие продолжения цикла
   Тело цикла
Loop

Алгоритм выполнения оператора:

1. С помощью ключевого слова While (пока) проверяется условие продолжения цикла.

2. Если условие истинно (True), то выполняется тело цикла, алгоритм повторяется с пункта 1.

3. Если условие ложно(False) - цикл завершается.

  • Особенностью этого цикла является то, что если при первой проверке условие ложно, то тело цикла не выполнится ни разу.

 

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

Задание 1. Создание проекта суммирования чисел от единицы до некоторого , введенного пользователем,  числа а.

Блок - схема проекта                          Интерфейс проекта

      

 

Программный код

Private Sub Button1_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles Button1.Click

            Dim a , i, s As Short
            TextBox1.Focus()
            a = Val(Text1.Text)
            s = 0

            i = 1  
            Do While i <= a       'цикл с верхним условием,  true - условие продолжения цикла
                  s = s + i
                  ListBox1.Items.Add("i=  "  &  i  & vbTab  " s=  " &  s)
                  i = i + 1

            Loop
           TextBox2.Text = Str(s)
      End Sub

     

      Private Sub Button2_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles Button2.Click

            TextBox2.Text = ""
            Text
Box1.Text = ""
   
         ListBox1.Items.Clear()
            Text
Box1.Focus()

      End Sub

 

b) Do Until . . . Loop ⇒повторение в цикле продолжается до выполнения условия

Do Until  Условие выхода из  цикла
   Тело цикла
Loop

Алгоритм выполнения оператора:

1. С помощью ключевого слова Until (пока, не раньше чем) проверяется условие выхода из цикла.

2. Если условие истинно (True) - цикл завершается.

3. Если условие ложно(False) - выполняется тело цикла, алгоритм повторяется с пункта 1.

  • Особенностью этого цикла является то, что если при первой проверке условие истинно, то тело цикла не выполнится ни разу.

 

Задание 2. Создание проекта формирования числового ряда по указанной формуле пока условие ложно.

Блок - схема проекта                          

 

      

Интерфейс проекта

 

Private Sub Button1_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles Button1.Click
        Dim k, a  As Integer
       
        k = 0
        a = Val(InputBox("введите целое число", "ввод числа"))
        ListBox1.Items.Add("  k=  "  &  Str(k)  &  vbTab  &  " a= "  &  Str(a))

        Do Until a > 150            'цикл с верхним условием, условие  false - продолжение цикла
            a = 2 * a + 4
            k = k + 1
            ListBox1.Items.Add("  k=  "  &   Str(k)  &  vbTab  & " a= "   &  Str(a))
        Loop
        
    End Sub

 

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        ListBox1.Items.Clear()
    End Sub

Задания.

1. Составьте блок-схему алгоритма нахождения количества положительных членов арифметической прогрессии с известным первым членом и разностью d =5.  Исполните алгоритм для трех разных значений первого члена прогрессии. Подберите эти значения так, чтобы команды тела цикла выполнились несколько раз; один раз; ни разу.

2. Создайте проект для решения задачи: Человек положил в банк определенную сумму денег. Ежегодно банк добавляет к сумме заранее определенный процент от суммы, сохранившейся на счету после предыдущего года. Какая сумма будет на счету через N лет?

 

 

Продолжение

Форма входа
Поиск
Календарь
«  Ноябрь 2019  »
ПнВтСрЧтПтСбВс
    123
45678910
11121314151617
18192021222324
252627282930
Архив записей
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz

  • Рейтинг@Mail.ru
    Copyright MyCorp © 2019
    Конструктор сайтов - uCoz