![]() |
Практическая работа 15. Нахождение максимума (численности населения городов с выводом соответствующего названия города)Date: 2015-10-07; view: 438. Сортировка 2 Сортировка 1 (по убыванию) Е. Сортировка
Создать на форме требуемые элементы управления, см. код, данный ниже, ввести код; пояснения даны под комментариями. Затем стартовать проект. (General) (Declarations)Dim i As Integer, j As Integer, bu As Long ' bu - переменная для временного хранения сортируемых ' данныхDim m(25) As Long, mas(25) As Long ' создание массива случайных чисел и вывод их в поле List1Private Sub Form_Load()For j = 1 To 25m(j) = Int(Rnd * 100000)List1.List(j - 1) = m(j)Next jEnd Sub Private Sub Command1_Click() ' выполнить сортировкуFor i = 1 To 24For j = i + 1 To 25' если следующий элемент больше предыдущего, то ' поменять их местами If m(i) < m(j) Then bu = m(i): m(i) = m(j): m(j) = bu Next j, iFor j = 1 To 25 ' результат вывести в поле List2List2.List(j - 1) = m(j)Next jEnd SubPrivate Sub Command2_Click()For j = 25 To 1 Step -1 mas(j) = Int(Rnd * 100000): List1.List(25 - j) = mas(j)Next jFor j = 2 To 25 ' выполнить сортировкуFor i = 2 To 25 - j + 2If mas(i - 1) > mas(i) Thenbu = mas(i - 1): mas(i - 1) = mas(i): mas(i) = buEnd IfNext iNext j' результат вывести в поле списка в обратном порядкеFor j = 25 To 1 Step -1 List2.List(25 - j) = mas(j)Next jEnd SubЗадание: создать список названий городов, создать список соответствующих численностей населения. Найти максиальную численность населения и соответствующее название города. Последовательность действий: 1. создать на форме: o 2 командные кнопки (Command1 и Command2 (Caption = MAX)) o 2 текстовых поля (txtName, txtNum) для вывода отдельных текущих названий городов и численностей населения городов соответственно, 4 поля Label (2 из них - для вывода всех названий городов и численностей населения городов соответственно и 2 (вверху формы) - для надписей), текстовое поле (Text1) для вывода названий городов, см. процедуры Command1_Click () и Command2_Click () и рис. 2.7 2. ввести код, данный ниже и стартовать программу. Последовательным нажатием первой командной кнопки создать массив названий городов. Cделать щелчок на второй командной кнопке. (General) (Declarations) ' описание массива названий городов; здесь - целых чисел Dim citiesName(20) As String ' описание массива численностей населения городов Dim citiesNum(20) As Long Dim k As Integer ' переменая к используется в процедуре Command1_Click(), ' поэтому не должна описываться как Static
Private Sub Form_Load() Dim j As Integer ' создание массива численностей; здесь название города - это ' значение переменной-счетчик For j = 1 To 9 citiesNum(j) = Int(Rnd * 10000000 + 1) txtNum = citiesNum(j): txtName = j ' вывод численностей населения в поле Label3 Label3 = Label3 & " " & citiesNum(j) Label4 = Label4 & " " & j ' вывод названий городов в поле ' Label4 Next j citiesNum(j) = -1 ' признак конца маcсива txtNum = citiesNum(j) txtName = j End Sub
' последовательным нажатием командной кнопки создать ' массив названий городов citiesName(k) Private Sub Command1_Click() k = k + 1 ' если численность населения больше 0, то заполнить массив ' названий городов и вывести данные в текстовые поля If citiesNum(k) > 0 Then txtNum.Text = citiesNum(k): citiesName(k) = k txtName.Text = citiesName(k) Else ' иначе вывести сообщение: "Список городов исчерпан" txtName.Text = "Список городов исчерпан" txtName.BackColor = vbGreen End If ' название города, в котором нет населения ( 10) вывести в ' текстовое поле Text1.Text = "k = " & k End Sub
' с помощью поцедуры Command1_Click() созданы названия ' городов, ранее созданы соответствующие численности ' населения: масивы - citiesNum() и citiesName(). Процедура ' Command2_Click() обеспечивает поиск максимума ' численности населения и названия соответствующего ' города
Private Sub Command2_Click() ' maxNum - переменная для хранения максимальной ' численности населения Dim maxNum As Long ' maxName - переменная для хранения названия города с ' максимальной численностью населения Dim maxName As String If citiesNum(1) <= 0 Then txtName = "Массив пуст": GoTo 100 ' пусть максимальным будет первый элемент массива maxNum = citiesNum(1) maxName = citiesName(1) ' начиная с к = 2 проводится сравнение элементов массива с ' максимальным значением k = 2 ' если масcив численности населения не пуст, сравнить ' (последовательно) текущий элемент с максимальным. Если ' он больше текущего максимума, то сделать его ' максимальным; в текстовое поле вывести ' соответствующее значение 20 If citiesNum(k) > 0 Then If citiesNum(k) > maxNum Then maxName = citiesName(k): maxNum = citiesNum(k) Text1.Text = "k=" & k: k = k + 1: GoTo 20 Else ' вывод максимальной численности, вывод названия ' города с максимальной численностью населения txtNum.Text = maxNum txtName.Text = maxName End If End Sub
|