You are on page 1of 161

-

, , .

.
( ). , 2013 . 160 .
, -
, , , .
I - .
II , .
III
( 7.0) .
I () ,
.

,
, : , , ,
. , , , , , , A.. , , (), , ,
( ) , ,
.
,
.

, ,
, , , 2

, ?
,
.
, ,
, ( ), ,
, ?
, -
, , ,
, .
, ,
? , , .
, , N , (,
, , , )
(, , ) ,
() ,
,
.

, , , .

, ,
, ( -) / , .
, . ?
- , . , , , ( ), ,

,
,
; ; , , .

1970-1980- , , .
, ,
, , -
5

(Softwear)

,
.
: ,
, .
, , , , , .
.
, , 25-50
(
).

, , ,
, . ,
, .
: ,
.

.
6

, ,
, .
:
;
() ;
, ;
, .
, , , , , .
, , .
, ,
, , , ?
,
, , , , ; , , ,
; , , , ,
, 7

. , .
,
, () ,
- , , , , .
( ) , ,
.
,
, , , .
, ,
. , , ,
, .
.
. , .
M - ?
2
?
8

, / - .
,
, C++
Builder- ,
, ,

,
, .

- .


:
1. ;
2. ( );
3. ;
4. ;
5. ;
6. , .
-
() . 3,
4, 5 .
, ().

( ), .
, . () , , , .
, (, ). ,
() ,
.
(
) . .
, , .
,
, .
, .
:
;
;
.

10

, , ,

. ,
.
,
, . ,
. , , .
, -
, , ,
, ,
-, .
, -
, , / .
, , ,
. ,
, 11

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

. . XVII . (1623),
(1673) . (1642) .
12

-19 1830. ,
, B,
. .
- , ,
. (1815-1852)
. (1843) , , . - . A
. M , ,
. . A.

.
1854 .
, .
, - 3 1890. .
. 1896 .
, .
13

1936 . . , . , ,
, - .
XX . 40- . - . . (-3) - .
(MARK-1. 1944). - - . .

40-

. , . , ENIAC . . - .
1951. UNIVAC. IBM-
IBM/701- . E
- .
, . . P , . . ,

14

,
.
1950 . - (I ). A . . B ( ) . E - . 1950- ( ), II . 10 III - , 10 IV - - . 1990 V -,
.

. 1958-1960 . ALGOL-,
; :
Algol-68, Pascal (1970), Ada (1976), C++(1983).
-
(OS) - - .

: MS DOS, Windows, OS/2, MAC OS, Unix, Linux, ..
1965 . , . , 15

. :
, ,

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

16

1970-1980 .
, .

(Gates William Henry,
1955) . 1972 .
-. 8008 Intel .
Altair - .
, . Microsoft, 60% , 40% . 1976 .
, .
,
.

, , 17

, ( , ) ,
, , .
, ,
; ,
A .
.


. .
: , ?.
:
, .
,
! (/ ) , .
, ,
, , . , ,
.
, , , .
, ,
, ,
18

,
( , ) ,
, , , .

rogor iyo aRwerili teqnikur


davalebaSi

rogor iyo mowodebuli proeqtis


damuSavebis organizatoris mier

rogor daaproeqta wamyvanma sistemurma


specialistma

rogor iyo danergili

ra undoda damkveTs

. 1
19

- , , ,
.
.
, , ( -
) - ,
, , : ,
, , (
), ..
, , ,
, . , .1. , .
, , , , . ;
.A ,
, , ,
. , , .
20

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

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

, ,

21

,
, .

, .


. . , , .
, , ? , , ,
- .
: , , .

, :
1. .
2. , .
22

3. . U
,
, ,
,
. , ,
. , ,
, , . A
. M - , . ,
,
. ,
.

. .
,
. 23

,
.

, .
, , , .
,
,
.

24


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

. . , 555
( ) ,
I 5 , II - 5 , III - 5 .
5, , .

. , XXX X, , XXX .
.
25


An am1am2 ....ai ...a0 .a1a2 ......ak am1 N m1 am2 N m2 .....

+ a k N k

m1

a N

i k

(1)

i- i-
k -
m -
N - .
,
. (0,1,2,3, ...,9) - 12,
- 60 ..
i i1 . () .
A10=37.25 (1)
A10=3*101+7*100+2*10-1+5*10-2
A2=101.011
- A2=1*22+0*21+1*20+0*2-1+1*2-2+1*2-3=5.37510
A8=36,25
A8=3*81+6*80+2*8-1+5*8-2=30.562510
,
e=2,71828...... 2- 3

.
, :

.

26

, (0 1) .
E- .
( ) , :
- ;
;
.
8=23 16=24, ,
.
, A10=134,625 , , - .
A2 =1110110.101
A8= 166.5
A16=76. AA
A210= 000100110100.011000100101
,
:
,
( ) . (N-1) 0
() (2910+110=3010).
.
( , - 2, - 8, - 16).

27

(, , , )

.

,
, :

10

11

100

101

110

111

1000

10

1001

11

10

1010

12

11

1011

13

12

1100

14

13

1101

15

14

1110

16

15

1111

17

16

10000

20

C
D
E
F
10

(N1) (N2) -

28

. . A10=37.25

A'10=37 A''10=0.25 (A10=A'10+A''10=37+0.25=37.25).

) N1 N2 AN1 N2 (N2
N1 ) .
N2- , . . N2
.

: A10=37; A2=?; A8=?; A18=?


1) 37 2
36 18 2
1 18 9
0 8
1

3710=1001012

2
4
4
0

2) 37 8
32 4
5

3)

37 16
32 2
5

2
2 2
2 1
0

3710=458 3710=2516

() , , , . (1) .
1) 1001012=1*25+0*24+0*23+1*22+0*21+1*20=32+4+1=3710
2) 458=4*81+5*80=32+5=3710
3) 2516=2*161+5*160=32+5=3710
) N1 N2 AN1 N1
N2 . ,
.
29

,
, , .
A10=0.625; A2=? ; A8= ?; A16= ?.

*
*
*

0 . 625
2
1 250
2

0 . 625
8
5 000

0 . 625
16
10 000

0 50
2
1 0

0.62510=0.1012; 0.62510=0.58; 0.62510=0.A16;


(1) .

0.1012 1* 21 0 * 22 1* 23

0.58 5 * 81

1 1 5
0.62510
2 8 8

5
0.62510
8

0. A16 10 *161

10 5
0.62510
16 8


, 2-
, .
() () () .
A16 2 A.5B (00)10'1010.0101'10112

A8 35.74 (0)11'101.111'1(00)

30

, .
, () ( ) () () .
() .
: A2=10110111.1001101; A8=?; A16=?
010 110111.100 110 1002=267.4648
1011 0111.1001 10102=B7.9A16
:
.
: A8=137.56

A16=?

137.568=1011111.101112=5F.B816
- , .
.

31

II

2.1.

- -
.

(...). - . - .
, .
50- -.
,,. - .
; , . ,
-. , , . - ,
() - .
- - , . , 32

, .
() .

. .
, .

. . ( ) - . (. ) , ..
1960-1970- . , - -68, 77 .
1971
. . . .
. A borland international, Inc- .
- ,
, .
.

33

,
, , -2 .

2.2. .


. , ,, ,
()
. () ,
. - , . 2-. ,
- :
1. ,
.
2. .
.
3. , D . :
. .
- : , .
-
. . , ,
34

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

programirebis ena

enis elementebi

alfaviti,
leqsemebi,
sintaqsi,
programis
gaformeba.

monacemebze
moqmedebebis
organizeba

monacemebis
Setanagamotana

monacemebis
organizacia

monacemebis
damuSaveba

operaciebi da
gamosaxulebebi

operatorebi:
_miniWebis
_ganStoebis,
_ciklis da
sxva

monacemebis
tipebi

programebis
organizeba da
gamoyeneba

. 2.
.
( ),
. 35

- (... ) .
. . - .
- :: . ,,
(). ::
( ), < > , - , .
:
() , ,
, .
,
.
.
: , ,, :
< > :: 0 I 1
I ,, . (.3.)

< >
0
1

.3.

36

; .
,, - :
< > :: < >I< >< >


, .
. 4-

< >

< >

. 4

()
. , .

III
37

3.1

. (), . ,
.

Program < >;


Label

< >

Const
Var
Type

< >
< >
< >

Procedure (Function) < >


Begin
< >
End.

.
.
, ,
:
1. ;

38

2. Const, Type, Var, Label


