, , ! Lcbclan.ru , , , ,

: ""

: ""

߻

..

22.11.09

9-4--07

..

22.11.09

2009.


, , , - . . - , , . , , , , . , . , .

. , . - , , . , . , .

, , , , . . , , . , .

-. , . : , , .

, , , . , , .

, .


1.1  - , , , , . . (). . , .

, , . .

1.2

. , (16231662). 1968 . , , .

, . (), . , .

:

1) , ;

2) , , ;

3) ;

4) ;

5) "" , , ;

6) : , .

, , , , .

- z Z, _ ( ASCII 95). , .

-2147483648 +2147483647. , , , . , .

.

, , . , $ ( 36 ASCII). - $00000000 $FFFFFFFF.

- :

+ - * / = ,' . : ; < > [ ] ( ) { } ^ @ $ #.

:

<> <= >= := (* *) (. .).

, .

- , , , , , , , , . , ( ) 63 .

, . , , . .

, , , , , NIL.

- FALSE (), TRUE ().

- , :

'z' - z;

'' - .

, :

'''' - .

, # ( 35), :

#97 - ;

#90 - Z;

#39 - ';

#13 - CR.

- ( CR - ), . , , :

' - ;

'That' 's string.'.

- , , :

[1,2,4..7,12]  [blue, red].

( : , , ) , .. . , , , . , -5520 .

, , , .

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

, . .

-, : , . , .

. , . . , , .

. , . , , . : .

- . , . , , . , , , . , - .

.

:

PROCEDURE <> ( <.. . > ) ;

:

FUNCTION <> ( <...> ) : <>;

<> - ( );

<...> - ;

<> - .

. , , :

Procedure SB(a: Real; b: Integer; c: Char)

, . , ,

Function F(a: Real; b: Real): Real;

:

Function F(a,b: Real): Real;

: . .

, . , , : . , , :

Procedure S (a: array [1..10] of Real);

-, .

, , , , . :

type

atype = array [1..10] of Real;

Procedure S (a: atype);

, :


type

intype = String [15] ;

outype = String [30] ;

Function St (s : intype): outype;

- , .

, , , ( , ). : , , 8 . , .

, True () False (), , .

If:

If () then 1; else 2;

() - ( True False ); ( 1) ( 2) . True (), ( 1) ; ( 2).

else , , if :

If () then 1;

( 1) , True. ( 1) .

, , , True () False (), .

- begin, end.

Case - . If.

Case () , , . , , . , , Case , else.

case , , (:).

, - ( ), , .

: While ( ), Repeat ( ) For ( ).

While .

While:

While () do ;

While . - True (), . .

Repeat...until .

Repeat...until :

Repeat 1; 2; until ().

Repeat...until While:

- Repeat , . While, False, .;

- Repeat True (), , While , True ();

- Repeat , . begin...end, While.

Reeat , , While .

For ,

For:

For :=(1) to (2) do - ( , , c ); (1) (2) - , ; - . 1 . 1. to downto.

For - 1.

- , [5].

:

- ;

- ;

- .

, , Assign.

. CR/LF. . , . Text. :

Var Fi: Text;

, . . :

Var F: File;

[6]. . :

Type

TRec = Record

A: Real;

B: Integer;

C: Char;

End;

Var

F : File of Real;

Q : File of String[100];

Fr: File of TRec;

F .

, . Q , 100. Fr , TRec, Type.


2

2.1

, .

, , , , .

:

- ;

- ;

- 10 ;

- I- , IV- ;

:

- , ;

:

- , , , .

2.2

Crt. , , . -, , Crt BIOS .


2.3- Crt.

HighVideo
LowVideo
NormVideo
TextBackGround
TextColor
ClrEol
ClrScr
DelLine ,
GotoXY
KeyPressed
ReadKey
Sound
NoSound
Delay

, . , . , , .

:

1) Procedure Zastavka- , , , , , .

2) Procedure Menu- .

3) Procedure Password , - , - ( ).

4) Procedure Novoe delo (: ).

5) Procedure Arhieve (), (: ).

6) Procedure end .

2.3

- , , , , , , , , .

, . , . .

, , (a..z) (A..Z). , 63 .

1 Num Integer (: -32768,,,32767;-2).
2 FirsName Char - (:-128127; -1).
3 Name Char - (:-128127; -1).
4 FatherName Char - (:-128127; -1).
5 Date Integer - (:-32768,,,32767; -2).
6 FirstNameKur Char (:-128127; -1).
7 NameKur Char (:-128127; -1).
8 FatherNameKur Char (:-128127; -1).

2.4

.1


.2


, . . , , , , . .

, .

, . , , . , .


C

1) . ., .., . . . : . / .: . . , 1991. 400 .

2) .., .. . .: , 1987. 112 .

3) .. .: , 1987-31 .

4) : . . / .. , .. , .. . .: . ., 1990 479 .

5) .. Turbo Pascal. .: 2003-75 .

6) .., .. Turbo Pascal 7.0 .: +, .: , 1998. 496 .

7) .. TurboPascal

8) . . .

9) .. Turbo Pascal. .: 2003-198 .


1.


2.


1

, .

, . , , .

, .

2

.

3

: , . .


4

4.1 .

4.1.1 :

- ;

- ;

- 10 ;

- I- , IV- .

4.1.2. :

- .

4.2. :

4.2.1. .

4.2.2. .

4.3

4.3.1 IBM .

4.3.2 :

- Pentium;

- 16;

- VGA SVGA.

4.4

- Windows (Windows95, Windows98,Windows2000,WindowsNT ..), MS-DOS.

5

5.1 , ;

5.2 ;

5.3 :

5.3.1 25-30 , ;

5.3.2 ;

6

1
2
3
4
5
6
7
8

1- .


( )

program Baza;

uses crt, REGUNIT;

begin{Baza Dannyh}

zastavka; { }

user; { }

menus; { }

end.{Baza Dannyh}

( Unit )

{******************************************************************}

{ Zastavka - ࠠ }

{ Makeramka - }

{ Lines - }

{ Archieve - }

{ User - }

{ Menus - }

{ Password - , }

{******************************************************************}

Unit REGUNIT;

Interface

uses crt;

const

illcount=100;

NameProg='Baza dannyh';

PasswordX='password';

Line1='';

mmenu:array [1..5] of string[16]=(' Novoe delo ',

' ... ',' ... ',' ...',

' ');

menunew:array [1..2] of string[16]=('   ',

' ⬥ ');

menuarch:array [1..3] of string[16]=('   ',

'  㧨 ',' ⬥ ');

menufind:array [1..2] of string[16]=('   ',

' ⬥ ');

menuuser:array [1..2] of string[40]=

('   ',

' 짮 ⥫ ');

simvV : set of char =

['A'..'Z','a'..'z','0'..'9','_','\',':',

'(',')','!','#','%','^','~','-','''','&','@'];

