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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.05.2014, 20:47   #1
minkin
 
Регистрация: 09.04.2014
Сообщений: 6
Радость Паскаль. Удаление строк и столбцов в матрице. Найти в чем ошибка?

Дана задача:
Если в столбцах, встретился элемент, равный сумме первых двух элементов текущего столбца, то удалите строки, в которых они находятся. Удалите столбцы, в которых первый элемент нулевой. Если такого столбца или строки нет, то вывести сообщение об этом.

В чем тут ошибка?

Код:
program MyArrays;
uses crt;
const n=5;
      m=5;
type Array_2D=array[1..n,1..m] of integer;
var A, B: Array_2D;
    i,j,i_,j_,n_,m_: integer;
    zero: integer;
    sums: integer;
Procedure Delete1(Var X : Array_2D; Var n, m : integer; k1 : integer);
Var
  i, j : integer;
Begin
  for i := k1 to n-1 do
    for j := 1 to m do
      X[i, j] := X[i+1, j];
        for j := 1 to m do
          X[n, j] := 0;
  Dec(n);
End;
Procedure Delete2(Var X : Array_2D; Var n, m : integer; k1 : integer);
Var
  i, j : integer;
Begin
  for j := k1 to m-1 do
    for i := 1 to n do
      X[i, j] := X[i, j+1];
        for i := 1 to n do
          X[i, n] := 0;
  Dec(n);
End;
begin
clrscr;
Writeln('Массив из случайных чисел');
{Создание и вывод ммасива}
a[1,1]:=4;a[1,2]:=1;a[1,3]:=4;a[1,4]:=4;a[1,5]:=0;
a[2,1]:=1;a[2,2]:=2;a[2,3]:=1;a[2,4]:=3;a[2,5]:=4;
a[3,1]:=4;a[3,2]:=2;a[3,3]:=3;a[3,4]:=4;a[3,5]:=0;
a[4,1]:=1;a[4,2]:=3;a[4,3]:=1;a[4,4]:=2;a[4,5]:=4;
a[5,1]:=3;a[5,2]:=4;a[5,3]:=4;a[5,4]:=2;a[5,5]:=3;

for i:=1 to n do
begin
  for j:=1 to m do
   begin
   Write(a[i,j]:3);
   b[i,j]:=a[i,j];
   end;
  Writeln;
 end;
Writeln;

n_:=n;
m_:=m;

for i:=1 to n do
for j:=1 to m do
if a[i,j]=a[1,j]+a[2,j] then Delete1(b,n_,m_,i);

Writeln('Массив - после удаления строк:');
for i:=1 to n_ do
begin
  for j:=1 to m_ do
   if b[i,1]<>0 then Write(b[i,j]:3);
  Writeln;
 end;
Writeln;

for j:=1 to m do
if a[1,j]=0 then Delete2(b,m_,n_,j);

Writeln('Массив - после удаления столбцов:');
for i:=1 to n_ do
begin
  for j:=1 to m_ do
   if b[i,j]<>0 then Write(b[i,j]:3);
  Writeln;
 end;
end.

Последний раз редактировалось Stilet; 20.05.2014 в 21:05.
minkin вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удаление строк и столбцов на C++ Orbit@L Помощь студентам 0 12.03.2012 15:59
Удаление строк в матрице. ONIS Паскаль, Turbo Pascal, PascalABC.NET 0 25.12.2011 14:27
Матрица. Найти произведение элементов, чьи номера строк и столбцов содержатся в S1 и S2 (Паскаль) Aimet Помощь студентам 0 16.06.2011 20:27
паскаль, удаление строк и столбцов daimon Помощь студентам 8 13.06.2010 14:20
Паскаль задача на обработку последовательностей, помогите найти в чем ошибка??? Nubik Помощь студентам 2 22.12.2009 11:04