IPB
ЛогинПароль:

> Функции и массивы
от compiler
сообщение 6.11.2007 18:13
Сообщение #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
сообщение 6.11.2007 18:39
Сообщение #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.

 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия 28.07.2025 11:17
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"