Розробка програми на мові Borland Object Pascal Ide Borland Delphi

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати

ЗАВДАННЯ НА КУРСОВУ РОБОТУ

Вихідним файлом для перевірки є текст програми на мові C + +. Перевірити правильність написання у програмі інструкцій безумовного переходу. Програма повинна бути розроблена на мові Borland Object Pascal (Ide Borland Delphi).

ЗМІСТ

1.Вступ

2.Виконання ЗАВДАННЯ

2.1.Подготовка вихідного файлу

2.2.Разработка програми

2.3.Лістінг програми

2.4. Запуск програми

ПЕРЕЛІК ПОСИЛАНЬ

ДОДАТКИ

  1. ВСТУП

Система програмування Турбо Паскаль, розроблена американською корпорацією Воrland, залишається однією з найпопулярніших систем програмування в світі. Придуманий швейцарським вченим Нікласом Віртом як засіб для навчання студентів програмуванню, мова Паскаль стараннями О. Хейлсберг перетворився на потужну сучасну професійну систему програмування, якій до снаги будь-які завдання - від створення простих програм, призначених для рішення нескладних обчислювальних завдань, до розробки найскладніших реляційних систем управління базами даних. Поява Windows та інструментальних засобів Borland Pascal with Objects і Delphi для розробки програм в середовищі Windows зайвий раз показало, які воістину невичерпні можливості таїть він в собі: і Borland Pascal, і який використовується в Delphi мову Object Pascal грунтуються на Турбо Паскалі та розвивають його ідеї.

Основна мета курсової роботи - закріплення і узагальнення знань отриманих при вивченні дисципліни «Програмування».

В результаті виконання курсової роботи повинні бути отримані навички аналізу поставленої задачі, вибору найбільш оптимального алгоритму розв'язання задачі, розробки інтерфейсу, налагодження і тестування програм великого обсягу.

  1. ВИКОНАННЯ ЗАВДАННЯ

    1. Підготовка вихідного файлу

Сформуємо текстовий документ з ім'ям goto. Cpp. Вміст документа візьмемо з зрусифікованої довідки MSDN по оператору безумовного переходу.

int i, j;

for (i = 0; i <10; i + +)

{

/ / ...

if (condition1)

{

j = 4;

goto label1;

}

/ / ...

for (j = 0; j <10; j + +)

{

/ / ...

label1:

/ / ...

if (condition2)

{

i = 6;

goto label2;

}

}

/ / ...

label2:

/ / ...

}

    1. Розробка програми

У середовищі програмування Borland Delphi створимо новий додаток (пункт меню File \ New \ Application). Властивості форми Caption привласнимо значення «Перевірка Goto». Розмістимо на формі візуальні і невізуальні компоненти.

Невізуальний компонент - це діалогове вікно вибору файлу для відкриття. Компонент класу TOpenDialog стає видимим тільки в режимі запущеного додатка після виклику методу Execute. Привласнимо компоненту ім'я odFile.

Розміщуємо на формі три компоненти класу TButton з іменами buOpen, buProverka buClose. Оброблювач натискання на кнопку buOpen відкриває вихідний файл (рядки 33 - 41) і відображає його вміст на компоненті Memo 1 класу TMemo. Властивість Lines цього компонента містить набір рядків вихідного файлу.

Кнопка buProverka виконує безпосередню перевірку правильності використання безумовного оператора (рядки 43 - 94). На першому кроці відбувається запис вмісту файлу в строкову змінну sFile (рядок 48). Потім, за умови що файл не порожній (рядок 49), відбувається циклічний пошук підрядка "goto" у змінній sFile (рядки 52-54). Видаляється вміст перевіряється файлу до слова "goto" і виділяється ім'я мітки переходу (рядок 55). Ім'я мітки повинен задовольняти вимогу завдання імені ідентифікатора. Для цієї перевірки використовуються рядки 56-77. Потім шукається ім'я мітки і символ «:» - це безпосередній перехід на мітку. У разі відсутності такої підрядка видається повідомлення про помилку (рядки 78 - 84). У випадки успішної перевірки використання одного безумовного переходу відбувається инкрементирования лічильника і новий пошук конструкції goto (рядки 85-86). Після закінчення перевірки (у разі відсутності помилок) видається число знайдений інструкцій безумовного переходу (рядки 88-92).

