Проверил: доцент, Баранова О.М.




 

 

Москва 2010


Задание 1

Dim N, M, C, R, mas(0 To 7, 0 To 7) As Integer

 

Private Sub Command1_Click() 'выбор способа задания матрицы

If Option1.Value = True Then

Frame2.Visible = True

Else

Frame3.Visible = True

End If

Frame1.Enabled = False

End Sub

 

Private Sub Command2_Click() 'задание матрицы вручную

N = CSng(TN.Text)

M = CSng(TM.Text)

If N > 7 Or M > 7 Then

vvod = MsgBox("Колическтво строк и столбцов не должно превышать 7", 16, "Ошибка")

Form1.Print vvod

Else

For i = 0 To N - 1 Step 1

For j = 0 To M - 1 Step 1

If i <> 0 Then

Text1(i * 7 + j).Enabled = True

Text1(i * 7 + j).BackColor = &HFFFFFF

Else

Text1(j).Enabled = True

Text1(j).BackColor = &HFFFFFF

End If

Next j

Next i

Command4.Visible = True

Command5.Enabled = True

Command2.Enabled = False

Command7.Visible = True

End If

End Sub

 

Private Sub Command4_Click() 'заполнение матрицы и преобразование из одномерного в двумерный массив

N = CSng(TN.Text)

M = CSng(TM.Text)

For i = 0 To N - 1 Step 1

For j = 0 To M - 1 Step 1

If i <> 0 Then

If IsNumeric(Text1(i * 7 + j).Text) Then

mas(i, j) = CSng(Int(Text1(i * 7 + j).Text))

Else

mas(i, j) = 0

End If

Else

If IsNumeric(Text1(j).Text) Then

mas(i, j) = CSng(Int(Text1(j).Text))

Else

mas(i, j) = 0

End If

End If

Next j

Next i

Call perestanovka

End Sub

 

Private Sub Command5_Click() 'очистить

Call clear

TN.Text = ""

TM.Text = ""

Command5.Enabled = False

Command2.Enabled = True

End Sub

 

Private Sub Command3_Click() 'автоматическое задание матрицы

Call clear

R = CSng(Combo1.Text) * 10

Randomize

N = Int(Rnd() * 7) + 1

Label5.Caption = CStr(N)

M = Int(Rnd() * 7) + 1

Label6.Caption = CStr(M)

For i = 0 To N - 1 Step 1

For j = 0 To M - 1 Step 1

If i <> 0 Then

Text1(i * 7 + j).Enabled = True

Text1(i * 7 + j).BackColor = &HFFFFFF

Text1(i * 7 + j).Text = CStr(Int((Rnd() * R)))

mas(i, j) = CSng(Int(Text1(i * 7 + j).Text))

Else

Text1(j).Enabled = True

Text1(j).BackColor = &HFFFFFF

Text1(j).Text = CStr(Int(Rnd() * R))

mas(i, j) = CSng(Int(Text1(j).Text))

End If

Next j

Next i

Call perestanovka

Command6.Enabled = True

Command3.Enabled = False

End Sub

 

Private Sub Command6_Click() 'очистить

Call clear

Command3.Enabled = True

Command6.Enabled = False

End Sub

 

Private Sub Command7_Click() 'очистить матрицу

For i = 0 To 48

Text1(i).Text = ""

Label9(i).Caption = ""

Label9(i).BackColor = &H80000016

Next i

End Sub

 

Public Sub perestanovka() ' сортировка массива (из одномерного делаем двумерный)

For z = 0 To N

For i = 0 To M

For j = i To M

If mas(z, j) > mas(z, i) Then

C = mas(z, j)

mas(z, j) = mas(z, i)

mas(z, i) = C

End If

Next j

Next i

Next z

 

For i = 0 To N - 1 Step 1 'вывод пересортированного массива

For j = 0 To M - 1 Step 1

If i <> 0 Then

Label9(i * 7 + j).BackColor = &H8000000F

Label9(i * 7 + j).Caption = CStr(Int(mas(i, j)))

Else

Label9(j).BackColor = &H8000000F

Label9(j).Caption = CStr(Int(mas(i, j)))

End If

Next j

Next i

 

End Sub

 

Public Sub clear() 'очистка(квадратики массива неактивные и более серые)

For i = 0 To 48

Text1(i).Text = ""

Text1(i).Enabled = False

Text1(i).BackColor = &H80000016

