Dim I As Integer, J As Integer
N = Val(TextBox1)
M = Val(TextBox2)
Redim A(1 To N, 1 To M)
For I = 1 To N
For J = 1 To M
A(I, J) = InputBox(“A(“ + Str(I) +”,” + Str(J) + “)=”)
Next J
Next I
End Sub
------------------------------------------
Private Sub CommandButton2_ Click()
Dim I As Integer, J As Integer
Redim B(1 To N)
For I = 1 To N
B(I) = 0
For J = 1 To M
If A(I, J) > 0 Then B(I) = B(I) + A(I, J)
Next J
Next I
End Sub
------------------------------------------
Private Sub CommandButton3_ Click()
Dim I As Integer
For I = 1 To N
ListBox1.Additem B(I) ‘ вывод элементов массива B в ListBox1
Next I
End Sub
|
Label1, Label2, Label3, CommandButton1, CommandButton2,
CommandButton3.
Свойство Caption изменено у элементов Label1, Label2, Label3,
Commandbutton1, CommandButton2, CommandButton3.
Шестое задание. Пользовательские процедуры и функции.
Задачи заданий 1 – 5 выполнять с использованием пользовательских процедур и функций.
Пример15. Вычислить площадь треугольника со сторонами a, b, c.
Код
Dim a As Single, b As Single
Dim c As Single, y As Single
Private Function PLT(st1 As Single, st2 As Single, st3 As Single) As Single
Dim pp As Single
pp = (st1 + st2 + st3)/2
pp = pp * (pp – st1) * (pp – st2) * (pp – st3)
If pp <= 0 Then
MsgBox “Неверно заданы значения параметров”, 16, “ошибка”
Else
PLT = Sqr(pp)
End If
End Function
--------------------------------------
Private Sub CommandButton1_Click()
a = Val(TextBox1)
b = Val(TextBox2)
c = Val(TextBox3)
y = PLT(a, b, c)
TextBox4 = Str(y)
End Sub
Private Sub Commandbutton2_Click()
TextBox1 = “ “
TextBox2 = “ “
TextBox3 = “ “
TextBox4 = “ “
End Sub
|
Свойство Caption изменено у элементов Label1, Label2, Label3, Label4, CommandButton1, CommandButton2.
Пример16. Вычислить сумму двух векторов A и B размерности N.
Результат получить в виде вектора С.
ci = ai + bi
Код
Dim A() As Single, B() As Single, I As Integer
Dim C() As Single, N As Integer
Private Sub Vvod(A() As Single, N As Integer)
For I = 1 to N
A(I) = InputBox(“Введите исходный массив”)
Next I
End Sub
Private Sub Racshet(A() As Single, B() As Single, C() As Single, N As Integer)
For I = 1 to N
C(I) = A(I) + B(I)
Next I
End Sub
Private Sub Viwod(C() As Single, N As Integer)
For I = 1 to N
ListBox1.Additem C(I)
Next I
End Sub
Private Sub CommandButton1_Click()
N = Val(TextBox1)
ReDim A(1 To N) : ReDim B(1 To N) : ReDim C(1 To N)
Call Vvod(A(), N)
Call Vvod(B(), N)
Call RaschetA(), B(), C(), N)
Call Viwod(C(), N)
End Sub
|
Свойство Caption изменено у элементов Label1, Label2, Label3,
CommandButton1.
Седьмое задание. Файлы.
1. Создать файл, каждая запись которого имеет структуру: название товара, количество товара, цена за единицу. Выдать ведомость товара, количество которого меньше заданного значения А.
2. Создать файл, каждая запись которого имеет структуру: фамилия, имя, отчество, профессия, стаж в годах. Выдать ведомость сотрудников, стаж которых больше заданного значения А.
3. Создать файл, каждая запись которого имеет структуру: фамилия, имя, отчество, наличие детей, зарплата. Выдать ведомость сотрудников, не имеющих детей.
4. Создать файл, каждая запись которого имеет структуру: фамилия, имя, отчество, номер курса, проживание. Выдать ведомость студентов, проживающих в общежитии.
5. Создать файл, каждая запись которого имеет структуру: фамилия, имя, отчество, номер группы, экзаменационные оценки. Выдать ведомость отличников.
6. Создать файл, каждая запись которого имеет структуру: фамилия, имя, отчество, номер группы, экзаменационные оценки. Выдать ведомость неуспевающих студентов.
7. Создать файл, каждая запись которого имеет структуру: фамилия, имя, отчество, номер группы, аттестация дисциплин. Выдать ведомость не аттестованных студентов
8. Создать файл, каждая запись которого содержит информацию о компьютере: марка, объем винчестера, объем оперативной памяти, быстродействие. Выдать список компьютеров с заданным быстродействием.
9. Создать файл, каждая запись которого содержит информацию об автомобиле: название модели, год выпуска, цена, цвет. Выдать список автомобилей, цена которых превышает заданную цену А.
10. Создать файл, каждая запись которого содержит информацию о лекарствах, хранящихся на аптечном складе: название, количество, стоимость. Выдать список лекарств, стоимость которых не превышает заданную цену А.
11. Создать файл, каждая запись которого содержит информации о лекарствах, хранящихся в аптеках города: номер аптеки, названия, срок годности. Выдать список просроченных лекарств.
12. Создать файл, каждая запись которого содержит информацию о рейсах самолетов: номер рейса, пункт назначения, время прибытия, время отправления. Выдать информацию о рейсах самолетов, время отправления которых находится в заданном промежутке времени.
Пример17. Создать файл, каждая запись которого имеет структуру:
фамилия, имя, отчество, стаж, наличие детей.
Выдать ведомость сотрудников, имеющих двух детей.
Код
Private Type B
Fam As String *30
Name As String *15
Ots As Striing *15
Stag As Integer
Deti As Integer
End Type
Dim I As Integer
Dim N As String *3
Dim A As B
Dim Fih As Integer
Dim Fim As String *40
---------------------------------------
Private Sub CommandButton1_Click()
Fih = FreeFile()
Fim = InputBox(“Введите физическое имя файла”)
Open Fim for Random Access Write As #Fih Len = Len(A)
I = 0
Do
N = InputBox(“введи N”)
If N = “***” Then Exit Do
I = I + 1
A.Fam = InputBox(“введи фамилию”)
A.Name = InputBox(“введи имя”)
A.Ots = InputBox(“введи отчество”)
A.Stag = IuputBox(“введи стаж”)
A.Deti = InputBox(“введи количество детей”)
Put #Fih, I, A
Loop
Close #Fih
End Sub
--------------------------------------
Private Sub CommandButton2_Click()
Fih = FreeFile()
Fim = InputBox(“Введи физическое имя файла”)
Open Fim for Random Access Read As #Fih Len = Len(A)
I = 0
Do While Not Eof(Fih)
I = I + 1
Get #Fih, I, A
If A.Deti = 2 Then
ListBox1.Additem A.Fam ‘ вывод фамилии в окно ListBox1
Listbox2.Additem A.Name ‘ вывод имени в окно ListBox2
ListBox3.Additem A.Ots ‘ вывод отчества в окно ListBox3
End If
Loop
Close #Fih
End Sub
|
Свойство Caption изменено у элементов Label1, Label2, Label3, CommandButton1, CommandButton2.
РАЗНЫЕ ЗАДАЧИ
Пример18. Вычислить сумму и количество цифр целого числа.
Код
Private Sub CommandButton1_Click()
Dim S As Integer, D As Integer, K As Integer
Dim I As Integer, N As Integer, C As String*1
N = Len(TextBox1)
S = 0 : K = 0
For I = 1 To N
C = Mid(TextBox1, I, 1)
D = Val(C)
S = S + D
K = K +1
Next I
TextBox2 = Str(S)
TextBox3 = Str(K)
End Sub
На форму нанесены элементы управления: TextBox1, TextBox2, TextBox3,
Label1, Label2, Label3, CommandButton1.
Свойство Caption изменено у элементов: Label1, Label2, Label3,
CommandButton1.
Пример19. Каким прилагательным можно охарактеризовать тот или иной
возраст человека.
Субъективное представление отражает следующая таблица
менее 15 лет | 15 – 30 лет | 31 – 45 лет | 46 – 60 лет | больше 60 лет |
детский | молодой | средний | пожилой | преклонный |
Код
Private Sub CommandButton1_Click()
Dim let As Integer, vozrast As String
let = Val(TextBox1)
Select Case let
Case Is < 15 : vozrast = “детский”
Case 15 To 30 : vozrast = “молодой”
Case 31 To 45 : vozrast = “средний”
Case 46 To 60 : vozrast = “пожилой”
Case Is > 60 : vozrast = “преклонный”
End Select
TextBox2 = vozrast
End Sub
На форму нанесены элементы управления: Label1, Label2, TextBox1,
TextBox2, CommandButton1.
Свойство Caption изменено у элементов Label1, Label2,
CommandButton1.
Пример20 Найти сумму ряда с заданной точностью Е, общий член которого .
Для нахождения рекуррентной формулы вычислим отношение следующего члена ряда к предыдущему:
. Отсюда . Найдем первый член ряда .
Блок схема алгоритма
Код
Private Sub CommandButton1_Click()
Dim Е As Single,
Dim n As Integer
Dim S As Single
Dim An As Single
E= Val(TextBox1)
S=0
n=1
An=1/3
Do While An>E
S=S+An
n=n+1
An=An*(n+1)/2/(2*n+1)
Loop
TextBox2 = Str(S)
End Sub
На форму нанесены элементы управления: Label1, Label2, TextBox1,
TextBox2, CommandButton1.
Свойство Caption изменено у элементов Label1, Label2, CommandButton1.
Пример21 Дан массив. Упорядочить его элементы по убыванию. Применим сортировку массива методом пузырька.
Сортировка методом пузырька - самый простой алгоритм сортировки.
Сортировка методом пузырька (по убыванию) работает следующим образом: в итерации цикла берётся самый первый элемент и сравнивается со следующим. Если первый элемент меньше, то элементы меняются местами. Затем происходит сравнение второго с третьим и т.д. После первой итерации цикла в конце оказывается наименьший элемент. После второй итерации на предпоследней позиции оказывается второй по величине элемент. Всего в цикле необходимо произвести на одну итерацию меньше количества элементов в массиве.
Блок-схема алгоритма
Код
Dim A() As Single, I As Integer, N As Integer
Private Sub CommandButton1_Click()
N = Val(TextBox1)
ReDim A(1 To N)
For I = 1 To N
A(I) = Val(InputBox("Введите массив"))
ListBox1.AddItem "A(" + Str(I) + ")=" + Str(A(I))
Next I
End Sub
Private Sub CommandButton2_Click()
For J% = 1 To N - 1
For I = J + 1 To N
If A(I) > A(J) Then
v! = A(I)
A(I) = A(J)
A(J) = v
End If
Next I
Next J
For I = 1 To N
ListBox2.AddItem "A(" + Str(I) + ")=" + Str(A(I))
Next I
End Sub
На форму нанесены элементы управления: ListBox1, ListBox2, TextBox1, Label1, Label2, Label3, CommandButton1, CommandButton2.
Варианты контрольных работ для студентов заочной формы обучения
Контрольная работа состоит из трех заданий:
1. Реферативный ответ на первое задание должен содержать полное раскрытие темы на 8-10 печатных листах формата А4.
2.Задача на составление алгоритма линейной структуры. Решение данного задания должно содержать блок-схему и словесное описание алгоритма, листинг программы и рисунок с формой.
3.Задача на составление алгоритма сложной структуры. Решение данного задания должно содержать блок-схему и словесное описание алгоритма, листинг программы и рисунок с формой. (Для отображения формы используйте клавишу PrtScr, которая позволяет сфотографировать активный рабочий стол).
Выбор варианта для контрольной работы осуществляется по последней цифре зачетки.
Для студентов, в учебном плане которых информатика разбита на два семестра, данная контрольная работа выполняется во втором семестре и состоит из двух заданий – второго и третьего.
Варианты контрольных работ
Первое задание
1. Язык как способ представления информации, двоичная форма представления информации, ее особенности и преимущества.
2. История развития ЭВМ.
3. Современное состояние электронно-вычислительной техники.
4. Ноутбук – устройство для профессиональной деятельности.
5. WWW. История создания и современность.
6. Устройства ввода информации.
7. Игровые программы (виды, влияние на человека, рассмотреть любые три программы, представляющие разные жанры).
8. Офисные программы (системы автоматизированных вводов документов, электронные переводчики).
9. Информатика и законы естественных наук.
10. Правонарушения в сфере информационных технологий.
Второе задание
1. Вычислите значение функции
2. Найдите координаты вершины параболы
3. Вычислите расстояние между двумя точками, лежащими в пространстве и .
4. Вычислите время t, за которое физическое тело пройдет расстояние S с постоянной скоростью V.
5. Вычислите время свободного падения тела с высоты h (h>0).
6. Вычислите площадь круга по заданному значению диаметра d.
7. Вычислите объем параллелепипеда, если известны все его измерения.
8. Вычислите значение функции .
9. По координатам трех вершин некоторого треугольника найти его периметр.
10. Вычислите значение функции .
Третье задание
1. Дан одномерный массив А размерности N. Найти сумму положительных элементов и их количество.
2. Дан одномерный массив А размерности N. Найти количество элементов, больших заданного числа В и их произведение.
3. Дан одномерный массив А размерности N . Найти отношение максимального элемента к минимальному.
4. Дан одномерный массив А размерности N. Поменять местами максимальный и минимальный элементы.
5. Дан одномерный массив А размерности N. Найти сумму отрицательных элементов, расположенных между максимальным и минимальным.
6. Дан одномерный массив размерности N. Найти произведение элементов, расположенных до максимального и количество элементов после него.
7. Дан одномерный массив А размерности N. Найти максимальный и минимальный элементы и их индексы.
8. Дан одномерный массив А размерности N. Найти среднее арифметическое элементов, расположенных между максимальным и минимальным.
9. Дан одномерный массив А размерности N. Найти произведение положительных элементов, расположенных между максимальным и минимальным.
10. Дан одномерный массив А размерности N. Найти количество элементов, больших заданного числа В, расположенных между максимальным и минимальным.
ЛИТЕРАТУРА
1. Басков Н.Н., Лебединская А.Р. Visual Basic for Applications. Учебный практикум. Ростов – на - Дону, 2008г.
2. Волченков Н.Г. Программирование на Visual Basic 6. Части 1, 2, 3. М.: ИНФРА-М, 2000г.
3. Стефен Моррис. Visual Basic 5. Ростов – на – Дону: Феникс, 1977г.
4. Алиев В.К. Visual Basic for Application. Информатика в задачах,
примерах, алгоритмах. СОЛОН-Р, Москва, 2001г.