• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Паскаль, матрица

  • Автор темы Автор темы Lensom
  • Дата начала Дата начала

Lensom

Ученик
Регистрация
21 Май 2014
Сообщения
5
Реакции
0
Баллы
0
Паскаль, матрица

Нужна помощь в задании.
Cделать ввод матрицы,уплотить заданную матрицу,удаляя из нее строки и столбцы,заполненные нулями.
 
Нужна помощь в задании.
Cделать ввод матрицы,уплотить заданную матрицу,удаляя из нее строки и столбцы,заполненные нулями.
Пожалуйста:
Код:
Const
 Mmax=50;
 Nmax=50;

Type
 Matr=Array[1..Mmax,1..Nmax] of Integer;
 Vect=Array[1..Mmax] of Integer;

Var
 i,j,k,M,N:Integer;
 A:Matr;
 V:Vect;

Function Test_Zero(VV:Vect; Nv:Integer):Boolean;
var
 p:integer;
 b:boolean;
begin
 b:=true;
 for p:=1 to Nv do
  if VV[p]<>0 then b:=false;
 Test_Zero:=b;
end;

Begin
 Write('Number of lines = ');
 Readln(M);
 Write('Number of columns = ');
 Readln(N);
 for i:=1 to M do
  for j:=1 to N do
   begin
    Write('A[',i:2,',',j:2,'] = ');
    Readln(A[i,j]);
   end;
 Writeln;
 Writeln('Initial matrix:');
 for i:=1 to M do
  begin
   for j:=1 to N do
    Write(A[i,j]:4);
   Writeln;
  end;
 Writeln;
 Writeln('New matrix:');
 i:=0;
 Repeat
  Inc(i);
  for j:=1 to N do V[j]:=A[i,j];
  if Test_Zero(V,N) then
   begin
    for k:=i+1 to M do
     for j:=1 to N do
      A[k-1,j]:=A[k,j];
    Dec(M);
   end;
 Until i>=M;
 j:=0;
 Repeat
  Inc(j);
  for i:=1 to M do V[i]:=A[i,j];
  if Test_Zero(V,M) then
   begin
    for k:=j+1 to N do
     for i:=1 to M do
      A[i,k-1]:=A[i,k];
    Dec(N);
   end;
 Until j>=N;
 for i:=1 to M do
  begin
   for j:=1 to N do
    Write(A[i,j]:4);
   Writeln;
  end;
 Readln
End.
 
Cпасибо за код.
 
Назад
Сверху