T1.Enabled = False
T2.Enabled = False
T1 и T2 – соответственно названия первого и второго текстовых полей.
Создадим 2 аналогичных текстовых поля для вывода значений прироста ВВП, составляющего 50%, и периода с таковым приростом ВВП.
В процедуру Command2_Click() введем код для нахождения периода и значения максимального прироста ВВП:
Max = 0
For i = 1 To 7
If t(i) > Max Then
Max = t(i)
p = i
End If
Next i
T1.Text = Max
Эта часть кода определяет значение максимального прироста и выводит его в первое текстовое поле. Переменная p является счетчиком, с помощью которого мы определяем период максимального прироста ВВП:
If p = 1 Then
T2.Text = "1964 - 1967 гг."
End If
If p = 2 Then
T2.Text = "1968 - 1971 гг."
End If
If p = 3 Then
T2.Text = "1972 - 1975 гг."
End If
If p = 4 Then
T2.Text = "1976 - 1979 гг."
End If
If p = 5 Then
T2.Text = "1980 - 1983 гг."
End If
If p = 6 Then
T2.Text = "1984 - 1987 гг."
End If
If p = 7 Then
T2.Text = "1988 - 1991 гг."
End If
Эта часть кода анализирует значение переменной p и, в зависимости от ее значения выводит во второе текстовое поле данные о периоде максимального прироста.
Если прирост ВВП составляет 50%, это означает, что отношение значения ВВП последующего периода к значению ВВП предыдущего периода составляет 1.5. Поэтому для определения прироста ВВП в 50% и периода, дающего такой прирост, необходимо рассчитать отношение прироста ВВП последующего периода к предыдущему по всем периодам. Чтобы сделать это, введем в процедуру Command2_Click () следующий код:
j = 1
For i = 1 To 8
q(j) = a1(i + 1) / a1(i)
j = j + 1
Next i
Это введет в массив q(j) значения отношений прироста ВВП последующего периода к предыдущему. Для вычисления значения прироста ВВП, составляющего 50%, введем следующий код:
For i = 1 To 7
If q(i) = 1.5 Then
per = i
T3.Text = q(i)
Else
T3.Text = " ----------------------------"
T4.Text = "НЕТ"
End If
Next i
В данном коде переменная per является счетчиком, который позволит определить период прироста ВВП в 50%. Эта часть кода позволяет найти значение прироста ВВП в 50%, если таковое имеется, и вывести его в третье текстовое поле. В противном случае в третьем текстовом поле появится прочерк, а в четвертом поле, отражающем период данного прироста, появится надпись “нет”. Для определения периода, давшего прирост ВВП в 50%, введем следующий код:
If per = 1 Then
T4.Text = "1964 - 1967 гг."
End If
If per = 2 Then
T4.Text = "1968 - 1971 гг."
End If
If per = 3 Then
T4.Text = "1972 - 1975 гг."
End If
If per = 4 Then
T4.Text = "1976 - 1979 гг."
End If
If per = 5 Then
T4.Text = "1980 - 1983 гг."
End If
If per = 6 Then
T4.Text = "1984 - 1987 гг."
End If
If per = 7 Then
T4.Text = "1988 - 1991 гг."
End If
Эта часть кода определяет и выводит в четвертое текстовое поле период, в котором прирост ВВП составил 50%.
Согласно заданию, следующая часть работы должна выполняться в другой, третьей форме. Поэтому во второй форме необходимо создать командную кнопку, позволяющую перейти к третьей форме после выполнения всех необходимых операций во второй форме. Сначала создадим еще одну форму в нашем проекте и в окне свойств в графе Caption установим для нее значение ‘Сортировка данных по цене на нефть’.
ЗАМЕТИМ, что до того, как все операции во второй форме будут осуществлены, перейти в третью форму будет невозможным из-за того, что в командные кнопки 1 и 2 введены коды, предусматривающие определенный порядок в использовании кнопок. Так в процедуру Form_Load () введен код, делающий недоступными все командные кнопки:
Command1.Enabled = False
Command2.Enabled = False
Command3.Enabled = False
Для активизации каждой кнопки необходимо выполнить определенные действия, предусмотренные программой. Так, например, выбор пользователем файла для записи средних значений данных делает доступной первую командную кнопку, так как в процедуру File1_Click () введен код:
Command1.Enabled = True
После выполнения операций, предусмотренных кодом первой кнопки, вторая кнопка становится доступной, так как в процедуру Command1_Click () введен код:
Command2.Enabled = True
И так далее.
Для того, чтобы третья командная кнопка осуществляла переход к третьей форме, в процедуру Command3_Click () необходимо ввести следующий код:
Form2.Hide
Form3.Show
Этот код скрывает вторую форму и делает видимой третью форму.
В третьей форме, согласно заданию, необходимо провести сортировку данных о Японии по цене на нефть. Для этого необходимо, во-первых, считать данные, которые будут сортироваться. Для этого в первой форме в процедуру Command2_Click () введем код, позволяющий считывать данные из текстовых полей и заносить их в вспомогательный файл, названный ‘data1’:
Open "data1" For Output As #1
For i = 1 To 32
Write #1, mag(i), mas(i), ma(i), maq(i), maw(i), mar(i), maz(i)
Next i
Close #1
Прежде чем проводить сортировку данных, необходимо считать их из вспомогательного файла. Для этого создадим в третьей форме командную кнопку с названием ‘Сортировка данных по цене на нефть’ и в процедуру Command1_Click () введем следующий код:
Open "data1" For Input As #1
For i = 1 To 32
Input #1, mag(i), mas(i), ma(i), maq(i), maw(i), mar(i), maz(i)
Next i
Close #1
После того, как данные из вспомогательного файла будут считаны, необходимо провести их сортировку по цене на нефть. Это значит, что значения цены на нефть будут располагаться по возрастанию, а все остальные значения показателей будут отображаться соответственно этим значениям.
Для того, чтобы после запуска программы при нажатии кнопки происходила сортировка, необходимо в процедуру
Command1_Click () ввести следующий код:
10 pr = True
i = 1
20 If ma(i) > ma(i + 1) Then
buf = ma(i)
buf1 = mag(i)
buf2 = mas(i)
buf3 = maq(i)
buf4 = maw(i)
buf5 = mar(i)
buf6 = maz(i)
ma(i) = ma(i + 1)
mag(i) = mag(i + 1)
mas(i) = mas(i + 1)
maq(i) = maq(i + 1)
maw(i) = maw(i + 1)
mar(i) = mar(i + 1)
maz(i) = maz(i + 1)
ma(i + 1) = buf
mag(i + 1) = buf1
mas(i + 1) = buf2
maq(i + 1) = buf3
maw(i + 1) = buf4
mar(i + 1) = buf5
maz(i + 1) = buf6
pr = False
End If
i = i + 1
If i = 32 Then
GoTo 30
Else
GoTo 20
End If
30 If pr = False Then
GoTo 10
Else
GoTo 200
End If
200 End Sub
Это программа сортировки, позволяющая расположить значения цены на нефть по возрастанию, а остальные значения – соответственно этому.
После проведения сортировки данных по цене на нефть, необходимо вывести эти сортированные данные в списки. Для этого в третьей форме создадим семь списков (по количеству показателей), в которых будут отображаться сортированные данные. Над ними разместим семь меток с названиями соответствующих списков: «Год», «Размер ВВП» и т. д. Для отображения в списках сортированных данных необходимо создать в третьей форме вторую командную кнопку, для которой в окне свойств в графе Caption установим значение ‘Вывод сортированных данных’. Чтобы сделать эту кнопку недоступной до проведения сортировки, в процедуру Form_Load () добавим код:
Command2.Enabled = False
Чтобы сделать доступной кнопку вывода сортированных данных после нажатия кнопки сортировки и недоступной саму кнопку сортировки, в процедуру Command1_Click () введем код:
Command2.Enabled = True
Command1.Enabled = False
Для того, чтобы после запуска программы при нажатии на вторую командную кнопку в третьей форме сортированные данные отображались в списках, необходимо в процедуру
Command2_Click () ввести следующий код:
For i = 1 To 32
List1.List(i - 1) = mag(i)
List2.List(i - 1) = mas(i)
List3.List(i - 1) = ma(i)
List4.List(i - 1) = maq(i)
List5.List(i - 1) = maw(i)
List6.List(i - 1) = mar(i)
List7.List(i - 1) = maz(i)
Next i
На этом операции, выполнение которых предусмотрено заданием, заканчиваются. Но может возникнуть ситуация, когда пользователю будет нужно после выполнения всех действий в третьей форме вернуться в первую или во вторую формы. Для обеспечения возможности таких переходов, создадим в третьей форме рамку (элемент управления Frame), в которой разместим два элемента управления OptionButton. С помощью этих переключателей будет осуществляться переход в первую или во вторую формы. Коды в них будут аналогичны кодам в кнопках перехода от одной формы к другой:
Form3.Hide
Form1.Show для первого переключателя и
Form3.Hide
Form2.Show для второго переключателя.
После написания необходимых кодов ко всем элементам управления, можно перейти к визуальному оформлению форм, используя такие свойства элементов управления, как BackColor, ForeColor, Font, чтобы придать им желаемый внешний вид.
Согласно заданию, после того, как будут выполнены все необходимые операции в третьей форме, надо посмотреть, существует ли зависимость между ценой на нефть и темпами изменения размера внутреннего валового продукта.
Исходя из соображений логики, можно сделать некоторые предварительные заключения. Япония – страна с высоким уровнем развития, занимающая одну из передовых позиций на мировом рынке. Но, как известно, она испытывает недостаток в ресурсах, имеющихся в ее владении, поэтому вынуждена импортировать их из других стран. Что касается нефти, которая крайне важна для любой страны, Япония закупает ее у различных государств, в том числе и у России. Внутренний валовой продукт включает в себя государственные расходы на все покупки ресурсов, а, значит, и нефти. И хотя можно проследить зависимость между размером ВВП и величиной цены на нефть, делать выводы о прямой пропорциональности цены на нефть размеру ВВП, скорее всего, нельзя, так как необходимо принимать во внимание множество прочих факторов, оказывающих влияние на экономическое состояние страны, индикатором которого является внутренний валовой продукт. А потому можно сказать, что, вероятно, на каком-либо небольшом отрезке времени будет наблюдаться прямая зависимость цены на нефть от размера ВВП, но возможны также периоды, где эта зависимость будет обратной. Для более полного анализа необходимо иметь сведения о большом количестве экономических показателей и принимать во внимание даже такие факторы, как ситуация в обществе, войны, природные катаклизмы, положение в других странах и во всем мире в целом.