Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lab_rab_pascal_delphi.doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
6 Мб
Скачать
☆
  1. Вставте у форму три таблиці текстових рядків StringGrid.

Скористайтеся компонентой StringGrid на закладці Additional. Задайте наступні значення властивостей цих об'єктів.

Властивість

Значення

Name

StringGird1

StringGird2

StringGird3

ColCount (кількість стовпців)

4

1

4

FixedCols (кількість фіксованих стовпців)

1

0

1

RowCount (кількість рядків)

4

4

1

FixedRows (кількість фіксованих рядків)

1

1

0

OptionsgoEditing

(можливість редагувати)

False (відсутній)

True (є)

False (відсутній)

  1. Розмістіть на формі текстові поля так, як показано в пункті 5.

Задайте наступні значення властивостей цих об'єктів:

Для Label5, Label6, Label8:

Caption : (видаліть зміст)

Visible : True.

Для Label9, Label10, Label11:

Caption : (декілька знаків «мінус»)

Visible : False.

Для Label7:

Caption : (видаліть зміст)

Visible : False.

Для Label1

Caption : Стартовий капітал на початок року складає – 1000 доларів

Для Label2

Caption : Прогноз прибутків на кожен вкладений долар на кінець року

Для Label3

Caption : На початок року Ваш капітал складає

Для Label4

Caption : Прибуток (збиток) на кінець року складає

  1. У вікні тексту програми перед розділом Implementation введіть опис констант і змінних програми:

const

N=5;

{ Масив прогнозу прибутку}

Р : array [O..N-1,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 [0..N-1,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;

  1. Запрограмуйте кнопки SpeedButtonl і SpeedButton2 таким чином:

procedure TForml.SpeedButton1Click(Sender: Tobject);

{Кнопка результатів року}

vаг 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;

{ Інформаційний рядок}

Label8.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];

{Підкреслення вибраного варіанту}

Label 10.Visible := True;

Label8.Caption := ' підвищилась ціна ' {Інформаційний рядок}

End;

if variant > second then

begin

for i := 0 to 2 do

profit := profit + money[i]* P[r, i+1, 3];

Label 11.Visible := True;

Label8.Caption := ' Підвищився долар '

End;

Str(profit, s);

Forml.Label7.Caption := s + ' доларів';

Label7.Visible := True;

Forml.SpeedButton2.Enabled := True;

Forml.SpeedButtonl.Enabled := False;

End;

procedure TForml.SpeedButton2Click(Sender: Tobject);

{Кнопка переходу наступного року}

begin

year := year + 1; {Наступний рік}

capital := capital + profit; {Оновлений капітал}

{ Прибуток до початку року рівний нулю}

profit := 0;

{ Викликаємо процедуру щорічного оновлення форми}

Refresh;

{ Вимикаємо підкреслення варіанту стану ринку }

Label9.Visible := False;

Label10.Visible := False;

Label11.Visible := False;

{ Гасимо інформацію про прибуток}

Label7.Visible := False;

end;

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