Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Сборник лабораторных работ(Delphi).doc
Скачиваний:
36
Добавлен:
16.08.2019
Размер:
3.26 Mб
Скачать

Лабораторная работа№18 Изучение методов и свойств

Цель работы: научиться использовать типы свойств в Delphi, изменять свойства компонент во время выполнения программы, изменять значения свойств компонент на этапе визуального программирования, научиться создавать методы с помощью визуальных средств, управлять методами компонент во время выполнения программы

Студент должен

знать:

  • типы свойств в Delphi;

  • методы в Delphi;

уметь:

  • создавать методы с помощью визуальных средств;

  • изменять свойства компонент во время выполнения программы

  • управлять методами компонент во время выполнения программы.

Примеры и задания

I.Рассмотрите приведенные ниже примеры, поясните процедуры, создайте рабочие проекты, по заданию преподавателя внесите в проект изменения

Написать программу для расчета стоимости поездки на дачу на машине.

// щелчок на кнопке Вычислить

procedure TForm1.Button1Click(Sender: TObject);

var

rast : real; // расстояние

cena : real; // цена

potr : real; // потребление на 100 км

summ : real; // сумма

mes: string;

begin

summ := (rast / 100) * potr * cena;

mes := 'Поездка на дачу';

if CheckBox1.Checked then

begin

summ := summ * 2;

mes := mes + ' и обратно';

end;

mes := mes + 'обойдется в ' + FloatToStrF(summ,ffGeneral,4,2)

+ ' руб.';

Label4.Caption := mes;

end;

end.

Задание 2

Напишите программу для пересчета фунтов в килограммы. Коэффициент пересчета 0.4059 – Россия, 0.453592- Англия, 0.56001- Австрия, 0.5 –Германия, 0.31762- Италия.

procedure TForm1.FormCreate(Sender: TObject);

begin

{

ListBox1.items.add('Россия');

ListBox1.items.add('Австрия');

ListBox1.items.add('Англия');

ListBox1.items.add('Германия');

ListBox1.items.add('Дания');

ListBox1.items.add('Исландия');

ListBox1.items.add('Италия');

ListBox1.items.add('Нидерланды');

}

ListBox1.itemindex:=0;

end;

procedure TForm1.Button1Click(Sender: TObject);

var

funt:real; { вес в фунтах }

kg:real; { вес в килограммах }

k:real; { коэффициент пересчета }

begin

case ListBox1.ItemIndex of

0: k:=0.4059; { Россия }

1: k:=0.453592;{ Англия }

2: k:=0.56001; { Австрия }

3..5,7:k:=0.5; { Германия}

6: k:=0.31762; { Италия }

end;

funt:=StrToFloat(Edit1.Text);

kg:=k*funt;

label4.caption:=Edit1.Text

+ ' фунт. - '

+ FloatToStrF(kg,ffFixed,6,3)

+ ' кг.';

end;

Задание 3

Напишите программу, которая вычисляет доход по вкладу (расчет простых и сложных процентов). Простые проценты начисляются в конце срока вклада. Сложные – ежемесячно и прибавляются к первоначальной сумме вклада и в следующем месяце проценты начисляются на новую сумму.

// щелчок на кнопке Вычислить

procedure TForm1.Button1Click(Sender: TObject);

var

sum : real; // сумма вклада

pr: real; // процентная ставка

srok: integer; // срок вклада

dohod: real; // доход по вкладу

buf: real;

i: integer;

begin

// получить исходные данные

sum := StrToFloat(Edit1.Text);

pr := StrToFloat(Edit2.Text);

srok := StrToInt(Edit3.Text);

if RadioButton1.Checked then

// выбран переключатель Простые проценты

dohod := sum * (pr/100) * (srok/360)

else

// т.к. в группе два переключателя, то если

// не выбран RadioButton1, то выбран

// RadioButton2 - Сложные проценты

begin

buf:= sum;

for i:=1 to srok do

buf:= buf + buf * (pr/100);

// здесь buf - сумма в конце срока вклада

dohod := buf - sum;

end;

sum := sum + dohod;

Label4.Caption := 'Доход: ' + FloatToStrF(dohod,ffGeneral,9,2) + #13 +

'Сумма в конце срока вклада: ' +

FloatToStrF(sum,ffGeneral,9,2);

end;

// выбор переключателя Простые проценты

procedure TForm1.RadioButton1Click(Sender: TObject);

begin

Label2.Caption := 'Срок (дней)';

Label4.Caption := '';

end;

// выбор переключателя Сложные проценты

procedure TForm1.RadioButton2Click(Sender: TObject);

begin

Label2.Caption := 'Срок (мес.)';

Label4.Caption := '';

end;

Задание 4

