Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для lxa85

Необычный


Contributor


Сообщения: 4463
Благодарности: 994

Профиль | Сайт | Отправить PM | Цитировать


dasha131, у тебя вполне рабочий код.
Собственно он же с "диагностическими" дополнениями.


Код: Выделить весь код
program diagonal;
const
    n=8;
var
  a:array[1..n,1..n]of integer;
  f:boolean;
  l,i,j:integer;
begin
  l:=1;
// поставил автоматический ввод матрицы, чтобы не руками
    for i:=1 to n do
    for j:=1 to n do
      begin
        a[i,j]:=abs(i-j);
//if здесь для красоты, т.к. мне лень придумывать как убрать все лишнее с ненужных диагоналей. Ради практического интереса его можно закомментировать
        if a[i,j]<=1 then a[i,j]:=1 
					 else a[i,j]:=0;
        // write('Enter A[',i,',',j,']:=');readln(a[i,j]);
      end;

    for i:=1 to n do
    for j:=1 to n do
            if (abs(i-j)>l)and(a[i,j]<>0)then begin 
//повторяет обнуление не главных диагоналей, служит для проверки правильности условия. Писал раньше чем тот if сверху, стирать не стал
//            a[i,j]:=0;
            //writeln(i,' ',j);
            //f:=false;
            end;


    f:=true;

    for i:=1 to n do
    for j:=1 to n do
            if (abs(i-j)>l)and(a[i,j]<>0)then begin 
            writeln(i,' ',j); // посмотреть, на какой элемент вызвал "падение" флага
            f:=false;
            end;
    write('matrix band:',f:7);
	
	writeln;

//распечатка матрицы для наглядного поиска
    for i:=1 to n do begin
    for j:=1 to n do
		write(a[i,j], ' ');
	writeln;
	end;	
    
  readln;
end.

-------
- Я не разрешаю тебе быть плохой! Потому что плохие люди совершают плохие поступки. А это нехорошо!
(Из наставлений 5 летней девочки своей младшей сестре)


Отправлено: 16:19, 16-10-2010 | #2