.
. a c ad m

) .
b d bc n

( :

Program Division;
Var a,b,c,d,m,n: Integer;
Begin ReadLn (a,b,c,d);
m:=a*d;
n:=b*c;
WriteLn (m,n)
End.
. Program (),
(Divizion-). Var (variables - ), ().
, Integer - .
Begin () End (). .
() . , . - (;) , . End
. (,) (
, .). ,
39

, . , . - , - .
, , .
, .
, .
,, .
(
), .
- , {...} .
(*...*). . , . ,
. . . . .
-, , ()
40

.
.
.

3.2. .

:
1. - ,
;
2. ,
, - , .
. , . ,, .
, . ,
, .
,
, .

:
1. ;
2. ;
3. .
:
41

1. ;
2. ;
3. .

, . , .
< >.pas
pas- . .
Edit .

.
( ).
.

< >.exe
()
Compile.
Run . . , , ,
,

42

.

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

3.3. .

. ,
, .
:AA- Z- ()
a- z- ( ).
: 0,1,...,9
: 0,1,...,9,A,B,C,D,E,F.
: + - * / = < > [ ] . , ( ) : ; { } ^ @ $ #
( ):
: ;

<= ;

>= ;

(* *)

( { }- )

<> ;

(. .) [ ]-.

43

, (ASCII- 32- ) D ASCII (0- 31-).



(, , -), . , . . :
absolute

downto

goto

mod

record

type

and

else

if

nil

repeat

unit

array

end

implementation

not

set

until

begin

external

in

of

shl

uses

case

file

inline

or

shr

var

const

for

interface

packed

string

while

div

forward

interrupt

procedure

then

with

do

function

label

program

to

xor

,
.

. . , , , , . :

<>

<>

< >
<>

:
, . 44

- (Shift -). ()
max, MAX, MaX, mAx-
.
( )
, 63
, 63 ,
.
. :
{ , <<}>> }
(* , <<*)>> *)
, (, ...) ,
.
, {$ (*$ ,
.
.

3.4

- .
: , . , .
45

. ,
() .
.
.
3.1 . . Real , -Integer.

martivi

rigobiTiA

mTeli

namdvili

logikuri

masivebi

simboluri

striqonebi

CamoTvliTi

struqturirebuli

simravleebi

mimTiTeblebi

intervali

Canawerebi
failebi

, ,
-
. , .

46

. . .
< > Var

< >
;

< >

<>

<>

3.1

()

Integer

-32768...32767

Byte

0...255

Word

0...65535

Shortint

-128...127

Longint

-2147483648...2147483647

Real

2,9 10 39 ... 1,7 10 38

(11-12)

Single

1,5 10 45...3,4 10 38

(7-8)

Double

5 10 324...1,7 10 308

(15-16)

Extended

10

3,4 10 4932...1,1 10 4932 (19-20)


Boolean

true, false

Char

ASCII

47

:
Var m,n,k: Integer;
x,y,z: Real;
Symbol: Char;

. ,
.


, , : 25, -24712, 376.

() $, $00000000 $FFFFFFFF.

, , .
; : 56.346, 0.000055, -345678.0.

() .
<> E <>
<> - . <> - - . : 7E-2 ( 7 10 2 ), 12.25E6 (12,25 10 6 ), 1E-25 ( 10 25 ).

- , , : 'A', 'W', '!', '9'.

- - : true,false.
- ,
, 'Turbo Pascal', '35-45-79'.
( ) 255 .
48

, ,
. :
< > Const

< >
;

< > <>

<>

=
=

:
Const
Max=1000;
G=9.81;


. , .
:
< >

<>

<>

:
Const

=
=

<>

NumberCard:Integer=1267;
Size:Real=12.67;
Symbol: Char='*';

,
.
.

True

boolean

False

boolean

MaxInt

integer

32767

49

. ,
.
:
< >

Type

< >
;

< > < >

<>

. , .
< >

<>

,
. :
Type Gaz=(C,O,N,F);
Metal=(Fe,Co,Na,Cu,Zn);
Var G1,G2, G3: Gaz;
Mel1,Met2: Metal;
Day: (Sun, Mon, True, Wed, Thu, Fri, Sat)
Gaz Metal- , G1,G2, G3 Met1, Met2 . Day
, .

(Fe,...,Zn,C,...,F, Sun,...,Sat) ,
.

50

2 . A 65535.
() .
0- .
, .
< >

<>

..
...

<>


.
. .
:
Type Numbers=1..31;
Alf='A' .. 'Z';
Var

Data:numbers;
Aso:Alf;

3.5 , , .

.
.
. I- , R- .

51

( ), (
). . . - <>.

R,R

I,I

I,R;R,I

R,R

I,I

I,R;R,I

R,R

I,I

I,R;R,I

R,R

I,I

I,R;R,I

A+B

A-B

A*B

A/B

div

A div B

I,I

mod

A mod B

I,I


.
.
<> < >

< >
,

52

- - (, , ). .
.

.
. , , . ,
. - .
-

Abs(x)

I,R

I,R

Arctan(x)

I,R

x- ()

Cos(x)

I,R

x- (x-)

Exp(x)

I,R

e x -

Frac(x)

I,R

x-

Int(x)

I,R

x-

Ln(x)

I,R

x-

[0,1)

Pi

Random
Random(x)
Round(x)

=3,1415926536E+00
x ( )

[0,x)

53

Sin(x)

I,R

Sqr(x)

I,R

I,R

Sqrt(x)

I,R

Trunc(x)

x- ()
x-
x-
, x- .

.
.
:

2a 0.5 sin( x y )
0.2c ln( x y )

(2 * a Sqrt(0.5 * Sin( x y))) /(0.2 * C Ln( x y))

, :
1. , .
(. ).
2. . ( A+-B, A+(-B)).
3. () . , , .
:

, (-);
*, /, div, mod;
+, -.
54

4. , ;
5. .
,
. , ,
..
,
. - :
y- , : : 3
X*X*X; ;
y , :

x y e y ln(x ) .

Exp(y*Ln(x)).
1

a 1 (a 1) 3

:
Exp(1/3*Ln(a+1)).
,
, .
.


<
>

<>

:=

< >

55

:
Y:=(F*N-4.5)/Cos(x)
:
, : = . ,
. , , .

3.6 .

() . , .
,
(, ,
). .
- . .
:
Read(< >)
< >-
, ;
:

Raed(a,b,c,d);

, a,b,c,d (
) Enter. 56

Read , .
:
Var T:Real;
J:Integer;
K:Char;
Begin
Raed(T,J,K);
, .
253.98 100 G (Enter).
Raed ,
, Read , Read .. .
, .
:
Var A,B:Integer;
C,D:Real;
Begin
Read(A,B)
Raed(C,D);
,
18758 34 (Enter) 2.62E-02 1.54E+01 (Enter).

ReadLn(< >);
ReadLn Read Line- . ,
. ReadLn -

57

. Read ReadLn
ReadLn(A,B);
ReadLn(C,D);

18758 34 (Enter)
2.62E-02 1.54E+01 (Enter)
( ) : Write(< >) , , ,
. Write(234,'A'); ( ). , 234A , .
, .
a=1, b=2, c=3,
Write(a,b,c);
123 ( ).
, .
: a,b,c- ,
Write(a+b+7;(c-a)*b);
104-.

58


.
, a,b,c-.
Write(a,' ',b,' ',c);
1 2 3, U Write , .
:
WriteLn(< >);
WriteLn-Write Line .
Write ,
. WriteLn- ( ).
. ,
. .
: ( ) .
,
.

.
.
I,P,Q- ;
R- ;
B- () ;
59

Ch- ;
S- ;
# - ;
* - <<+>> <<->> ;
_ - .

Write .

I - I .
I-

134

Write(I)

134

287

Write(I,I,I)

287287287

I:P - P I .
I-

134

Write(I:6)

___134

312

Write((I+I):7)

____624

R 18 R . R0,0
_#.##########E*##,

R<0,0-

#.##########E*##.

60

R -

715.432

Write(R)

-7.1543200000E+02

-1.919E+01

Write(R)

_-1.9190000000E+01

_-

R:P- P R
, . 7 , 8 .
.
R -

511.04

Write(R:15)

5.110400000E+02

-46.78

Write(-R:12)

-4.67800E+01

R:P:Q- P R
,
Q (0Q24) .
Q=0, .
Q>24,
R -

511.04

Write(R:8:4)

511.0400

-46.78

Write(R:7:2)

_-46.78

Ch:P- P Ch
.

Ch -

Write(Ch:3)

__X

Write(Ch:2,Ch:4)

_!___!

S- S-
S -

' Day N'

write (S)

_Day n

'RRDD'

write (S,S)

RRDDRRDD
61

S:P -P

S-

.
S -

'day N'

write (s:10)

_____day N

'RRDD'

write (s:5,s:5)

_RRDD_RRDD

B- B : true false :
B-

true

write(B)

true

false

write (B,not B)

falseTrue

B:P- P B
.
B -

true

write (B:6)

__true

false

write (B:6,not B:7)

__false___true

3.7

Write Writeln
A .
. , , .
CRT .

62


Uses CRT
CRT : , , ,
.
. ( ). .
, . , .
CRT , ( ).

TextMode (< >)

(), .
TextMode(1); TextMode(CO40);
( ).
, , CO80 ( ).
.
(X,Y). X -
.
X=1. Y - . .
63

80 x 25
(1,1); - (80,25); (40,13).
, (X,Y)- CRT
GoToXY(x,Y)
Byte .
* :
Uses

CRT;

Begin
ClrScr;
GoToXY(40,13);
write ('*');
End.
ClrScr .
.
, .

. 80X25 (1,1) - (80,25).
. :
Window (X1,Y1,X2,Y2).
Byte ,
. Window
, , .
64

. EGA, VGA, SVGA 16 .


CRT
,
.
:
TextBackGround (Color)
, . ,
(), , .
, 4
Uses

CRT;

Begin
Window (1,1,40,12);
TextBackGround (White); ClrScr;
Window (41,1,80,12);
TextBackGround (Red); ClrScr;
Window (1,13,40,25);
TextBackGround (lightRed); Clrscr;
Window (41,13,80,25);
TextBackGround (green); Clrscr;
End.

15
. ,

65

Uses CRT;
Var I:Byte;
Begin
TextBackGround (White);
ClrScr;
GoToXY (1,12);
For I:=0 To 14 Do
Begin
TextColor (I);
Write (I:5);
End
End.


CRT .
.
ClrEOL . ,
.
DelLine. .
.
InsLine , .
LowVideo, NormVideo, HighVideo ,
,

.
KeyPressed .
() - ()? true, 66

false, .

, .
,
( End- ) :
Repeat Until KeyPressed;
, ,, . ,
,
(True), (End) .
().
,
,
( ) .
; (80X25, ,
). End :
Repeat Until KeyPressed;
Window (1,1,80,25);
TextBackGround (Black);
ClrScr;
CRT
. .

67

3.8 , .
.

()

. ,

, . , , . , <<- >> - ; <<5>3>>- ; <<- >>-; <<1=0>> -. .


X<0 , X-,
X- . .

() .
. - - .

.
: , ( ) (
).
. ,
,, (X=Y) << (X
Y)>>. , X Y

68

, X Y -. .
() & ,, : (X>0)&(X<1) <<X x 1->> , X (0,1) .
V ,, : (X=0)V(X=1) <<X 0- X 1->>
X 0 1 - . , .
, , true-,
false - , boolean.
( )
false true .

.
<
>
<>

< >

<>

< > :
= -

<> - ( );

> -;

< - ;;

>= - ; <= - .

: x<y; a+b>=c/d; abs (m-n)<=1;

69

.
4 : not-; and- (); or- ().
- - . Xor.
, ,
.
. .

Not A

A and B

A or B

A xor B

.
-
.
, 1 x 50 (1<=X) And (X<=50);
.
, . (false true). , , , . .

70

d=true;
c=true;

b=false;

y=0.5 (x,y , d,b,c-

x=3.0;

):

1) x<2*y

- false

2) true -

