Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Проект4.rtf
Скачиваний:
30
Добавлен:
11.04.2015
Размер:
8.68 Mб
Скачать

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) ... в окне модуля.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]