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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.12.2013, 20:34   #1
Елешечка
Пользователь
 
Регистрация: 06.11.2013
Сообщений: 36
Печаль Массив двумерный помогите)

Дана квадратная матрица BN*N. Преобразуйте её следующим образом: в каждой строке поменяйте местами максимальный элемент строки с элементом, стоящим в этой строке на главной диагонали.
Замечание. Выведите на экран исходную и преобразованную матрицы.
Елешечка вне форума Ответить с цитированием
Старый 02.12.2013, 09:49   #2
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

Код:
For i:=1 to n do
  Begin
     Max:=a[i,1];
     For j:=2 to n do
        If a[i,j]>max then
         Begin
           Max:=a[i,j];
           Col:=j;
            Row:=i;
          End;
         Temp:= A[row,col];
         A[row,col]:=a[i,i];
         A[i,i]:=temp;
    End;
Проверяйте
ZX Spectrum-128 вне форума Ответить с цитированием
Старый 02.12.2013, 10:43   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

неверно. row мало того, что не нужна, так ещё и может быть не определена!
то же касается и переменной col (может быть не определена!)


да и для поиска максимума индекса достаточно.
я бы такой код предложил:
Код:
For i:=1 to n do
  Begin
     col:=1;
     For j:=2 to n do
        If b[i,j]>b[i, col] then
               col:=j;

     temp := b[i,col];
     b[i,col] := b[i,i];
     b[i,i] := temp;
    End;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 02.12.2013, 10:54   #4
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

Спасибо, не учел.
Как обычно
ZX Spectrum-128 вне форума Ответить с цитированием
Старый 03.12.2013, 21:53   #5
Елешечка
Пользователь
 
Регистрация: 06.11.2013
Сообщений: 36
По умолчанию

я ещё не пробовала ) сейчас помучую)

я туплю,а как ввод массива осуществить?
Код:
program zad1;
const c=10;
var
b: array [1..c,1..c] of real;
temp:real;
m,i,n,j,col:integer;
emptu:boolean;
begin
writeln ('Введите количество элементов;');
readln(m);
for i:=1 to m do
    for j:=1 to m do
    begin

      write('b[',i,',',j,']=');
      readln(b[i,j]);

end;
For i:=1 to n do
  Begin
     col:=1;
     For j:=2 to n do
        If b[i,j]>b[i, col] then
               col:=j;

     temp := b[i,col];
     b[i,col] := b[i,i];
     b[i,i] := temp;
    End;
    end.
что я не так сделала? мне нужно чтобы он вывел получившеюся матрицу)

Последний раз редактировалось Елешечка; 03.12.2013 в 22:40.
Елешечка вне форума Ответить с цитированием
Старый 03.12.2013, 23:04   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

нужно дописать вывод массива.
а ещё определитесь, в какой переменной у Вас находится размерность массива n или m


Код:
program zad1;
const c=10;
var
b: array [1..c,1..c] of real;
temp:real;
m,i,j,col:integer;
begin
writeln ('Введите количество элементов;');
readln(m);
for i:=1 to m do
    for j:=1 to m do
    begin

      write('b[',i,',',j,']=');
      readln(b[i,j]);
    end;

For i:=1 to m do
  Begin
     col:=1;
     For j:=2 to m do
        If b[i,j]>b[i, col] then
               col:=j;

     temp := b[i,col];
     b[i,col] := b[i,i];
     b[i,i] := temp;
    end;

{вывод полученного массива}
Writeln('Полученный массив:');
for i:=1 to m do begin
    for j:=1 to m do
      Write(b[i,j]:5:2,' ');
    WriteLn;
end;

Readln;

end.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 03.12.2013, 23:12   #7
Елешечка
Пользователь
 
Регистрация: 06.11.2013
Сообщений: 36
По умолчанию

спасибо большое вам) я маленько вывод подделаю) а вы не поможете с тремя матрицами задача(
Елешечка вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Двумерный массив! Помогите пожалуйста! Naaat Паскаль, Turbo Pascal, PascalABC.NET 1 04.06.2009 13:45
Помогите с задачей на Двумерный массив!!! Knot{ Паскаль, Turbo Pascal, PascalABC.NET 3 16.04.2009 00:19
помогите составить прогу на двумерный массив Jan Помощь студентам 2 07.01.2009 20:30
двумерный массив помогите доделать maximp1981 Общие вопросы C/C++ 1 04.12.2008 13:44