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

Рис. 1

Рис. 2

Рис3

Р ис. 4

Рис. 5

Листинг 1

type

<название класса> = object

<структура данных объекта>

[<перечень методов объекта>]

end;

Листинг 2

type

Dom = object

street: string[30];

nomer: 1..1000;

year: 1700..2020;

end;

Листинг 3

var

dom1, dom2: Dom;

Spisok: array[1..30] of Dom;

Листинг 4

for i := 1 to 30 do

begin

write('Введите улицу', i, '-го дома: ');

readln(spisok[i].street);

write('Введите номер', i, '-го дома: ');

readln(spisok[i].nomer);

. . .

Листинг 5

Mdom = record

street: string;

nomer: integer;

year: integer;

kolkv: integer;

kolfl: integer;

end;

Osob = record

street: string;

nomer: integer;

year: integer;

fio: string;

pl: real;

ot: string;

end;

Рис. 6

Листинг 6

type

kind = (md, os);

dom = record

street: string[30];

nomer: 1..1000;

year: 1700..2020;

case member: kind of

md: (kolkv: 1..1000;

kolfl: 1..100;);

os: (fio: string[30];

pl: real;

ot: string[30];)

end;

Листинг 7

type

...

<название записи> = record

<общие поля>

case <селектор варианта> of

<вариант 1>

<вариант 2>

...

<вариант n>

end;

<метка> {, <метка> }: <список полей>.

понедельник :

понедельник, вторник, среда :

понедельник .. пятница :

понедельник .. пятница, воскресенье :

Листинг 9

Mdom = object(Dom)

kolkv: 1..1000;

kolfl: 1..100;

end;

Osob = object(Dom)

fio: string[30];

pl: real;

ot: string[30];

end;

:

var

a: Mdom;

b: Osob;

Листинг 10

Town: array[1..2500] of Mdom;

Dom = object

street: string[30];

nomer: 1..1000;

year: 1700..2020;

procedure Input;

procedure Show;

function GetYear: string;

end;

Листинг 11

procedure Dom.Input;

begin

write('Введите улицу дома: ');

readln(street);

write('Введите номер дома: ');

readln(nomer);

write('Введите год основания: ');

readln(year);

end;

<объект>.<метод>

Dom1.Input

Листинг 12

procedure Dom.Show;

begin

writeln('Улица: ', street);

writeln('Номер: ', nomer);

writeln('Адрес: ', address);

end;

Листинг 13

Mdom = object(Dom)

procedure Mdom.Show;

begin

writeln('Улица: ', street);

writeln('Номер: ', nomer);

writeln('Год основания: ', year);

writeln('Количество квартир: ', kolkv);

writeln(Количество этажей': kolfl);

end;

Листинг 14

procedure Mdom.Show;

begin

Dom.show;

writeln('Количество квартир: ', kolkv);

writeln(Количество этажей': kolfl);

end;

Рис. 7

var

<имя>: ^<тип>

var

pt: ^integer;

pt^

a := pt^.

New Dispose

Рис. 8

Рис. 9

Рис. 10

Листинг 15

program dm;

uses

Crt;

type

p = ^Dom;

Dom = record

street: string;

nomer: integer;

year: integer;

next: p;

end;

var

f, l, n: p;

i: byte;

begin

ClrScr;

new(n);

write('Введите название улицы: ');

readln(n^.street);

write('Введите номер дома : ');

readln(n^.nomer);

write('Введите год постройки дома : ');

readln(n^.year);

n^.next := nil

f := n;

l := n;

for i:= 1 to 3 do

begin

new(n);

write('Введите название улицы: ');

readln(n^.street);

write('Введите номер дома: ');

readln(n^.nomer);

write('Введите год постройки дома : ');

readln(n^.year);

n^.next := nil;

l^.next := n;

l := n;

end;

n := f;

for i:= 1 to 4 do

begin

writeln('Название улицы ', n^.street);

writeln('Номер дома', n^.nomer);

writeln('Год постройки дома: ', n^.year);

n := n^.next;

end;

readln;

end.

Рис. 11

Листинг 16

program dm;

uses

Crt;

type

dom = record

street: string;

nomer: integer;

year: integer;

end;

var

mp : array[1..10] of ^dom;

i: byte;

begin

ClrScr;

for i := 10 do

mp[i] := nil;

for i:= 1 to 4 do

begin

new(mp[i]);

write('Введите название улицы: ');

readln(mp[i]^.street);

write(' Введите номер дома: ');

readln(mp[i]^.nomer);

write('Введите год постройки дома : ');

readln(mp[i]^.year);

end;

for i:= 1 to 4 do

begin

writeln(' Название улицы ', mp[i]^.street);

writeln(' Номер дома: ', mp[i]^.nomer);

writeln(' Год постройки дома: ', mp[i]^.year);

end;

readln;

end.

Листинг 17

program dm;

uses

Crt;

type

Dom = object

street: string;

nomer: integer;

year: integer;

constructor Input;

procedure Show; virtual;

end;

Mdom = object(Dom)

kolkv: integer;

kolfl: integer;

constructor Input;

procedure Show; virtual;

end;

Osob = object(Dom)

fio: string;

pl: real;

ot: string;

constructor Input;

procedure Show; virtual;

end;

pm = ^Mdom;

po = ^Osob;

constructor Dom.input;

begin

write(' Введите название улицы: ');

readln(street);

write(' Введите номер дома: ');

readln(nomer);

write(' Введите год постройки дома : ');

readln(year);

end;

procedure Dom.Show;

begin

writeln('Улица : ', street);

writeln('Номер: ', nomer);

writeln('Год постройки: ', year);

end;

constructor Mdom.input;

begin

Dom.input;

write('Количество квартир в доме: ');

readln(kolkv);

write('Количество этажей в доме: ');

readln(kolfl);

end;

procedure Mdom.Show;

begin

Dom.show;

writeln('Количество квартир: ', kolkv);

writeln('Количество этажей ', kolfl);

end;

constructor Osob.input;

begin

Dom.input;

write('Фамилия владельца дома : ');

readln(fio);

write('Площадь дома : ');

readln(pl);

write('Вид отопления: ');

readln(ot)

end;

procedure Osob.Show;

begin

Dom.Show;

writeln('ФИО владельца : ', fio);

writeln('Площадь дома : ', pl:6:1);

writeln('Вид отопления: ', ot)

end;

var

list: array[1..10] of ^Dom;

i, k: integer;

c : char;

begin

ClrScr;

for i := 1 to 10 do

list[i] := nil;

for i := 1 to 4 do

begin

writeln('Выберите вариант дома: м – многоэтажный, о - особняк');

readln(c);

if c = 'м' then

list[i] := new(pm, input)

else

list[i] := new(po, input);

end;

for i:= 1 to 4 do

list[i]^.Show;

readln;

end.

GUI - graphic user interface

WYSIWYG (What You See Is What You Get)

Рис. 12

event

event handler

event-driven programming

Рис. 13

ИСР Delphi

ObjectPascal

Рис. 14

View  Project Manager

Options  Project Options dialog

Windows-окно (форма)

on-line

Unit<номер>.pas

Form<номер>

F12

Standard

RAD (rapid application development)

Рис. 15

Properties

Visible := true

False

Enabled := true

False

color

Рис. 16

Delphi 6  355 Кб

Листинг 18

unit Unit1;

Interface

uses

Windows, Messages, SysUtils, Variants, Classes,

Graphics, Controls, Forms, Dialogs;

type

TForm1 = class(TForm)

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

Implementation

{$R *.dfm}

end.

var

Form1 : TForm1;

Button1: TButton;

. .

type

TForm1 = class(TForm)

Button1: TButton;

private

{ Private declarations }

. .

<название компонента>:<класс компонента>;

{$R *.DFM}

Tools/Environment Options

Preferences

Editors files, P

roject Desktop

Рис. 17

- properties (свойства);

- events (события).

Properties

Events

Название свойства

Значение свойства

Название события

Имя подпрограммы, обрабатывающей событие

<название><значение>

Color

Width

Height

  • простые;

  • перечисляемые:

  • сложные (множественные);

  • объекты.

 visible

+

<Object>.Color := Value;

GetColor, SetCoLor

Рис. 18

Листинг 19

program Project1;

uses

Forms, Unit1 in 'Unit1.pas' {Form1};

{$R *.res}

begin

Application.Initialize;

Application.CreateForm(TForm1, Form1);

Application.Run;

end.

Project/View Source

Tools/Image Editor

Form2.Edit1.Clear

Color := clFuchsia  Form1.Color := clFuchsia

Uses

Project/Options

Application

.ico

File/Save All

F9

Ctrl/F9

Run/Run

Run/ProgramReset  Ctrl/F2

Caption

Delphi 4 170, Delphi 5 - 200, Delphi 6 – 227

TLabel

Font

Size

Color

Style

OnClick

Листинг 20

type

TForm1 = class(TForm)

Button1: TButton;

procedure Button1Click(Sender: TObject);

….

end;

procedure TForm1.Button1Click(Sender: TObject);

begin

. . .

end;

Button1.сaption := "Запуск расчета";

Ctrl/J

Sender:Tobject

onCreate, onMouseMove, onPaint

procedure TForml.Label1Click(Sender: TObject);

begin

end;

position  poScreenCenter

Рис. 19

caption

height

width

name

align

 alBottom

 alLeft

 alTop

 alRight

 alClient

 alCustom

 alNone

OK

Additional  TBitBtn

Kind

- OK;

- Close;

- Cancel;

- Help и др.

abI

TEdit

А

TLabel

TMemo

- lines

- text

- scrollBars:

 ssNone

 ssVertical

 ssHorizontal

 ssBoth

- WordWrap:boolean

Листинг 21

procedure TfmExample.bbRunClick(Sender:ТObject);

begin

lbOutput.Caption := edInput.Text;

mmOutput.Lines.Add(edInput.Text);

edInput.Text := '';

edInput.SetFocus;

end;

OnActivate OnCreate

Events

procedure TfmExample.FormActivate(sender:TObject);

begin

edInput.SetFocus;

end;

Form1.ActivateControl := BitBtn1;

Рис. 20

Additional -> TMaskEdit

EditMask

Рис. 21

- name → bbResult;

- visible → false.

var

x, y:integer;

Листинг 22

OnActivate

procedure TfmExample.FormActivate(sender:TObject);

begin

edInput.SetFocus;

lbOutput.Caption := 'Введите первый опреранд';

end;

Листинг 23

procedure TfmExample.bbRunClick(Sender:TObject);

begin

x := strToInt(Trim(edInput.Text)); //преобразование в число первого операнда

mmOutput.Lines.Add('1-ый операнд: '+ edInput.Text);

edInput.Text := '';

edInput.SetFocus;

mmOutput.Caption := 'Введите 2-ый операнд';

bbResult.Show;

bbRun.Hide;

end;

Листинг 24

procedure TfmExample.bbResultClick(Sender:TObject);

begin

y := strToInt(Trim(edInput.Text)); //второй операнд преобразуется в число

mmOutput.Lines.Add('2-ой операнд: '+ edInput.Text);

mmOutput.Lines.Add('Результат: '+ IntToStr(x) + ' ' + IntToStr(y) + '=' + IntToStr(x + y)); //вычисляем и показываем результат

edInput.Text := ''; //очищаем строку ввода

edInput.SetFocus;

lbOutput.Caption := 'Введите первый операнд'; //приглашение к вводу первого операнда

bbResult.Hide;

bbRun.Show;

end;

 Trim - удаляет из вводимой строки обрамляющие пробел

 StrToInt - преобразует строку символов в целое число;

 IntToStr – производит обратное преобразование.

\