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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.12.2012, 15:03   #1
nuklon712
 
Регистрация: 18.12.2012
Сообщений: 6
По умолчанию Удалить из массива A(N,M) строки и столбцы(задача решена)

здарвствуйте помогите с решением этой задачи:

Удалить из массива A(N,M) первый и последний столбцы и пересекающиеся с ними первую и последнюю строки.

Вот мой вариант, он он работоспособен только на половину


Код:
uses crt;
const
    M = 5;
    N = 5;

var
    A: array[1..N,1..M] of integer;
    i, j:integer;
    k,p,o:byte;

begin
Randomize;
clrscr;
    writeln ('Massiv');

    for i := 1 to M do
        for j := 1 to N do
            A[i,j]:=Random(101)-50;

    for i := 1 to M do begin
        for j := 1 to N do
            write (A[i,j]:5);
        writeln
    end;
repeat
K:=1;
until k in [1..p];
for i:=k to p-1 do
for j:=1 to o do
a[i,j]:=a[i+1,j];
p:=p-1;
writeln('bez udalennoi stroki:');
for i:=1 to p do
 begin
  for j:=1 to o do
  write(a[i,j]:4);
  writeln;
 end;
readln
end.

Последний раз редактировалось nuklon712; 19.12.2012 в 14:40. Причина: Задача решена
nuklon712 вне форума Ответить с цитированием
Старый 18.12.2012, 20:17   #2
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Цитата:
Код:
repeat
K:=1;
until k in [1..p];
А в чем логика этого цикла? На кой он нужен, если k:=1?


Вы, по моему, код излишне усложнили. Обычным циклом вполне можно справиться:

Код:
for i:=1 to N do begin
  a[i,m]:=0;
  for j:=2 to M-1 do a[i,j-1]:=a[i,j];
end;
потом для строк - точно так же, только I меняется с j, a M с N.
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 19.12.2012, 13:06   #3
nuklon712
 
Регистрация: 18.12.2012
Сообщений: 6
По умолчанию

спасибо большое что откликнулись, но у меня возникла небольшая проблема, а именно, после встраивания вашего исправления в мою программу она выводит предпоследний столбец в ответе и завершается.
вот мой код:
PHP код:
uses crt;
const
    
5;
    
5;

var
    
A: array[1..N,1..Mof integer;
    
ij:integer;
    
k,p,o:byte;

begin
Randomize
;
clrscr;
    
writeln ('Massiv');

    for 
:= 1 to M do
        for 
:= 1 to N do
            
A[i,j]:=Random(101)-50;
    for 
:= 1 to M do begin
        
for := 1 to N do
            
write (A[i,j]:5);
        
writeln
    end
;
for 
i:=1 to N do begin
  a
[i,m]:=0;
  for 
j:=2 to M-do a[i,j-1]:=a[i,j];
  
write(a[i,j]:4);
  
writeln;
  
end;
readln
end

nuklon712 вне форума Ответить с цитированием
Старый 19.12.2012, 14:09   #4
nuklon712
 
Регистрация: 18.12.2012
Сообщений: 6
По умолчанию

разобрался сам
если кому пригодится вот полный код рабочей программы

PHP код:
uses crt;
const 
nmax=15;
var 
a:array[1..nmax,1..nmaxof integer;
    
n,m,i,j,k:byte;
begin
clrscr
;
randomize;
repeat
write
('Количество строк=');
readln(m);
until m in [1..nmax];
repeat
write
('Количество столбцов=');
readln(n);
until n in [3..nmax];
writeln('Исходная матрица:');
for 
i:=1 to m do
 
begin
   
for j:=1 to n do
    
begin
     a
[i,j]:=random(50);
     
write(a[i,j]:4);
    
end;
   
writeln;
 
end;
writeln;
n:=n-1;{удаление последнего столбца}
for 
i:=1 to m do {удаление первого столбца}
for 
j:=1 to n-do
a[i,j]:=a[i,j+1];
n:=n-1;
 
for 
i:=1 to m-do
for 
j:=1 to n do
a[i,j]:=a[i+1,j];
m:=m-1;
 
for 
i:=1 to m-do
for 
j:=1 to n do
a[m,i]:=a[m-1,j];
m:=m-1;
 
writeln('Удалены 1 и последний столбцы и 1 и последняя строки');
for 
i:=1 to m do
 
begin
  
for j:=1 to n do
  
write(a[i,j]:4);
  
writeln;
 
end;
readln
end

nuklon712 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удалить строки и продублировать столбцы j-run Общие вопросы C/C++ 1 19.11.2012 15:14
удалить из матрицы столбцы содержащие одинаковые элементы Вольця Паскаль, Turbo Pascal, PascalABC.NET 2 06.07.2012 00:36
Удалить методом сдвига столбцы в матрице Zil131 Помощь студентам 0 11.11.2011 16:09
Удалить столбцы из матрицы DarkDeidara Помощь студентам 0 02.12.2010 16:18
Как удалить строки и столбцы в массиве ЛесенОК Свободное общение 1 31.01.2009 18:35