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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.06.2022, 00:28   #1
Shazam21
 
Регистрация: 22.12.2021
Сообщений: 9
По умолчанию Приведение матрицы к треугольному виду

Есть матрица. Привести к треугольному виду как на картинке
Изображения
Тип файла: png Матрикс.png (14.1 Кб, 35 просмотров)

Последний раз редактировалось Shazam21; 01.06.2022 в 00:49.
Shazam21 вне форума Ответить с цитированием
Старый 01.06.2022, 18:18   #2
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,304
По умолчанию

В Паскале, как помню, первый индекс номер строки, а второй - столбца.
Надо переставить элементы первой и последней строк.
Код:
В цикле по i от 1 до 3:
    tmp := matr[1,i];
    matr[1,i] := matr[3,i];
    matr[3,i] := tmp;
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 01.06.2022, 18:46   #3
macomics
Участник клуба
 
Регистрация: 17.04.2022
Сообщений: 1,833
По умолчанию

Тогда станет так
Код:
3 2 0
1 0 0
4 5 6
macomics вне форума Ответить с цитированием
Старый 01.06.2022, 21:40   #4
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,536
По умолчанию

Код:
    tmp := matr[1,i];
    matr[1,i] := matr[2,i];
    matr[2,i] := matr[3,i];
    matr[3,i] := tmp;
Вот это имелось в виду
digitalis вне форума Ответить с цитированием
Старый 01.06.2022, 22:56   #5
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,304
По умолчанию

Совсем утомился. Пора на покой ...
Спасибо digitalis.
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 02.06.2022, 03:03   #6
Shazam21
 
Регистрация: 22.12.2021
Сообщений: 9
По умолчанию

digitalis, Так получается
1 0 0
2 3 0
4 5 6
Надо бы во второй строчке поменять местами 2 и 3
Shazam21 вне форума Ответить с цитированием
Старый 02.06.2022, 03:33   #7
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

Цитата:
Сообщение от Shazam21 Посмотреть сообщение
Надо бы во второй строчке поменять местами 2 и 3
Покажите ваш код. Если сделали, как указано выше, то 2 и 3 не должны были перепутаться.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 02.06.2022, 03:53   #8
Shazam21
 
Регистрация: 22.12.2021
Сообщений: 9
По умолчанию

BDA,
Код:
uses
  crt;
const
  size=50;
var
  tmp,m,n,i,j:byte;
  matr:array[1..size,1..size]of integer;
begin
  clrscr;
  repeat
    write('Введите кол-во строк ',' m=');
  readln(m);
  until m in [1..size];
  repeat
    write('Введите кол-во столбцов ',' n=');
  readln(n);
  until n in [1..size];
  for i:=1 to n do
   for j:=1 to m do
    begin
     write('a[',i,',',j,']:=');
     readln(matr[i,j])
    end;
  writeln('Исходная матрица:');
  for i:=1 to n do
   begin
    for j:=1 to m do
     write(matr[i,j]:2,' ');
    writeln
   end;
   for i:=1 to 3 do
    begin
     for j:=1 to m do
    tmp := matr[1,i];
    matr[1,i] := matr[2,i];
    matr[2,i] := matr[3,i];
    matr[3,i] := tmp;
    end;
    
    writeln('Треугольная матрица:');
 for i:=1 to n do
 begin
  for j:=1 to m do
  write(matr[i,j]:2);
  writeln;
 end;
readln;
 end.
Shazam21 вне форума Ответить с цитированием
Старый 02.06.2022, 04:34   #9
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

Если ввести параметры и саму матрицу, что указана в 1 сообщении, то числа 2 и 3 с текущим кодом будут на своих местах. Замечания по самому коду: запрашиваете количество строк как m, а количество столбцов как n, а в коде далее используете наоборот (n как количество строк, а m как количество столбцов); треугольная матрица должна быть квадратной (так что не нужно запрашивать 2 размера); цикл по j ничего полезного не делает (поправьте отступы, чтобы лучше понимать, какой код к какому циклу относится); предложенный подход работает только для матрицы размера 3x3, в которой достаточно сместить все строки вверх на одну (как в примере), а не общий подход для получения нижнетреугольной матрицы.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 02.06.2022, 10:08   #10
Shazam21
 
Регистрация: 22.12.2021
Сообщений: 9
По умолчанию

BDA, Не получается, всё равно то же самое. Можешь отправить целый код, я что то не понимаю уже где что убрать?
Shazam21 вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Коэффициенты системы линейных уравнений заданы в виде прямоугольной матрицы. При помощи допустимых преобразований свести матрицу к треугольному виду. Vika2016 Общие вопросы C/C++ 2 27.10.2016 00:00
задача на приведение матрицы к треугольному виду Delphibot Помощь студентам 0 26.12.2013 15:08
Привести к треугольному виду(процедуры) komjkee Паскаль, Turbo Pascal, PascalABC.NET 0 18.12.2013 21:35
Приведение матрицы к треугольному виду Rachnog Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 08.05.2013 14:14
Приведение матрицы к диагональному виду Смородинка Помощь студентам 1 01.10.2010 16:24