true

3) d -true

4) not not d - true

5) not (x>y/2) - false

6) d and (x<>y) and b - false

7) (c or d) and (x=y) or not b -true

<
>
< >

:=

< >

1) d:=true

2) b:= (x>y) and ( k<>0);

3) c:= d or b and not ( b and d).

3.9.

,
.

ord (x)
pred (x)
succ (x)
chr (x)
odd (x)

Byte
I

I
x
x
char
boolean

x-
x- .
x-

x
true x , false x .
71

ord, pred, succ


. , .
ord . :
ord (-35)= -35 ord (128)=128
, , ,
y:=pred (x) y:=x-1, y:=succ(x)
y:=x+1. .


ord ('a') < ord ('b') <...< ord ('z').

pred ('b')='a'

succ ('b')='c'

:
Pred('5')='4';

Succ('5')='6'.

chr(x) ord(x) , x .

chr(ord(x))=x

(x )

ASCII :
ord(a)=97;

chr(97)='a'.

. , '5'-
5. :
N:=ord('5')-ord('0'),

72

N . , '5'-
, '0'- .
. : false, true. ;
ord(false)=0,

succ(false)=true

ord(false)=1,

pred(true)=false

( )
z:=x*ord(x>=y)+y*ord(y>x)
x, y, z .
, z max(x,y)- (x y ).

3.10 .

. :
if <> then <1> else < 2>;
,
:
if <> then <>;
:
<
> if

< >
Else

then

<>

<>

73

< > (<>)


true then <>, (false) else
<> - if (else- ) .
1. a,b,c .
.
s= p( p a)( p b)( p c) ,
p=

abc
- .
2

: .
, < >, .
Program Geron;
Var A,B,C,P,S:real;
Begin
Write('a='); ReadLn(A);
Write('b='); ReadLn(B);
Write('c='); ReadLn(C);
If (A>0) And (B>0) And (C>0) And (A+B>C) And (B+C>A) And (A+C>B)
then begin
P:=(A+B+C)/2;
S:=sqrt(P*(P-A)*(P-B)*(P-C)):
WriteLn('S=',S)
74

end
else WriteLn(mcdari monacemebia)
End.
. :
< >

While

< >

<>

Do

< >.
. <>
, ( ),
(Begin--End).
2.
1

1 1
1
... ...
2 3
i

, , -
i (MaxInt).
s:=0;
i:=1;
while (1/i>=Eps) and (i<MaxInt) do
Begin
s:=s+1/i;
i:=i+1
End;
- ( )
< >

Repeat
Until

<>

< >
75

, < >
(true).
:
s:=0;
i:=1;
Repeat
s:=s+1/i; i:=i+1;
until (1/i<Eps) or (i>=Maxlnt);

3.11 .

< >For

< 1>

To

< >

< 2>

Do

:=

<>

DownTo

< >
.
(To < 1> < 2>-) For :
1. < 1> < 2>- . .
2. < > < 1>- .
76

3. <
2>- ,
, ( <>), .
4.
( -
) 3-.

For

while
: ,

.

( .
< 1> < 2>-.
(Down To) (. ).
DownTo - ... .
( 4) (, I:=pred(I)). 3-. , < 2>-.
For
:
Real ;
- < >
;
- < ) 77

,
, .
: M- N - .
M N . :
N
i,
S i M
,

MN
M>N

For
.
I () M- N- . I-
. I N- , , (Begin ... End) .
MN
M>N ( To)
dasawyisi

Program Summa;
Var I,M,N,S:Integer;

M,N
S=0

Begin
Write('M='); ReadLn(M);
Write ('N='); ReadLn(N);

I=M,N
S=S+I
S
dasasrulili

S:=0;
For I:=M To N Do
S:=S+I;
Write('S=',S)
End.

N- M- ( DownTo), For
For I:=N DownTo M Do

78

. . :
For C:='a' To 'z' Do
Write (c,'-', ord(c));
C- Char.

3.12.

, .
. , - , , ,
.
1. ;
2. ;
3. ,
() .
(integer
-32768 +32767 ). . . ,
( , -

79

). ,
, .
, . :
* , .
* ,,
,, .
,,?
- , : , , .
, .
,
,
.
r0

r1

r2

r3 . r I

ri+1.....

rn-1

rn

, , . ( 0-
).
. (- t

p-t

) 2- x 2 =2 , p- , t . , 80

(p)
.
rmin r1 r0 2 pmin t


rmax rN rN 1 2 pmax t

, Pmin=-64; Pmax=63; t=24, rmin=2-88; rmax=239.


,
,
, , . , 3
, 24-
, 5 - 40- .
() . X- ri ri+1
,
( ). , , , .
, X Y
ri<X<ri+1; ri<Y<ri+1, XY .

. ri =1, ri+1 =1+.
, , -.
81

:
Program
Var

