Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

DELPHI 7

.pdf
Скачиваний:
89
Добавлен:
15.08.2019
Размер:
11.38 Mб
Скачать

Сортировка одномерного массива (по возрастанию

vk.com/club152685050 | vk.com/id446425943

Program Sortirovka_01; uses crt;

Const a: array[1..5] of integer = (5,4,1,3,2); Const n=5;

Var i, j, k, m, buf: integer;

Begin

for i:=1 to 4 do

{ to n-1 do, можно to n do}

 

for j:=1 to 5-i do

{ можно

to n-1 do}

 

if a[j] >a[j+1] then

 

 

 

begin

 

 

 

buf:=a[j+1] ;

 

 

a[j+1] :=a[j] ;

 

 

a[j] :=buf;

 

 

end;

 

end. 45

for i:=1 to 5 do write(a[i],' ');

writeln;

массив A=(5, 4, 1, 3, 2);

vk.com/club152685050 | vk.com/id446425943

i=1

j=1

5>4

да

4, 5, 1, 3, 2

 

j=2

5>1

да

4, 1, 5, 3, 2

 

j=3

5>3

да

4, 1, 3, 5, 2

 

j=4

5>2

да

4, 1, 3, 2, 5

i=2

j=1

4>1

да

1, 4, 3, 2, 5

 

j=2

4>3

да

1, 3, 4, 2, 5

 

j=3

4>2

да

1, 3, 2, 4, 5

 

j=4

4>5

нет

1, 3, 2, 4, 5

i=3

j=1

1>3

нет

1, 3, 2, 4, 5

 

j=2

3>2

да

1, 2, 3, 4, 5

 

j=3

3>4

нет

1, 2, 3, 4, 5

 

j=4

4>5

нет

1, 2, 3, 4, 5

i=4

j=1

 

нет

 

 

j=2

 

нет

 

 

j=3

 

нет

 

 

j=4

 

нет

 

нет перестановки элементов

больше перестановки элементов нет

это лишние прогоны

46

Сортировка одномерного массива (по возрастанию

vk.com/club152685050 | vk.com/id446425943

Program Sortirovka_02; uses crt;

Const a: array[1..5] of integer = (5,4,1,3,2); Const n=5;

Var i, j, k, m, buf: integer;

Procedure Sort (x: array [1..5] of integer);

Begin

 

for i:=1 to 4 do

{ to n-1 do, можно to n do}

for j:=1 to 5-i do

{ можно to n-1 do}

if x[j] >x[j+1] then

begin

 

buf:=x[j+1] ;

 

x[j+1] :=x[j] ;

 

x[j] :=buf;

end;

for i:=1 to 5 do write(x[i],' '); writeln; end;

Begin

Sort (a);

End.

47

vk.com/club152685050 | vk.com/id446425943 Задача 1.

Четыре точки заданы своими координатами

A={a1, a2, a3, a4},

B={b1, b2, b3, b4},

C={c1, c2, c3, c4},

D={d1, d2, d3, d4}.

Определить, какие из этих точек находятся на максимальном расстоянии друг от друга.

Расстояние между точками X={x1, x2, x3, …, xn} и Y={y1, y2, y3,

…, yn} вычисляется по формуле

Вычисление расстояния между двумя точками оформить в виде подпрограммы - функции.

Исходные данные:

A={3.5; 4.4; 2.8; 3.1}; B={1.8; 2.1; 2.25; 1.9};

C={1.35; 3.2; 4; 2.1}; D={2.01; 0.35; 3.8; 0.3}.

60

 

program primer4;

vk.com/club152685050 | vk.com/id446425943

uses crt;

Type

vect = array[1..6] of real;

 

t =array[1..4] of real;

Const

a: t=(3.5, 4.4, 2.8, 3.1);

 

b: t=(1.8, 2.1, 2.25, 1.9);

 

c: t=(1.35, 3.2, 4, 2.1);

 

d: t=(2.01, 0.35, 3.8, 0.3);

 

var i, j, max: integer;

 

l: vect;

function rasst (x, y: t):real;

var

lr: real;

 

 

i: integer;

 

begin

 

 

 

lr:=0;

 

 

for i:=1 to 4 do

 

 

lr:=lr+sqr(x[i]-y[i]);

 

 

rasst:=sqrt(lr);

61

end;

 

 

begin

 

vk.com/club152685050 | vk.com/id446425943

clrscr;

 

l[1]:=rasst(a,b);

Определены расстояния:

 

l[2]:=rasst(a,c);

l[1]=3.150 l[2]=2.916 l[3]=5.240 l[4]=2.125 l[5]=2.841 l[6]=3.441

 

l[3]:=rasst(a,d);

Расстояние максимально между точками АD и равно 5.240

 

l[4]:=rasst(b,c);

 

 

l[5]:=rasst(b,d);

 

l[6]:=rasst(c,d); writeln('Определены расстояния:');

for i:=1 to 6 do write('l[',i,']=',l[i]:5:3,' '); writeln;

max:=1;

for i:=2 to 6 do

if l[i]>l[max] then max:=i; case max of

1: writeln(' Расстояние максимально между точками АB и равно ',l[max]:5:3); 2: writeln(' Расстояние максимально между точками АC и равно ',l[max]:5:3); 3: writeln(' Расстояние максимально между точками АD и равно ',l[max]:5:3); 4: writeln(' Расстояние максимально между точками BC и равно ',l[max]:5:3); 5: writeln(' Расстояние максимально между точками BD и равно ',l[max]:5:3);

6: writeln(' Расстояние максимально между точками CD и равно ',l[max]:5:3);

end; end.

62

vk.com/club152685050 | vk.com/id446425943 Задача 2.

Заданы матрицы A, B, C, D, каждая из которых содержит по три строчки и по три столбца. Перемножить матрицы P и Q, полученные в результате сложения матриц: P=A+B; Q=C+D. Сложение матриц оформить в виде подпрограммы. Исходные данные:

 

0.1

1

0.8

 

 

1

2.5

0.1

 

 

 

 

 

 

 

 

 

 

 

A

2.3

4.4

0.5

;

B

3.1

2.2

- 2

;

 

0.9

7.5

1.1

 

 

- 0.5

1

1.3

 

 

 

 

 

 

0.33

- 1

0.4

 

 

0.1

4.5

1

 

 

 

 

 

 

 

 

 

 

 

C

2.5

3.1

0.48

;

D

0.3

- 1

2.5

 

 

5.5

0.3

1

 

 

1.1

2.8

3.35

 

 

 

 

 

63

programvk.com/club152685050primer5;| vk.com/id446425943

uses crt;

Type matr = array[1..3,1..3] of real;

const a: matr=((0.1,1,0.8),(2.3,4.4,-0.5),(0.9,7.5,1.1));

 

b: matr=((1,2.5,0.1),(3.1,2.2,-2),(-0.5,1,1.3));

 

c: matr=((0.33,-1,0.4),(2.5,3.1,0.48),(5.5,0.3,1));

 

d: matr=((0.1,4.5,1),(0.3,-1,2.5),(1.1,2.8,3.35));

var

k, i, j: integer;

 

p, q, pq: matr; s:real;

procedure summa(var x, y, z: matr); var i, j: integer;

begin

for i:=1 to 3 do for j:=1 to 3 do

z[i, j]:=x[i, j]+y[i, j];

end;

64

procedurevk.com/club152685050pr(var|x,vk.com/id446425943y: matr);

var i, j: integer;

begin

for i:=1 to 3 do

begin

 

for j:=1 to 3 do

 

 

write(x[i, j]:8:3);

 

write('

');

for j:=1 to 3 do

 

write(y[i, j]:8:3);

 

writeln;

 

 

end;

end;

 

begin clrscr;

writeln(' матрица A матрица B'); pr(a, b);

writeln('

матрица C

матрица D');

65

 

 

 

pr(c, d); end.

procedurevk.com/club152685050pr(var|x,vk.com/id446425943y: matr);

var i, j: integer;

begin

for i:=1 to 3 do

begin

 

for j:=1 to 3 do

 

 

write(x[i, j]:8:3);

 

write('

');

for j:=1 to 3 do

Закончить программу!!

write(y[i, j]:8:3);

 

writeln;

 

 

end;

end;

 

begin clrscr;

writeln(' матрица A матрица B'); pr(a, b);

writeln('

матрица C

матрица D');

66

 

 

 

pr(c, d); end.