Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Зачет по ИСИС.docx
Скачиваний:
1
Добавлен:
21.09.2019
Размер:
49.29 Кб
Скачать

15 Вопрос

Повторяет блок инструкций, пока условие Boolean равно True или до тех пор, пока условие станет True.

Используется структура Do...Loop, если требуется повторение набора инструкций неограниченное число раз, пока условие выполняется. Если вы хотите повторить инструкцию определенное количество раз, то For...Next Statement обычно является лучшим выбором.

While или Until можно использовать для указания condition, но не оба одновременно.

Можно проверить condition только один раз — в начале или в конце цикла. Если проверить condition в начале цикла (в инструкции Do), цикл может никогда не выполниться, даже один раз. Если проверить в конце цикла (в инструкции Loop), цикл всегда выполняется по крайней мере один раз.

Условие обычно является результатом сравнения двух значений, но оно может быть любым выражением, значение которого при вычислении имеет тип Тип данных Boolean (Visual Basic) (True или False). Сюда же относятся значения других типов данных, например, числовых типов, преобразованные в тип Boolean.

Циклы Do могут вкладываться друг в друга. Также можно вложить друг в друга различные виды управляющих структур.

Пример

Dim index As Integer = 0

Do

Debug.Write(index.ToString & " ")

index += 1

Loop Until index > 10

Debug.WriteLine("")

' Output: 0 1 2 3 4 5 6 7 8 9 10

16 Вопрос

Функции и процедуры в VB

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

Процедуры обработки событий после вызова постоянно находятся в ожидании событий.

Функция – это подпрограмма, которую вызывают, чтобы выполнить какие-то расчеты или проверки. Когда она завершает работу, то возвращает управление вызывающей программе и передает ей результат расчета.

Процедура – это тоже подпрограмма. Ее тоже вызывают, чтобы выполнить какие-то действия, но от нее не требуется возвращать основной программе какие-либо значения.

Синтаксис объявления процедуры и функции:

[Public/Private][Static] Sub <Имя процедуры>(<Параметры>)

<Операторы>

End Sub

Function <Имя функции> [As тип]

<Операторы>

End Function

Вызов функции, как правило, осуществляется посредством указания в правой части какого-либо оператора ее имени и параметров. С другой стороны, процедура вызывается при помощи отдельного оператора:

Call <Имя процедуры> (Параметры)

Или

<Имя процедуры> (Параметры)

Если при вызове процедуры используется ключевое слово Call, то список параметров должен быть указан в скобках. Если же процедура вызывается без использования Call, то ее параметры перечисляются без скобок.

Задача 1

Private Sub Command2_Click()

a = Val(InputBox("Введите длину первого катета", "Вычисление площади"))

b = Val(InputBox("Введите длину второго катета", "Вычисление площади"))

c = Sqr(a ^ 2 + b ^ 2)

Text3 = c

End Sub

3 задача. . Дискета «3,5» вмещает 1.44 Мбайта. Рукопись содержит Х страниц текста. На каждой странице Y строк по Z символов в каждой. Сколько дискет понадобиться для записи рукописи. Все данные запрашиваются.

Private Sub Command1_Click()

a = Val(InputBox("Сколько страниц в вашем документе?", " расчет"))

Text1 = a

b = Val(InputBox("Сколько строк на странице?", " расчет"))

Text2 = b

c = Val(InputBox("Сколько символов в каждой строке?", " расчет"))

Text3 = c

d = Val(a * b * c)

f = Val(d / 1024 / 1024)

8 задача. . Напишите программу, которые в зависимости от введенного числа либо вычисляют функцию, либо выдают сообщение, что функция не определена:

Private Sub Command1_Click()

x = Val(Text1)

If x = 0 Then Picture1.Print " Функция не определена " Else y = 1 / x

Text2 = y

End Sub

Напишите программу, которые в зависимости от введенного числа либо вычисляют функцию, либо выдают сообщение, что функция не определена:

Private Sub Command1_Click()

x = Val(Text1)

If x > 1 Or x < -1 Then y = Sqr(x ^ 2 - 1) Else Picture1.Print "Функция не определена"

Text2 = y

End Sub

9 задача. Напишите программу для вычисления функции:

y =

Private Sub Command1_Click()

x = Val(Text1)

If x <= 0 Then y = x * Sin(x) Else y = Cos(x) / x

Text2 = y

End Sub

11 задача

Напишите программу, запрашивающую у пользователя три разных целых положительных числа и находящую сумму двух наименьших из них.

Private Sub Command1_Click()

a = Val(Text1)

b = Val(Text2)

c = Val(Text3)

If a > b And a > c Then y = b + c

If b > a And b > c Then y = a + c

If c > a And c > b Then y = a + b

Text4 = y

End Sub

Задача 26.

Public Class Form1

Dim a(10) As Integer ' Описываем массив из 10 элементов

Dim max As Integer ' max - это максимальное число массива

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

For i = 1 To 10

a(i) = Fix(Rnd() * 100) ' Задаем массив случайным образом, числами от 1 до 99

Next

max = 0 ' Значение max должно быть минимально возможным (т.к. в нашем случае все числа положительные, то будет достаточно и нуля)

For i = 1 To 10

If a(i) > max Then max = a(i) ' Сравниваем каждый элемент массива с max. Если он больше, то max равен данному элементу

Next

MsgBox("Максимум равен: " & max) ' Выводим сообщение с максимальным числом

End Sub

End Class

Public Class Form1

Dim a(10) As Integer ' Описываем массив из 10 элементов

Dim min As Integer ' min - это минимальное число массива

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

For i = 1 To 10

a(i) = Fix(Rnd() * 100) ' Задаем массив случайным образом, числами от 1 до 99

Next

min = 9999999 ' Значение min должно быть максимально возможным

For i = 1 To 10

If a(i) < min Then min = a(i) ' Сравниваем каждый элемент массива с min. Если он меньше, то min равен данному элементу

Next

MsgBox("Минимум равен: " & min) ' Выводим сообщение с минимальным числом

End Sub

End Class

28 задача. Разработайте проект, запрашивающий три стороны треугольника, a,b,c и вычисляющий его площадь по формуле Герона.

Где p = (a+b+c)/2 - полупериметр

Private Sub Command1_Click()

a = Val(InputBox("введите длину первой стороны треугольника", "площадь"))

b = Val(InputBox("введите длину второй стороны треугольника", "площадь"))

c = Val(InputBox("введите длину третей стороны треугольника", "площадь"))

p = (a + b + c) / 2

s = Sqr(p * (p - a) * (p - b) * (p - c))

Text1 = s

End Sub