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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.01.2018, 17:09   #1
Genzal
Пользователь
 
Регистрация: 23.12.2017
Сообщений: 22
По умолчанию Pascal. Магический квадрат.

Как определить, является ли заданная матрица магическим квадратом,т.е. суммы элементов всех строк и столбцов одинаковы. Ввел чтоб матрица была квадратной, а как сделать проверку я не знаю.
Код:
var 
   i,j,n : integer; 
   a: array [1..10,1..10] of integer; 
begin 
     randomize; 
     repeat
     write('Введите размер квадратной матрицы n- '); readln(n); 
     until n in [1..10];
     for i:=1 to n do 
     begin 
          for j:=1 to n do 
             begin 
                  a[i,j] := random(30); 
                  write(a[i,j] : 3); 
              end; 
          writeln; 
     end;
end.
Genzal вне форума Ответить с цитированием
Старый 18.01.2018, 18:09   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

внизу "Похожие темы"

(или поиском по форуму воспользуйтесь)
Serge_Bliznykov вне форума Ответить с цитированием
Старый 21.01.2018, 11:39   #3
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,949
По умолчанию

Код:
const n=3;
type tAr=array[1..n,1..n] of integer;

function Testing(p:tAr):boolean;
var i,j,s,si:integer;
begin
   Result:=true;
   s:=0;
   For i:=1 to n do
      s:=s+p[i,1];
   For i:=1 to n do
   begin
      si:=0;
      For j:=1 to n do
         si:=si+p[i,j];
      If s<>si then
      begin
         Result:=false;
         Exit;
      end;
   end;
   For j:=1 to n do
   begin
      si:=0;
      For i:=1 to n do
         si:=si+p[i,j];
      If s<>si then
      begin
         Result:=false;
         Exit;
      end;
   end;
end;

var p:tAr;
    i,j:integer;
begin
   For i:=1 to n do
      For j:=1 to n do
      begin
         Write('p[',i,', ',j,'] = ');
         Readln(p[i,j]);
      end;
   Writeln;
   For i:=1 to n do
   begin
      For j:=1 to n do
         Write(p[i,j]:3,'  ');
      Writeln;
   end;
   Writeln;
   If Testing(p) then
      Writeln('yes') else
      Writeln('no');
   Readln;
end.
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]
newerow1989 вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Магический квадрат hpc Общие вопросы Delphi 1 22.11.2012 14:32
магический квадрат ДеТкА Паскаль, Turbo Pascal, PascalABC.NET 4 13.06.2012 15:29
C++ Магический квадрат Alexey23 Помощь студентам 1 09.12.2010 23:58
Магический квадрат sigmanen Общие вопросы C/C++ 1 12.11.2010 22:40
Магический квадрат Гаджи Помощь студентам 5 24.10.2009 09:46