Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Пример 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 Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...