Пример 9. a=CDbl(InputBox("Введите положительное вещественное значение a: ","Окно ввода:")). b=CDbl(InputBox("Введите положительное вещественное значение b,
Пример 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 " Число " & x& " нельзя разложить на простые" & _ " множители, так как оно само является простым числом. ",, " Результат: " Else Msgbox s,, " Результат: " End If ElseIf boolic and (x=1) Then ' если введённое число равно 1, то... MsgBox " Число 1 нельзя разложить на простые множители, " & _ " так как оно само является простым числом. ",, " Результат: " Else MsgBox " Вы ввели неправильное значение x", vbCritical, " Ошибка" End If ELSE ' если введённое значение не числовое... MsgBox " Вы ввели неправильное значение x", vbCritical, " Ошибка" Битовые операции в языке Visual Basic Как известно, числа в памяти хранятся в виде битовой последовательности и для ускорения работы, может потребоваться работать с битами на прямую, при помощи операторов AND, OR, XOR, NOT. Операции сдвигов (shift) двоичного числа в языке Visual Basic Script отсутствуют, но если двоичное число надо сдвинуть в право то можно использовать деление на 2 и соответственно умножение на 2, если сдвинуть надо влево. Пример 14 option explicit 'демонстрация синтаксиса и семантики поразрядных битовых операций dim a, b a=Cint(inputbox(" Введите два целых числа", " введите первое число" )) b=Cint(inputbox(" Введите два целых числа", " введите первое число" )) msgbox a& " and " & b& " = " & (a and b),, " Битовая операция AND" msgbox a& " or " & b& " = " & (a or b),, " Битовая операция OR" msgbox a& " xor " & b& " = " & (a xor b),, " Битовая операция xor" msgbox " not " & a& " = " & (not a),, " Инверсия битов в числе A" Пример 15 option explicit dim a 'Программа вывода битовой последовательности положительного 'десятичного числа a=InputBox(" Ввод числа", " Введите число типа INT", 0) if IsNumeric(a) then dim str While a> 0 str=CInt(Cint(a) and 1)& Str a=a\2 WEnd msgbox str else msgbox " Ошибка ввода" end if
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|