Label9(i).Caption = ""

Label9(i).BackColor = &H80000016

Next i

End Sub

 

Private Sub Command8_Click() 'сброс всего

Call clear

N = 0

M = 0

Frame1.Enabled = True

Frame2.Visible = False

Frame3.Visible = False

Command4.Visible = False

Command7.Visible = False

Option1.Value = False

Option2.Value = True

End Sub

 

Private Sub Command9_Click()

End

End Sub

 

 

Задание 2

Dim minX, maxX, dX, k, ky, maxY1, maxY2, maxY, xp, PreX, PreY, TY, TX As Double

 

Private Sub Command1_Click() 'кнопка построить

minX = CDec(Text1.Text)

maxX = CDec(Text2.Text)

dX = CDec(Text3.Text)

k = Picture1.Width / (maxX - minX)

If minX >= (0.7) Then maxY1 = Sqr(10 * minX - 7) + 1 Else maxY1 = 0

If maxX >= (0.7) Then maxY2 = Sqr(10 * maxX - 7) + 1 Else maxY2 = 0

If maxY1 >= maxY2 Then maxY = maxY1 Else maxY = maxY2

ky = Picture1.Height / maxY

 

Label7.Caption = minX

Label8.Caption = maxX

Label11.Caption = (maxX + minX) / 2

Label9.Caption = maxX / 4 + minX * 3 / 4

Label10.Caption = minX / 4 + maxX * 3 / 4

 

Label12.Caption = -maxY / 3

Label13.Caption = maxY

Label14.Caption = 0

Label15.Caption = maxY / 3

Label16.Caption = 2 * maxY / 3

 

Picture1.Cls

Picture1.Line (0, Picture1.Height * 0.75)-(Picture1.Width, Picture1.Height * 0.75)

 

For X = minX To maxX Step dX

If X = minX Then

PreX = X

PreY = Sqr(10 * X - 7) + 1

Picture1.PSet (PreX * k, Picture1.Height * 0.75 - PreY * ky)

Else

TX = X

TY = Sqr(10 * X - 7) + 1

Picture1.Line (PreX * k, Picture1.Height * 0.75 - PreY * ky)-(TX * k, Picture1.Height * 0.75 - TY * ky)

PreX = TX

PreY = TY

End If

Next X

End Sub

 

Private Sub Command2_Click() 'кнопка проверка значений

If CDec(Text1.Text) < 0.7 Or CDec(Text2.Text) < 0.7 Then

vvod = MsgBox("Вводимые значение X должно быть > или = 0,7", 16, "Ошибка!!!")

Form1.Print vvod

Else

If CDec(Text1.Text) >= CDec(Text2.Text) Then

vvod = MsgBox("Предельное значение X должно быть больше начального", 16, "Ошибка!!!")

Form1.Print vvod

Else

Command1.Enabled = True

Command2.Enabled = False

End If

End If

End Sub

 

Private Sub Command3_Click() 'кнопка сброс

Text1.Text = 0

Text2.Text = 0

Text3.Text = 0

Command2.Enabled = True

Command1.Enabled = False

Label7.Caption = ""

Label8.Caption = ""

Label11.Caption = ""

Label9.Caption = ""

Label10.Caption = ""

Label12.Caption = ""

Label13.Caption = ""

Label14.Caption = ""

Label15.Caption = ""

Label16.Caption = ""

Picture1.Cls

End Sub

 

Private Sub Command4_Click()

End

End Sub

 

Задание 3

Dim strA, strB, strG(1 To 20) As String, i, N As Integer

 

Private Sub Command1_Click()

N = 0

i = 0

strA = InputBox("Введите строку: ", "Ввод строки")

Do While i < Len(strA)

i = i + 1

strB = Mid(strA, i, 1)

If strB = "а" Or strB = "е" Or strB = "ё" Or strB = "и" Or strB = "о" Or strB = "у" Or strB = "ы" Or strB = "ю" Or strB = "э" Or strB = "я" Or strB = "А" Or strB = "Е" Or strB = "Ё" Or strB = "И" Or strB = "О" Or strB = "У" Or strB = "Ю" Or strB = "Э" Or strB = "Я" Then

N = N + 1

End If

Loop

 

Label1.Caption = N

 

End Sub

 

Private Sub Command3_Click()

Label1.Caption = ""

End Sub

 

Private Sub Command2_Click()

End

End Sub



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-02-16 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: