Анализ экономических показателей Японии 1960-1992 гг. \Компьютерная подготовка в ГУУ. 2 курс.\
для записи данных. С помощью этих элементов пользователь после запуска
программы выберет файл для записи средних значений данных. После того, как
он сделает это, необходимо произвести запись в файл, указанный
пользователем, средних значений показателей, рассчитанных до этого.
Создадим командную кнопку, при нажатии на которую средние значения
записывались бы в файл. Для нее в окне свойств в графе Caption установим
значение ‘Запись средних значений в файл’. Введем в процедуру
Command2_Click () следующий код:
Open File1 For Output As #1
For i = 1 To 8
Write #1, h(i), q(i), w(i), p(i), r(i), x(i)
Next i
Close #1
Первая строка данного кода открывает файл, выбранный пользователем для
записи в элементе FileListBox. А последующие строки записывают в него
средние значения и после окончания записи закрывают файл.
Согласно заданию, следующие операции необходимо производить в
другой форме. Поэтому создаем в проекте еще одну форму, для которой в окне
свойств в графе Caption вводим значение ‘Определение темпов изменения ВВП,
периода max прироста и сост. 50%’. Для того, чтобы во время работы
программы можно было из первой формы перейти ко второй, в первой форме
необходимо создать кнопку, которая обеспечивала бы этот переход. Создав
командную кнопку, для нее в окне свойств в графе Caption установим значение
‘Кнопка перехода к следующему этапу программы’. Чтобы при нажатии на эту
кнопку после запуска программы осуществлялся переход ко второй форме,
необходимо в процедуру Command3_Click () ввести следующий код:
Form1.Hide
Form2.Show
Эти команды скроют первую форму и сделают видимой вторую форму.
Согласно заданию, во второй форме необходимо считать файл со
средними значениями показателей. Для того, чтобы сделать это, надо, чтобы
пользователь указал файл, в который записаны эти данные. Для этого
используем элементы DriveListBox, DirListBox и FileListBox. Разместим их во
второй форме рядом с меткой, объясняющей пользователю, что он должен
указать файл со средними значениями. После того, как пользователь сделает
это, необходимо считать данные из файла. Для этого создадим командную
кнопку, для которой в окне свойств в графе Caption введем значение
‘Считывание данных из файла, определение ВВП и темпов его изменения’. Как
видно из названия кнопки, с ее помощью мы будем определять размер ВВП и
находить темпы его изменения, что также требуется в задании.
Для того, чтобы считать данные из файла, указанного пользователем,
необходимо ввести в процедуру Command1_Click () следующий код:
Open File1 For Input As #1
For i = 1 To 8
Input #1, a1(i), a2(i), a3(i), a4(i), a5(i), a6(i)
L1.List(i - 1) = a1(i)
Next i
Close #1
Строка L1.List(i - 1) = a1(i) обеспечивает вывод в список, размещенный во
второй форме, значений ВВП.
Согласно заданию, после того, как значения ВВП будут считаны из
файла, необходимо рассчитать темпы изменения ВВП. Чтобы определить темп
изменения ВВП или его прирост, надо из значения ВВП, соответствующего
последующему месяцу, вычесть значение ВВП в предыдущем месяце. Для рассчета
темпов изменения ВВП введем в процедуру Command1_Click () следующий код:
j = 1
For i = 1 To 8
t(j) = a1(i + 1) - a1(i)
j = j + 1
Next i
For i = 1 To 7
L2.List(i - 1) = t(i)
Next i
Запись L2.List(i - 1) = t(i) выводит во второй список, размещенный в форме,
данные о приросте ВВП.
Согласно заданию, далее необходимо рассчитать период максимального
прироста и период, дающий 50% прироста ВВП. Чтобы определить, какие это
периоды, создадим во второй форме командную кнопку, для которой в окне
свойств в графе Caption Установим значение ‘Нахождение периода max прироста
и периода прироста в 50%’. Создадим 2 текстовых поля, первое из которых
будет отображать размер максимального прироста ВВП, а второе – период
такого прироста. Чтобы сделать эти текстовые поля недоступными для ввода
информации во время работы программы, в процедуру Form_Load введем коды:
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
3943QF VINFLS1QF VRBINF |QF ADJ3 |QF ADJ1
VI 130 41317
VI 130 41317
VI 130 41317 |QF ADJ3 |QF ADJ3 |QF ADJ1 |QF ADJ1VI 132 12263 !ЇЁвм |QF ADJ1
|QF ADJ1 |QF ADJ3VI 200 246 !ЇмпЁVI 200 246 !ЇмпЁЭто программа
сортировки, позволяющая расположить значения цены на нефть по возрастанию,
а остальные значения – соответственно этому.
После проведения сортировки данных по цене на нефть, необходимо
вывести эти сортированные данные в списки. Для этого в третьей форме
создадим семь списков (по количеству показателей), в которых будут
отображаться сортированные данные. Над ними разместим семь меток с
названиями соответствующих списков: «Год», «Размер ВВП» и т. д. Для
отображения в списках сортированных данных необходимо создать в третьей
форме вторую командную кнопку, для которой в окне свойств в графе 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, чтобы придать им желаемый
внешний вид.
Согласно заданию, после того, как будут выполнены все необходимые
операции в третьей форме, надо посмотреть, существует ли зависимость между
ценой на нефть и темпами изменения размера внутреннего валового продукта.
Исходя из соображений логики, можно сделать некоторые предварительные
заключения. Япония – страна с высоким уровнем развития, занимающая одну из
передовых позиций на мировом рынке. Но, как известно, она испытывает
недостаток в ресурсах, имеющихся в ее владении, поэтому вынуждена
импортировать их из других стран. Что касается нефти, которая крайне важна
для любой страны, Япония закупает ее у различных государств, в том числе и
у России. Внутренний валовой продукт включает в себя государственные
расходы на все покупки ресурсов, а, значит, и нефти. И хотя можно
проследить зависимость между размером ВВП и величиной цены на нефть, делать
выводы о прямой пропорциональности цены на нефть размеру ВВП, скорее всего,
нельзя, так как необходимо принимать во внимание множество прочих факторов,
оказывающих влияние на экономическое состояние страны, индикатором которого
является внутренний валовой продукт. А потому можно сказать, что, вероятно,
на каком-либо небольшом отрезке времени будет наблюдаться прямая
зависимость цены на нефть от размера ВВП, но возможны также периоды, где
эта зависимость будет обратной. Для более полного анализа необходимо иметь
сведения о большом количестве экономических показателей и принимать во
внимание даже такие факторы, как ситуация в обществе, войны, природные
катаклизмы, положение в других странах и во всем мире в целом.
АЛГОРИТМ
Ввод данных в массивы из
текстовых полей
Вычисление средних значений
данных и ввод средних
значений в массивы
Вывод средних значений
данных в списки
Запись средних значений в
файл, выбранный
пользователем
Переход ко второй форме
Считывание данных из файла
Нахождение ВВП, темпов его
изменения и вывод данных
в списки
Нахождение периода max
прироста и прироста в 50%
Вывод в текстовые поля
значений и периодов
max прироста ВВП и в 50%
Переход к третьей форме
Страницы: 1, 2, 3
|