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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.04.2009, 14:32   #1
dima768
 
Регистрация: 03.04.2009
Сообщений: 3
По умолчанию Задача по матрице

Люди помогите решить пожалуйста задачу на Delphi.

Задача: Заменить нулями эл-ты матрицы, стоящие на пересечении строк и столбцов, в которых имеется хотя бы по одному нулю.

Пример:
1. Дана матрица:

1 2 0
0 5 6
7 8 9

В матрице в первой строке и в первом столбце есть по одному нулю и разумеется во второй строке и в 3 столбце есть нули.

Заменим нулями эл-ты матрицы, стоящие на пересечении этих строк и столбцов, т.е. "1" и "6" заменяем на нули.

Должно получится:

0 2 0
0 5 0
7 8 9
dima768 вне форума Ответить с цитированием
Старый 03.04.2009, 15:39   #2
Veselyn
Форумчанин
 
Аватар для Veselyn
 
Регистрация: 29.01.2009
Сообщений: 175
По умолчанию

Я не уверен, но попробуйте так
Код:
Const=4
Var a : array[1..n,1..n] of integer;
    s, z : array[1..n] of boolean;
    i, j : byte;
Begin
for i:=1 to n do
 for j:=1 to n do
     Begin
        writeln ('Vvedite el-nt : ');
        read(a[i,j]);
  end;
for i:=1 to n do
 for j:=1 to n do
    if a[i,j]=0 then 
Begin s[i]:=true;
	z[j]:=true;
 end;
for i:=1 to n do
 for j:=1 to n do
    if (s[i] and z[j]) then
Begin
 	a[i,j]:=0;
end;
writeln('_______________________');
for i:=1 to n do
  begin
    for j:=1 to n do
           write(a[i,j],' ');
  end;
readln;
end.
А вообще если не так поищите на форуме, не-так давно такая тема уже подымалась
___________________________________ ___________________________________ _____
PS. случайно НАШЕЛ
Все люди делятся на 10 типов: те, кто понимают двоичную систему счисления и те, кто нет.

Последний раз редактировалось Veselyn; 03.04.2009 в 15:59. Причина: Добавил ссылку
Veselyn вне форума Ответить с цитированием
Старый 03.04.2009, 20:23   #3
dima768
 
Регистрация: 03.04.2009
Сообщений: 3
По умолчанию

Совсем не работает :'(

Люди помогите кто нибудь...
dima768 вне форума Ответить с цитированием
Старый 03.04.2009, 21:53   #4
Veselyn
Форумчанин
 
Аватар для Veselyn
 
Регистрация: 29.01.2009
Сообщений: 175
По умолчанию

Я же говорил что код не проверял, поищите на форуме, а позже выложил ссылку.
Цитата:
PS. случайно НАШЕЛ
Там код рабочий http://programmersforum.ru/showthread.php?t=42462
PS. Будте внимательны
Все люди делятся на 10 типов: те, кто понимают двоичную систему счисления и те, кто нет.
Veselyn вне форума Ответить с цитированием
Старый 03.04.2009, 23:41   #5
dima768
 
Регистрация: 03.04.2009
Сообщений: 3
По умолчанию

Задачу то на делфи нужно реализовать.

Вот я переделал:

procedure TForm1.Button1Click(Sender: TObject);
var a:array[1..3,1..3]of integer;
h,v:array[1..3]of boolean;
i,j:integer;
begin
for i:=1 to 3 do
for j:=1 to 3 do
a[j,i]:=StrToInt(StringGrid1.Cells[j-1,i-1]);
for i:=1 to 3 do
for j:=1 to 3 do
if a[i,j]=0 then begin h[i]:=true; v[j]:=true end;
for i:=1 to 3 do
for j:=1 to 3 do
if (h[i] and v[j]) then a[i,j]:=0;

ВЫВОД

end;

end.

Где слово ВЫВОД там должен быть вывод конечного массива в StringGrid ,ну или Memo.

Вот токо я немогу его сделать.

for i:=1 to n do
begin
for j:=1 to n do
write(a[i,j],' ');
end;
readln;


Вот это надо переделать на Delphi
dima768 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача на исключение строк в матрице DRAG Помощь студентам 11 20.04.2011 21:31
Задача на СИ в заданной матрице поменять местами первую строку и первый столбец %( defol-777 Помощь студентам 2 14.01.2009 09:59
Задача по стандартной матрице. Нужна помощь! Rav4 Паскаль, Turbo Pascal, PascalABC.NET 2 26.12.2008 21:48
Перестановка строк матрице gotex Помощь студентам 1 24.11.2008 20:40