- •Проект приложения № 4.
- •1. Загрузите среду визуального программирования Delphi.
- •6. Вставьте в форму три таблицы текстовых строк StringGrid (см. Рис. 1).
- •8. В окне текста программы перед разделом implementation введите описание констант и переменных программы:
- •9. Запрограммируйте кнопки SpeedButtonl и SpeedButton2 следующим образом:
- •10. В окне текста программы после раздела implementation введите описание метода Refresh формы.
- •11. Запрограммируйте процедуру создания формы FormCreate.
- •12. Сохраните выполненную на данный момент работу в своей папке.
- •14. Запустите созданную программу и исследуйте ее работу.
- •15. Создайте ехе-файл программы.
- •16. Закройте Delphi, запустите созданную программу, сыграйте и попробуйте достичь хороших результатов.
- •17. Продемонстрируйте созданную форму преподавателю. Закончите работу.
8. В окне текста программы перед разделом implementation введите описание констант и переменных программы:
const
N=5;
{Массив прогноза прибыли}
P : array [O..N-l,1..3,1..3] of integer =
(((40,-40,30), (-20, 10, 10), (-10,40,-30)), {r=-(0-l)}
((50,-70,40), (-30, 70,-30), (-50,20, 30)), {r=(l-2)}
((30,-70,70), (-30, 70,-30), (20,10,-50)), {r=(2-3)}
((-50,-30,70), (50,-50, 70), (30,50,-70)), {r=(3-4)}
((30,-70,70), (-30, 70,-30), ( 40, 0,-50))); {r=(4-5)}
{Массив вероятностей} Prob : array [O..N-l,1..3] of integer= ((22,41,37),(27,34,39),(47,33,20),(10,53,37),(41,34,25)); var
Forml : TForml; {Эта запись уже есть в заготовке модуля}
capital, year, profit, r : integer; {Инвестированные суммы}
money : array [0..2] of integer;
9. Запрограммируйте кнопки SpeedButtonl и SpeedButton2 следующим образом:
procedure TForml.SpeedButtonlClick(Sender: Tobject);
{Кнопка результатов года}
var first, second, variant, i, code : integer; s : string;
begin randomize;
{Случайный выбор возможного состояния рынка}
variant := random(100);
{Первый и второй разделители отрезка вероятностей}
first := Prob[r, 1]; second := first + Prob[r, 2];
{Начальное значение прибыли перед суммированием}
profit := 0; for i := 0 to 2 do
val(StringGrid2.Cells[0,i + 1], money[i], code); {Получаем числовые значения для инвестиций и
заполняем ими массив money} {Вычисление прибьиш для первого варианта}
if variant < first then
begin
for i := 0 to 2 do
{Суммирование по предприятиям} profit := profit + money[i] * P[r, i+1, 1];
{Подчеркивание въибранного варианта} Label9.Visible := True;
{Информационная строка}
LabeI8.Caption := 'Возросло евро'
end;
{Вычисление прибыли для второго варианта состояния рынка}
if (variant >= first) and (variant < second) then
begin for i := 0 to 2 do
{Суммирование по предприятиям}
profit := profit + money[i] * P[r, i+1, 2];
{Подчеркивание выбранного варианта}
Label10.Visible := True; Label8.Caption := 'Выросла Йена'
{Информационная строка}
end;
{Вычисление прибыли для третьего варианта состояния рынка}
if (variant >= second) then
begin for i := 0 to 2 do
{Суммирование по предприятиям}
profit := profit + money[i] * P[r, i+1, 2];
{Подчеркивание выбранного варианта}
Label10.Visible := True; Label8.Caption := 'Выросла доллар'
{Информационная строка}
end;
procedure TForml.SpeedButton2Click(Sender: Tobject); {Кнопка перехода на следующий год}
begin
year := уеar + 1; {Следующий год}
capital := capital + profit; {Обновляем капитал}
{Прибыль к началу года равна нулю}
profit := 0;
Refresh; {Выключаем подчеркивания варианта состояния рынка}
Label9.Visible := False;
Label10.Visible := False;
Label11.VisibIe := False;
{Гасим информацию о прибыли]
Label7.Visible := False;
end;
10. В окне текста программы после раздела implementation введите описание метода Refresh формы.
procedure TForml.Refresh; var i, j : integer; s : string; begin
Str(capital, s);
Forml.Label6.Caption := s + ' долларов';
Str(year, s);
Forml.Label5.Caption := s + ' год1;
Str(profit, s);
Forml.Label7.Caption := s + ' долларов';
Forml.Label8.Caption := 'Введите сумму';
Forml.SpeedButton2.Enabled := False;
Forml.SpeedButtonl.Enabled := False;
randomize;
r := random(N); {Выбор инвестиционного климата r]
for i:=l to 3 do
for j := 1 to 3 do
begin
Str(P[r, j, i], s); Forml.StringGridl.Cells[i, j] := s + ' центов';
end; for i := 1 to 3 do
begin
Str(Prob[r, i], s); Forml.StringGrid3.Cells[i, 0] := s + ' %';
Forml.StringGrid2.Cells[0, i] := ";
end end;
Строку procedure Refresh;
вставьте в любом месте раздела type TForml = class(TForm) ... в окне модуля.