.


:




:

































 

 

 

 





. .

 

1. , . , , , .

 

9. 10000 1, 2,..., 10000 8000 b1, b2,..., b8000. 1, 2,..., 10000 . bk, k b1, b2,..., b8000.

 

Program Task9;

Type ra = array [1.. 10000] of Real;

ia = array [1.. 8000] of Integer;

pr = ^ra; pi = ^ia; { }

Var k, i: Integer; f: pr; g: pi; { }

Begin

New (f); { 10000 }

For i:= 1 to 10000 do Read(f^[i]);

For i:= 10000 downto 1 do Writeln(f^[i]);

Dispose (f); { }

New(g); { 8000 }

Read(g^[1]); k:= g^[1];

For i:= 2 to 8000 do

Begin

Read(g^[i]); If g^[i] < k Then k:= g^[i]

End;

Writeln(g^[k]) { Dispose }

End.

 

10000 . f^[1],..., f^[10000] Read(f^[i]). , , ra, Dispose(f). 8000 . g^[1],..., g^[8000] Read(g^[i]), . ra ia , .

 

2. , . , , , . , , , . , , .

 

10. 1, n . 2 1, .

Vector , . Vector , , Vector. Readln(n) . Getmem, Release.

Program ask10;

{$R-}

Type Vector = rray [1..1] of integer;

Var a1, a2: ^Vector; p: pointer; n, i, s: integer;

Begin

Write( : ); Readln(n);

mark(p); { }

Getmem(a1, n*sizeof(integer)); { 1}

for i:= 1 to n do Readln(a1^[i]); { 1}

S:= 0;

For i:= 1 to n do S:= S+a1^[i]; { }

Writeln(S=,S);

Getmem(a2, n*sizeof(integer)); { 2}

For i:= 1 to n do a2^[n+1-i]:= a1^[i] 1; { 2}

For i:= 1 to n do Writeln(a2^[i]); { 2}

Release(p); { }

End.

 

Vector , 1 1. , , , , {$R}.

 

11. C 1000 .

, , , . , , , .

Program Task11

Type PString = ^String;

Var

Buf: String;

L: array[1..1000] of PString;

ff: Text;

i: Integer;

Begin

Assign(ff, Dat.txt);

Reset(ff);

for i:= 1 to 1000 do

Begin

Readln(ff, Buf);

GetMem(L[i], Length(Buf) + 1);

L[i]^:= Buf;

End;

End.

 

256 (256 1000 ) 4 (4 1000 ).

 

3. .

 

12. d, 200 200 .

2002006 , 234. d: array [1..200, 1..200] of Real, . , , 64.

 

Program Task12;

Type

d200 = Array [1.. 200] of Real;{ }

dPtr = ^d200;{ }

dPtr200 = array [1..200] of dPtr;{ }

Var d: dPtr200; { , }

{ d200}

S: Real; i, j: Integer;

Begin

S:=0;

For i:= 1 to 200 do

Begin

New(d[i]);

{ 200 Real,}

{ d[i]}

For j:= 1 to 200 do

Begin

d[i]^[j]:= random(10);

{ }

{ }

S:= S + d[i]^[j];

End;

Dispose(d[i]);

End;

S:= S/40000; Writeln(S= , S:2:2);

End.

 

200 200 200 200 . . , . 2006 . d () : d[i]^[j], i , j .

 

4. , .

 

13. f1 . f2 . , : , , . , : , . f a1b1a2b2... anbn, ai i , bi . , i = 1, 2,..., n : i i , bi- f1; ai , bi- f2. , , .

 

Program Task13;

Type Igru = Record { }

Name: String[15];

Cost: Integer;

Age1, Age2: Integer;

End;

Bagaz = Record { }

Count: Integer;

W: Real;

End;

Var

Ig: ^Igru; Ba: ^Bagaz; { , }

{ }

f1: File of Igru; f2: File of Bagaz; f: Text;

i, k: Integer; a, b:Char; code: Word;