simvN : set of char = ['A'..'Z','a'..'z',''..'',' '..''];

simvD : set of char = ['0'..'9','.'];

simvDIG : set of char = ['0'..'9'];

krifind: array [1..8] of string[8]=('number','sur','name','otch',

'dateburn','surdoc','namedoc','otchdoc');

type

ill = record

number: integer;{  窨}

sur: string[20];{ }

name: string[20];{}

otch: string[20];{⢮}

dateburn: string[20];{  ஦}

surdoc: string[20];{    }

namedoc: string[20];{   }

otchdoc: string[20];{⢮   }

end;

masi = array[1..illcount] of ill;

fff = file of ill;

max = array[1..3,1..28] of integer;

var

pass, flag, open, admin: boolean;

m: max;

numb, numfind, illind, posx, simv, sim, i: integer;

tempmas: array[1..9] of string;

masill: masi;

fileill: fff;

Procedure menucl;

Procedure Screen(color:byte);

Function GotoCen(s:string):integer;

Procedure lines(color:byte);

Procedure space(n:byte);

Procedure clear;

Procedure MakeRamka(x0,y0:integer; s:string; x,y:integer;color,fon:byte);

Procedure field;

Procedure archieve;

Procedure menuarchh;

Procedure menunewkar;

Procedure menufinder;

Procedure user;

Procedure menus;

Procedure zastavka;

Procedure password;

Implementation

procedure menucl;

var

i:integer;

begin{menucl}

textbackground(blue);

for i:=1 to 20 do

begin

gotoxy(2,i+2);

writeln(' ');

end;

end;{menucl}

Procedure Screen(color:byte);

Var

i:integer;

begin{screen}

textbackGround(color);

for i:=1 to 25 do

writeln(' ');

gotoXY(1,1);

end;{screen}

Function GotoCen(s:string):integer;

begin{gotocen}

GotoCen:=(80-length(s)) div 2;

end;{gotocen}

Procedure lines(color:byte);

var

i:byte;

begin{lines}

textcolor(color);

gotoXY(gotocen(nameprog),1);writeln(NameProg);

write(line1);

for i:=3 to 25 do

begin

gotoxy(19,i);

write('');

end;

textcolor(yellow);

end;{lines}

Procedure space(n:byte);

Var

i:byte;

begin{space}

for i:=1 to n do

write(' ');

end;{space}

Procedure Clear;

var

x,y:byte;

begin{clear}

textbackground(blue);

For y:=3 to 24 do

For x:=20 to 80 do

Begin

gotoxy(x,y);

write(' ');

end;

end;{clear}

Procedure MakeRamka(x0,y0:integer; s:string; x,y:integer;color,fon:byte);

var

i,j:integer;

begin {MakeRamka}

textbackground(fon);

textcolor(color);

gotoxy(x0,y0);write('');

for i:=x0+1 to x-1 do

begin

gotoxy(i,y0);

write('');

end;

Write('');

gotoxy(10+gotocen(s),y0);

textcolor(white);

write(s);

for i:=y0+1 to y-1 do

begin

j:=x0;

textcolor(color);

gotoxy(j,i);

write('');

textcolor(white);

for j:=x0+1 to x-1 do

write(' ');

TextColor(color);

write('');

end;

gotoxy(x0,y);

write('');

for i:=x0+1 to x-1 do

write('');

write('');

textcolor(yellow);

end; {MakeRamka}

procedure field;

var

i:integer;

begin{field}

MakeRamka(22,3,'Delo uchschegosya',78,24,white,cyan);

textcolor(black);

gotoxy(24,5);

write(' Dela ');

gotoxy(24,7);

write('  ');

gotoxy(24,9);

write(' ');

gotoxy(24,11);

write(' ');

gotoxy(24,13);

write(' ');

gotoxy(24,15);

write('Familiya kuratora ');

gotoxy(24,17);

write('Imya kuratora ');

gotoxy(24,19);

write('Otchestvo kuratora ');

gotoxy(24,23);

write(' F8 - ');

textbackground(black);

textcolor(white);

for i:=1 to 9 do

begin

gotoxy(50,3+i*2);

write(' ');

end;

end;{field}

procedure archieve;

var

i:integer;{   横 }

begin{archieve}

MakeRamka(22,3,' / 㧪 ',78,24,white,cyan);

textcolor(black);

textbackground(cyan);

gotoxy(30,13);

write('   ');

{뢮 ।०}

gotoxy(30,15);

write(' !    饣   ');

gotoxy(30,16);

write('    , ');

gotoxy(30,17);

write(' ᮤন!');

textbackground(black);

textcolor(white);

gotoxy(40,13);

write(' ');

end;{archieve}

procedure menuarchh;

var

io, pos, i, ii, ind: integer;

ch: char;

s: string;

begin{menuarchh}

s:='';

menucl;

ind:=1;

pos:=41;

ii:=1;

archieve;

repeat

repeat

for i:=1 to 3 do

begin

if i=ind

then

begin

textbackground(white);

textcolor(black);

end

else

begin

textcolor(white);

textbackground(black);

end;

gotoxy(2,i*2+1);

write(menuarch[i]);

end;

ch:=readkey;

gotoxy(30,19);

textbackground(cyan);

write(' ');

textcolor(white);

case ch of

#8:{backspace}

if (s<>'')

then

begin

dec(ii);

delete(s,ii,1);

textbackground(black);

textcolor(white);

gotoxy(40,13);

write(' ');

gotoxy(40,13);

write(s);

end;

#80:

if ind<>3

then

inc(ind);

#72:

if ind<>1

then

dec(ind);

else

if chr(ord(ch)) in simvv

then

if ii<=8

then

begin

gotoxy(40,13);

s:=s+chr(ord(ch));

textbackground(black);

textcolor(white);

write(s);

inc(ii);

end;

end;

until ch=#13;

assign(fileill,s+'.dat');

case ind of

1: begin

rewrite(fileill);

for i:=1 to illcount do

write(fileill,masill[i]);

close(fileill);

ind:=3;

end;

2: begin

{$i-}

reset(fileill);

io:=ioresult;

{$i+}

If io = 0

then

begin

for i:=1 to illcount do

read(fileill,masill[i]);

close(fileill);

end;

end;

end;

if (ind = 2)

then

if (io = 0)

then

ind:=3

else

begin

textcolor(red);

textbackground(cyan);

gotoxy(30,19);

write('   !');

end;

until ind=3;

clear;

end;{menuarchh}

procedure menunewkar;

var

numerr, tmp, code,ii, posy, i, ind:integer;

ch:char;

tempm:array [1..9] of string[20];

s,ss:string[20];

sd: char;

errd, flagg:boolean;

begin{menunewkar}

menucl;

ind:=1;

field;

posy:=1;

ii:=1;

s:='';

if flag

then

numb:=numfind

else

for i:=illcount downto 1 do

if (masill[i].number = 0)

then

numb:=i;

{+++++++++++++++++++++}

gotoxy(50,posy*2+3);

write(numb);

if flag

then

begin

str(numb,ss);

tempm[1]:=ss;

tempm[2]:=masill[numb].sur;

tempm[3]:=masill[numb].name;

tempm[4]:=masill[numb].otch;

tempm[5]:=masill[numb].dateburn;

tempm[6]:=masill[numb].surdoc;

tempm[7]:=masill[numb].namedoc;

tempm[8]:=masill[numb].otchdoc;

for i:=1 to 8 do

begin

gotoxy(50,i*2+3);

write(' ');

gotoxy(50,i*2+3);

write(tempm[i]);

end;

end

else

begin

tempm[1]:='';

tempm[2]:='';

tempm[3]:='';

tempm[4]:='';

tempm[5]:='';

tempm[6]:='';

tempm[7]:='';

tempm[8]:='';

tempm[9]:='';

end;

repeat

repeat

for i:=1 to 2 do

begin

if i=ind

then

begin

textbackground(white);

textcolor(black);

end

else

begin

textcolor(white);

textbackground(black);

end;

gotoxy(2,i*2+1);

write(menunew[i]);

end;

gotoxy(50,posy*2+5);

ch:=readkey;

errd:=false;

case ch of

#66:

if admin

then

begin

masill[numb].number:=0;

masill[numb].sur:='';

masill[numb].name:='';

masill[numb].otch:='';

masill[numb].dateburn:='';

masill[numb].surdoc:='';

masill[numb].namedoc:='';

masill[numb].otchdoc:='';

ch:=#13;

ind:=2;

end;

#9: begin

textbackground(black);

textcolor(white);

s:='';

if posy = 8

then

posy:=1

else

inc(posy);

ii:=1;

end;

#83: {delete}

if admin

then