Рис.1 - Форма в режимі Design



Кнопка buClose (рядки 96 - 99) виконує закриття програми.



    1. Лістинг програми

1

unit Unit1;

2


3

interface

4


5

uses

6

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

7

Dialogs, StdCtrls;

8


9

type

10

TForm1 = class (TForm)

11

Memo1: TMemo;

12

buOpen: TButton;

13

buProverka: TButton;

14

lbRezultat: TLabel;

15

odFile: TOpenDialog;

16

buClose: TButton;

17

procedure buOpenClick (Sender: TObject);

18

procedure buProverkaClick (Sender: TObject);

19

procedure buCloseClick (Sender: TObject);

20

private

21

{Private declarations}

22

public

23

{Public declarations}

24

end;

25


26

var

27

Form1: TForm1;

28


29

implementation

30


31

{$ R *. dfm}

32


33

procedure TForm1.buOpenClick (Sender: TObject);

34

begin

35

if odFile.Execute then

36

begin

37

Memo1.Lines.Clear;

38

Memo1.Lines.LoadFromFile (odFile.FileName);

39

lbRezultat.Caption: ='';

40

end;

41

end;

42


43

procedure TForm1.buProverkaClick (Sender: TObject);

44

var

45

sFile, sLabelName: string;

46

i, iKol, j: integer;

47

begin

48

sFile: = Memo1.Lines.Text;

49

if sFile <>''then

50

begin

51

iKol: = 0;

52

i: = pos ('goto', sFile);

53

while i <> 0 do

54

begin

55

delete (sFile, 1, i +4);

56

i: = pos (';', sFile);

57

