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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.12.2013, 20:37   #1
AZelensky
Пользователь
 
Регистрация: 15.11.2013
Сообщений: 52
По умолчанию Поменять местами i-строку с j-столбцом в матрице

Подскажите, почему у меня происходит не полная перемена?



Вот код:
Код:
{$I-}
USES CRT;
CONST
MaxElI = 30;
MaxElJ = 30;
Var
MatrixMass: array [1..MaxElI, 1..MaxElJ] of REAL;
b: REAL;
n, ERROR1: INTEGER;
i, j, k: BYTE;
Begin
CLRSCR;
TextColor(WHITE);
REPEAT
write('Enter max element: '); READ(n);
ERROR1:= IOResult;
If n < 0 then begin
TextColor(RED);
   writeln('ERROR! You entered max element < 0!');
   TextColor(WHITE);
end;
If ERROR1 <> 0 then begin
   TextColor(RED);
   writeln('ERROR! You entered CHAR!');
   TextColor(WHITE);
end;
UNTIL (ERROR1 = 0) and (n > 0);
writeln('Enter values: ');
For i:= 1 to n Do begin
For j:= 1 to n Do begin
    REPEAT
    write('Element ', i, 'x', j, ' : ');
    READLN(MatrixMass[i, j]);
    ERROR1:= IOResult;
    If ERROR1 <> 0 then begin
       TextColor(RED);
       writeln('ERROR! You entered CHAR!');
       TextColor(WHITE);
       end;
    UNTIL ERROR1 = 0;
    end;
end;
writeln('The resulting matrix: ');
For i:= 1 to n Do begin
For j:= 1 to n Do
    write(MatrixMass[i, j]:5:0, ' ');
    writeln;
end;
WriteLN;
TextColor(25);
writeln('Press "ENTER"...');
TextColor(WHITE);
ReadLN;
writeln('Enter changing the row and column:');
REPEAT
write('Enter string: '); READ(i);
ERROR1:= IOResult;
If i > n then begin
TextColor(RED);
   writeln('ERROR! You entered i > max element!');
   TextColor(WHITE);
end;
If ERROR1 <> 0 then begin
   TextColor(RED);
   writeln('ERROR! You entered CHAR!');
   TextColor(WHITE);
end;
UNTIL (ERROR1 = 0) and (i <= n);
REPEAT
write('Enter column: '); READ(j);
ERROR1:= IOResult;
If j > n then begin
TextColor(RED);
   writeln('ERROR! You entered j > max element!');
   TextColor(WHITE);
end;
If ERROR1 <> 0 then begin
   TextColor(RED);
   writeln('ERROR! You entered CHAR!');
   TextColor(WHITE);
end;
UNTIL (ERROR1 = 0) and (j <= n);
If MatrixMass[i, i] = MatrixMass[j, j] then
   For k:=1 to n do begin
       b:= MatrixMass[i, k];
       MatrixMass[i, k]:= MatrixMass[k, j];
       MatrixMass[k, j]:= b;
       end
       else begin
       TextColor(RED);
       writeln('Replacement is not possible!');
       writeln('Element ', i, ' x ', i, ' <> ', 'element ', j, ' x ', j);
       TextColor(WHITE);
       end;
writeln;
ReadLN;
writeln('Final matrix:');
For i:= 1 to n Do begin
For j:= 1 to n Do
    write(MatrixMass[i, j]:5:0, ' ');
    writeln;
end;
ReadLN;
end.

Последний раз редактировалось AZelensky; 16.12.2013 в 21:17.
AZelensky вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
поменять местами столбец с максимальным элементом на главной диагонали со столбцом с заданным номером m. Visual C++ hunter08923 Помощь студентам 0 22.06.2011 00:14
В действительной матрице n*n поменять местами строку с MAX со строкой содержащей MIN элемент drnokaut Помощь студентам 1 06.06.2011 08:53
В матрице А поменять местами две строки с заданными номерами dimegusew Помощь студентам 0 11.05.2011 20:02
Поменять местами столбец и первую строку DanteDMC3 Помощь студентам 1 12.02.2010 16:06
Задача на СИ в заданной матрице поменять местами первую строку и первый столбец %( defol-777 Помощь студентам 2 14.01.2009 09:59