Epsilon;
Eps: Real;

Begin Eps:=1/2;
While 1.0+Eps>1.0 Do
Eps :=Eps/2;
writeLn ('epsilon=',Eps)
End.

3.13.



. ,
.
: .
: a
b. a+b, |a-b| a*b
(USG). : USG (a+b,|a-b|,a*b).
: x, y z
, USG (x,y,z)= USG(USG(x,y),z). , ,
USG
USG.
, m n a+b
Ia-bI- C:=K
m n C a*b
USG(a+b,Ia-bI,a*b) .

82

,
Program USG1;
dasawyisi

Var a,b,c: Integer;


Procedure Evklid (m,n: Integer; Var k: Inteara

m<>n

ger);
Begin
While m<>n Do
If m>n then m:=m-n else n:=n-m;

ki

ara

k:=m; End;

m>n

Begin
ReadLn (a,b); { n:=n-m

m:m-n

}
Evklid (a+b,Abs(a-b),c); { }
Evklid (c,a*b,c); { }

k:=m

Writeln ('USG=',c)
End.

dasasruli

< >
;

< >

<>

< >
Procedure

< >

< >

< >::=< >


| <->
83

<->
var

< >

<>

<->
:

< >

<>

, . , - ( - ), .
, . .
(, ) .
< >

< >

< >

, . .
, . ,
, - ..
.
. :
()
. :
(84


).
m n -. . a+b abs(a-b)
; - c a*b. k -. . k- c. .
.
.

Program USG2;

ReadLn (a,b);

Var a,b,k,m,n: Integer;

m:=a+b;

Procedure Evklid;

n:=abs (a-b);

Begin

Evklid;

While m<>n Do

m:=k;

If m>n Then m:=m-n Else n:=n-m;

n:=a*b;

k:=m

Evklid;
WriteLn ('USG=',k)

End;
Begin

End.

k , k:=m m:=k -
WriteLn ('USG=',m).
:
.
(, , .) , .
, .

85

.
,
() .
USG m,n,k ;
a,b,c . . ( ) .
USG2 . Evklid-
( ). m n
. k, ( ).
, .

, , . - .

. , . , () . ( ,
). :
< >
<>

<>

Function

