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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.12.2014, 15:10   #1
Anna.P.E.
Новичок
Джуниор
 
Регистрация: 11.12.2014
Сообщений: 1
По умолчанию [Pascal] Дана действительная матрица порядка n, удалить из матрицы i-ю строку и j-й столбец

Дана действительная матрица порядка n, удалить из матрицы i-ю строку и j-й столбец
Вот собственно мои наброски решения.
Подскажите, что не так или что нужно дописать, пожалуйста.


Код Pascal
Код:
Var a:array [1..10,1..10] of Integer;
b,c,i,j,n:Integer;
begin
Readln(n,b,c);
for i:= 1 to n do
for j:= 1 to n do
Readln(a[i,j]);
for i:= b to n-1 do
for j:= 1 to n do
a[i,j]:= a[i+1,j];
for i:= 1 to n do
for j:= c to n-1 do
a[i,j]:= a[i,j+1];
writeln;
end.

b- строка
c- столбец
Вроде бы я не удаляю, а "закрашиваю" нужную строку/столбец. Как удалить (без параметров) я не знаю. Была идея Dec использовать
Кому не сложно, гляньте и скажите, что не так

Или предложите свой вариант написания программы

Последний раз редактировалось Stilet; 11.12.2014 в 15:20.
Anna.P.E. вне форума Ответить с цитированием
Старый 12.12.2014, 15:11   #2
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,949
По умолчанию

В принципе работает! Но я бы 2 последних строчки
Код:
writeln;
end.
заменил бы на
Код:
for i:=1 to n-1 do
begin
for j:=1 to n-1 do
   Write(a[i,j],' ');
Writeln('');
end;
readln;
end.
для отображения на экран.
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]
newerow1989 вне форума Ответить с цитированием
Старый 12.12.2014, 16:00   #3
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Код:
typedef unsigned int uint; // Новое имя целочисленного неотрицательного типа
struct index{uint col, row;};// Структура индексов обрабатываемого массива

// Удалить строку матрицы
double **DeleteRow(double **A, index &x, uint s)
{
// если строка не последняя, сдвигаем их на место удаляемой
  if(s >= x.row) return A;
    x.row--;
    for(uint i=s; i<x.row; i++)
      for(uint j=0; j<x.col; j++)
        A[i][j] = A[i+1][j];
  delete[] A[x.row];
  return A;
}

// Удалить столбец матрицы
double **DeleteCol(double **A, index &x, uint c)
{
  if(c >= x.col) return A;
  x.col--;
  double **B = CreateMatrix(x);
  for(uint i=0; i<x.row; i++)
    for(uint j=0; j<x.col; j++)
      if(j < c) B[i][j] = A[i][j];
      else B[i][j] = A[i][j+1];
  DeleteMatrix(A, x);
  return B;
}
Контрольные примеры. Вставляются в int main
Код:
  X.row = 3; X.col = 3;
  double **D = CreateMatrix(X);
  cout << "Удалить строку матрицы \n";
  D = DeleteRow(D, X, 1);
  PrintMatrix(D, X);

  cout << "\nУдалить столбец матрицы \n";
  D = DeleteCol(D, X, 1);
  PrintMatrix(D, X);
  DeleteMatrix(D, X);
  cout << "\n";
Код с динамическими массивами.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder

Последний раз редактировалось Smitt&Wesson; 12.12.2014 в 16:04.
Smitt&Wesson вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дана действительная квадратная матрица порядка n.Построить последовательность действительных чисел а1,...,а2 по правилу(язык Си) VasiliyUtkin Общие вопросы C/C++ 1 04.10.2016 21:13
Дана действительная матрица порядка n. Найти сумму элементов, расположенных в закрашенной части матрицы на рисунке. Vol4ok Помощь студентам 2 18.04.2014 17:32
задача на C# (я чайник): Дана действительная квадратная матрица порядка N. Найти сумму элементов... ReKeT15 Помощь студентам 8 14.04.2014 05:50
C++ и Pascal. Матрицы. Дана матрица размером n х m. Инвертировать каждую строку матрицы. Summerlight Помощь студентам 0 24.12.2013 00:19
Дана действительная квадратная матрица порядка n. Найти наибольшее из значений элементов, расположенных в Хутор Паскаль, Turbo Pascal, PascalABC.NET 2 18.12.2010 12:41