Студопедия
rus | ua | other

Home Random lecture






Практическая работа 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

 

 


Рис. 2.7.Нахождение максимальной численности населения с выводом соответствующего названия города


<== previous lecture | next lecture ==>
D. Задача на выбор ветви из набора условий - блок Select Case | Практическая работа 16. Оператор LIKE - сравнение элементов массивов со строкой, введeнной в диалоговом режиме; элемент управления Timer
lektsiopedia.org - 2013 год. | Page generation: 0.139 s.