Написать программу, которая, используя закон Ома вычисляет силу тока, напряжение или сопротивление электрической цепи. Во время работы программы, в результате выбора переключателя, текст поясняющий назначение полей ввода должен меняться.

// Вычисление тока, напряжения или сопротивления

procedure Calculate;

var

I,U,R: real; // ток, напряжение, сопротивление

begin

if Form1.RadioButton1.Checked then

// ток

begin

U := StrToFloat(Form1.Edit1.Text);

R := StrToFloat(Form1.Edit2.Text);

if (R <> 0) then

begin

I := U/R;

Form1.Label3.Caption := 'Ток: ' + FloatToStrF(I,ffFixed,4,2) + ' А';

end

else ShowMessage('Сопротивление не должно быть равно нулю.');

exit;

end;

if Form1.RadioButton2.Checked then

// напряжение

begin

I := StrToFloat(Form1.Edit1.Text);

R := StrToFloat(Form1.Edit2.Text);

U := I*R;

Form1.Label3.Caption := 'Напряжение: ' + FloatToStrF(U,ffFixed,4,2) + ' В';

exit;

end;

if Form1.RadioButton3.Checked then

// сопротивление

begin

U := StrToFloat(Form1.Edit1.Text);

I := StrToFloat(Form1.Edit2.Text);

if (I <> 0) then

begin

R := U/I;

Form1.Label3.Caption := 'Сопротивление: ' + FloatToStrF(R,ffFixed,4,2) + ' Ом';

end

else ShowMessage('Ток не должен быть равен нулю.');

end;

end;

// Выбор переключателя Ток

procedure TForm1.RadioButton1Click(Sender: TObject);

begin

Label1.Caption := 'Напряжение (вольт)';

Label2.Caption := 'Сопротивление (Ом)';

Label3.Caption := '';

end;

// Выбор переключателя Напряжение

procedure TForm1.RadioButton2Click(Sender: TObject);

begin

Label1.Caption := 'Ток (ампер)';

Label2.Caption := 'Сопротивление (Ом)';

Label3.Caption := '';

end;

// Выбор переключателя Сопротивление

procedure TForm1.RadioButton3Click(Sender: TObject);

begin

Label1.Caption := 'Напряжение (вольт)';

Label2.Caption := 'Ток (ампер)';

Label3.Caption := '';

end;

Задание 5

В мемо поле выведите сообщение, какой выбран пол и описание.

Задание 6

В поле «образец» текст должен выводиться согласно выбранным переключателям

procedure TForm1.Button1Click(Sender: TObject);

begin

Memo1.Clear;

if RadioButton1.Checked then Memo1.Lines.Add('ваш пол мужской')

else if RadioButton2.Checked then Memo1.Lines.Add('ваш пол женский');

Memo1.Lines.Add(' ');

if CheckBox1.Checked then Memo1.Lines.Add('умный') ;

if CheckBox2.Checked then Memo1.Lines.Add('трудолюбивый') ;

if CheckBox3.Checked then Memo1.Lines.Add('дружелюбный') ;

end;

procedure TForm1.RadioGroup1Click(Sender: TObject);

begin

case RadioGroup1.ItemIndex of

0:edit1.Font.Style:=[];

1:edit1.Font.Style:=[fsitalic];

2:edit1.Font.Style:=[fsbold];

3:edit1.Font.Style:=[fsitalic,fsbold];

end;

{checklistbox1clickcheck(self);}

end;

procedure TForm1.RadioGroup2Click(Sender: TObject);

begin

case RadioGroup2.ItemIndex of

0:edit1.Font.Size:=8;

1:edit1.Font.Size:=10;

2:edit1.Font.Size:=12 ;

3:edit1.Font.Size:=72;

end;

end;

procedure TForm1.RadioGroup3Click(Sender: TObject);

begin

case RadioGroup3.ItemIndex of

0:edit1.Font.Color:=clblack;

1:edit1.Font.Color:=clgreen;

2:edit1.Font.Color:=clred;

3:edit1.Font.Color:=clblue;

end;

end;

procedure TForm1.CheckListBox1Click(Sender: TObject);

begin

if CheckListBox1.Checked[0] then

edit1.Font.Style:=edit1.Font.Style+[fsstrikeout]

else

edit1.Font.Style:=edit1.Font.Style-[fsstrikeout];

if CheckListBox1.Checked[1] then

edit1.Font.Style:=edit1.Font.Style+[fsunderline]

else

edit1.Font.Style:=edit1.Font.Style-[fsunderline]

end;

end.

Контрольные вопросы:

  1. Какие вы знаете типы свойств в Delphi?

  2. Поясните термин методы в Delphi.

  3. Как создавать методы с помощью визуальных средств?

  4. Как изменять свойства компонент во время выполнения программы?

  5. Как управлять методами компонент во время выполнения программы?