Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Interface. Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;





Uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;

Type

ТForm1 = class (TForm)

Edit1: TEdit;

Edit2: TEdit;

GroupBox1: TGroupBox;

RadioButton1: TRadioButton;

RadioButton2: TRadioButton;

Label1: TLabel;

Label2: TLabel;

Button1: TButton;

Button2: TButton;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

Private

(Private declarations)

Public

(Public declarations)

end;

Type

// базалық класс

TPerson = class

FName: String; // өрістің аты

Constructor Create(AName: String);

Function Info: String; virtual;

end;

 

// Студент класы

TStud = class (TPerson)

FGr: Integer; // оқу тобының нөмірі

Constructor Create(AName: String; Gr: Integer);

Function Info: String; override;

end;

 

// Оқытушы класы

TProf = class (TPerson)

FDep: String; // құжыраның аты

Constructor Create(AName: String; Dep: String);

Function Info: String; override;

end;

Const

SZL = 10; // тізімнің өлшемі

Var

Forml: TForml

List: array [1..SZL] of TPerson; // тізім

n: Inteqer = 0 // тізімдегі адамдар саны

Implementation

($R *.DFM}

constructor TPerson.Create(AName: string);

Begin

FName:=AName;

end;

constructor TStud.Create(AName: string; Gr: integer);

Begin

inherited Create(AName); // базалық кластың конструкторын шақыру

FGr:=Gr;

end;

constructor TProf.Create(AName: string; Dep: string);

Begin

inherited Create(AName); // базалық кластың конструкторын шақыру

FDep:=Dep;

end;

function TPerson.Info: string;

Begin

result:=FName;

End;

function TStud.Info: String;

Begin

result:= FName + ' группа ' + IntToStr (FGr)

End;

function TProf.Info: String;

Begin

result:= FName + ' кафедра ' + FDep;

end;

// Добавить батырмасына шерту

procedure ТForm1.Button1Click(Sender: TObject);

Begin

if n < SZL then

Begin

// объектіні класқа қосу

n:=n+1;

if RadioButton1.Checked

then // TStud объектісін құру

List[n]:=TStud.Create(Edit1.Text, StrToInt (Edit2.Text))

else // TProf объектісін құру

