Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Delphi, Kylix and Pascal


Ответ
 
Опции темы Опции просмотра
Старый 15.04.2015, 23:18   #1 (permalink)
Over77over
Member
 
Регистрация: 13.03.2015
Сообщений: 16
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Если целочисленная квадратная матрица симметрична относительно главной диагонали...

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

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

Вот на фортране:

!simmetrichna li matriza
logical function PP1(A,n)
dimension A(n,n)
integer I,J,A
logical fl
fl=.true.
I=1
do while (I<=n-1.and.fl)
J=I+1
do while (J<=n.and.fl)
if (A(I,J)/=A(J,I)) then
fl=.false.
end if
J=J+1
end do
I=I+1
end do
PP1=fl
write (,) fl
end

!obnylit vse elementi vishe glavnoi diagonali
subroutine PP2(A,n)
dimension A(n,n)
integer I,J,A
do I=1,n-1
do J=I+1,n
A(I,J)=0
end do
end do
end


!naiti symmy elementov nizhe glavnoi diagonali
subroutine PP3(A,n,s)
dimension A(n,n)
integer I,J,A,s
s=0
do J=1,n-1
do I=J+1,n
s=s+A(I,J)
end do
end do
end


dimension A(5,5)
integer I,J,A,s
logical fl,PP1
data A/1,2,3,1,3,2,3,4,9,4,3,4,5,8,5,1,9,8,7,6,3,4,5,6,1/
write (,) 'ishod matriza'
write (*,36) ((A(I,J),J=1,5),I=1,5)
36 format (5(1x,I3))
fl= PP1(A,5)
write (,) fl
if (fl) then
write (,) 'matriza simmetrichna'
call PP2(A,5)
write (*,26) ((A(I,J),J=1,5),I=1,5)
26 format (1x,'izmen matriza'/5(1x,I3))
call PP3 (A,5,s)
write (*,16) s
16 format (1x,'s=',I4)
else
write (,) 'matriza ne simmetrichna'
end if
end
Over77over вне форума   Ответить с цитированием

Старый 15.04.2015, 23:18
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Попробуйте упростить решение проблемы, почитайте схожие топики

Если максимальный элемент квадратной матрицы находится выше главной диагонали...
Delphi. Квадратная матрица. Задача
Квадратная матрица
Дана целочисленная матрица W 4×4, вычислить сумму ее элементов, лежащих ниже главной
Дана квадратная матрица А из N элементов. Получить из нее одномерный массив, язык C++
Относительно мощный конфиг

Старый 16.04.2015, 10:49   #2 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Over77over Посмотреть сообщение
Помогите пожалуйста решить задачу на Паскале. Если целочисленная квадратная матрица симметрична относительно главной диагонали, обнулить все элементы,лежащие выше главной диагонали.и определить сумму элементов, лежащих ниже главной диагонали
Код:
Const
 N=5;

Type
 Matr=Array[1..N, 1..N] of Integer;

Var
 A:Matr;
 i,j,k,Sum:Integer;

Function Symm(Q:Matr):Boolean;
var
 i,j:Integer;
 bu:boolean;
begin
 i:=0;
 bu:=TRUE;
 repeat
  Inc(i);
  j:=0;
  repeat
   Inc(j);
   bu:=Q[i,j]=Q[j,i];
  until bu=FALSE or (j=N);
 until bu=FALSE or (i=N);
 Symm:=bu;
end;

Begin
 for i:=1 to N do
  for j:=1 to N do
   begin
    write('A[',i,',',j,'] = ');
    readln(A[i,j]);
   end;
 Writeln;

 Writeln('Initial matrix:');
 for i:=1 to N do
  begin
   for j:=1 to N do write(A[i,j]:4);
   writeln;
  end;
 Writeln;

 If Symm(A) then
  begin
   Sum:=0;
   Writeln('New matrix:');
   for i:=1 to N do
    begin
     for j:=1 to N do
      begin
       if j>i then A[i,j]:=0;
       if j<i then Inc(Sum,A[i,j]);
       write(A[i,j]:4);
      end;
     writeln;
    end;
   Writeln;
   Writeln('Sum = ',Sum);
  end
 else
   Writeln('Matrix is asymmetric');
 Readln
End.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 22:53.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.