Автор: Пользователь скрыл имя, 20 Декабря 2011 в 19:33, лабораторная работа
Задание
Поместить на форму два текстовых поля и командную кнопку. Свойству Name первого поля задать значение Field1, второго — Field2. Свойству Text первого поля задать значение Иванов, другого — Петров.
1. Работа с текстовыми данными………………………………………………2
2. Работа с датами……………………………………………………………… 5
3. Построение треугольника из частей отрезка………………………………11
4. Изменение цвета текстового поля………………………………………….17
5. Список использованных источников информации………………………..22
End Select
txtDay.Caption = Str(varDay)
txtMon.Caption = Str(varMon) + "(" + mes + ")"
txtGod.Caption = Str(varGod)
varWeekDay = Weekday(varDate) ' определяем день недели
Select Case varWeekDay
Case 1
varStr = "воскресенье"
Case 2
varStr = "понедельник"
Case 3
varStr = "вторник"
Case 4
varStr = "среда"
Case 5
varStr = "четверг"
Case 6
varStr = "пятница"
Case 7
varStr = "суббота"
End Select
txtWeekDay.Caption = varStr
txtNowTime.Caption = Now ' показываем текущую дату и время
varDate1 = Date ' текущая дата
txtRazn.Caption = DateDiff("yyyy", varDate1, varDate)
varWeekDay = Weekday(DateSerial(varGod, varMon, 1)) ' день недели первого числа введенного месяца
Select Case varWeekDay
Case 1
varStr = "воскресенье"
Case 2
varStr = "понедельник"
Case 3
varStr = "вторник"
Case 4
varStr = "среда"
Case 5
varStr = "четверг"
Case 6
varStr = "пятница"
Case 7
varStr = "суббота"
End Select
txtDN.Caption = varStr
End
Sub
Задание
Отрезок длиной 100 сантиметров делится на две части в случайно выбранной точке. Затем бóльшая из оставшихся частей точно так же делится ещё на две части.
Рассчитать длины всех трёх частей.
Проверить, можно ли из полученных частей сложить треугольник (суммы длин всех возможных сочетаний двух любых сторон должны быть больше длины третьей стороны), вывести на форму результат проверки.
Если треугольник можно сложить, то построить изображение треугольника (использовать объект PictureBox). Самую длинную сторону треугольника отложить по оси Х от начала координат. Затем рассчитать координаты вершины С по формулам (рис. 1):
cos(β) = (a2 + c2 — b2)/(2 * a * c)) — теорема косинусов;
Xc = a * cos(β);
Yc = a * sin(β) = a * (12 - cos2(β))1/2.
Рис. 1
После этого полученные координаты вершин соединить линиями с помощью графического метода .Line.
Вопросы к заданию
Ответ: интерфейс пользователя приведен на рисунке 7.
Рисунок 7. − Интерфейс пользователя
Ответ:
программный
код расчет длин всех частей отрезка
с комментариями
z = 100 - Int((100 * Rnd) + 1) ‘ делим отрезок в случайной точке
a = 100 – z ‘ присваиваем а значение 100-z
b = 100 – a ‘ присваиваем b значение 100-а
If a > b Then ‘ если a > b делаем следующее
z = a - Int((a * Rnd) + 1) ‘ а делится в случайной точке
c = a – z ‘ с присваивается значение a – z
a = a – c ‘ а присваивается значение a – c
Else ‘ если а не меньше b
z = b - Int((b * Rnd) + 1) ‘b делится в случайной точке
c = b – z ‘ c присваивается значение b – z
b = b – c ‘ c присваивается значение b – c
End If
Ответ: Для определения самой длинной стороны нужно проверить каждую сторону относительно двух оставшихся. Когда какая-либо из сторон больше любой другой, она и будет самой большой Например a>b и a>c.
Ответ:
В программе используются следующие переменные:
a, b, c, x, y, z типа Integer. Данные переменные целого типа. Значения которые принимают данные переменные только целого типа и не более 32767. данные переменные используются для вычислений арифметических функций сложения, вычитания и умножения целых чисел. При описанных арифметических действиях с целыми числами результат всегда будет целым числом.
vCos,
Xc, Yc, varS типа Double. Данные переменные
« с плавающей запятой» т.к они применяются
для вычисления значений тригонометрических
функций, значение которых очень часто
являются дробными числами.
Ответ:
Для расчета углов треугольника используем функцию арктангенса угла. Для нахождения проведем высоту треугольника, ее длина будет равна Yc – координате у третьей вершины треугольника. Она делит основание треугольника на два отрезка. Длина одного будет равна Хс – координате х третьей вершины треугольника. Длина второго отрезка равна х-Хс - длина основания минус длина первого получившегося при делении высотой отрезка.
Далее используя определение тангенса и арктангенса вычислим два прилежащих к основанию угла.
Зная, что сумма всех углов треугольника равна 180 градусов, найдем третий угол.
Конечный интерфейс программы приведен на рисунке 8
Рисунок 8 − Интерфейс пользователя
Листинг программы:
Option Explicit
Dim
a, b, c, x, y, z As Integer
Private Sub Command1_Click()
Dim vCos, Xc, Yc, varS, u1, u2, u3 As Double
z = 100 - Int((100 * Rnd) + 1)
a = 100 - z
b = 100 - a
If a > b Then
z = a - Int((a * Rnd) + 1)
c = a - z
a = a - c
Else
z = b - Int((b * Rnd) + 1)
c = b - z
b = b - c
End If
' проверим можно ли составить треугольник?
If a + b > c And a + c > b And b + c > a Then
Print "OK"
Else
Picture1.Visible = False
Print "нельзя составить треугольник"
End If
' определяем наибольший отрезок
If a > b And a > c Then
x = a
y = b
z = c
End If
If b > c And b > a Then
x = b
y = a
z = c
End If
If c > a And c > b Then
x = c
y = a
z = b
End If
' вычисляем координаты третьей вершины треугольника
vCos = (y ^ 2 + x ^ 2 - z ^ 2) / (2 * y * x)
Xc = y * vCos
Yc = y * Sqr((1 - vCos ^ 2))
' построение треугольника
Picture1.Scale (0, 0)-(50, 50)
Picture1.Line (0, 0)-(x, 0) ' основание
Picture1.Line (0, 0)-(0 + Xc, 0 + Yc)
Picture1.Line (Xc, Yc)-(x, 0)
' вычисление площади треугольника
varS = 1 / 2 * x * Yc
Label2.Caption = varS
' вычисляем углы треугольника
u1 = Atn(Yc / Xc)
u2 = Atn(Yc / (x - Xc))
u1 = u1 * 180 / 3.14
u2 = u2 * 180 / 3.14
u3 = 180 - u1 - u2
ugol1.Caption = u1
ugol2.Caption = u2
ugol3.Caption = u3
End Sub