Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Основы программирования в среде Visual basic fo....doc
Скачиваний:
13
Добавлен:
20.04.2019
Размер:
1.62 Mб
Скачать

11.3 Циклический алгоритм

Задание

Ввести с клавиатуры произвольное число значений и вычислить их квадратные корни. Ввод и вычисления прекратить, как только введено отрицательное число.

1 Присваиваем новой форме название «Иванов И.И. Гр. Д-1-2005 Задача 3».

2 Помещаем кнопку «Ввод числа» (CommandButton1).

3 Помещаем надпись «Цикл с предусловием» (Label1).

4 Записываем подпрограмму ввода чисел и вычисления их квадратных корней.

Private Sub CommandButton1_Click()

x = InputBox("Введите x", "Окно ввода данных")

Do While x >= 0

y =Sqr(x)

Res = MsgBox("y= " & y,, "Результат")

x = InputBox("Введите x","Окно ввода данных")

Loop

MsgBox ("Введено отрицательное число")

End Sub

5 Запускаем программу:

6 Вводим число

7 Получаем результат

8 Продолжаем вводить числа:

И т. д., до тех пор, пока не будет введено отрицательное число:

11.4 Одномерный массив

Задание

Вычислить сумму элементов одномерного целочисленного массива, заданного случайным образом.

1 Даем новой форме название «Иванов И.И. Гр. Д-1-2005 Задача 4».

2 Помещаем надпись «Одномерный массив» (Label1).

3 Помещаем кнопки «Элементы массива» (CommandButton1) «Сумма элементов» (CommandButton2).

4 Помещаем Label2.

5 Записываем программу вычисления суммы элементов массива:

Const n = 12

Dim V(1 To n) As Integer

Dim S As Integer

Private Sub CommandButton1_Click()

Label2.Caption = "Исходный массив "

Randomize

For i = 1 To n

V(i) = Rnd * 10

Label2.Caption = Label2.Caption + Str(V(i))

Next

End Sub

Private Sub CommandButton2_Click()

S = 0

For i = 1 To n

S = S + V(i)

Next

Rez = MsgBox("Сумма элементов массива=" & S,,"Окно результата")

End Sub

6 Запускаем программу. Нажимаем кнопку Элементы массива. В окне формы выводятся значения элементов массива V:

7 Нажимаем кнопку Сумма элементов.

8 В окне MsgBox выводится результат.

11.5 Вложенные циклы. Двумерные массивы

Задание

Задана квадратная матрица 10×10. Подсчитать среднее арифметическое элементов, расположенных на главной диагонали.

1 На новую форму Иванов И.И. Гр. Д-1-2005 Задача 5 помещаем элементы:

1.1 Label1 «Вложенные циклы. Двумерные массивы.

1.2 CommandButton1 «Задать матрицу».

1.3 Label2 «».

1.4 ListBox1 – для размещения элементов матрицы.

1.5 CommandButton2 «Среднее арифметическое».

2 Записываем код программы:

Const N = 10

Dim M(1 To N, 1 To N) As Integer

Private Sub CommandButton1_Click()

Label2.Caption = "Исходный массив "

Randomize

For i = 1 To N

L = ""

For j = 1 To N

M(i, j) = Rnd * 9

L = L + Str(M(i, j))

Next

' Добавить строку матрицы в элемент ListBox1

ListBox1.AddItem (L)

Next

End Sub

Private Sub CommandButton2_Click()

S = 0

For i = 1 To N

S = S + M(i, i)

Next

Sr = S / N

Res = MsgBox("Среднее значение диагональных элементов =" & Sr, , "Результат")

End Sub

3 Запускаем программу на выполнение:

11.6 Файлы произвольного доступа

Задание

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

1 Создаем форму:

2 Записываем код программы:

Private Type CodeRec

Name As String * 25

Code As Integer

End Type

Const Fil As String = "MyFil"

Dim Trec As CodeRec

Dim FilNum As Integer

'Создание файла

Private Sub CommandButton1_Click()

FilNum = FreeFile()

Open Fil For Random Access Write As FilNum Len = Len(Trec)

For i = 1 To 3

Trec.Name = InputBox("Введите фамилию")

Trec.Code = i

Put FilNum, , Trec

Next

Close FilNum

End Sub

'Добавление в файл

Private Sub CommandButton2_Click()

FilNum = FreeFile()

Dim nbyte As Long

Open Fil For Random Access Read Write As FilNum Len = Len(Trec)

nbyte = LOF(FilNum)

n = CInt(nbyte / Len(Trec))

Trec.Name = InputBox("Введите фамилию")

Trec.Code = n + 1

Put FilNum, n + 1, Trec

Close FilNum

End Sub

'Чтение файла и вывод на экран

Private Sub CommandButton3_Click()

FilNum = FreeFile()

Open Fil For Random Access Read As FilNum Len = Len(Trec)

Do While Not EOF(FilNum)

Get FilNum, , Trec

S = Str(Trec.Code) & " " & Trec.Name

ListBox1.AddItem (S)

Loop

End Sub

'Создание папки для записи в нее файла

Private Sub CommandButton4_Click()

ChDrive "C"

On Error Resume Next

MkDir "Lab"

ChDir "Lab"

End Sub

3 Запускаем программу на выполнение

3.1 Создаем папку (щелчком на соответствующей кнопке).

3.2 Создаем файл. Вводим фамилии (в цикле), программа осуществляет вывод в файл с заданным именем каждой записи.

4 Дополняем файл одной записью

5 Выводим содержимое файла (с помощью компонента ListBox):