![]() |
![]() ![]() |
![]() |
от compiler |
![]()
Сообщение
#1
|
Гость ![]() |
Добрый день!
Меня интересует возможность передачи массивов между функциями. Допустим есть такое задание написать программу которая б считала сумму максимального и минимального элемента матрицы (размеры вводит пользователь матрица заполняется случайными числами). интересно было бы если тело программы выгляделло так write(getsum(randmatr(usermatr()))); ,где usermatr() возвращает размеры матрицы; randmatr() заполняет случ. числами; getsum() возвращает сумму. для передачи размера можна использовать пользовательский тип size = record
x,y : byte;
end;
, тогда usermatr будет выглядить так. function usermatr(): size;
begin
readln(usermatr.x);
readln(usermatr.y);
end;
функции getsum и randmatr также легко реализуются в отдельности однако собрать это все в одну программу у меня не получается... помогите пожалуйста... заранее благодарен. |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Без проблем... Динамические массивы в 32-битах еще никто не отменял:
type
tsize = record
x, y: integer;
end;
tmatrix = array of array of integer;
function usermatr(): tsize;
begin
write('x = '); readln(result.x);
write('y = '); readln(result.y);
end;
function randmatr(size: tsize): tmatrix;
var i, j: integer;
begin
setlength(result, size.y, size.x);
for i := 0 to pred(size.y) do begin
for j := 0 to pred(size.x) do begin
result[i, j] := random(1000);
write(result[i, j]:4);
end;
writeln;
end;
end;
function getsum(mx: tmatrix): integer;
var i, j, min, max: integer;
begin
max := -maxint; min := maxint;
for i := 0 to pred(length(mx)) do
for j := 0 to pred(length(mx[i])) do begin
if max < mx[i, j] then max := mx[i, j];
if min > mx[i, j] then min := mx[i, j];
end;
result := max + min;
end;
begin
writeln(getsum(randmatr(usermatr)));
end.
|
compiler |
![]()
Сообщение
#3
|
Человек ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 050 Пол: Мужской Реальное имя: Станислав Репутация: ![]() ![]() ![]() |
Код tmatrix = [b]array[/b] [b]of[/b] [b]array[/b] [b]of[/b] integer; вот она ключевая строчка!только один вопрос кто такой pred() ? а так ОГРОМНОЕ спасибо! -------------------- Спасибо!
Удачи! |
volvo |
![]()
Сообщение
#4
|
Гость ![]() |
Pred(X) - аналог (X - 1) ...
|
compiler |
![]()
Сообщение
#5
|
Человек ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 050 Пол: Мужской Реальное имя: Станислав Репутация: ![]() ![]() ![]() |
-------------------- Спасибо!
Удачи! |
![]() ![]() |
![]() |
Текстовая версия | 28.07.2025 12:55 |