Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.12.2010, 20:59   #1
masterlomaster
Форумчанин
 
Аватар для masterlomaster
 
Регистрация: 21.10.2009
Сообщений: 114
Вопрос Сортировка, Паскаль

Доброго вечера всем.

Составить программу сортировки строк в вещественной матрице A(NXN) по возрастанию их собственных значений.
Собственное значение строки с номером j определяеться по формуле сумма aij / N.

Программма нормально компилируется, только результат не тот.
Выводит вводимую матрицу без изменений, будто
не замечает for i:= 1 to N-1 do
for k:=i+1 to N do
if TUTU (A, i, N)> TUTU (A, k, N) then TATA (A, i, k, N);

Заранее спасибо!
Код:
Program SORTIROVKA (intput, output);
Type Matrix = array [1..10, 1..10] of real;
Var
i, j, k, N :integer;
u: real;
A: Matrix;
ex: char;
label 1;

 function TUTU (A: Matrix; i, N: integer):real;
  Var
   j :integer;
   S :real;
  Begin
   S:=0;
    for j:=1 to N do
     S:=S+A[i,j];
   TUTU:=S/N
  end;{TUTU}

 Procedure TATA (A: Matrix; i, k, N:integer);
  Var
  j:integer;
  S:real;
 Begin
  For j:=1 to N do
   Begin
    S:=A[i,j];
    A[i,j]:=A[k,j];
    A[k,j]:=S
   end
 end;{TATA}

Begin
   1:repeat
    Writeln ('Vvedite kol-vo strok i stolbsov N');
    Readln (N);
   until (N>1) and (N<11);
   Writeln ('Vvedite elementi matrici "A"');
    for i:= 1 to N do
     for j:= 1 to N do
      begin write ('A[',i:2,',',j:2,']=');
       Read (A[i,j]);
      end;
       Writeln (' MAtrica "A"');
        for i:=1 to N do
         begin
          for j:=1 to N do
           write(A[i,j]:5:2);
           writeln;
         end;
            for i:= 1 to N-1 do
             for k:=i+1 to N do
              if TUTU (A, i, N)> TUTU (A, k, N) then TATA (A, i, k, N);
              Writeln('otsortirovannaa matrica');
               for i:=1 to N do
                begin
                 for j:=1 to N do
                  write (A[i,j]:5:2);
                  writeln;
                end;
         Writeln ('Povtorit program? (y\n)');
         repeat
          read (ex);
         until (ex = 'y') or (ex = 'n');
          if ex = 'y' then goto 1 else exit;
end.

Последний раз редактировалось Stilet; 16.12.2010 в 13:33.
masterlomaster вне форума Ответить с цитированием
Старый 16.12.2010, 11:16   #2
Z1000000
Форумчанин
 
Регистрация: 04.05.2010
Сообщений: 495
По умолчанию

Правильно не заработает, но менять матрицу начнет.
Код:
Procedure TATA (var A: Matrix; i, k, N:integer);
Нажми на весы, поставь +
Для благодарностей : WebMoney WMR R252732729948
Z1000000 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Паскаль.Сортировка массива Никита35 Помощь студентам 12 24.10.2012 20:13
сортировка массива [Паскаль] Pein95 Помощь студентам 1 07.12.2010 21:41
сортировка массива паскаль dante92 Помощь студентам 7 11.05.2010 21:34
паскаль,одномерный массив,сортировка вставка,сортировка убывания,от максимального до конца немозг Помощь студентам 11 06.02.2010 21:57