PDA

Просмотр полной версии : Проблема с матрицей есть пример но он не работает


NTFF
09.12.2009, 22:05
в каждом столбце и каждой строке матрицы содержица строго по одному нулевому элементу. Перестановкой строк добиться расположение всех нулей по главной диагонали. В программе должна присутствовать проверка чтоб в строке был строго один ноль, в противном случае цикл не выполняться. матрица 5*5 пользователь сам ее вводит

написать нужно в форме процедур

есть то что питался сделать но что там не так не знаю



BEGIN
clrscr;
write('Vvedite matrix A: ');
for i:=1 to 5 do
for j:=1 to 5 do
read (A [i,j]);

for i:=1 to 5 do
for etap:=1 to 5 do
if (A[i,etap]=0)
then findrow:=i;
for j:=1 to 5 do
begin
c:=(A[etap,j]);
A[etap,j]:=A[findrow,j];
A[findrow,j]:=c;
write (A[findrow,j]);

DeaD_MoroZ
10.12.2009, 05:28
вот очень простой код
for i:=1 to 5 do begin
for j:=1 to 5 fo begin
if a[i,j]=0 then
inc(k);
end; end;
if k=5 then
переставляешь(надеюсь это ты сможешь)
else
writeln('not all lines of an element of 0");

NTFF
10.12.2009, 09:30
Ребята если вам не трудно напишите полностью код в процедурах.

DeaD_MoroZ
10.12.2009, 13:54
program blablabla;
uses crt;
var k,n,i,j:byte;
a:array[1..5,1..5] of integer;
prov:boolean;
procedure proverka_zero;
begin
for i:=1 to 5 do begin
for j:=1 to 5 do begin
if a[i,j]=0 then
inc(k);
end; end;
if k=5 then prov:=true
else
prov:=false;
end;
procedure vvod;
begin
clrscr;
for i:=1 to 5 do begin
for j:=1 to 5 do begin
gotoxy(j*5,i*3);
readln(a[i,j]);
end; end; end;
begin
clrscr;
vvod;
proverka_zero;
if prov then
{делаешь перестановку, всё полностью мне лень за тебя писать, т.к. ты всё таки пошёл учиться...}
else
writeln('not all lines of an element of 0');

end.


оффтоп:смотри комент, если всё таки не сможешь сам написать-вот моя ася 597680843, за на пиво напишу с радостью(; (я не жадный, но просто пусть человек сам учиться... всё познётся методом проб и ошибок...)