if RadioButton2.Checked then List[nl:=TРrоf.Create(Edit1.Text,Edit2.Text);

// енгізу өрісін тазалау

Edit1.Text:=' ';

Edit2.Text:=' ';

Edit1.SetFocus; // Тышқанның меңзері Фамилия өрісінде

End

else ShowMessage('Список заполнен!');

end;

procedure ТForm1.Button2Click(Sender: TObject);

Var

i:integer; // индекс

st: string; // тізім

Begin

for i:=1 to SZL do

if list[i] <> NIL then st:=st + list[i].info + #13;

ShowMessage(' Список ' + #13 + st);

end;

End.

Добавить (Button1) батырмасын басқанда іске қосылатын TForm1.Button1Click процедурасы TStud немесе TProf класының list[n] объектісін құрады. Құрылып жатқан объектінің класы RadioButton ауыстырып қосу батырмасының күйімен анықталады. Ауыстырып қосу батырмасының студент (RadioButton1) жағдайында орнатылуы TStud класын анықтайды, ал оқытушы (RadioButton2) жағдайы – TProf класын анықтайды.

Список (Button2) батырмасын басқанда іске қосылатын TForm1.Button2Click процедурасы тізімнің әрбір объектісіне (массив элементтеріне) Info әдісін қолдана отырып,барлық тізімді көрсететін жолды қалыптастырады.

Зертханалық жұмыс №5 " Қаситтер мен әдістер "

Кластың сипатталынуы "Қос мәнді теріс емес бүтін сан" (TN2).

Қасиет – аты, мәні, тақтық, бірінші сан, екінші сан.

Әдістер:

процедуры: мәнді орнату (SetN2), сандарды ауыстыру (Swap);

функциялар: басқа санға қарағанда кіші (LessThen), ақпарат (Info);

конструктор (Create).

Листинг 2.2 «TN2» класын жүзеге асыратын бағдарламаның демонстрациясы

program Class_TN2;

{$APPTYPE CONSOLE} {Компилятор директивасы – бағдарламаның жұмыс істеу режимінің тапсырмасы.}

{MS-DOS режиміне тәріздес мәтіндік режимнің эмуляторы құрылады}


uses SysUtils;

Type

TN2 = class

fName: String;

fVal: integer;

constructor Create(aName: String);

procedure Swap;

function Info: String;

function LessThen(aNum: TN2): Boolean;

procedure SetVal(Value: Integer);

function GetOdd: string;

function GetD1: byte;

procedure SetD1(Value: byte);

function GetD2: byte;

procedure SetD2(Value: byte);

 

property Name: string read fName;

property Odd:string read GetOdd;

property Val:integer read fVal write SetVal;

property D1:byte read GetD1 write SetD1;

property D2:byte read GetD2 write SetD2;

end;

constructor TN2.Create(aName: String);

Begin

fName:=aName;

fVal:=1;

end;

procedure TN2.Swap;

Begin

SetVal(D2*10+D1);

end;

function TN2.Info: String;

Begin

Result:='Naturalnoe dvuznachnoe '+odd+
' chislo '+Name+'='+ IntToStr (Val)+#10#13+' first number='
+ IntToStr (D1)+' second number='+ IntToStr (D2);

end;

procedure TN2.SetVal(Value: Integer);

Begin

if (Value>=0) and (Value<=99) then fVal:=Value;

end;

function TN2.LessThen(aNum: TN2): boolean;

Begin

Result:= Val<aNum.Val;

end;

function TN2.GetOdd: string;

Begin

if (val mod 2=1) then Result:='nechetnoe'

else Result:='chetnoe';

end;

function TN2.GetD1: byte;

Begin

Result:=Val div 10;

end;

procedure TN2.SetD1(Value: byte);

Begin

if Value in [0..9] then SetVal(Value*10+D2)

end;

function TN2.GetD2: byte;

Begin

Result:=Val mod 10;

end;

procedure TN2.SetD2(Value: byte);

Begin

if Value in [0..9] then SetVal(D1*10+Value)

end;

 

var a,b: TN2;

 

Begin

a:= TN2.Create(' a ');

b:= TN2.Create(' b '); { Бағдарламаның орындалуының нәтижесі

b.Val:= 23; {

Writeln (a.Info); {
Writeln (b.Info); {

b.swap; {

a.D1:= 5; {

a.D2:= 8; {

Writeln (a.Info); {
Writeln (b.Info); {

a.Free; {

b.Free; {

Readln; {

end.

Өз бетінше орындауға арналған тапсырма

Кластың сипатталынуы "Жазықтықтағы нүкте" (TDot).

Қасиеттер – аты, декарттық координаталар, полярлық координаталар,
жазықтықтың нөмірі (егер оське тиісті болса, онда 0-ге тең), оське тиісті ме?

Әдістер:

процедуралар: басқа нүктеге дейінгі ара қашықтық (RoFrom), векторға көшу (dx,dy) (MoveRel); координаталар басына қарағанда симметриялық бейнелеу (SimmZero), x=y осіне қарағанда симметриялық бейнелеу (SimmXY);

функциялар: ақпарат (Info);– конструктор (Create).

Зертханалық жұмыс №6 " Оқиғалар "

Кластың сипатталынуы "Кәдімгі бөлшек" (TDrob).

Қасиеттері – аты, мәні, бөлінді және бөлгіш.

Әдістер:

процедуралар: бөлшекті орынымен ауыстыру (Swap), басқа бөлшектің мәнін қосу (Add);

функциялар: ақпарат (Info);

конструктор (Create).


Оқиғалар:

– бөлшек өзгерді (OnChange), стандарттық;

– бөлгіш нөлге тең (OnZero), параметрлері – ескі мән.

2.3 листингі «TDrobs» класының жариялануынан тұратын DROBS модульі

unit Drobs;







Date: 2015-07-01; view: 711; Нарушение авторских прав



mydocx.ru - 2015-2024 year. (0.032 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию