«

»

Pascal. Процедуры. Задача 3

Дана матрица. Получить из нее вектор,  содержащий суммы элементов строк. Отсортировать  его в порядке убывания элементов.

Решение:

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
program procedures_3;
uses crt;
var
rez, k, m: integer;
y: array[1..5, 1..5] of integer;
mas: array[1..5] of integer;
{процедура}
procedure matr_sum(n, r: integer; var A: array[1..5] of integer);
var i, j, x, key: integer;
begin
A[n]:=A[n]+r;
if n=5 then
begin
for i:=1 to 5 do
begin
x:=A[i];
key:=i;
for j:=i+1 to 5 do
if A[key]<A[j] then
key:=j;
if key<>i then
begin
A[i]:=A[key];
A[key]:=x;
end;
end;
end;
end;
{основная программа}
begin
clrscr;
randomize;
{обработка матрицы}
for k:=1 to 5 do
begin
rez:=0;
for m:=1 to 5 do
begin
y[k, m]:=random(10); {присвоение элементам случайных значений}
write(y[k ,m]:3);
rez:=rez+y[k, m];
end;
matr_sum(k, rez, mas); {вызов процедуры}
writeln;
end;
writeln('Новый массив ');
for k:=1 to 5 do {вывод получившегося вектора}
write(mas[k]:3);
readkey;
end.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Вы можете использовать эти теги HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Проверка на человечность *