(
86

<>

< >

< >

: <>

, - -. . , ( ).
:
Program USG3;
Var a,b,Rez: Integer;
Function Evklid(m,n:Integer) : Integer;
Begin
While m<>n do
If m>n Then m:=m-n Else n:=n-m;
Evklid:=m;
End;
Begin
ReadLn (a,b);
Rez:= Evklid(Evklid(a+b, abs(a-b)), a*b);
WriteLn ('USG=', Rez)
End.
, - , ,

.
, :
< >(< >)
,
.
, USG3-
87

.
. ,
.
( End
) . , ,
. - Exit. ,
:
Function Max(X,Y: Real): Real;
Begin
Max:=X;
If X>Y Then Exit Else Max:=Y
End;

(, , )
. ,
. .
.

.

88

. . A B
- .
. B
A ;
ZiriTadi programa
A

A
B-, A-
B- . A1 A2 -

A1
A2

A- ; A2- -

A1-, . B1

B1

B2

A-,

B21
B22

B1- , A1-, A1-


B -

.
B22 B21, B1- A-. ? - .
( )
(), . :

Program Example1;
Var A: Integer;
Procedure BI;
Var A: Integer;
Begin WriteLn ('A=',A);
End;
Begin A:=5;
BI
End.

Program Example2;
Var A: Integer;
Procedure BI;
Begin
WriteLn ('A=',A);
End;
Begin A:=5;
BI
End.

89

? () :
A= . . .
( ) ,
. :
A=5
A ( ), (). . ( ) () .
A . . , 5,
, .
? , .
.
.
, .
.
. , . .
n=0,
n>0.

. . :
n

n 1

i 1

i 1

n! i 1 2 3 n n i n (n 1)!

90

0!=1 . , ,

:
1!=10!=11=1; 2!=21!=21=2; 3!=32!=32=6; ..
-,
.
Function Factor (N: Pozint):Pozint;
Begin
If N=0
Then Factor:=1
Else Factor:=N*Factor(N-1)
End;
, Pozint , :
Type Pozint=0. .MaxInt;
X=3
X:= Factor(3);
, 3, Factor(2).
Factor(1)- . , Factor(0)-
1. , :
Factor(1)=1* Factor(0)=1
Factor(2)=2* Factor(1)=2
Factor(3)=3* Factor(2)=6.
.
, . ,
: - ; - .

91

- , ,
. n!- :
F:=1;
For I:=1 To N Do
F:=F*I;
, ,
. , , .
( ). . ,
.
, .

3.14 .

.
. :
k ,
:
ak+1=F(a1, a2, . . . , ak); ak+2=F(a2, a3, . . . , ak+1); ak+3=F(a3, a4, . . . , ak+2); . . .
F - k . , , :
ai=F(ai-1, a i-2, . . . , a i-k)
. k , .
- -
, , k , k .
92

(1) (2) .
a1=1; a2=3; a3=5; a4=7 a5=9 . . . (1)
a1=1; a2=2; a3=4; a4=8 a5=16 . . . (2)
:
ai=ai-1+2
, :
ai=2ai-1
, ( ). , . . , :
1,
ai
ai 1 2,

Tu i=1,
Tu i>1.

1,
ai
2 ai 1 ,

Tu i=1,
Tu i>1.

:
1, 1, 2, 3, 5, 8, 13, 21, 34, 55,
, , , ( ) , :
1,

ai
ai 1 ai 2 ,

roca i=1, i=2


roca i>2.

. , n!
n- :
a0=1; a1=1!; a2=2!; a3=3!; a4=4!
93

1,
ai
ai 1 .i,

roca i=0
roca i>0

.
:
1. (n-) ;
2. (.
n ..);
3.
, ;
4. , . (.
);
5. .
, , , .
. -

,
.

1. (1) n-
Var N,I: 0 . . MaxInt;

A:=1;

A: Real;

For I:=2 To N Do

Begin

A:=A+2;

Write('N=');
ReadLn(N);

WriteLn('A(',N,')=',A:6:0)
End.

ai=ai-1+2 A:=A+2.
94

2. (2) n (
n ).
Var N,I: 0 . . MaxInt;
A,S: Real;
Begin
Write('N='); ReadLn(N);
A:=1; S:=A;
For I:=2 To N Do
Begin
A:= 2*A; S:=S+A
End;
WriteLn('S=',S:6:0)
End.
() . :

3. n (n3) . , .
Var N,I,K,F,F1,F2: 0 . . MaxInt;
Begin
F1:=1; F2:=1; K:=0; ReadLn(N);
WriteLn('F(1)=',F1, ' F(2)=',F2);
For I:=3 To N Do
Begin
F:= F1+F2; WriteLn('F(',I,')=',F);
IF Not Odd(F) Then K:=K+1;
F1:=F2; F2:=F
End;
WriteLn('luwi ricxvebis raodenoba mimdevrobaSi tolia ',K)
End.

, .

95

4. x - (
=0,000001)

- .
, ex-, e (e=2,71828 . . .) , , , , - (xi/i!>), , ,
-.
:

, i-

. ,
. , , ,
ai=Kai-1.

x i / i!
x

x /(i 1)! i
i 1

x
x
: a0 1, a1 a0 . , a3 a 2 . ..
2
3
, :
96

1,
x
ai
a . ,
i 1 i

roca i=0
roca i>0.

, :
Var A,X,S,Eps: Real;
I: Integer;
Begin
Write('X='); ReadLn(X);
Write('Epsilon='); ReadLn(Eps);
A:=1; S:=0; I:=0;
While Abs(A)>Eps Do
Begin
S:=S+A; I:=I+1; A:=A*X/I
End;
WriteLn('S=',S:10:4)
End.
, .
s- ( ). . ,
, ,
. While Repeat (For . ?).

5. N x- (x>0) :

97

. . ,
N- :

Var A,X: Real; I,N: Integer;


Begin
Write('X='); ReadLn(X);
Write('N='); ReadLn(N);
A:=Sqrt(X);
For I:=2 To N Do
A:=Sqrt(X+A);
WriteLn('A=',A)
End.
.
.
.
.
,
a0 d:

a0 ,

Tu i=1,

ai =
ai-1+d , Tu i >1.

98

- :

Function Progresia (A0,D: Real; I: Integer) : Real;


Begin
If I=1
Then Progresia:=A0
Else Progresia:= Progresia (A0,D, I-1)+D
End;
20 , Fibon :
Var K: Byte;
Function Fibon (N: Integer) : Integer;
Begin
If (N=1) Or (N=2)
Then Fibon:=1
Else Fibon:= Fibon(N-1)+ Fibon(N-2)
End;
Begin
For K:=1 To 20 Do WriteLn(Fibon(K))
End.
, . , ( )
.

, ,
.
:
6. 30

96 70 -. ,
. k- , k=1,2,...,29.
99

i- pi- (i=0,1,2,,30). , p0=96, p30=70.


K .

p1 p0 Kpo (1 K ) p0 ; p2 (1 K ) p1 ; p3 (1 K ) p2 ;...; pi (1 K ) pi 1 .

, ,
:

96,

Tu i=1,

pi =
(1-K)pi-1 Tu 1 i 30.
, K . , , p0=96, p30=70, :
p30 (1 K ). p29 (1 K ) 2 . p28 (1 K ) 3 . p27 ... (1 K ) 30 . p0 (1 K ) 30 .96

, 70=(1-K)3096

, :
Var I: Byte;
P,Q: Real;
Begin
P:=96;
Q:=Exp(1/30*Ln(70/96));
For I:=1 To 29 Do
Begin
P:=P*Q;
WriteLn(I, dges pacientis masa=,P:5:3,kg)
End;
End.

100

3.15.
.


- , . , Turbo Pascal- , , ,
.., , .
.
, , ,
: , , .
, ,
, . .
IBM PC- Turbo Pascal-
, Graph
. 2-,
. Graph
Uses Graph;
. , - .

( ) .
:

(M x N, M-

(),

N-

();

( ).
-

101


. Graph
:
Procedure InitGraph(Var Driver, Mode : Integer; Path : String);
Driver ,
Mode ,
String Path
.
Graph ,
, 2- 2.1-.
, VGAHi
VGA (VGA- ) .

Uses Graph;

Var Driver, Mode : Integer;


Begin
Driver : = VGA;{}
Mode : = VGAHi;{ }
InitGraph(Driver, Mode, 'C:\TP\BGI');

Uses Graph;
Var Driver, Mode : Integer;
Begin
Driver : = VGA;{}
Mode : = VGAHi;{ }
InitGraph(Driver, Mode, 'C:\TP\BGI');

, egavga.bgi VGA
C:\TP\BGI. VGAHi 640x480
16 .

102


,
, :
Driver := Detect;
InitGraph(Driver, Mode, 'C:\TP\BGI');

.
.
Graph :
Procedure CloseGraph;
.
. .

, .
.
2.2- EGA, VGA 16
.
:
Procedure SetBkColor(: Word);
Color .
:
Procedure SetColor(Color : Word);
, 0,
( ).
( )
, :

103

Procedure ClearDevice;
.
.
.

640

(x,y)

480

Y - . VGAHi
.

:
Function GetMaxX;
Function GetMaxY;

.
. ,
.
:
Procedure SetViewPort(XI,Yl,2,Y2:Integer;Clip:Boolean);
(XI, Y l) - ; (2, Y2) -
; Clip - ; Clip =
True, ,
.

.

104

.
.
(0, 0).
:
Procedure MoveTo(X, Y : Integer);
X, Y - ,

.

-
.
.
:
Procedure PutPixel(X, Y : Integer; Color: Word);
X, Y - , Color - .
1.
100 x 100,
4 :
Uses Graph;
Var Driver, Mode : Integer;
X, Y, XI, Yl, X2, Y2, Xc, Yc : Integer;
Begin
{ }
Driver : = Detect;
InitGraph(Driver, Mode, 'C:\TP\BGI');
{ }
105

Xc := GetMaxX Div 2;
Yc := GetMaxY Div 2;
{ }
XI := Xc - 50;
Yl := Yc - 50;
X2 := Xc + 50;
Y2 := Yc + 50;
{ }
SetViewPort(XI, Yl, X2, Y2, True);
{ }
SetBkColor(Yellow);
ClearDevice;
{ }
For X := 1 25 Do
For Y := 1 2 5 Do
PutPixel(4 * X, 4 * Y, Blue);
{ <Enter> }
ReadLn;
{ }
CloseGraph;
End.

.
,

.
, : ,
, , ..
.
Graph
.
106

(XI, Y1) (2, Y2) :


Procedure Line (XI, Yl, 2, Y2 : Integer);

(X, Y)
:
Procedure LineTo(X, Y : Integer);

DX, DY
:
Procedure LineRel(DX, DY : Integer);

(XI, Y1) (2, Y2)


:
Procedure Rectangle(XI, Yl, 2, Y2 : Integer);

(X, Y) R :
Procedure Circle(X, Y : Integer; R : Word);

(X, Y) , R ,
BegA EndA (
X ):
Procedure Arc(X, Y : Integer; BegA, EndA, R : Word);

(X, Y) , BegA
EndA , RX RY :
Procedure Ellipse (X, Y : Integer; BegA, EndA, RX, RY: Word);
2.
.

100 150
100

250 300

170

107
300

, , , ,
.
.
Uses Graph;
Var Driver, Mode : Integer;
Begin
{ }
Driver := Detect;
InitGraph(Driver, Mode, 'C:\TP\BGI');
SetColor(White); { }
SetBkColor(Black); { }
Rectangle(100, 100, 300, 300); {}
Circle (150, 170, 30); { }
Circle(250, 170, 30); { }
(150, 170, 45, 135, 40); { }
Arc(250, 170, 45, 135, 40); { }
Ellipse(200, 250, 0, 359, 10, 20); {}
Rectangle(130, 280, 270, 290); {}
MoveTo(100, 300); {.
}
LineTo(50, 350); {}
LineTo(350, 350); {}
LineTo(300, 300); {}
PutPixel(150, 170, Black); { }
PutPixel(250, 170, Black); { }
ReadLn; { }
CloseGraph; { }
End.
,
.

108

Graph

(, , ),
SetLineStile (. 2).
.
.
SetColor .
( ) . ,
, , .. (.
2).

(Fill)

(Color)

:
Procedure SetFillStyle(Fill, Color : Word);

, :
Procedure Bar(Xl, Yl, 2, Y2 : Integer);
, (SetLineColor,
SetLineStyle) (SetFillStyle), :
Procedure FillEllips(X, Y, RX, RY : Integer);
,
:
Procedure Sector(X, Y : Integer; BegA, EndA, RX, RY: Word);
,
:
Procedure PieSlice(X, Y : Integer; BegA, EndA : Word);

. (X, Y)
(Border). , :
Procedure FloodFill(X, Y : Integer; Border : Word);
Graph . ( 109

), ,
(Txt) (X, Y) :
Procedure OutTextXY(X, Y : Integer; Txt : String);
, THIS
IS A ROBOT, 2- OutTextXY(195, 400, ' THIS IS A ROBOT ');
. - .
, ,
, , .
.
, y=F(x)
.
:
1. ,
. : Xmin -
Xmax - .
2. ,
: Ymin Ymax.
, .
3. ,
: [Xgmin, Xgmax], [Ygmin, Ygmax].
, Ygmin >Ygmax.
, : (X, Y) -
( ,
" "), (Xg, Yg) - .
110


( Round).

, - .

[Xgmin,

Xgmax]


Y .
- X (Xi, Yi)
:

(Xi, Yi), (Xi+1, Yi+1)


.
3. y=sin(x) x[0;2]-
() .
, Xmin=0, Xmin=2. sin(x)
-1- 1-. Ymin=-1, Ymin=1.
:
Xgmin=10, Xgmin=200.
Ygmin=140, Ygmin=40.

:
Xi= Xmin+ih; Yi= sin(Xi); i=0, ,190.

111

h
:
.

(). X
Yg=90, Y Xg=10.
:
Uses Graph;
Var Driver,Mode: Integer;
X:Real; Xg,Yg, I : Integer;
Begin
{ }
Driver := Detect;
InitGraph(Driver, Mode, 'C:\TP\BGI');
SetColor(White); { }
SetBkColor(Black); { }
Line(10, 90, 200, 90); { X }
Line(10, 20, 10, 160); { Y }
{ }
X := 0;
For I := 0 To 190 Do
Begin Xg := 10 + Round(95/Pi * X);
Yg := 90 - Round(50 * Sin(X));
PutPixel(Xg, Yg, Yellow);
112

X := X + Pi/95
End;
{ }
OutTextXY(15, 30, ' ');
OutTextXY (205, 90, 'x' ) ;
OutTextXY(130, 40, ' Y = Sin(X) ');
Readln; {}
CloseGraph; { }
End.

3.16. .

,

. . ,
.

.
(ASCII ).
0- 255. .

. :
,
IBM PC computer
33-45-12

:
Var <>: String [< >];
:
Var Gvari: String [20];
113

- .
, , 255-. :
Var Striqoni: String;
, <>. , ()

. , . , ,
.
() . . :
Gvari[5], Gvari[i], Striqoni[k+1].
(), .
.
String Char .
.
, , . .

(+)
. , . :
+ IBM+ PC.
:
IBM PC.
225- ( ),
( ).

114

=, <, >, <=, >=, <> , (true false). , . , () .


,
, , , . ,
.
:

saxeli1<saxeli2

True

pascal>PASCAL

True

Pele-<>Pele

True

MS DOS=MS DOS

True

, .

Copy(S,M,N) S N , M . M N - .
:
S-

ABCDEFG

Copy(S,2,3)

BCD

ABCDEFG

Copy(S,4,4)

DEFG

Concat(S1,S2,,SN) (, ) S1,S2,,SN .
:

Concat(AA,XX,Y)

AAXXY

115

Length(S) S .
.
:
S-

ABCDE

Length(S)

(A+B)*C

Length(S)

Pos(S1,S2) S2 S1 . , S2-
S1- .
:
S2-

abcdefg

Pos(cd,S2)

abcdcdefg

Pos(cd,S2)

abcdefg

Pos(k,S2)

Delete(S,M,N) S N , M .
:
S-

S-

abcdefg

Delete (S,3,2)

abefg

abcdefg

Delete (S,2,6)

S (N).

Insert(S1,S2,M) S2 S1 M .
:
S2-

PC

Insert(IBM-,S2,5)

Nax. 2

Insert(,S2,6)

:
116

S2-
IBM-PC
Nax. 2

1.
.
Program Sitkva-1;
Var S1,S2: String[10];
Begin
S1:=;
S2:=Copy(S1,7,2)+Copy(S1,3,4)+S1[2];
WriteLn(S2)
End.
2. .
Program Sitkva-2;
Var S1: String[10];
Begin
S1:=;
Delete (S1,3,2); Insert(E,S1,2);
WriteLn(S1)
End.
3. , N *- .
Program Stars;
Var A: String;
N,I: Byte;
Begin
Write(SemoitaneT varskvlavebis raodenoba);
ReadLn(N);
A:=;
For I:=1 To N Do
A:=A+*;
WriteLn(A)
End.
A- () ,
*-.

117

4. , !- ( ).
Program Cifrebi;
Var S: String;
K,I: Byte;
Begin
WriteLn(SemoitaneT striqoni);
ReadLn(S);
K:=0; I:=1;
While (I<=Length(S)) And (S[I]<>!) Do
Begin
If (S[I]>=0) And (S[I]<=9)
Then K:=K+1; I:=I+1
End;
WriteLn(! niSnamde cifrebis raodenobaa ,K)
End.
K , I
. ! , ,
. S[I] ,
0<S[I]<9.
5. , :
a b=
a b ,
: +, -, .
, 7+5=. ,

. ,
( ).

118

.
. . ,
4 ,
. :
Program Interpretator;
Var Str: String;
A, B: 0 . . 9;
C: -100 . . 100;
Begin
{ }
Write(SemoitaneT striqoni);
ReadLn(Str);
A:=Ord(Str[1])-Ord(0);
B:= Ord(Str[3])-Ord(0);
{ }
Case Str[2] Of
+ : C:=A+B;
- : C:=A-B;
* : C:=A*B;
End;
{ }
WriteLn(Str,=,C)
End.
. . :
< >

Case

<>

<>
<>

Of
End

;
,
119

<> - ;
<> - ; <> - .
:
;
, ; , ;
( , ) .

Str[2]. +-, C:=A+B; -, C:=A-B; , *-, C:=A*B. Str[2] C .

. Case Else- . Str[2]
, , :
Case Str[2] Of
+ : C:=A+B;
- : C:=A-B;
* : C:=A*B;
Else WriteLn(operaciis niSani arasworia);
End;
, .

3.17. .
120

, . , ,
o

C:

-5.4

-3.7

12.2

15

10

11

24.8 28.9 30.8 35.7 27.9 22.6 18.1

12
8.3

.
,
. , T1-, T5- ..
:
{Ti}, i=1,2,,12.
(1,2,i .) .
. , :

TsaS

1 12
Ti .
12 i 1

, . ,
.

10

11

12

2000

-5.4

-3.7

12.2

15

24.8

28.9

30.8

35.7

27.9

22.6

18.1

8.3

2001

-6.3

-5.9

14.7

15.5

25.2

28.4

31.4

34.8

28.1

21.4

17.6

7.9

2002

-5.7

-6.5

15.8

16.3

24.3

27.9

32.8

35.2

29.2

22.9

17.5

8.8

2011

-5.9

-6.3

15

15.5

27.9

28.9

29.9

33.8

25.8

22.7

18

2012

-5.2

-9.2

11.9

15

26.1

28.5

30.2

36.8

27.7

23.0

19.0

8.1

121

,
. ,
, .

. , H2000,2 2000 , H2007,5 - 2007 ..
:
{Hi,j}, i=2001 .. 2012; j=1 .. 12.
. ,
:

Hmarti

saS

1 2009
H i ,3 .
10 i2000

HsaS

1 2009 1 12
1 2009 12
H

i, j 120 i
Hi, j .
10 i2000 12 i1
2000 j 1

,
, . , ,
. .
. :
T[1], T[5], T[i], H[2000,9], H[i,j] ..
, ,
, .

122

.
. , (Real).
.
:
Var <> : Array[< >] of < >;
. , :
Var T : Array[1 .. 12] of Real;
, ,
, , . . 1..12. . , T[i+j], T[m div 2].
,
Integer-. , :
Var Cod : Array[Char] of 1 .. 100;
L : Array[Boolean] of Char;
:
cod[x]; L[true]; cod[Chr(65)] L[a>0].
. ,
;
Type Index=(A,B,C,D);
Var Class-10 : Array[Index] of Byte;
, Class-10[A] 28-, A 28 . .

123

, .
Type Mas1=Array[1 .. 100] of Integer;
Mas2=Array[-10 .. 10] of Char;
Var

Num : Mas1; Sim : Mas2;

, .
, ( ).
, :
Var H : Array[2000 .. 2009] of Array[1 .. 12] of Real;
:
H[2000] [1], H[2001] [10], H[2007] [12], H[i] [j] ..
, :
H[2000,1], H[2001,10], H[2007,12], H[I,j] ..
H[2000] ,
2000 .
:
Type Month=Array[1 .. 12] of Real;
Year=Array[2000 .. 2009] of Month;
Var H : Year;
:
Var H : Array[2000 .. 2009,1 .. 12] of Real;
, , , . :
Var A : Array[1 .. 10,1 .. 20,1 .. 30] of Integer;

124

, 102030=600
6002=1200 . . . 64 ..

, .
, , . .
:
Const Imax=10; Jmax=20;
Var Mas: Array[1 .. Imax, 1 .. Jmax] of Integer;
.
. :

, .

(
). :
Var P,Q: Array[1 .. 5, 1 .. 10] of Real;
P:=Q P Q .
, . , H ,
2001 2000 (
), :
H[2001]:=H[2000];
125

, ,
:
P:=H[2001]; H[2001]:=H[2000]; H[2000]:=P;
P :
Var P : Array[1 .. 12] of Real;
. , :
For I:=1 To 12 DO
ReadLn(T[I]);
For I:=1 To IMax DO
For J:=1 To JMax DO
ReadLn(Mas[I,J]);
.
Read .
:
For I:=1 To 12 DO Write(T[I]:8:4);

-:
For I:=1 To IMax DO
Begin
For J:=1 To JMax DO
Write(Mas[I,J]:6);
WriteLn
End;
WriteLn
.
,
, JMax 12 ( ).
.

126

1. T[1..12]
.
Program Example1;
Const N=12;
Type Vec=Array[1 .. N] Of Real;
Var T,Dt: Vec;
St: Real;
I: Integer;
Begin
{ }
Write(SemoitaneT temperaturebis cxrili);
For I:=1 To N Do
Begin
Write(I:2,:);
ReadLn(T[I]);
End;
{ }
St:=0;
For I:=1 To N Do
St:= St+ T[I];
St:= St/N;
{ }
For I:=1 To N Do
Dt[I]:= T[I]-St;
{ }
WriteLn(saSualo temperatura tolia,St:6:2);
WriteLn;
WriteLn(saSualo temperaturidan gdaxrebis cxrili:);
For I:=1 To N Do
WriteLn(I:1,:,Dt[I]:6:2)
End.

-

127

. N
.
2. . , . : , TMax T[1]- . TMax
, TMax .
NumMax,
, .
TMax:= T[1];
NumMax:=1;
For I:=2 To 12 Do
If T[I]>TMax Then
Begin
TMax:= T[I];
NumMax:=I
End;
,
, NumMax . , If > >= .
3. . N , , X , , X1X2XN.
. , - .
: X1 X2, X2
X3, XN-1 XN ,
, . 128

XN-. XN-1 .. , () .
For I:=1 To N-1 Do
For K:=1 To N-I Do
If X[K]>X[K+1] Then
Begin
A:= X[K]; X[K]:=X[K+1]; X[K+1]:=A
End;

4.
. ,
,
.
: S 10
.
, .
Program Example-4;
Type Month=Array[1 .. 12] Of Real;
Year=Array[1999 .. 2008] Of Month;
Var H: Year;
S:Array[1999 .. 2008] Of Real;
I,J,K: Integer;
Begin { }
Write(SemoitaneT temperaturebis cxrili);
For I:=1999 To 2008 Do
For J:=1 To 12 Do
Begin
Write(J:2,., I:4,:);
ReadLn(H[I,J]);
End;
{ }
129

For I:=1999 To 2008 Do


Begin
S[I]:=0;
For J:=6 To 8 Do
S[I]:= S[I]+ H[I,J];
S[I]:= S[I]/3
End;
{ }
K:=1999;
For I:=2000 To 2008 Do
IF S[I]>S[K] Then K:=I;
WriteLn(yvelaze cxeli zafxuli iyo,K:5, wels.)
End.
3.18. . .

- .
() .
,
.
. 0
255- .

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

130

. :
[3,4,7,9,12] ;
[1 .. 100] 1 100 ;
[a,b,c] a, b c- ;
[A .. Z,?,!] ,
.
[] , , .

. , [1,2,3] [3,2,1] (
) .
, . [1,2,3,4,2,3,4,5]
[1 .. 5] .
:
Var <> : Set Of < >;
:
Var A,D : Set Of Byte;
B : Set Of a .. z;
C : Set Of Boolean;
- . :
< > := < >;
:
A:=[50,100,150,200];
B:=[m,n,k];
C:=[True,False];
D:=A;
131

.
.
. , .

, .

. ,
A B A B
. +.
A+B

A*B

A-B
A

A
B

a
b

. .
g
:
[1,2,3,4]+[3,4,5,6][1,2,3,4,5,6]

. A B , , A B (. .).
:
[1,2,3,4][3,4,5,6][3,4]

. A B ,
, A
B (. .). -.

[1,2,3,4]-[3,4,5,6][1,2]
[3,4,5,6]-[1,2,3,4][5,6]
, , - .

132

. ,
. ,
True False. , > <. , . , A B .

True

False

A=B

A B

A<>B

A B

A<=B

A B -

A>=B

B A -

, . M
:
Var M : Set Of Byte;
:
M:=[3,4,7,9];
:
M=[4,7,3,3,9]

- True,

M<>[4,7,3,9]

- False,

[3,4]<= M

- True,

[]<= M

- True,

M>=[1 .. 10]

- False,

M<=[3 .. 9]

- True.

.
. x , M - ,
:
x In M
133

True, x M , False - . :
4 In M True,

5 In M False.

, .
1. .
(. - , ; : ! * ?) .
Program P1;
Var S: String; I,K: Byte;
Begin
ReadLn(S); K:=0;
For I:=1 To Length(S) Do
If S[I] In [.,-,,,;,:,!,*,?] Then K:=K+1;
WriteLn(K)
End.
. ,
If : (S[I]=.) Or (S[I]=-) Or
(S[I]=,) Or (S[I]=?), .
2. ,
. S3 ,
S1 S2 .
Program P2;
Type Mset=Set Of a..z;
Var S1, S2, S3: String;
MS1,MS2,MS3: Mset;
C: Char;
Procedure SM(S: String; Var MS: Mset);
{ MS , S }
Var I: Byte;
134

Begin MS:=[];
For I:=1 To Length(S) Do
MS:=MS+[S[I]];
End;
Begin { }
ReadLn(S1); ReadLn(S2);
{S1 S2 MS1 MS2 }
SM(S1,MS1); SM(S2,MS2);
{MS1 MS2 MS3
}
MS3:=MS1* MS2;
{S3 }
S3:=;
For C:= a To z Do
If C In MS3 Then S3:= S3+ C;
WriteLn(Rezultat:,S3)
End.
3. ,
2- N(1<N255)- .

. :
1. , , ,
.
2. ,
.
3. ,
.
, N=15 ( ):

135

2 3 4 5 6 7 8 9 10 11 12 13 14 15
3 5 7 9 11 13 15
5 7 11 13
7 11 13
11 13
13
.
Program Eratosfen;
Const N= 201;
{ 1<N<256}
Var A, B: Set Of 2..N;
K,P: Integer;
Begin
{ A B , }
A:= [2..N]; B:=[ ]; P:=2;
Repeat
{ A }
While Not(P In A) Do P:=P+ 1;
{B }
B:=B+[P];
K:=P;
{ A P }
While K<=N Do
Begin
A:=A-[K];
K:=K+P;
End;
Until A=[ ];
{ , B }
136

For P:=2 To N Do If P In B Then WriteLn(P)


End.
! , N>255 .
4. , . . INSET
.
. , SetChar.
Type SetChar=Set Of Char;
Procedure INSET(Var M:SetChar);
Var I,N: Byte; C: Char;
Begin
ReadLn(N); { }
M:=[];
For I:= 1 To N Do
Begin
ReadLn(C); { I- }
M:=M+[C];
End;
WriteLn(Setana dasrulebulia)
End.

, , SIM,
: INSET(SIM); .

3.19

. .

137

. :
(
);
( ).
. , , , ( ) . : .
, , ( )
.
:
Var < > : File Of < >;

< > , .
:
Var Fi: File Of Integer;
Fr: File Of Real;
Fc: File Of Char;

, 0- - (<..>):

. 0

138

. 1

. N

..

.
, ,
( ) . .
-

. A Rewrite(Fv); Fv- . .
, (). Rewrite
:

. 0

. 1

. N

..

Rewrite(Fv);

..

.
Write(Fv,V); V-
, Fv . , . ,
. . :

. 0

. 1

. N

..

Write(Fv,V);

139

. 0

. 1

. N

..

1.
20 .
Var Fx: File Of Real;

X: Real; I: Byte;
Begin

Rewrite(Fx);
For I:=1 To 20 Do
Begin
Write(?); ReadLn(X);
Write(Fx,X);
End
End.
-

. Reset(Fv)- . ,
. . :
:

. 0

. 1

. N

..

. N

..

Reset(Fv);

. 0

. 1

F Read(Fv,V); V-
Fv. V , .
:
. 0

140

. 1

V
. K

. K+1

. N

..

Write(Fv,V);

. 0

. 1

. K

. K+1

. N

..

V
. K

, .
.
; , n- ,
.
2. X Fx .

Program A;
Var

Fx: File Of Real;

X: Real; I: integer;
Begin

Reset(Fx);
For I:=1 To 10 Do
Read (Fx,X)
End.
Eof(Fv) (end of file).
, true,
,
false.
3. Fx
.
Reset(Fx);
Sx:=0;
141

While Not Eof(Fx) Do


Begin
Read (Fx,X);
Sx:=Sx+X
End;
Repeat :
Repeat
Read (Fx,X);
Sx:=Sx+X
Until Eof(Fx);
,
Fx . , .
. (, , , ..) . .
, , -
() .
, .
MS DOS :
CON () , , ;
PRN () , ;
AUX , PK- ;
142

INPUT
; , ;
OUTPUT .
.
() ,
( ) . .
, .
()
(, ). DIR. , , , ,
. :
< >.< >
1 8- () ;
(0- 3- ) .
:
PROGRAM.PAS ;
NUMBER.DAT ;
NAMES.TXT .

:
Assign(< >,< >);

143

< > - ( ). :
Assign(Fi, Number.dat);
Assign Rewrite .
(Assign Reset), . .

:
Close(< >)
:
Close(Fi)
.
:
1. ;
2. ;
3. (Assign);
4. (Rewrite);
5. (Write);
6. (Close).
4. ,
.
, , . ,
9999 (,
).
144

Program Task1;
Var Ft: File Of Real; T: Real;
Begin
Assign(Ft,Temp.dat); Rewrite(Ft);
WriteLn(SemoitaneT monacemebi. dasrulebis niSania 9999);
ReadLn(T);
While T<>9999 Do
Begin
Write(Ft,T); Write(?);ReadLn(T);
End;
WriteLn(Semotana dasrulebuliia!);
Close(Ft)
End.

Temp.dat, .

:
1. ;
2. ;
3. (Assign);
4. (Reset);
5. (Read);
6. (Close).
5. Temp.dat
.
Program Task2;
Var Ft: File Of Real;
T,St: Real; N: Integer;
Begin
Assign(Ft,Temp.dat);
Reset(Ft); St:=0;
145

While Not Eof(Ft) Do


Begin
Read(Ft,T);
St:= St +T
End;
N:=FileSize(Ft);
St:= St /N;
WriteLn(N:3,dRis saSualo temperatura tolia,St:7:2, gradusis);
Close(Ft)
End.

:
FileSize(< >);

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

:
Var <>: Text;

.
(...) (...) . :

146

S1

S2

Sk1 ..

S1

S2

Sk2

..

..

(ASCII) 1
.
. -

, . ,
.
.
.
Read Write ReadLn WriteLn .
ReadLn(Fv,< >);
Fv
.
WriteLn(Fv,< >);
Fv
.

:
EoLn(Fv)
(End of line ). ,
true,
false .
Read ReadLn Input
( ). Write WriteLn 147

Output ( ).
. , Input Output .
Enter .
ReadLn . .
WriteLn ( ).
. . .
6. Note.txt . .
Program Task6;
Var Note: Text; K: Integer;
Begin
Assign(Note,Note.txt);
Reset(Note); K:=0;
While Not Eof(Note) Do
Begin
ReadLn(Note); K:= K +1
End;
WriteLn(striqonebis raodenoba tolia,K);
Close(Note)
End.

148

ReadLn(Note) Note.txt ( ).
7. Note.txt
.
Program Task7;
Var Note: Text; Max,K: Integer; C:Char;
Begin
Assign(Note,Note.txt);
Reset(Note); Max:=0;
While Not Eof(Note) Do
Begin
K:=0;
While Not Eoln(Note) Do
Begin
Read(Note,C); K:= K +1
End;
If K>Max Then Max:=K;
ReadLn(Note);
End;
WriteLn(udides striqonSi aris,Max,simbolo);
Close(Note)
End.

-, K . Max
K- .
8. . (, ) V F M
. , .

149

Date.txt , :

M()

F()

V(/)

K(/)

36.3

2000

50.5

0.5


x(1)

x(2)

x(3)

x(4)

x(5)

10

100

150

1000

3000

M,F,V,K X[1..5] ,
T[1..5] . , Rezult.txt.
,
.

Var M,F,V,K: Real; I: Integer;


T,X: Array [1..5] Of Real;
FR,FD: Text;
Begin
Assign(FD,Date.txt);Reset(FD);
Assign(FR,Rezult.txt);Rewrite(FR);
{ }
ReadLn(FD); ReadLn(FD); ReadLn(FD);
{ }
ReadLn(FD,M,F,V,K);
{ }
ReadLn(FD); ReadLn(FD); ReadLn(FD);
{ }
For I:=1 To 5 Do Read (FD,X[I]);
.........................
{ }
.........................

150

{ FR }
WriteLn(

REZULTATEBI); WriteLn;

WriteLn(FR,
WriteLn( T(1)

REZULTATEBI); WriteLn(FR);
T(2)

WriteLn(FR, T(1)

T(3)
T(2)

T(4)
T(3)

T(5));
T(4)

T(5));

For I:=1 To 5 Do
Begin
Write(T[I]:8:2);
Write (FR,T[I]:8:2);
End;
Close(FD); Close(FR);
End.
Rezult.txt . . , .

3.20

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

151

.
Record () .
- :

Type Anketa1=Record
FIO: String[50];

{}

Pol: Char;
Dat: String[16];

{}

Adres: String[50];
Curs: 1 . .5;

{ }

Grup: 1 . .10;
Stip: Real;

{}

End;
Var Student: Anketa1;

, , .

, :
< >.< >;

: Student.FIO; Student.Dat; .. , ,
3, :
Student.Curs:=3;
,
. ,
( ) .
152

,
:

,
, .
:
Type Anketa2=Record
FIO: String[50];
Pol: Char;
Dat=Record
God: Integer;
Mes: String[10];
Den: 1 . . 31;
End;
Adres= Record
Gorod: String[20];
UlDomKv: String[30];
End;
Curs: 1 . .5;
Grup: 1 . .10;
Stip: Real;
End;
Var Student: Anketa2;

153


.
: Student.Adres.Gorod; Student.Dat.God; ..
. ,
500 ,
: Var Student : Array[1..500] Of Anketal;
, ,
Student[5].Dat.God.
:
< >
< >

<Record>

< >

< >

<End>
<>

,
;

( )
. , 500
:
For I := 1 500 Do
With Student[I] Do
Begin
Write('GSMs: '); ReadLn(GSMs);
Write('Sqesi (q/k): '); ReadLn(Pol);
Write(dabadebis TariRi: '); ReadLn(Dat);
Write('misamarTi: '); ReadLn(Adres) ;
Write('kursi: '); ReadLn(Curs);
Write('jgufi: '); ReadLn(Grup);
Write('stipendia (lari): '); ReadLn(Stip)
End;
,
:
154

With < > Do <>;


, -
With ,
,
, .
- ,
.
..

(, ).
.

.

.
1. FM.DAT ,
.
: -, , .
:
Program Gamocda;
Type Stud = Record
GvSx : String[30];
Nstb : String[6];
Nishani : 2..5
End;
Var Fstud : File Of Stud;
S : Stud;
N, I : Byte;
Begin
Assign(Fstud, 'FM.DAT'); Rewrite(Fstud) ;
Write('studentebis raodenoba jgufshi? ');
ReadLn(N);
155

For I := 1 To N Do
Begin
Write(I:1,'studentis, GvarSaxeli '); ReadLn(S.GvSx);
Write('studbiletis nomeri: '); ReadLn(S.Nstb) ;
Write('nishani: '); ReadLn(S.Nishani);
Write(Fstud, S)
End;
WriteLn('failis formireba damtavrebulia!');
Close(Fstud)
End.
,
.

.
,

, .
,
.
:
Seek(FV,n).
FV - , n- .
.
2. .
.
,
.
.
(. 999).
:
156

Program New-Marks;
Type Stud = Record
FIO : String[30]; Nz : String[6];
Mark : 2..5
End;
Var Fstud: File Of Stud;
S : Stud;
N : Integer;
Begin
Assign(Fstud, 'FM.DAT');
Reset(Fstud);
Write(' ? ');
ReadLn(N);
While N 9999 Do
Begin
Seek(Fstud, N - 1) ;
Read(Fstud, S);
Write(S.FIO, ' ? ');
ReadLn(S.Mark) ;
Seek(Fstud, N 1) ;
Write(Fstud, S);
Write(' ? ');
ReadLn(N);
End;
WriteLn(1 !');
Close(Fstud)
End.

, ,
. , n,
n-1.
157

n- . ,

.


1. . . 7.0. . 2-
., . . .: , 2001.- 400 .
2. .. :
. . .: , 1997 342 .
3. : / . .. .
.: , 2002. -336 .
4. .. 7.0. : . . 7-
., . .: - , 2002. 576 .
5. .. 7.0. . .
. 7- ., . .: , 2001. 416 .
6. . 7.0, , 2000.
158

7. . . . , 2005

159

- .

12

17

21

I. -

25

II.
2.1.

32

2.2.

34

III. .
3.1

38

3.2. .

41

3.3. .

43

3.4

45

3.5 , , .

51

3.6 .

56

3.7

62

3.8 , . -

68

.
3.9.

71

3.10 .

73

3.11.

76

3.12.

79

3.13.

82

160

88

3.14. .

92

3.15.
.

101

3.16. .

113

3.17. .

120

3.18. .

130

3.19 . .

137

3.20

151

161

You might also like