Begin

Assign(f, Dat3'); Assign(f1, Dat1'); Assign(f2, Dat2');

{ }

Reset(f); Reset(f1); Reset(f2); { }

While Eof(f) = false do { }

Begin

Read(f, a, b); { }

Val(b, k, code); { }

If a = i Then

Begin { }

New(Ig);

Seek(f1, k); { k}

Read(f1, Ig^); Writeln;

With Ig^ Do

Begin

Writeln( ,Name);

Writeln( ,Cost);

Writeln( , Age1);

Writeln( , Age2);

End;

Dispose(Ig);

End

Else

Begin { }

New(Ba);

Seek(f2, k); Read(f2, Ba^);

With Ba^ Do

Begin

Writeln( , Count);

Writeln( , W:8:2);

End;

Dispose(Ba);

End;

End;

Close(f); Close(f1); Close(f2);

End.

 

, f, b. , . b . k- Seek.

, , , . , , .

, () . , , . Nil, .. . , (. 6). .

. , .

, Integer. . Elem, Uk.

 

Type

Uk = ^Elem; { }

Elem = Record{ }

x: Integer;

next: Uk;

End;

Var p, q: Uk;

 

, .

, 5, 12 8. . p. . q . := Nil .

 

New(q); q^.x:= 8; q^.next:= p; p:= q;

 

, , 8 . q.

 

New(q); q^.x:= 12; q^. next:= p; p:= q; , , 12; q .

 

New(q); q^.x:= 5; q^.next:= p; p:= q, , 5, .

 

q . Nil next , 8, , .

8, 12, 5 , :

 

Type

Uk = ^Elem;

Elem = Record

x: Integer;

next: Uk;

End;

Var p, q: Uk; i: Integer;

Begin

p:= Nil;

For i:= 3 downto 1 do

Begin

New(q); { }

Readln(q^.x); { }

q^.next:= p; { }

p:=q; { }

End;

End.

 

.

:

;

;

.

q , . q:= q^. next ( ) Nil. , . , , ,

 

q:= p;

While q <> Nil do

Begin

Write(q^.x); q:= q^.next;

End;

 

While q <> Nil do... q , , .. , , Nil.

p, q, r q , p cc . , q, , 17. :

 

New(r); r^.x:= 17; r^.next:= q^.next; q^.next:= r;

 

q ( ) , , q. :

 

r:= q^.next; q^.next:= q^.next^.next; r^.next:= Nil;

 

. , . , , Dispose. , , .. , .

, , r:

 

Procedure exclude(Var p: Uk; r: Uk);

{ ; r }

Var q: Uk; { }

Begin

If p = r then p:= r^.next

else

Begin

q:= p; While q^.next <> r Do q:= q^.next;

q^.next:= r^.next;

End;

r:= Nil;

End;

 

, 17, :

 

New(r); r^.x:= 17; r^.next:= p; p:= r;

 

:

 

r:= p; p:= p^.next; r^.next:= Nil;

 

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

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

 

. 7.

 

, , (. 8). .

 

. 8.

 

, ( ). , , .

. , , . .

:

 

New(q); Readln(q^.x); q^.next:= p; p:= q;

 

:

 

q:= p; p:= q^.next; y:= q^.x; dispose(q);

 

, :

 

y:= p^.x;

 

, . , , . , . , Nil. , . , .

, . , 0 ( ). : , 0. : - -. m + n , m n , : , . - - . -.

 

14. , , . : , , . , , , , . , , . .

Program Task14;

{ men

}

Const men:array[1..8] of string[30] =

( , ,

, ,

, , , );

Type Uk = ^Elem; Elem = Record { }

Pred: Uk;

Fam: String[10];

Punkt: String[10];

Date: String[5];

next: Uk;

End;

Sp = ^Elem1; Elem1 = Record{ }

N: integer;

Punkt: String[10];

Date: String[5];

Count: Integer;

next: Sp;

End;

Var o1, o2, o3: Uk; s1, s2: Sp;

{o1 }

{o2 }

{3 }

{s1 c; s2 }

a, i: integer;

Procedure Spisok;

Var Ch: Char;

Begin

While Ch<>N Do

Begin { }

New(s2); s2^.next:= s1; s1:= s2;

Writeln( ); Readln(s2^.n);

Writeln( ); Readln(s2^.Punkt);

Writeln( ); Readln(s2^.date);

Writeln( ); Readln(s2^.count);

Writeln(?(Y/N)); Readln(Ch); Ch:= Upcase(Ch);

{ }

End;

End;

Procedure Ochered;

Var Ch: Char;

Begin

While Ch<>N Do

Begin { . ( )}

New(o2); o2^.next:= o1; { }

o1^.Pred:= o2; { }

o1:= o2; {o1 }

Writeln( ); Readln(o2^.Fam);

Writeln( ); Readln(o2^.Punkt);

Writeln( ); Readln(o2^.date);

Writeln(?(Y/N)); Readln(Ch); Ch:= Upcase(Ch);

{ }

End; o2^.pred:= Nil;

{ ( ) }

End;

Procedure Pokupka;

Label Met1;

Begin

o2:= o3; { }

Writeln( ,o2^.Fam);

Writeln( ,o2^.Punkt);

Writeln( ,o2^.date);

s2:= s1; { }

While s2 <> Nil Do

Begin

if (o2^.date = s2^.date) and { }

(o2^.Punkt = s2^.Punkt) and

(s2^.count <> 0) Then { ,}

Begin { }

Writeln( . !);

{ 1}

s2^.count:= s2^.count 1; Goto Met1;

End;

s2:= s2^.next; { }

End;

{ }

3^.next:= 1; 1:= 3; o1^.pred:= Nil; { }

Met1:o3:= o2^.pred; { }

o3^.next:= Nil; Dispose(o2);

End;

Procedure Vspisok;

{ }

Begin

s2:= s1;

While s2 <> Nil do

Begin

Writeln( ,s2^.n);

Writeln( ,s2^.Punkt);

Writeln( ,s2^.date);

Writeln( ,s2^.count);

s2:= s2^.next;

End;

End;

Procedure Vochered;

{ (c )}

Begin

o2:= o3;

While o2<>Nil Do

Begin

Writeln( ,o2^.Fam);

Writeln( ,o2^.Punkt);

Writeln( ,o2^.date);

o2:= o2^.pred;

End;

End;

Begin { }

Repeat { }

For i:= 1 to 8 do Writeln(i:7, :5,men[i]); { }

Write( ?); Readln(a); { }

Case a of

1: Begin New(s1); s1:= Nil; Spisok; End; { }

2: Spisok; { }

3: Begin { }

New(o3); New(o1); o1:=Nil;

New(o2); o3:=o2; o2^.next:= o1; o1:= o2;

{3 }

Writeln( ); Readln(o2^.Fam);

Writeln( ); Readln(o2^.Punkt);

Writeln( ); Readln(o2^.date);

Ochered;

End;

4: Ochered; { }

5: Pokupka; { }

6: Vspisok; { }

7: Vochered; { }

End;

Until a = 8; {8 }

End.

. ( ), ( ). . , . . , . 9, , , ABCA BCDB.

 

. 9.

 

, , (. 10, 11). : , , , . , , . , , . , , .

, . , . () , :

1) , ( );

2) , , ;

3) ( ) .

. 10 . . , , .

. . :

 

Type Uk = ^knot;

knot = Record

date: { }

Left, Right: Uk

End;

Var Tree: Uk;

 

knot , Left Right Nil, , New knot. knot, . , , knot, . Left (Right) knot Nil, , , ( ).

. 11 , Integer .

: , , . , .

:

1) ; ; ;

2) ; ; ;

3) ; ; .

. , . 10, A B D G H E C F I J. G D H E A C I F J.

 

15. ( [2]). , . ( ). ( ) . . : , . .

:

 

New(p); p^.word:= w; p^.count:= 1; ^.left:= nil; p^.right:= nil

 

 

Program Task15;

Type Tree_ptr = ^Tree;

Tree = Record { }

Wordd: String; {}

Count: Byte; { }

Left, Right: Tree_ptr; { }

End;

Var t, p, q: Tree_ptr; W: String; Found: Boolean;

{p, q ; w ;

found = true, }

Procedure Out_tree(t: Tree_ptr); { }

{t }

Begin

If t <> Nil Then Begin

Out_tree(t^.Left);

Writeln(t^.Wordd,-,t^.count);

Out_tree(t^.Right);

End;

End;

BEGIN { }

Readln(w);

New(t);{ }

With t^ Do Begin Wordd:= w; Count:= 1; Left:= nil; Right:= nil; End;

Readln(w);

While w <> Do { }

Begin { }

found:= false; p:= t;

While (p<>nil) and (found = false) do

Begin

{ , }

q:= p;

if w<p^.wordd then p:= p^.left { , }

else if w>p^.wordd then p:= p^.right

{ , }

else found:= true; { }

End; { }

If found then inc(p^.count) { , }

Else Begin { ,}

New(p); { }

With p^ do Begin

wordd:= w; count:= 1; Left:= Nil; right:= Nil;

End;

if w<q^.wordd Then q^.Left:= p

{ , }

Else q^.Right:= p; { }

End;

Readln(w); { }

End; { }

out_tree(t); { }

End.

Nil, :

 

Const

pr: ^Real = Nil;

 

:

 

type

Direction = (Left, Right, Up, Down);

NodePtr = ^Node;

Node = record

Next: NodePtr;

Value: Direction;

end;

const

N1: Node = (Next: nil; Value: Down);

N2: Node = (Next: @N1; Value: Up);

N3: Node = (Next: @N2; Value: Right);

N2: Node = (Next: @N3; Value: Left);

3.

, . , , , . . , . , , . , .

67, , - (). . , , .

3.1. ?

, , . , , , . :

 

Type TPerson = record

Name: string[25];

Dolgn: string[25];

Stavka: Real;

end;

Var Person: TPerson;

 

TPerson , .. , . Person .

TPerson . Name, Dolgn Stavka , , , TPerson.

, , . . , . TStudent :

 

TStudent = record

Name: string[25];

Dolgn: string[25];

Stavka: Real;

Ball: Real;

end;

 

Terson TStudent:

 

TStudent = record

Student: TPerson;

Ball: Real;

end;

 

T TStudent TPerson. TStudent , TPerson, - , TStudent .

, . . bject.

 

Type

TPerson = Object

Name: string[25];

Dolgn: string[25];

Stavka: Real;

end;

TStudent = Object (TPerson)

Ball: Real;

end;

 

. TPerson , TStudent . TStudent .. - .

, , , , :

 

Type

PStudent = ^TStudent;

Var

Student: TStudent;

DynaStudent: PStudent;

 

, , With, . :

 

Student.Stavka:= 145;

With Student do

Begin

Name:= ;

Ball:= 4.87;

End;

 

, .

, . . TPerson :

 

Procedure Init (Var Person: TPerson; Nm, Dg: String; Sv: Real);

Begin

With Person Do

Begin Name:= Nm; Dolgn:= Dg; Stavka:= Sv; End;

End;

 

- , , , . . , .

 

Type

TPerson = Object

Name: string[25];

Dolgn: string[25];

Stavka: Real;

Procedure Init (Nm, Dg: String; Sv: Real);

end;

 

.

 

Procedure TPerson.Init;

Begin

With Person Do

Begin Name:= Nm; Dolgn:= Dg; Stavka:= Sv; End;

End;

 

. . , , . . - .

, . - , - .





:


: 2016-11-18; !; : 1266 |


:

:

, .
==> ...

1471 - | 1383 -


© 2015-2024 lektsii.org - -

: 0.381 .