Показать сообщение отдельно
  #1  
Старый 29.06.2009, 20:40
geroy geroy вне форума
Прохожий
 
Регистрация: 27.06.2009
Сообщения: 6
Репутация: 10
Печаль Преобразование массива

Добрый день друзья!
Нужно произвести преобразование матрицы по следующему принципу:
1. Первое число матрицы А[1.1] взаимодействует со всеми числами матрицы поочередно по следующему сценарию:
Берем второе число А[1.2] и находим любое случайное число меньше числа
А[1.2]. Найденное случайное число вычитается от А[1.2] и прибавляется
к А[1.1]. И так дальше со всеми числами матрицы.
Написал следующий код:
Код:
procedure TForm1.Button1Click(Sender: TObject);
  var
  A: array [1..100,1..100] of real;    // Первичный массив
  M: integer;
  N: integer;
  K: integer;
   diapazon:real;
   max: real;
   min: real;
   Prom: real;
   Peremen: real;
  ErrHndl: real;
  MaxM: integer; // Предел значения начального элемента
  i: integer;   // индекс I
  j: integer;   // индекс J
  f: TextFile;
  s, FName: string;
  QN:array [1..2,1..50] of integer;    // массив итоговый
  begin

M:=StrToInt(Edit1.Text);
N:=StrToInt(Edit2.Text);
MaxM:=StrToInt(Edit3.Text);
 Randomize;
 for i:= 1 to N do
For j:=1 to M  do
begin
A[i,j]:= random(MaxM+1)
end;
//Взаимодействие элементов матрицы между собой

 Prom:=A[1,1];
 for i:= 1 to N do
 For j:=1 to M  do
 begin
 K:= Trunc(A[i,j+1]); //Урезаем числа после запятой
  Peremen:=random(K); //Находим случайное число меньше, чем второй элемент
 A[i,j+1]:= A[i,j+1]-Peremen;
 Prom:=Prom+Peremen;
 end;
 A[1,1]:= Prom;

Но не работает! Подскажите, кто знает, как решить такую задачку.
Ответить с цитированием