Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > процедура


Автор: Анютка 10.1.2006, 20:01
Поменять местами миним.элементы двух массивов размером 6.
Поиск мин.элемента массива оформить в виде процедуры.
пожлста,помогите!!! smile
Pascal 7.1(english version) smile

Автор: darkart 14.1.2006, 18:27
Код

program AnyutkaM;
const
  n=6;{размерность матрицы}
type
  TMatrix=array[1..n,1..n] of integer;{описание типа матрицы}
procedure CreateRandomMatrix(var Matrix:TMatrix);
{процедура заполнения матрицы случайными числами}
const
  ToRnd=100;{для randoma}
var
  i,j:integer;{счетчики}
begin
  for i:=1 to n do
    for j:=1 to n do
      Matrix[i,j]:=random(ToRnd);
end;
procedure PrintMatrix(var Matrix:TMatrix);
{процедура печати матрицы}
var
  i,j:integer;
begin
  for i:=1 to n do
  begin
    for j:=1 to n-1 do
      write(Matrix[i,j],' ');
    writeln(Matrix[i,n]);
  end;
end;
procedure FindMin(var Matrix:TMatrix;var indexi,indexj:integer);
{процедура поиска минимума}
var
  i,j,min:integer;
begin
  indexi:=1;
  indexj:=1;
  min:=Matrix[indexi,indexj];
  for i:=1 to n do
    for j:=1 to n do
      if Matrix[i,j]<min then
      begin
        min:=Matrix[i,j];
        indexi:=i;
        indexj:=j;
      end;
end;
procedure ChangeElements(var Matrix1,Matrix2:TMatrix;var indexi1,indexj1,indexi2,indexj2:integer);
{процедура меняет местами элементы с указаннами индексами в указанных матрицах}
var
  tmp:integer;
begin
  tmp:=Matrix1[indexi1,indexj1];
  Matrix1[indexi1,indexj1]:=Matrix2[indexi2,indexj2];
  Matrix2[indexi2,indexj2]:=tmp;
end;
var
  Matrix1,Matrix2:TMatrix;
  indexi1,indexj1,indexi2,indexj2:integer;
begin
  randomize;
  CreateRandomMatrix(Matrix1);
  CreateRandomMatrix(Matrix2);
  writeln('First source matrix:');
  PrintMatrix(Matrix1);
  writeln('Second source matrix:');
  PrintMatrix(Matrix2);
  FindMin(Matrix1,indexi1,indexj1);
  FindMin(Matrix2,indexi2,indexj2);
  ChangeElements(Matrix1,Matrix2,indexi1,indexj1,indexi2,indexj2);
  writeln('First matrix after changing elements:');
  PrintMatrix(Matrix1);
  writeln('Second matrix after changing elements:');
  PrintMatrix(Matrix2);
  readln;
end.


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)