Отчет по практике по ТРИЗБД в работе с языками C# и Visual basic. Отчет по практике. Оглавление 1 Изм. Лист докум. Подп. Дата 1 Проверил Гатауллина Ф. Ф. 1
Скачать 1.49 Mb.
|
Лабораторно-практическая работа №5Окно главного менюРис 34. Запущенное окно главного меню Самостоятельная 1Цель: Одномерный массив из 12 элементов. Заполнить случайными числами. Все элементы с нулевыми значениями заменить на единицу. Значения всех элементов увеличить в два раза. Массив вывести до и после преобразования. Рис 35. Запущенное окно самостоятельной работы №1 Перечень используемых объектов: Button, Label, ListBox Public Class Form1 “заблокировка кнопки Dim mass(100) As Integer Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load Button2.Enabled = False Button3.Enabled = False End Sub “очиска и заполнение массива Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click ListBox2.Items.Clear() ListBox1.Items.Clear() Dim i As Integer Randomize() For i = 1 To 12 mass(i) = Int((Rnd() * 20) - 0) ListBox1.Items.Add(mass(i)) Next i Button2.Enabled = True Button3.Enabled = True End Sub “очистка и замена 0 на 1 в массиве Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click ListBox2.Items.Clear() For i = 1 To 12 If mass(i) = 0 Then mass(i) = 1 End If ListBox2.Items.Add(mass(i)) Next End Sub “очистка и умножение цифр на 2 Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click ListBox2.Items.Clear() For i = 1 To 12 ListBox2.Items.Add(mass(i) * 2) Next End Sub Самостоятельная 2Цель: Разработайте приложение «Клавиатура».приложение должно работать следующим образом: При щелчке по одной из «клавиш» в текстовое окно добавляется выбранная буква или пробел При щелчке по кнопке «Очистить», текст полностью исчезает. Рис 36. Запущенное окно самостоятельной работы №2 Перечень используемых объектов: Button, Textbox Public Class Form1 “заполнение формы кнопками Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim btn(33) As Button For i = 0 To btn.Count - 1 btn(i) = New Button With btn(i) .Width = 40 .Height = 40 .Left = 12 + (i Mod 10) * .Width .Top = 100 + (i \ 10) * .Height .Text = Strings.Chr(192 + i) ' If i = btn.Count - 2 Then .Text = " " If i = btn.Count - 1 Then .Width = 60 .Height = 40 .Text = "" .BackColor = Color.White End If End With AddHandler btn(i).Click, AddressOf btn_Click Me.Controls.Add(btn(i)) Next End Sub Private Sub btn_Click(ByVal send As Button, ByVal e As EventArgs) TextBox1.Text &= send.Text If send.Text = "" Then TextBox1.Text = "" End If End Sub “выход Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Me.Close() End Sub End Class ПроектЦель: Создать двумерный массив с заданием диапазона чисел, вывести его сумму, максимально и минимальное число Рис 37 Запущенное окно проекта “двумерный массив” Перечень используемых объектов: PictureBox Button Textbox ListBox GroupBox4 Public Class Form4 Sub Рандом(ByVal c As Int32, ByVal d As Int32, ByRef a(,) As Int32) Dim b As New Random For i As Int32 = 0 To a.GetUpperBound(0) For j As Int32 = 0 To a.GetUpperBound(1) a(i, j) = b.Next(c, d + 1) Next j Next i End Sub Sub Вывод(ByVal a(,) As Int32, ByVal b As DataGridView) 'Запрет на вывод заголовочных столбца и строки таблицы b.ColumnHeadersVisible = False b.RowHeadersVisible = False 'Задание количества строк в таблице b.RowCount = a.GetLength(0) 'Задание количества столбцов в таблице b.ColumnCount = a.GetLength(1) For i As Int32 = 0 To a.GetUpperBound(0) For j As Int32 = 0 To a.GetUpperBound(1) 'Установка ширины столбцов таблицы b.Columns(j).Width = 40 b.Rows(i).Cells(j).Value = Convert.ToString(a(i, j)) Next j Next i Dim s As Int32 s = 0 For i As Int32 = 0 To a.GetUpperBound(0) For j As Int32 = 0 To a.GetUpperBound(1) s += a(i, j) Next j Next i Label3.Text = s End Sub 'процедура вывода двумерного массива в объект класса DataGridView Sub out_put(ByVal a(,) As Int32, ByVal b As DataGridView) 'Запрет на вывод заголовочных столбца и строки таблицы b.ColumnHeadersVisible = False b.RowHeadersVisible = False 'Задание количества строк в таблице b.RowCount = a.GetLength(0) End Sub Sub S_L(ByVal c As Int32, ByVal d As Int32, ByRef a(,) As Int32) Dim b As New Random For i As Int32 = 0 To a.GetUpperBound(0) For j As Int32 = 0 To a.GetUpperBound(1) a(i, j) = b.Next(c, d) Next j Next i End Sub Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 'вывод массива и суммы чисел по нажатию кнопки Dim b(,) As Int32 Dim c As Int32 = Convert.ToInt32(TextBox1.Text) Dim d As Int32 = Convert.ToInt32(TextBox2.Text) Dim k As Byte = Convert.ToByte(TextBox3.Text) Dim m As Byte = Convert.ToByte(TextBox4.Text) ReDim b(k - 1, m - 1) Рандом(c, d, b) Вывод(b, DataGridView2) Max_Min(b, k, m) End Sub Sub Max_Min(ByVal b1(,) As Int32, ByVal k1 As Int32, ByVal m1 As Int32) ' максимум и минимум Dim MA As Int32 = Int32.MinValue Dim Mi As Int32 = Int32.MaxValue For i = 0 To k1 - 1 For j = 0 To m1 - 1 If b1(i, j) > MA Then MA = b1(i, j) If b1(i, j) < Mi Then Mi = b1(i, j) Next Next Label4.Text = MA Label5.Text = Mi End Sub Sub sort_bv(ByRef arr(,) As Int32) Dim i, n, d, c, lf, rg, f As Int32 Dim p() As Int32 n = arr.GetLength(0) d = arr.GetLength(1) ReDim p(n - 1) i = 1 While i <= n - 1 lf = 0 rg = i - 1 c = (lf + rg) \ 2 'поиск интервала While lf <> c If arr(c, 0) > arr(i, 0) Then rg = c Else : lf = c End If c = (lf + rg) \ 2 End While 'определение места для вставки If arr(lf, 0) < arr(i, 0) Then If arr(i, 0) > arr(rg, 0) Then lf = rg + 1 Else : lf = rg End If End If f = i 'запомнить строку p(0) = arr(i, 0) : p(1) = arr(i, 1) 'сдвиг элементов While f > lf arr(f, 0) = arr(f - 1, 0) arr(f, 1) = arr(f - 1, 1) f = f - 1 End While 'вставка строки массива arr(lf, 0) = p(0) : arr(lf, 1) = p(1) i = i + 1 End While End Sub End Class РекурсияЦель: Напишите приложение, которое строит ряд кругов. Центр квадратов совпадает с центром экрана. Число квадратов задаётся при первом вызове рекурсивного метода. Рис 38. Запущенное окно проекта “Рекурсия” Перечень используемых объектов: Button,Numeric, UpDown Код программы: Public Class Form1 “рисуем Круг в круге на форме по кнопке Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim n, m As Integer n = NumericUpDown2.Value Kvadrat(n, m) End Sub Sub Krug(ByVal n1 As Integer, ByVal m1 As Integer) Dim G As Graphics = PictureBox1.CreateGraphics Dim P As New Pen(Color.Red, 1) G.DrawEllipse (P, PictureBox1.Width \ 2 - m1 * 5 \ 2, PictureBox1.Height \ 2 - m1 * 5 \ 2, m1 * 5, m1 * 5) If n1 = 0 Then Exit Sub Else Kvadrat(n1 - 1, m1 + 7) End If End Sub “выход Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click Me.Close() End Sub End Class |