j: = pos (# 13, sFile);

58

if ((j <> 0) and (j <i)) or (i = 0) then

59

begin

60

lbRezultat. Caption: = 'Помилка: Відсутній;';

61

lbRezultat.Font.Color: = clRed;

62

Exit;

63

end;

64

sLabelName: = copy (sFile, 1, i-1);

65

if not (sLabelName [1] in ['A' .. 'Z', 'a' .. 'z']) then

66

Begin

67

lbRezultat. Caption: = 'Помилка: Неправильне ім'я мітки' + sLabelName;

68

lbRezultat.Font.Color: = clRed;

69

Exit;

70

end;

71

for i: = 2 to length (sLabelName) do

72

if not (sLabelName [i] in ['0 '.. '9', 'A' .. 'Z', 'a' .. 'z']) then

73

begin

74

lbRezultat. Caption: = 'Помилка: Неправильне ім'я мітки' + sLabelName;

75

lbRezultat.Font.Color: = clRed;

76

Exit;

77

end;

78

i: = pos (sLabelName + ':', sFile);

79

if i = 0 then

80

begin

81

lbRezultat. Caption: = 'Помилка: відсутність перехід на мітку' + sLabelName;

82

lbRezultat.Font.Color: = clRed;

83

Exit;

84

end;

85

inc (iKol);

86

i: = pos ('goto', sFile);

87

end;

88

if lbRezultat.Caption =''then

89

begin

90

lbRezultat. Caption: = 'Правильне завдання'; + IntToStr (iKol) + 'інструкцій безумовного переходу';

91

lbRezultat.Font.Color: = clNavy;

92

end;

93

end;

94

end;

95


96

procedure TForm1.buCloseClick (Sender: TObject);

97

begin

98

Close;

99

end;

100


101

end.

    1. Запуск програми

Це досягається натисненням клавіші F 9. Після компіляції запускається програма на виконання. Вікно програми з результатами роботи представлені на рис.2-5.



Рис.2 - Вікно відкриття файлу

Рис.3 - Перевірка файлу





Рис.4 - Перевірка файлу

Рис.5 - Перевірка файлу

ПЕРЕЛІК ПОСИЛАНЬ

  1. Абрамов В.Г., Трифонов Н.П., Трифонова Г.М. Введення в мову Паскаль. - М.: Наука, 1988.

  2. Довгаль С.І., Литвинов Б.Ю., Сбітнєв А.. І. Персональні ЕОМ: Турбо Паскаль V 7.0, об'єктне програмування, локальні мережі. - Київ: Інформсісітема сервіс, 1993.

  3. Епанешников А.М., Епанешнікова В.А. Програмування в середовищі Turbo Pascal 7.0.-М.: Діалог-МІФІ, 1999.

  4. Зуєв Є.А. Програмування на мові Turbo Pascal 6.0,7.0. - М.: Радіо і зв'язок, Веста, 1993.

  5. Кандзюба С.П., Громов В. М. Delphi 7. Бази даних та програми. Лекції і вправи. - К.: Видавництво "ДіаСофт", 2001.

  6. Клімова Л. М. Pascal 7.0. Практичне програмування. Рішення типових завдань. -М.: КУДІУ ОБРАЗ, 2000.

  7. Марченко А. І., Марченко Л.А.. Програмування в середовищі Turbo Pascal 7.0.-К.: Століття +, 1999.

  8. Фаронов В. В. Turbo Pascal 7.0. Початковий курс. - М.: Нолидж, 2000.

ДОДАТКИ

Додаток А

int i, j;

for (i = 0; i <10; i + +)

{

/ / ...

if (condition1)

{

j = 4;

goto label1;

}

/ / ...

for (j = 0; j <10; j + +)

{

/ / ...

label1:

/ / ...

if (condition2)

{

i = 6;

goto label2;

}

}

Додаток Б

- $ A8

- $ B-

- $ C +

- $ D +

- $ E-

- $ F-

- $ G +

- $ H +

- $ I +

- $ J-

- $ K-

- $ L +

- $ M-

- $ N +

- $ O +

- $ P +

- $ Q-

- $ R-

- $ S-

- $ T-

- $ U-

- $ V +

- $ W-

- $ X +

- $ YD

- $ Z1

-Cg

-AWinTypes = Windows; WinProcs = Windows; DbiTypes = BDE; DbiProcs = BDE; DbiErrs = BDE;

-H +

-W +

-M

- $ M16384, 1048576

-K $ 00400000

-LE "c: \ program files \ borland \ delphi7 \ Projects \ Bpl"

-LN "c: \ program files \ borland \ delphi7 \ Projects \ Bpl"

-W-UNSAFE_TYPE

-W-UNSAFE_CODE

-W-UNSAFE_CAST

Додаток У

[FileVersion]

Version = 7.0

[Compiler]

A = 8

B = 0

C = 1

D = 1

E = 0

F = 0

G = 1

H = 1

I = 1

J = 0

K = 0

L = 1

M = 0

N = 1

O = 1

P = 1

Q = 0

R = 0

S = 0

T = 0

U = 0

V = 1

W = 0

X = 1

Y = 1

Z = 1

ShowHints = 1

ShowWarnings = 1

UnitAliases = WinTypes = Windows; WinProcs = Windows; DbiTypes = BDE; DbiProcs = BDE; DbiErrs = BDE;

NamespacePrefix =

SymbolDeprecated = 1

SymbolLibrary = 1

SymbolPlatform = 1

UnitLibrary = 1

UnitPlatform = 1

UnitDeprecated = 1

HResultCompat = 1

HidingMember = 1

HiddenVirtual = 1

Garbage = 1

BoundsError = 1

ZeroNilCompat = 1

StringConstTruncated = 1

ForLoopVarVarPar = 1

TypedConstVarPar = 1

AsgToTypedConst = 1

CaseLabelRange = 1

ForVariable = 1

ConstructingAbstract = 1

ComparisonFalse = 1

ComparisonTrue = 1

ComparingSignedUnsigned = 1

CombiningSignedUnsigned = 1

UnsupportedConstruct = 1

FileOpen = 1

FileOpenUnitSrc = 1

BadGlobalSymbol = 1

DuplicateConstructorDestructor = 1

InvalidDirective = 1

PackageNoLink = 1

PackageThreadVar = 1

ImplicitImport = 1

HPPEMITIgnored = 1

NoRetVal = 1

UseBeforeDef = 1

ForLoopVarUndef = 1

UnitNameMismatch = 1

NoCFGFileFound = 1

MessageDirective = 1

ImplicitVariants = 1

UnicodeToLocale = 1

LocaleToUnicode = 1

ImagebaseMultiple = 1

SuspiciousTypecast = 1

PrivatePropAccessor = 1

UnsafeType = 0

UnsafeCode = 0

UnsafeCast = 0

[Linker]

MapFile = 0

OutputObjs = 0

ConsoleApp = 1

DebugInfo = 0

RemoteSymbols = 0

MinStackSize = 16384

MaxStackSize = 1048576

ImageBase = 4194304

ExeDescription =

[Directories]

OutputDir =

UnitOutputDir =

PackageDLLOutputDir =

PackageDCPOutputDir =

SearchPath =

Packages =

Conditionals =

DebugSourceDirs =

UsePackages = 0

[Parameters]

RunParams =

HostApplication =

Launcher =

UseLauncher = 0

DebugCWD =

[Language]

ActiveLang =

ProjectLang =

RootDir =

[Version Info]

IncludeVerInfo = 0

AutoIncBuild = 0

MajorVer = 1

MinorVer = 0

Release = 0

Build = 0

Debug = 0

PreRelease = 0

Special = 0

Private = 0

DLL = 0

Locale = 1049

CodePage = 1251

[Version Info Keys]

CompanyName =

FileDescription =

FileVersion = 1.0.0.0

InternalName =

LegalCopyright =

LegalTrademarks =

OriginalFilename =

ProductName =

ProductVersion = 1.0.0.0

Comments =

Додаток Г

program proverka;

uses

Forms,

Unit1 in 'Unit1.pas' {Form1};

{$ R *. res}

begin

Application.Initialize;

Application.CreateForm (TForm1, Form1);

Application.Run;

end.

Додаток Д

[Closed Files]

File_0 = SourceModule, 'D: \ Projects \ Delphi Studio \ SKSMiK \ ZarPlata \ units \ UData.pas', 0,1,545,15,558,1,0

File_1 = SourceModule, 'D: \ Projects \ Delphi Studio \ SKSMiK \ ZarPlata \ units \ UTablNU.pas', 0,1,681,50,698,1,0

File_2 = SourceModule, 'D: \ Projects \ Delphi Studio \ SKSMiK \ ZarPlata \ units \ UMain.pas', 0,1,148,31,155,1,0

File_3 = SourceModule, 'D: \ Projects \ Delphi Studio \ SKSMiK \ ZarPlata \ units \ UPerson.pas', 0,1,99,34,116,1,0

File_4 = SourceModule, 'D: \ Projects \ Delphi Studio \ SKSMiK \ ZarPlata \ units \ UFunction.pas', 0,1,479,1,492,0,0

File_5 = SourceModule, 'D: \ Projects \ Delphi Studio \ SKSMiK \ ZarPlata \ units \ UEtalon.pas', 0,1,800,40,825,0,0

File_6 = SourceModule, 'D: \ Projects \ Delphi Studio \ SKSMiK \ ZarPlata \ units \ UCreateAllReport.pas', 0,1,406,51,407,0,0

File_7 = SourceModule, 'D: \ Projects \ Delphi Studio \ SKSMiK \ ZarPlata \ units \ USprNa.pas', 0,1,1,17,9,1,0

File_8 = SourceModule, 'D: \ Projects \ Delphi Studio \ SKSMiK \ ZarPlata \ units \ USprUd.pas', 0,1,305,1,308,1,0

File_9 = SourceModule, 'D: \ Projects \ Delphi Studio \ SKSMiK \ ZarPlata \ units \ USprOtdel.pas', 0,1,1,1,1,1,0

[Modules]

Module0 = D: \ Projects \ Delphi \ sti \ check_goto \ Unit1.pas

Count = 1

EditWindowCount = 1

[D: \ Projects \ Delphi \ sti \ check_goto \ Unit1.pas]

ModuleType = SourceModule

FormState = 1

FormOnTop = 0

[C: \ Program Files \ Borland \ Delphi7 \ Projects \ ProjectGroup1.bpg]

FormState = 0

FormOnTop = 0

[D: \ Projects \ Delphi \ sti \ check_goto \ proverka.dpr]

FormState = 0

FormOnTop = 0

[EditWindow0]

ViewCount = 1

CurrentView = 0

View0 = 0

CodeExplorer = CodeExplorer @ EditWindow0

MessageView = MessageView @ EditWindow0

Create = 1

Visible = 1

State = 2

Left = 294

Top = 140

Width = 868

Height = 505

MaxLeft =- 4

MaxTop = 108

MaxWidth = 1288

MaxHeight = 666

ClientWidth = 1280

ClientHeight = 632

LeftPanelSize = 0

LeftPanelClients = CodeExplorer @ EditWindow0

LeftPanelData =

RightPanelSize = 0

BottomPanelSize = 0

BottomPanelClients = MessageView @ EditWindow0

BottomPanelData =

[View0]

Module = D: \ Projects \ Delphi \ sti \ check_goto \ Unit1.pas

CursorX = 13

CursorY = 57

TopLine = 64

LeftCol = 1

[Watches]

Count = 0

[WatchWindow]

WatchColumnWidth = 100

WatchShowColumnHeaders = 1

Create = 1

Visible = 0

State = 0

Left = 0

Top = 138

Width = 265

Height = 638

MaxLeft =- 1

MaxTop =- 1

ClientWidth = 257

ClientHeight = 612

TBDockHeight = 612

LRDockWidth = 257

Dockable = 1

[Breakpoints]

Count = 0

[AddressBreakpoints]

Count = 0

[Main Window]

Create = 1

Visible = 1

State = 0

Left = 0

Top = 0

Width = 1280

Height = 112

MaxLeft =- 1

MaxTop =- 1

ClientWidth = 1272

ClientHeight = 78

[ProjectManager]

Create = 1

Visible = 0

State = 0

Left = 369

Top = 372

Width = 438

Height = 303

MaxLeft =- 1

MaxTop =- 1

ClientWidth = 430

ClientHeight = 277

TBDockHeight = 303

LRDockWidth = 438

Dockable = 1

[CPUWindow]

Create = 1

Visible = 0

State = 0

Left = 96

Top = 114

Width = 959

Height = 635

MaxLeft =- 1

MaxTop =- 1

ClientWidth = 951

ClientHeight = 601

DumpPane = 79

DisassemblyPane = 187

RegisterPane = 231

FlagPane = 64

[AlignmentPalette]

Create = 1

Visible = 0

State = 0

Left = 200

Top = 107

Width = 156

Height = 84

MaxLeft =- 1

MaxTop =- 1

ClientWidth = 150

ClientHeight = 60

[PropertyInspector]

Create = 1

Visible = 1

State = 0

Left = 9

Top = 203

Width = 274

Height = 559

MaxLeft =- 1

MaxTop =- 1

ClientWidth = 266

ClientHeight = 533

TBDockHeight = 429

LRDockWidth = 190

Dockable = 1

SplitPos = 144

ArrangeBy = Name

SelectedItem = Name

ExpandedItems =

HiddenCategories =

[ObjectTree]

Create = 1

Visible = 0

State = 0

Left = 958

Top = 125

Width = 190

Height = 669

MaxLeft =- 1

MaxTop =- 1

ClientWidth = 182

ClientHeight = 643

TBDockHeight = 290

LRDockWidth = 190

Dockable = 1

[CodeExplorer @ EditWindow0]

Create = 1

Visible = 0

State = 0

Left = 0

Top = 12

Width = 140

Height = 459

MaxLeft =- 1

MaxTop =- 1

ClientWidth = 140

ClientHeight = 459

TBDockHeight = 305

LRDockWidth = 140

Dockable = 1

[MessageView @ EditWindow0]

Create = 1

Visible = 0

State = 0

Left =- 100

Top =- 534

Width = 443

Height = 85

MaxLeft =- 1

MaxTop =- 1

ClientWidth = 443

ClientHeight = 85

TBDockHeight = 85

LRDockWidth = 443

Dockable = 1

[DockHosts]

DockHostCount = 0

Додаток До

object Form1: TForm1

Left = 320

Top = 139

Width = 520

Height = 500

Caption = # 1055 # 1088 # 1086 # 1074 # 1077 # 1088 # 1082 # 1072 'Goto'

Color = clBtnFace

Font.Charset = DEFAULT_CHARSET

Font.Color = clWindowText

Font.Height = -11

Font.Name = 'MS Sans Serif'

Font.Style = []

OldCreateOrder = False

PixelsPerInch = 96

TextHeight = 13

object lbRezultat: TLabel

Left = 210

Top = 424

Width = 52

Height = 13

Caption = # 1056 # 1077 # 1079 # 1091 # 1083 # 1100 # 1090 # 1072 # 1090

end

object Memo1: TMemo

Left = 8

Top = 48

Width = 497

Height = 353

ScrollBars = ssBoth

TabOrder = 0

end

object buOpen: TButton

Left = 16

Top = 8

Width = 169

Height = 33

Caption = # 1054 # 1090 # 1082 # 1088 # 1099 # 1090 # 1100 '' # 1092 # 1072 # 1081 # 1083

TabOrder = 1

OnClick = buOpenClick

end

object buProverka: TButton

Left = 16

Top = 416

Width = 185

Height = 33

Caption = # 1055 # 1088 # 1086 # 1074 # 1077 # 1088 # 1082 # 1072 'Goto'

TabOrder = 2

OnClick = buProverkaClick

end

object buClose: TButton

Left = 365

Top = 8

Width = 137

Height = 33

Caption = # 1042 # 1099 # 1093 # 1086 # 1076

TabOrder = 3

OnClick = buCloseClick

end

object odFile: TOpenDialog

Filter = 'C + +' # 1092 # 1072 # 1081 # 1083 '| *. cpp'

Left = 208

Top = 16

end

end

Додаток Л

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls;

type

TForm1 = class (TForm)

Memo1: TMemo;

buOpen: TButton;

buProverka: TButton;

lbRezultat: TLabel;

odFile: TOpenDialog;

buClose: TButton;

procedure buOpenClick (Sender: TObject);

procedure buProverkaClick (Sender: TObject);

procedure buCloseClick (Sender: TObject);

private

{Private declarations}

public

{Public declarations}

end;

var

Form1: TForm1;

implementation

{$ R *. dfm}

procedure TForm1.buOpenClick (Sender: TObject);

begin

if odFile.Execute then

begin

Memo1.Lines.Clear;

Memo1.Lines.LoadFromFile (odFile.FileName);

lbRezultat.Caption: ='';

end;

end;

procedure TForm1.buProverkaClick (Sender: TObject);

var

sFile, sLabelName: string;

i, iKol, j: integer;

begin

sFile: = Memo1.Lines.Text;

if sFile <>''then

begin

iKol: = 0;

i: = pos ('goto', sFile);

while i <> 0 do

begin

delete (sFile, 1, i +4);

i: = pos (';', sFile);

j: = pos (# 13, sFile);

if ((j <> 0) and (j <i)) or (i = 0) then

begin

lbRezultat.Caption: = 'Помилка: відсутність;';

lbRezultat.Font.Color: = clRed;

Exit;

end;

sLabelName: = copy (sFile, 1, i-1);

if not (sLabelName [1] in ['A' .. 'Z', 'a' .. 'z']) then

begin

lbRezultat.Caption: = 'Помилка: Напевне ім'я мітки '+ sLabelName;

lbRezultat.Font.Color: = clRed;

Exit;

end;

for i: = 2 to length (sLabelName) do

if not (sLabelName [i] in ['0 '.. '9', 'A' .. 'Z', 'a' .. 'z']) then

begin

lbRezultat.Caption: = 'Помилка: Напевне ім'я мітки '+ sLabelName;

lbRezultat.Font.Color: = clRed;

Exit;

end;

i: = pos (sLabelName + ':', sFile);

if i = 0 then

begin

lbRezultat.Caption: = 'Помилка: Відсутній перехід на мітку '+ sLabelName;

lbRezultat.Font.Color: = clRed;

Exit;

end;

inc (iKol);

i: = pos ('goto', sFile);

end;

if lbRezultat.Caption =''then

begin

lbRezultat.Caption: = 'Правильне завдання '+ IntToStr (iKol) +' інструкцій безумовного переходу ';

lbRezultat.Font.Color: = clNavy;

end;

end;

end;

procedure TForm1.buCloseClick (Sender: TObject);

begin

Close;

end;

end.

Додати в блог або на сайт

Цей текст може містити помилки.

Програмування, комп'ютери, інформатика і кібернетика | Курсова
157кб. | скачати


Схожі роботи:
Розробка DLL в Borland Delphi
Середовище програмування Borland Delphi
Середовище програмування Borland Delphi
Borland Delphi 7 міграція в бік Net
Borland C Builder
Object Pascal
Borland C для Windows
Компанія Borland Software Corporation
Склад і призначення оболонки Borland C
© Усі права захищені
написати до нас