.


:




:

































 

 

 

 


. 5




TFIOElem = string [40]; { ...}

{ - 10 , 40 : }

TFIOArray = array [1..10] of TFIOElem;

 

{ }

{ " "}

procedure DoSortArray(FioCount: Integer; var FioArray: TFIOArray);

Var

I, J: Integer;

STmp: TFIOElem;

MinStrIdx: Integer;

Begin

 

for I:= 1 to FioCount - 1 do { -}

Begin

MinStrIdx:= I; { i- }

{ , }

for J:= I + 1 to FioCount do { }

if FioArray[J] < FioArray[MinStrIdx] then

MinStrIdx:= J; { }

 

{ , i- }

if MinStrIdx <> I then

Begin

STmp:= FioArray[I]; { i- }

{ }

FioArray[I]:= FioArray[MinStrIdx];

FioArray[MinStrIdx]:= STmp;

end;

end;

 

end; {END of DoSortArray}

 

{ MakeSort ...,

St }

procedure MakeSort(var St: string);

Var

{ 10 , 40 }

StrAr: TFIOArray;

I, Len, CurArIdx: Integer;

Begin

{ ", " ","}

while Pos(', ', St) > 0 do

Delete(St, Pos(', ', St) + 1, 1);

 

Len:= Length(St); { }

I:= 1; { WHILE}

CurArIdx:= 1; { }

StrAr[CurArIdx]:= ''; { }

 

{ .

... StrAr,

CurArIdx ...}

while I <= Len do { }

Begin

if St[I] = ',' then { }

Begin

Inc(CurArIdx); { }

StrAr[CurArIdx]:= ''; { }

End

else { }

StrAr[CurArIdx]:= StrAr[CurArIdx] + St[I];

Inc(I); { }

end; { WHILE}

 

{

- ..., }

for I:= 1 to CurArIdx do

Writeln('FIO ', I, ': ', StrAr[I]);

{ }

DoSortArray(CurArIdx, StrAr);

 

St:= ''; { St}

{ var- St ...}

for I:= 1 to CurArIdx do

Begin

St:= St + StrAr[I]; { "" }

if I < CurArIdx then { ... }

St:= St + ', '; { ", "}

end;

end; {END of MakeSort}

 

 

Var

S: string;

begin { }

Writeln(' ... :');

Readln(S); { }

MakeSort(S); { ( ...)}

Writeln(' ... :');

Writeln(S); { }

Readln;

end.

 

6.7.

. .

1) ,

2) ( ) 'xz' , 5

3) , 'a', , 'z', ,

4) 3 , 'a'

5) 3 , 'th'

6) '*' , ()

7) 3 , , '*'

8) '' ,

9) 'a' 'd' ,

10) ,

11) 2- , , 1

12) ,

13) 2- , ()

14) '*'

15)

16) ,

17)

18) , ,

19)

20)

6.8. (. . 1.10)

6.9.

1) ?

2) ?

3) ? ?

4) ?

5) ?

6) ?

7) ?

8) ?

 

7. Pascal

7.1.

Pascal- .

7.2.

Pascal, (. 7.7).

7.3.

:

, ;

;

.

(. 7.6):

1) ;

2) ;

3) ;

4) ;

5) .

7.4.

1) (. 7.7).

2) (. 7.5).

3) , .

4) (. 7.9).

5) (. . 1.11).

 

7.5 Pascal

7.5.1. RECORD

(Real, Integer, Byte, Char, Boolean ..), (array) (string), Pascal , RECORD. (STRUCT). :

Type

<_> = record

<_1>: <_>;

<_2>: <_>;

<_N>: <_>;

end;

, , ( RECORD). RECORD :

type { }

TBirthDay = record

Fam: string [40]; {}

Day, Month: Byte; { }

Year: Word; { }

end;

var { }

a, b: TBirthDay;

TBirthDay ( ) Day, Month Year (, ), Fam (). a, b TBirthDay. , () .

- , : a:= b.

( ) , . (), :

a.Day:= 1;

a.Month:= 12;

a.Year:= 2011;

a.Fam:= 'Ivanov';

, -, :

Var

Mas: array [1..10] of TBirthDay;

....................

for I:= 1 to 10 do

Writeln(' ', I, ': =', Mas[I].Fam,

', =', Mas[I].Day, '.', Mas[I].Month, '.', Mas[I].Year);

, , , .

, . () .

 

7.5.2. Pascal

(Pascal, C++, Java ..), (Windows, Linux, Unix, Mac-OS ..), ( , , ..), , . , , : , , flash, fram, ( ) .. , . , , . (Windows, Linux ..) . . , (, ). , ( -). . , : , , , , .

( ) , ( ) .

, ( , , ) ( ). , ( Pascal ), , .

, , , . , *. .

Var

F: Text; { }

S: string [100];

Begin

Assign(F, 'C:\TEMP\MyFile.txt'); { }

Rewrite(F); { }

repeat { }

Write('vvedite stroku> '); { }

Readln(S); {, }

Writeln(F, S); { }

until S = '*'; { "*", }

Close(F); { }

end.

.

( F: Text). RECORD , . , , . . ( ), , , .. /. / . , (, ) .

, Pascal . , , , . , . , :

Var

F: file of TBirthDay; { }

I: Integer;

Begin

Assign(F, 'MyFile.bin');{ }

Rewrite(F); { }

for I:= 1 to ACount do { }

Write(F, Mas[I]); { }

Close(F); { }

end;

, Pascal , . Pascal ( ). , , , . , . / Read Write BlockRead BlockWrite. Pascal .