{if ch=chr(0)

{ then }

begin

gotoxy(50,posy*2+5);

write(' ');

s:='';

ii:=1;

end;

#8:{backspase}

if admin

then

if (s<>'')

then

begin

dec(ii);

delete(s,ii,1);

textbackground(black);

textcolor(white);

gotoxy(50,posy*2+5);

write(' ');

gotoxy(50,posy*2+5);

write(s);

end;

#80:

if ind=1

then

inc(ind);

#72:

if ind=2

then

dec(ind);

else

if admin

then

begin

if (posy=4) or (posy=8)

then

flagg:=true

else

flagg:=false;

if ((chr(ord(ch)) in simvN) and not(flagg)) or

((chr(ord(ch)) in simvD) and flagg)

then

if ii<=15

then

begin

if flagg

then

begin

case ii of

1,2,4,5,7,8,9,10:

if not((chr(ord(ch)) in simvdig))

then

errd:=true;

3,6:

if (ch<>'.')

then

errd:=true;

else

errd:=true;

end;

end;

if not(errd)

then

begin

s:=s+chr(ord(ch));

tempm[posy+1]:=s;

textbackground(black);

textcolor(white);

gotoxy(50,posy*2+5);

write(' ');

gotoxy(50,posy*2+5);

write(s);

inc(ii);

end;

end;

end;

end;

until ch=#13;

case ind of

1: if admin

then

begin

if flag

then

numb:=numfind;

masill[numb].number:=numb;

masill[numb].sur:=tempm[2];

masill[numb].name:=tempm[3];;

masill[numb].otch:=tempm[4];

masill[numb].dateburn:=tempm[5];

masill[numb].surdoc:=tempm[6];

masill[numb].namedoc:=tempm[7];

masill[numb].otchdoc:=tempm[8];

ind:=2

end;

2: begin

dec(numb);

ind:=2

end;

end;

until ind=2;

tempm[posy+1]:=s;

s:='';

clear;

flag:=false;

end;{menunewkar}

procedure menufinder;{+++++++++++++++++++++++++++++++++++++++++}

var

t, code, tt, tmp, ii, posy, i, ind:integer;

ch:char;

tempm:array [1..8] of string[20];

s:string[20];

flagg:boolean;

begin{menufinder}

menucl;

ind:=1;

field;

posy:=1;

ii:=1;

s:='';

for i:=1 to 8 do

tempm[i]:='';

repeat

repeat

for i:=1 to 2 do

begin

if i=ind

then

begin

textbackground(white);

textcolor(black);

end

else

begin

textcolor(white);

textbackground(black);

end;

gotoxy(2,i*2+1);

write(menufind[i]);

end;

gotoxy(50,posy*2+3);

ch:=readkey;

case ch of

#9:

begin

s:='';

if posy = 9

then

posy:=1

else

inc(posy);

for tmp:=1 to 9 do

begin

gotoxy(50,tmp*2+3);

write(' ');

end;

ii:=1;

end;

#8:{backspase}

if (s<>'')

then

begin

dec(ii);

delete(s,ii,1);

textbackground(black);

textcolor(white);

gotoxy(50,posy*2+3);

write(' ');

gotoxy(50,posy*2+3);

write(s);

end;

#80:

if ind=1

then

inc(ind);

#72:

if ind=2

then

dec(ind);

else

begin

if (posy=1) or (posy=5) or (posy=9)

then

flagg:=true

else

flagg:=false;

if ((chr(ord(ch)) in simvN) and not(flagg)) or

((chr(ord(ch)) in simvD) and flagg)

then

if ii<=15

then

begin

gotoxy(50,posy*2+3);

s:=s+chr(ord(ch));

textbackground(black);

textcolor(white);

write(s);

inc(ii);

end;

end;

end;

until ch=#13;

if ind=1

then

begin

MakeRamka(22,3,'᮪  :',78,24,white,cyan);

tt:=1;

for tmp:=1 to illcount do

begin

flag:=false;

val(s,t,code);

case posy of

1: if ((masill[tmp].number = t) and (t<>0)) then flag:=true;

2: if (masill[tmp].sur = s) then flag:=true;

3: if (masill[tmp].name = s) then flag:=true;

4: if (masill[tmp].otch = s) then flag:=true;

5: if (masill[tmp].dateburn = s) then flag:=true;

6: if (masill[tmp].surdoc = s) then flag:=true;

7: if (masill[tmp].namedoc = s) then flag:=true;

8: if (masill[tmp].otchdoc = s) then flag:=true;

end;

if s=''

then

flag:=false;

if flag

then

begin

textcolor(black);

textbackground(cyan);

gotoxy(40,tt+5);

write(': ',masill[tmp].number);

gotoxy(47,tt+5);

write(' : '+masill[tmp].sur);

inc(tt);

end;

end;

textcolor(black);

textbackground(cyan);

gotoxy(24,4);

write(' 祩:');

textcolor(white);

textbackground(black);

gotoxy(24,5);

write(' ');

gotoxy(24,5);

s:='';

flag:=false;

repeat

ch:=readkey;

if chr(ord(ch)) in simvdig

then

begin

s:=s+chr(ord(ch));

flag:=true;

val(s,t,code);

if ((t>100) or (t<0) or (s='00'))

then

begin

s:='';

gotoxy(24,5);

write(' ');

flag:=false;

end;

gotoxy(24,5);

write(' ');

gotoxy(24,5);

write(s);

end;

until ((ch=#13) or (ch=#27));

if ch=#27

then

begin

ind:=2;

flag:=false

end

else

if ((ch=#13) and flag)

then

begin

ind:=2;

val(s,t,code);

numfind:=t;

end;

end;

until ind=2;

clear;

end;{menufinder}

procedure user;

var

ind:shortint;

ch:char;

begin {user}

ind:=1;

MakeRamka(22,8,'롥 짮 ⥫:',78,13,white,cyan);

repeat

for i:=1 to 2 do{ᮢ  㭪 롮 }

begin

if i=ind

then

begin

textcolor(black);

textbackground(white)

end

else

begin

textcolor(white);

textbackground(black)

end;

gotoxy(30,9+i);

write(menuuser[i]);

end;

ch:=readkey;

if ((ch=#80) and (ind=1))

then

inc(ind);

if ((ch=#72) and (ind=2))

then

dec(ind);

until ch=#13;{   }

if ind=1

then

password

else

admin:=false;

clear;

end; {user}

procedure menus;

var

i, ind:integer;

ch:char;

begin{menus}

flag:=false;

ind:=1;

menucl;

numb:=0;

repeat

repeat

for i:=1 to 5 do

begin

if i=ind

then

begin

textbackground(white);

textcolor(black);

end

else

begin

textcolor(white);

textbackground(black);

end;

gotoxy(2,i*2+1);

write(mmenu[i]);

end;

ch:=readkey;

if ((ch=#80) and (ind<>5))

then

inc(ind);

if ((ch=#72) and (ind<>1))

then

dec(ind);

until ch=#13;

case ind of

1: if admin

then

menunewkar;

2: if admin

then

menuarchh;

3: menufinder;

4: user;

end;

if flag then

menunewkar;

until ind=5;

end;{menus}

procedure zastavka;

var

mart, mart2: boolean;

schmart: integer;

begin{zastavka}

mart:=false;

mart2:=false;

schmart:=0;

TextBackGround(Black);

TextColor(Green);

Randomize;

Clrscr;

sim:=0;

repeat

if schmart=80 then mart:=true;

if schmart=100 then mart2:=true;

if schmart=200 then

begin

mart:=false;

mart2:=false;

schmart:=0;

end;

if sim<25 then

begin

repeat

posx:=random(27)+1

until m[1,posx]=0;

if mart

then

case posx of

9: simv:=84;

10, 23: simv:=72;

11: simv:=69;

12: simv:=95;

13: simv:=66;

14, 16: simv:=65;

15: simv:=90;

17, 18, 19: simv:=33;

else

simv:=random(24)+97

end

else

simv:=random(24)+97;

m[1,posx]:=posx;

m[2,posx]:=simv;

m[3,posx]:=m[3,posx]+1;

sim:=sim+1;

end;

delay(7000);

for i:=1 to 27 do

begin

if m[1,i]<>0

then

if not((m[3,i]=12) and mart2 and (m[1,i]>8) and (m[1,i]<20))

then

begin

gotoxy(m[1,i]*3-2,m[3,i]);

write(chr(m[2,i]));

gotoxy(m[1,i]*3-2,m[3,i]-1);

write(' ');

gotoxy(m[1,i]*3-2,m[3,i]);

m[3,i]:=m[3,i]+1;

end;

if m[3,i]>25

then

begin

m[1,i]:=0;

m[2,i]:=0;

m[3,i]:=0;

gotoxy(m[1,i]*3-2,m[3,i]);

write(chr(m[2,i]));

sim:=sim-1;

end;

end;

inc(schmart);

until keypressed;

screen(blue);

lines(white);

end;{zastavka}

procedure password;

var

s:string[16];

i,ii:integer;

ch:char;

begin{password}

MakeRamka(22,8,'  ஫    :',78,14,white,cyan);

textcolor(white);

textbackground(black);

gotoxy(42,11);

writeln(' ');

gotoxy(42,11);

ii:=0;

s:='';

admin:=false;

repeat

ch:=readkey;

case ch of

#72:;

#75:;

#77:;

#80:;

#8:{backspase}

if (s<>'')

then

begin

delete(s,ii,1);

dec(ii);

textbackground(black);

textcolor(white);

gotoxy(42,11);

write(' ');

gotoxy(42,11);

for i:=1 to ii do

write('*');

end;

else

if (chr(ord(ch)) in simvV)

then

if ii<=15

then

begin

gotoxy(42,11);

s:=s+chr(ord(ch));

textbackground(black);

textcolor(white);

inc(ii);

for i:=1 to ii do

write('*');

end;

end;

until ((ch=#13) or (ch=#27));

if ch=#27 {   Esc}

then

admin:=false

else

if s=PasswordX

then

admin:=true

else

begin

s:='';

textcolor(red);

textbackground(cyan);

gotoxy(42,13);

write('  ஫!');

gotoxy(42,11);

textcolor(white);

textbackground(black);

write(' ');

gotoxy(42,11);

ch:=readkey;

password;

end;

clear;

end;{password}


.1 , ASCII

.2 ( : password )


.3

.4


.5 \

.6 ,


.7

.8 ,


Reg.exe, - .

( ): ) ( :password); ) Esc .

, : , , , , . , , () , , , , . : ( : , , , . TAB. F8. Enter.



?