Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
delfi_lab.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
8.74 Mб
Скачать

3 Сурет.

// “Дистанция” өрісіне берілетін мәндер

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);

begin

case Key of

'0'..'9': ; // сандар

#8 : ; // <Backspace>

#13 : Edit2.SetFocus; // <Enter>

else Key :=Chr(0);

end;

end;

// “Время:минут” өрісіне мән беру

procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char);

begin

case Key of

'0'..'9': ;

#8 : ; // <Backspace>

#13 : Edit3.SetFocus; // <Enter>

else Key :=Chr(0);

end;

end;

// “Время:секунд” өрісіне мән беру

procedure TForm1.Edit3KeyPress(Sender: TObject; var Key: Char);

begin

case Key of

'0'..'9': ;

',','.' : // бөлшек бөлігі

begin

Key := DecimalSeparator;

if Pos(DecimalSeparator,Edit3.Text) <> 0

then Key := Char(0);

end;

#8 : ; // <Backspace>

#13 : Button1.SetFocus;

else Key :=Chr(0);

end;

end;

// “Вычислить” түймесіне басу

procedure TForm1.Button1Click(Sender: TObject);

var

dist : integer; // арақашықтық - метрмен

min : integer; // минутпен берілген уақыт

sek : real; // секундпен берілген уақыт

v: real; // жылдамдық

begin

dist := StrToInt(Edit1.Text);

min := StrToInt(Edit2.Text);

sek := StrToFloat(Edit3.Text);

if (dist = 0) or ((min = 0) and (sek = 0)) then

begin

ShowMessage('Надо задать дистанцию и время.');

exit;

end;

v := (dist/1000) / ((min*60 + sek)/3600);

label5.Caption := 'Дистанция: '+ Edit1.Text + ' м' + #13 +

'Время: ' + IntToStr(min) + ' мин ' +

FloatToStrF(sek, ffGeneral,4,2) + ' сек ' + #13 +

'Скорость: ' + FloatToStrF(v,ffFixed,4,2) + ' км/час';

end;

// “Завершить” түймешелігін шерту

procedure TForm1.Button2Click(Sender: TObject);

begin

Form1.Close; // программа жұмысын тоқтату

end;

Зертханалық жұмыс №4 (1)

Іf операторын пайдаланып қалааралық телефон байланысының бағасын есептеудің программасын құрастырайық.

Қалааралық телефон байланысының жай күндерге қарағанда демалыс күндері сөйлесу бағасы төмен екені белгілі. Біздің программада сөйлесу ұзақтығын және апта күнін енгізе отырып, сөйлесу бағасын есептейміз. Егер апта күні – сенбі немесе жексенбі болса, онда сөйлесу бағасы жеңілдік бойынша азаяды. 1 минуттың сөйлесу бағасы және жеңілдік пайызы тұрақты ретінде енгізіледі.

Берілгендерді (сөйлесу ұзақтығын және апта күнінің номерін) енгізу үшін редактрлеу компоненттерін (Edit1, Edit2), ал нәтижесі мен түсіндірме үшін белгі компоненттерін (Label1, Label2, Label3) аламыз.

Кесте1. Жобаға қойылатын компоненттер

Edit1

Edit2

Label1,

Label2

Сөйлесу ұзақтығын (минутпен) енгізуге арналған

Апта күнінің номерін енгізу үшін

Түсіндірме сөздер жазу үшін

Label3

Button1

Жауабын шығару үшін (телефон байланысының сөйлесу бағасын)

Сөйлесу бағасын есептеу процедурасының жұмысын орындау үшін

Кесте2. Компоненттер қасиеттерінің мәндері.

Ескерту. Компоненттер қасиеттерінің мәндері көрсетілген кестеде компонент атауы және нүктеден кейін оның қасиеті көрсетілген.

Қасиеті

Мәні

Form1 . Caption

Стоимость разговора

Edit1.Text

Edit2.Text

Label1 .Caption

Длительность (мин.)

Label2 .Caption

Номер дня недели

Label3 .Caption

Button1 . Caption

Вычислить

unit Phone_u;

interface

Windows, Messages, SysUtils, Classes,

Graphics, Controls, Forms, Dialogs, StdCtrls;

type

TForm1 = class(TForm)

Editl: TEdit; // поле ввода длительности разговора

Edit2: TEdit; // поле ввода номера дня недели

Button1: TButton; // кнопка Вычислить

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

procedure ButtonlClick(Sender: TObject); private

/ Private declarations } public

{ Public declarations } end;

var

Form1: TForm1;

implementation

($R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);

const

PAY =0.15; // цена одной минуты разговора 0.15 рубля

DISCOUNT = 0.2; // скидка 20 процентов

var

Time:Real; // длительность разговора

Day:integer; // день недели

Summa:real; // стоимость разговора

begin

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

Time:=StrToFloat(Editl.Text) ;

Day:=StrToInt(Edit2.Text);

// Вычислить стоимость разговора

Summa:= PAY*Time;

// Если день суббота или воскресенье, то уменьшить

// стоимость на величину скидки

if (Day = 6) OR (Day = 7)

then Surama:=Summa*(1 - DISCOUNT);

// вывод результата вычисления

label3.caption:='K оплате '

+ FloatToStr(Summa) + 'руб.'; end;

end.

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