, , 7.1.

7.1

Assign()
Append() . ,
Reset() , /. ,
Rewrite() .
Write()
Writeln()
Read()
Readln()
Eof() ,
Erase()
Close()

 

 

7.6

, (. 7.3). , . , , , , .

 

program PhoneBook; { " "}

 

Const

AFileName = 'phones.spr'; { }

MaxRecordCount = 100; { }

 

Type

TFam = string [20]; { " "}

 

{ }

TPhoneRec = record

Fam: TFam; { }

Phone: string [15]; { }

Pol: Boolean; { TRUE-, FALSE-}

BirthYear: Word; { }

end;

 

{ - }

TPhoneTable = array [1..MaxRecordCount] of TPhoneRec;

 

{ }

procedure LoadFromFile(var ATable: TPhoneTable; var ACount: Integer);

Var

F: file of TPhoneRec; { }

Begin

Assign(F, AFileName); { }

{$I-} { /}

Reset(F); { }

{$I+} { "I" }

if IOResult = 0 then { }

begin { }

ACount:= 0; { }

while not Eof(F) do { ...}

Begin

Inc(ACount); { ACount }

Read(F, ATable[ACount]); { }

end;

Close(F); { }

Writeln('Spravochnik uspeshno zagruzhen iz faila: ', AFileName,

'. Kolichetvo zapisei: ', ACount);

end else { " !"}

Writeln('ERROR: Fail ne naiden!');

end;

 

{ }

procedure SaveToFile(const ATable: TPhoneTable; const ACount: Integer);

Var

F: file of TPhoneRec; { }

I: Integer;

Begin

Assign(F, AFileName); { }

Rewrite(F); { }

for I:= 1 to ACount do { }

Write(F, ATable[I]); { }

Close(F); { }

Writeln('Spravochnik uspeshno sohranen v fail: ', AFileName);

end;

 

{ }

procedure ShowRecord(const ATable: TPhoneTable; Num: Integer);

Var

ARec: TPhoneRec;

C: Char;

Begin

ARec:= ATable[Num];

if ARec.Pol then {if ARec.Pol = True}

C:= 'm'

Else

C:= 'f';

 

Writeln('No', Num, ': Fam=', ARec.Fam, ', Tel=',

ARec.Phone, ', Pol=', C, ', God rozhd=', ARec.BirthYear);

end;

 

{ }

procedure ShowAllRecords(const ATable: TPhoneTable;

const ACount: Integer);

Var

I: Integer;

Begin

Writeln('Spisok vseh zapisei:');

for I:= 1 to ACount do

ShowRecord(ATable, I);

end;

 

{ }

procedure AddNewRecord(var ATable: TPhoneTable; var ACount: Integer);

Var

ARec: TPhoneRec;

C: Char;

Begin

Write('Vvedite familiu: ');

Readln(ARec.Fam);

Write('Vvedite telefon: ');

Readln(ARec.Phone);

Write('Vvedite pol ("m" / "f"): ');

Readln(C);

if C = 'm' then

ARec.Pol:= True {}

else { if C = 'f' }

ARec.Pol:= False; {}

Write('Vvedite god rozhdenia: ');

Readln(ARec.BirthYear);

 

Inc(ACount); { 1}

ATable[ACount]:= ARec; { ARec ATable}

 

Write('Dobablena zapis: ');

ShowRecord(ATable, ACount); { }

end;

 

{ }

procedure FindRecord(const ATable: TPhoneTable; const ACount: Integer);

Var

I: Integer;

IsFind: Boolean;

Fam: TFam;

Begin

Write('Vvedite familiu: ');

Readln(Fam);

 

IsFind:= False; { }

for I:= 1 to ACount do

if ATable[I].Fam = Fam then

Begin

IsFind:= True; { " "}

Write('Zapis naidena: ');

ShowRecord(ATable, I);

Break; { }

end;

 

if not IsFind then { }

Writeln('Zapis ne naidena!');

end;

 

Var

MenuNum: Byte;

PhoneTable: TPhoneTable; {-}

PhoneCount: Integer; { }

Begin

PhoneCount:= 0; { }

Writeln('Telefonnaya kniga. Avtor: Ivanov I.I');

Repeat

Writeln('Vvedite cifru dlya vypolneniya deistviya:');

Writeln('1 - zagruzka spravochnika iz faila');

Writeln('2 - novaya zapis');

Writeln('3 - spisok vseh zapisei');

Writeln('4 - poisk zapisi po familii');

Writeln('5 - sohranenie spravochnika v fail');

Writeln('6 - vyhod iz programmy');

Write('> ');

Readln(MenuNum);

case MenuNum of

1: LoadFromFile(PhoneTable, PhoneCount);

2: AddNewRecord(PhoneTable, PhoneCount);

3: ShowAllRecords(PhoneTable, PhoneCount);

4: FindRecord(PhoneTable, PhoneCount);

5: SaveToFile(PhoneTable, PhoneCount);

end;

until MenuNum = 6;

end.

 

, , . ( 150 ), ( ).

 

7.7.

,
  . : , , (True-, False- ),
  . : , , (IMEI),
  -. : , (True-, False-), , ,
  . : , , (),
  - . : , -, ,
  . : , , ,
  . : , , , (True-, False-)
  . : , (True-, False-), ,
  . : , ,
  . : , , ,
  .: , , ,

 





:


: 2016-10-06; !; : 456 |


:

:

, .
==> ...

1776 - | 1578 -


© 2015-2024 lektsii.org - -

: 0.16 .