Нужна помощь со второй половиной задачи на матрицы
|
|
Уважаемые программисты! Помогите с задачкой, очень нужно)
Дан двумерный массив А(М,М) в виде квадратной матрицы. Составьте программу, обнуляющую главную диагональ матрицы, если в ней найдется хотя бы один отрицательный элемент. Из элементов побочной диагонали сформируйте одномерный массив и отсортируйте его по возрастанию методом Шелла (Shell Sort). Выведите на экран исходную и преобразованную матрицы и отсортированный массив.
первую часть программы написала(до красного шрифта):
const n=5; var a:array[1..n,1..n] of longint; i,j:integer; begin writeln('Заполните матрицу '); for i:=1 to n do for j:=1 to n do begin read(a[i,j]); end; for i:=1 to n do begin for j:=1 to n do write(a[i,j]:5); writeln; end; for i:=1 to n do for j:=1 to n do if i=j then if a[i,j]<0 then if i=j then a[i,j]:=0; writeln; for i:=1 to n do begin for j:=1 to n do write(a[i,j]:5); writeln; end; end;
|
|
|
Не правильно будет работать.. До красного шрифта стоит писать вот так: var a:array[1..100,1..100]of integer; n,i,j:byte; l:boolean; begin read(n); l:=false; for i:=1 to n do for j:=1 to n do begin read(a[i,j]); if i=j then if a[i,j]<0 then l:=true;end; if l then for i:=1 to n do a[i,i]:=0; end.
Формула побочной диагонали: j=n-i+1; Сортировку можешь найти на этом сайте, по-моему там даже исходник есть)
"Спасибо" принимается в виде повышения репутации ( Зелёный плюсик:) ).Спасибо
Нужна помощь? Сюда: vkontakte.ru/berestovskiy
|
|
|
я уже переделала и доделала её, когда выложила здесь, дошло до меня)) но всё равно спасибо, что откликнулся))
|
|
|
На здоровье)
Нужна помощь? Сюда: vkontakte.ru/berestovskiy
|
|
|