Создание проектов решения вычислительных задач на Visual Basic
ФГОУ ВПО
Уфимский государственный авиационный
технический университет
Кафедра Информатики
Создание проектов решения
вычислительных задач на Visual Basic
ПОЯСНИТЕЛЬНАЯ ЗАПИСКА
.301003.000ПЗ
Студент
Мухаметдинов Р.Н.
Уфа 2014 г.
ГОУ ВПО
Уфимский государственный авиационный технический университет
Рецензия
на курсовую (контрольную) работу по информатике студента гр. П-214Сф
факультета АП
Мухаметдинов Руслан Наилевич
Тема работы: Создание проектов решения вычислительных задач на Visual
Basic
Вариант №: 3
Рецензент
Замечания
По результатам решения задач:
По содержанию и оформлению пояснить записки:
«_____» ___________ 20__ г. ____________________________
(подпись)
Содержание
Главная форма и титульный лист
Задание 1
Постановка задачи
Блок-схема программы
Исходный текст программы
Результаты работы программы
Задание 2
Постановка задачи
Блок-схема программы
Исходный текст программы
Результаты работы программы
Задание 3
Постановка задачи
Блок-схема программы
Исходный текст программы
Результаты работы программы
Задание 4
Постановка задачи
Блок-схема программы
Исходный текст программы
Результаты работы программы
Список литературы
Главная форма
и титульный лист
Для создания формы с краткой информацией о приложении (титульный лист курсовой
работы) удобно использовать шаблон About Dialog . Пример оформления титульного
листа курсовой работы в виде показан на рисунке 1.
Рисунок 1 - Титульный лист
На главном окне приложения размещается меню, созданное с использованием
кнопок (CommandButton) или текстового меню. Пример реализации главного окна
приложения показан на рисунке 2.
Рисунок 2 - Главное окно приложения
Задание 1.
«Сумма ряда»
Постановка
задачи
Вычислить значение суммы ряда S. Сравнить полученное значение с точным
решением Y, вычислив абсолютную и относительную погрешности.
Для подсчета суммы используем цикл For … Next.
В цикле For используется переменная, называемая переменной
цикла или счетчиком цикла (counter), которая увеличивается или уменьшается на
заданную величину при каждом повторении цикла. [1, с.148]
Блок-схема
программы
Исходный текст
программы
Private Sub Command1_Click()s As Double.Cls.Cls.Cls.Cls=
Val(Text1.Text)= 0k = 1 To m= 1j = 2 To 2 * k - 1= F * jj= s + (-1) (k - 1) /
Fk.Print Format(s, "0.0000000000000")= Sin(1).Print Format(y,
"0.0000000000000")= Abs(y - s).Print Format(da,
"0.0000000000000")= da / y * 100.Print Format(dot,
"0.0000000") + "%"SubSub Command2_Click().ShowSubSub
Command3_Click()Sub
Результаты работы
программы
Результаты работы программы представлены на рисунке 3.
Рисунок 3 - Результаты работы программы
Задание 2.
«Массивы»
Постановка
задачи
Дан двумерный массив (матрица) размером NxM.
. Определить произведение элементов, значения которых не кратны заданному
числу F.
. Найти частное от деления максимального элемента массива и элемента с
номером L.
. Упорядочить массив по убыванию элементов сверху вниз и слева направо.
Для выполнения данного задания необходимо знать, что такое массивы.
Массивы (arrays) позволяют ссылаться на ряд переменных с помощью имени и
числа, называемого индексом массива (index). [1, с.127]
Блок-схема
программы
Исходный
текст программы
Dim Am(50, 50) As IntegerSub Command1_Click()p As DoubleMax
As Integer, k As Integer, F As Integer, L As Integeri As Integer, j As Integer=
Val(Text1.Text)= Val(Text5.Text)_min = Val(Text3.Text)_max = Val(Text4.Text)=
Val(Text6.Text)= Val(Text2.Text).Cleari = 1 To N= ""j = 1 To m(i, j)
= am_min + Int(Rnd * (am_max - am_min))= stram + " " + Str(Am(i,
j))j.AddItem (stram) i
. Определить произведение элементов, значения которых не кратны заданному
числу F.
Next i
Label3.Caption = "Произведение элементов, не
кратных F = " + CStr(p)
Label3.Visible = True
. Найти частное от деления максимального элемента массива и элемента с
номером L.
Max = Am(1, 1)i = 1 To Nj = 1 To mMax < Am(i, j) Then Max
= Am(i, j)ji.Caption = "Максимальный элемент массива = " +
CStr(Max).Visible = True= 0i = 1 To N j = 1 To m
k = k + 1
If k = L Then Label11.Caption
= "Частное от деления максимального элемента массива и элемента с номером L = " + CStr(Max / Am(i, j))
Next ji.Visible = True
3. Упорядочить массив по убыванию элементов сверху вниз и слева направо.
'сначала сверху вниз
For k = 1 To m
For i = 1 To N - 1j = 1 To mAm(i, j) < Am(i + 1, j) Then=
Am(i, j)(i, j) = Am(i + 1, j)(i + 1, j) = tIfj i
Next k
'теперь слева направо
For k = 1 To Ni = 1 To Nj = 1 To m - 1Am(i, j) < Am(i, j +
1) Then= Am(i, j)(i, j) = Am(i, j + 1)(i, j + 1) = tIfj i
Next k
'вывести отсортированный массив на экран
List2.Cleari = 1 To N= ""j = 1 To m= stram + "
" + Str(Am(i, j))j.AddItem (stram)iSubSub Command2_Click().ShowSubSub
Command3_Click()Sub
Результаты
работы программы
Результаты работы программы представлены на рисунке 4.
Рисунок 4 - Результаты работы программы
Задание 3.
«Строки»
Постановка
задачи
Проверить, одинаковое ли число открывающихся и закрывающихся скобок в
данной строке.
В данном задании будем работать со строками.
Строковой переменной можно присваивать в качестве значений текстовые
строки и манипулировать ею, используя строковые функции. [1, с.116]
погрешность строка функция массив
Блок-схема
программы
Исходный текст программы
Sub Command1_Click()s As String= Text1.Text= 0= 0i = 1 To
Len(s)Mid(s, i, 1) = "(" Then o = o + 1Mid(s, i, 1) = ")"
Then z = z + 1io = z Then
Label3.Caption = "В данной строке кол-во открывающихся и
закрывающихся скобок ОДИНАКОВОЕ".Caption = "В данной строке кол-во
открывающихся и закрывающихся скобок НЕ ОДИНАКОВОЕ"
End If.Visible = TrueSubSub Command2_Click().ShowSubSub
Command3_Click()
EndSub
Результаты
работы программы
Результаты работы программы представлены на рисунке 5.
Рисунок 5 - Результаты работы программы
Задание 4.
«Графика»
Постановка
задачи
Построить график функции Y=3+2/x+3/x2 на отрезке [-3, -1]
Блок-схема программы
Исходный текст программы
Sub Command1_Click().Cls= 1= 1= CDbl(Text1.Text)=
CDbl(Text2.Text)a >= b Then
i = MsgBox("Неверно заданы границы построения графика",
vbOKOnly, "Ошибка")
Exit SubIf= Abs(b)Abs(a) > MaxX Then= Abs(a)
End If
'определить конечную метку на оси У
MaxY = 3 + 2 / a + 3 / a 2x = a To b Step 0.01MaxY < 3 +
2 / x + 3 / x 2 Then MaxY = 3 + 2 / x + 3 / x 2x= Round(MaxY, 2)
'начертить ось У.Line (x0 + 5, y0)-(x0 + 5, y0 +
10).Print CStr(-MaxY)
'начертить ось Х.Line (x0, y0 + 5)-(x0 + 10, y0 +
5).Print CStr(MaxX)
'Построить график функции Y=3+2/x+3/x2 на отрезке [-3, -1]
'определить масштаб оси У= 5 / MaxY
'вычислить начальное значение по оси Х и У
px = a= 3 + 2 / px + 3 / px 2 * kfx = a To b Step 0.01= 3 +
2 / x + 3 / x 2 * kf.Line (px / (MaxX / 5) + 6, -py + 6)-(x / (MaxX / 5) + 6,
-y + 6), vbRed= x= yxSubSub Command2_Click().Hide.ShowSubSub
Command3_Click()Sub
Результаты работы
программы
Результаты работы программы представлены на рисунке 6.
Рисунок 6 - Результаты работы программы
Список
литературы
1. Visual Basic 6.0: Пер. с англ. - СПб.: БХВ-Петербург, 2004. - 992
с.: ил.
2. Борисов Н.Н. Начинающему программисту
- М.:ИНФРА-М, 1999
3. Глушаков С.В. Visual Basic 6.0: Создание приложений - М.:АСТ, 2000
4. Хассен А.И. Пользователь и компьютер.
М. Элис, 2000