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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.03.2010, 17:17   #1
sllh_111
Форумчанин
 
Регистрация: 10.02.2010
Сообщений: 137
Стрелка Вычеркивание строки и столбца (есть наработки)

всем привет. Нужна помощь в доработки программы(Pascal).
Суть программы: дана матрица и число, надо вычеркнуть ту строку и столбец где находится это число.

например дана матрица А и число 10
1___2___3
4__10___5
7___8___9

вычеркиваем строку и столбец где находится
число 10 и получаем матрицу
1___3
7___9

Код:
procedure input;
begin clrscr;
write('Введите размерность 2 квадратных матриц(A,B): ');
readln(m);
writeln('Введите матрицы: ');
writeln('Первая: ');
for i:= 1 to m do
for j:= 1 to m do
read(a[j,i]);
writeln; writeln('Вторая: ');
for i:= 1 to m do
for j:= 1 to m do
read(b[j,i]);
end else
writeln('Ошибка!'); end;

procedure zamena(m3:mas; var b2:mas; i,j,k1:integer);
 var k2i,k2j,d1i,d1j: integer;
 begin
  writeln;
 {d1i:=0; }
 for k2i:=1 to k1-1 do
 for k2j:=1 to k1-1 do
 if k2i<> i then
 begin
 if k2j= j then
 b2[i,j]:= m3[i,j+1]
 else b2[i,j]:= m3[i,j];
 end  else
 b2[i,j]:= m3[i+1,j];
 for k2i:= 1 to k1-1 do
 for k2j:= 1 to k1-1 do
 write(b2[k2i,k2j]);
 readkey;
 end;


 begin clrscr;
 input;
 zamena(a,b2,1,1,m);
 end.
очень рассчитываю на вашу помощь!

Последний раз редактировалось sllh_111; 13.03.2010 в 17:19.
sllh_111 вне форума Ответить с цитированием
Старый 13.03.2010, 17:32   #2
Deamonig
Форумчанин
 
Аватар для Deamonig
 
Регистрация: 19.09.2009
Сообщений: 166
По умолчанию

Если матрица квадратная, судя по твоим попыткам из кода, то вот:
Код:
program s;
const m=100;
var
A:array[1..m,1..m] of integer;
i,j,X,N,stroka,stolb:integer;
begin
writeln('vedite razmernost matr');
readln(N);
writeln('vedite 4islo');
readln(X);
for i:=1 to N do
  for j:=1 to N do
  begin
    writeln('vedite A[',i,',',j,']');
    readln(A[i,j]);
  end;
for i:=1 to N do
for j:=1 to N do
if A[i,j]=X then 
begin
  Stroka:=i;
  Stolb:=j;
end;
writeln('');
Writeln('------------------------');
for i:=1 to N do
begin
  for j:=1 to N do
  if (i<>Stroka) and (j<>stolb) then  Write(A[i,j],' ');
  if (i<>Stroka) and (j<>stolb) then Writeln('');
end;
readln;
end.
программа подходит если в матрице только одно заданное число число, если же чисел больше чем 1, то нужно немного переделать

Последний раз редактировалось Deamonig; 13.03.2010 в 17:39.
Deamonig вне форума Ответить с цитированием
Старый 13.03.2010, 17:46   #3
sllh_111
Форумчанин
 
Регистрация: 10.02.2010
Сообщений: 137
По умолчанию

в том то и дело, что программа должна вычёркивать несколько элементов, как показано в примере.
да и я немного припарился с условиям(сори): число не вводим а находим по позиции
в процедуре zamena(a,b2,1,1,m); (1,1 - это i ,j).

надо выполнить эти вычеркивания для каждого элемента матрицы
Если не трудно можешь помочь доделать, а то я меня вообще уже мозги не варят.

Последний раз редактировалось sllh_111; 13.03.2010 в 17:51.
sllh_111 вне форума Ответить с цитированием
Старый 13.03.2010, 17:52   #4
Deamonig
Форумчанин
 
Аватар для Deamonig
 
Регистрация: 19.09.2009
Сообщений: 166
По умолчанию

Эмм.. не так написал. Она работает в том случае (вычеркивает строку и столбец) если число 10 например в матрице встречается только один раз. Если число 10 встречается несколько раз, то будут удалены строка и столбец лишь последнего числа 10.
Deamonig вне форума Ответить с цитированием
Старый 13.03.2010, 17:54   #5
sllh_111
Форумчанин
 
Регистрация: 10.02.2010
Сообщений: 137
По умолчанию

Вообщем это подпрограмма нахождения алгеброических дополнений для Обратной матрицы. Если надо могу теорию подкинуть.
sllh_111 вне форума Ответить с цитированием
Старый 13.03.2010, 18:15   #6
Deamonig
Форумчанин
 
Аватар для Deamonig
 
Регистрация: 19.09.2009
Сообщений: 166
По умолчанию

Спасибо конечно, но теория мне не нужна Попробуй запустить мою программу, ввести туда данные и посмотри на результат, все должно быть правильно. Если что то не так или не понятно, то задавай конкретный вопрос с проблемой.
Deamonig вне форума Ответить с цитированием
Старый 13.03.2010, 18:30   #7
sllh_111
Форумчанин
 
Регистрация: 10.02.2010
Сообщений: 137
По умолчанию

Deamonig да программа у тебя отличная, и я бы с радостью её использовал но мне надо доделать именно мою программу(а иначе придется много переделовать в основной программе).
Может кто в ней разберётся и найдет ошибку.
sllh_111 вне форума Ответить с цитированием
Старый 13.03.2010, 18:55   #8
Deamonig
Форумчанин
 
Аватар для Deamonig
 
Регистрация: 19.09.2009
Сообщений: 166
По умолчанию

Ну выложи всю программу, а то так же не совсем понятно что ты там описываешь и зачем 2 матрицы
Deamonig вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Pascal, наработки есть. Otre4eHHbIu Помощь студентам 1 24.12.2009 08:43
Pascal, модули, наработки есть. auhb Помощь студентам 2 07.12.2009 23:43
Pacsal, Модули, Наработки есть Otre4eHHbIu Помощь студентам 3 11.10.2009 18:27
Паскаль, массивы, наработки есть. Otre4eHHbIu Помощь студентам 14 17.05.2009 01:16
Паскаль, массивы, наработки есть. Otre4eHHbIu Помощь студентам 3 12.05.2009 12:26