Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Замечание: цикл, поведение которого определяется логическим выражением, проверяемым после выполнения тела цикла, называется циклом с постусловием.Содержание книги
Поиск на нашем сайте
Do Until... Loop Этот тип цикла служит для того, чтобы пока условие не выполняется повторять тело цикла (проверка условия содержится в начале цикла). Общий вид данной конструкции выглядит следующим образом:
Do Until <логическое выражение> заголовок цикла <оператор> ... тело цикла [<оператор>] Loop <логическое выражение> - это простое или сложное условие, или логическая константа (true или false). Пока <логическое выражение> возвращает false, тело цикла выполняется, а как только <логическое выражение> возвратит true, то работа продолжится со следующего оператора за служебным словом Loop. Пример использования цикла Do Until…Loop: Задача: Пользователь вводит число, если оно меньше 20 выводить его квадрат, если больше или равно то закончить выполнение сценария. Текст программы: option explicit Dim Number 'вводимое число Number=CInt(InputBox("Введите число","Диалоговое окно")) Do Until Number>=20 'условие MsgBox "Квадрат число: " & Number & " равен " & (Number*Number) Number=CInt(InputBox("Введите число","Диалоговое окно")) Loop Do... Loop Until Этот тип цикла служит для того, чтобы повторять тело цикла пока условие не выполняется (проверка условия содержится в конце цикла). Общий вид данной конструкции выглядит следующим образом: Do <оператор> ... тело цикла [<оператор>] Loop Until <логическое выражение> <логическое выражение> - это простое или сложное условие, или логическая константа (true или false). Вначале выполняется тело цикла, а затем проверяется <логическое выражение>. Пока <логическое выражение> возвращает false, тело цикла выполняется, а как только <логическое выражение> возвратит true, то работа продолжится со следующего оператора после Loop Until <логическое выражение>.
Пример использования цикла Do …Loop Until: Задача: Пользователь вводит число, если оно меньше 20 выводить его квадрат, если больше или равно то закончить выполнение сценария. Текст программы: option explicit Dim Number 'вводимое число Number=CInt(InputBox("Введите число","Диалоговое окно")) Do MsgBox "Квадрат число: " & Number & " равен " & (Number*Number) Number=CInt(InputBox("Введите число","Диалоговое окно")) Loop Until Number>=20 'условие Как выбрать, какой из циклов использовать в программе? Ниже приведены основные правила, помогающие выбрать наиболее подходящий из этих операторов: 1. если вам заранее известно число повторений тела цикла, лучше всего использовать оператор цикла For; 2. если вам заранее не известно число повторений тела цикла и если окончание цикла зависит от выполнения некоторого условия, лучше использовать конструкции While…Wend, Do While…Loop или Do Until…Loop 3. если необходимо, чтобы цикл всегда выполнялся хотя бы один раз, то используйте конструкции Do …Loop While или Do …Loop Until. Примечания · Оператор break используется в теле цикла для преждевременного завершения его выполнения, например, по некоторому условию. · Оператор continue используется, для того чтобы прервать выполнение данного шага цикла и продолжить со следующего. · Операторы Exit Do и Exit For служат соответственно для преждевременного выхода из циклов Do и For. Все перечисленные в данном примечании операторы затрудняют чтение текста программы пользователем, поэтому их использование должно быть ограничено теми местами, где без этого не обойтись. ДЕМОНСТРАЦИОННЫЕ ПРИМЕРЫ Пример 1 'Имя файла: From 1 to 20.vbs 'Вывод на экран чисел от 1 до 20 с шагом 2
For x=1 To 20 Step 2 s=s&vbCrLf&x MsgBox "Последовательность от 1 до 20 с шагом 2: " & s Next Пример 2 'Имя файла: For_Next.vbs 'Вычислить сумму s=1+1/2+1/3+1/4+...+1/60 'C использованием конструкции Do... Loop Until
option explicit dim a, s MsgBox "Вычисление суммы s=1+1/2+1/3+1/4+...+1/60" s=0 For a=1 to 60 s=s+1/a Next MsgBox "s=1+1/2+1/3+1/4+...+1/60= "&s,,"Результат:" Пример 3 'Имя файла: For_Step.vbs 'Вычисление значений функции y=x*x+3 при х изменяющемся от -12 до 12 с шагом 2 MsgBox "Вычисление значений функции y=x*x+3"&vbCrLf&_ "при х изменяющемся от -12 до 12 с шагом 2",,"Вычисление значений функции" For i=-12 to 12 Step 2 s1=i*i+3 s="при x="&i&" y="&s1&vbCrLf&s Next MsgBox s,,"Значения функции y=x*x+3" Пример 4 'Имя файла: While_Wend.vbs 'Вычислить сумму s=1+1/2+1/3+1/4+...+1/60 'C использованием конструкции While...Wend option explicit dim a, s MsgBox "Вычисление суммы s=1+1/2+1/3+1/4+...+1/60" a=1 s=0 While a<=60 s=s+1/a a=a+1 Wend MsgBox "s=1+1/2+1/3+1/4+...+1/60= "&s,,"Результат:" Пример 5 'Имя файла: Do While__Loop.vbs 'Вычислить сумму s=1+1/2+1/3+1/4+...+1/60 'C использованием конструкции Do While...Loop option explicit dim a, s MsgBox "Вычисление суммы s=1+1/2+1/3+1/4+...+1/60" a=1 s=0 Do While a<=60 s=s+1/a a=a+1 Loop MsgBox "s=1+1/2+1/3+1/4+...+1/60= "&s,,"Результат:" Пример 6 'Имя файла: Do__Loop While.vbs 'Вычислить сумму s=1+1/2+1/3+1/4+...+1/60 'C использованием конструкции Do Loop...While option explicit dim a, s MsgBox "Вычисление суммы s=1+1/2+1/3+1/4+...+1/60" a=1 s=0 Do s=s+1/a a=a+1 Loop While a<=60 MsgBox "s=1+1/2+1/3+1/4+...+1/60= "&s,,"Результат:" Пример 7 'Имя файла: Do Until__Loop.vbs 'Вычислить сумму s=1+1/2+1/3+1/4+...+1/60 'C использованием конструкции Do Until...Loop option explicit dim a, s MsgBox "Вычисление суммы s=1+1/2+1/3+1/4+...+1/60" a=1 s=0 Do Until a>60 s=s+1/a a=a+1 Loop MsgBox "s=1+1/2+1/3+1/4+...+1/60= "&s,,"Результат:" Пример 8 'Имя файла: Do __Loop Until.vbs 'Вычислить сумму s=1+1/2+1/3+1/4+...+1/60 'C использованием конструкции Do... Loop Until option explicit dim a, s MsgBox "Вычисление суммы s=1+1/2+1/3+1/4+...+1/60" a=1 s=0 Do s=s+1/a a=a+1 Loop Until a>60 MsgBox "s=1+1/2+1/3+1/4+...+1/60= "&s,,"Результат:" Пример 9 'Имя файла: simple.vbs 'Пусть a и b - положительные вещественные числа и a>b. 'Данная программа находит такое минимальное натуральное x, что x*b>a option explicit dim a, b, x a=CDbl(InputBox("Введите положительное вещественное значение a: ","Окно ввода:")) If a>0 Then b=CDbl(InputBox("Введите положительное вещественное значение b, меньшее”&_ " "чем "&a,"Окно ввода:")) If ((a>b)And(b>0)) Then x=1 While x*b<=a x=x+1 Wend MsgBox "a="&a&" b="&b&vbCrLf&"Найдено минимальное натуральное"&_ "x="&x&", при котором x*b>a",,"Результат:" Else MsgBox "Вы ввели неправильное значение ",vbCritical,"Ошибка:" End If Else MsgBox "Вы ввели неправильное значение ",vbCritical,"Ошибка:" End If Пример 10 'Имя файла: summa.vbs 'Вычислить сумму s=1+1/2+1/3+1/4+..., которая состоит из n слагаемых 'C использованием конструкции Do While...Loop option explicit dim a, s, w, n n=CInt(InputBox ("Введите число слагаемых: ",_ "Вычисление суммы s=1+1/2+1/3+... ")) a=2 w=1 s=1 Do While a<=n s=s+1/a w=w& "+1/" &a a=a+1 Loop If n=1 Then MsgBox "s=1",,"Результат:" ElseIf n=0 Then MsgBox "s=0",,"Результат:" ElseIf n<0 Then MsgBox "Вы ввели неправильное значение!",vbCritical,"Ошибка ввода:" Else MsgBox "s="&w&"="&s,,"Результат:" End If Пример 11 'Имя файла: Palindrom.vbs 'Программа подсчитывает, сколько палиндромических чисел лежат в промежутке от '100 до 1000 (число M называется палиндромическим числом, если оно равно 'своему обращённому). Выведите все эти числа. option explicit dim x, y, z, d, n, m, s MsgBox "Сколько палиндромических чисел лежат в промежутке от 100 до 1000",,"Задача:" For x=1 to 9 For y=0 to 9 For z=0 to 9 n=100*x+10*y+z m=100*z+10*y+x If n=m Then d=d+1 s=s&" "&n End If Next Next Next MsgBox "В промежутке от 100 до 1000 лежит "&d&" палиндромов: "&vbCrLf&s Пример 12 'Имя файла: Otrezok.vbs 'Нахождение всех простых чисел на заданном отрезке option explicit dim x1, x2, k, s, i, j x2=CLng(InputBox("Введите верхню границу отрезка: ","Окно ввода: ","10")) x1=CLng(InputBox("Введите нижню границу трезка: ","Окно ввода: ","5")) s="Все простые числа из отрезка ["&x1&", "&x2&"]:"&vbCrLf For i=x1 to x2 k=0 For j=2 to Fix(Sqr(i)) If i mod j=0 Then k=k+1 End If Next If k=0 Then s=s&" "&i End if Next MsgBox s,,"Результат: " Пример 13 'Имя файла: Mnoziteli.vbs 'Программа нахождения всех простых множителей целого положительного числа 'Программа учитывает множество условий неправильного ввода IF boolic THEN 'если мы ввели число, то... x=CDbl(x) x2=CLng(x) 'CLng округляет число до целого If CDbl(x2)-x<>0 Then ' если число не целое изменим флаг boolic=false End if If boolic and (x>1) Then 'если мы ввели мы ввели число целого типа, большее 1 m=2 i=0
s="Простые множители числа "&x&":"&vbCrLf While m<=x 'ищем простые множители числа и записываем их в строку s If x Mod m=0 Then s=s&" "&m x=x/m i=i+1 Else m=m+1 End If Wend If i=1 Then MsgBox "Число "&x1&" нельзя разложить на простые”&_ “множители, так как оно само”&_ является простым числом.",,"Результат:" Else Msgbox s,,"Результат:" End If ElseIf boolic and (x=1) Then ' если введённое число равно 1, то... MsgBox "Число 1 нельзя разложить на простые множители,"&_ " так как оно само является простым числом.",,"Результат:" Else MsgBox "Вы ввели неправильное значение x",vbCritical,"Ошибка" End If ELSE ' если введённое значение не числовое... MsgBox "Вы ввели неправильное значение x",vbCritical,"Ошибка"
|
||||
Последнее изменение этой страницы: 2016-08-15; просмотров: 344; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.22.242.169 (0.008 с.) |