Программирование Visual Basic

Автор: Пользователь скрыл имя, 20 Декабря 2011 в 19:33, лабораторная работа

Краткое описание

Задание
Поместить на форму два текстовых поля и командную кнопку. Свойству Name первого поля задать значение Field1, второго — Field2. Свойству Text первого поля задать значение Иванов, другого — Петров.

Оглавление

1. Работа с текстовыми данными………………………………………………2
2. Работа с датами……………………………………………………………… 5
3. Построение треугольника из частей отрезка………………………………11
4. Изменение цвета текстового поля………………………………………….17
5. Список использованных источников информации………………………..22

Файлы: 1 файл

лаб basic.doc

— 218.50 Кб (Скачать)

           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 
     
     
     
     

  1. Построение  треугольника из частей отрезка

    Задание

          Отрезок длиной 100 сантиметров делится на две части в случайно выбранной  точке. Затем бóльшая из оставшихся частей точно так же делится ещё на две части.

          Рассчитать  длины всех трёх частей.

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

          Если  треугольник можно сложить, то построить  изображение треугольника (использовать объект PictureBox). Самую длинную сторону треугольника отложить по оси Х от начала координат. Затем рассчитать координаты вершины С по формулам (рис. 1):

    cos(β) = (a2 + c2 — b2)/(2 * a * c)) — теорема косинусов;

    Xc = a * cos(β);

    Yc = a * sin(β) = a * (12 - cos2(β))1/2.

    Рис. 1

          После этого полученные координаты вершин соединить линиями с помощью  графического метода .Line.

    Вопросы к заданию

    1. Разработать интерфейс пользователя. В отчёте привести список объектов интерфейса и их назначение.

    Ответ: интерфейс пользователя приведен на рисунке 7.

    Рисунок 7. − Интерфейс пользователя

    1. Привести в отчёте программный код расчёта длин всех частей отрезка с комментариями каждого оператора.

    Ответ:

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

    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 – zc присваивается значение b – z

                b = b – cc присваивается значение b – c

        End If 

    1.  Привести в отчёте алгоритм определения самой длинной стороны.

    Ответ: Для определения самой длинной стороны нужно проверить каждую сторону относительно двух оставшихся. Когда какая-либо из сторон больше любой другой, она и будет самой большой  Например a>b  и a>c.

    1. В отчёте описать набор используемых в программе переменных и обосновать их тип.

       Ответ:

       В программе используются следующие  переменные:

       a, b, c, x, y, z типа  Integer. Данные переменные целого типа. Значения которые принимают данные переменные только целого типа и не более 32767. данные переменные используются для вычислений арифметических функций сложения, вычитания и умножения целых чисел. При описанных арифметических действиях с целыми числами результат всегда будет целым числом.

       vCos, Xc, Yc, varS типа Double. Данные переменные « с плавающей запятой» т.к они применяются для вычисления значений тригонометрических функций, значение которых очень часто являются дробными числами. 

    1.  Добавить в программу расчет значений всех углов (в градусах) и площади треугольника. В отчёте привести алгоритм расчёта всех углов треугольника.

    Ответ:

       Для расчета углов треугольника используем функцию арктангенса угла. Для  нахождения проведем высоту треугольника, ее длина будет равна 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

Информация о работе Программирование Visual Basic