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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.12.2011, 14:10   #11
VIK_aka_TOR
Участник клуба
 
Аватар для VIK_aka_TOR
 
Регистрация: 30.01.2011
Сообщений: 1,578
По умолчанию

делал почти такое же задание, только не нужно было в условии проверять на повторение элементов... вот код.... не совсем магический квадрат, все что нужно доделать, так это проверку на повторение чисел в матрице...
Код:
{
14. Дана квадратная матрица А порядка n. Проверьте, равны ли суммы элементов
матрицы по строкам, столбцам,  главной и побочной диагоналям между собой, т.е.
 является ли матрица магическим квадратом.
}
var
a: array [1..10,1..10] of integer;
i,j,k,l, n, sum1, sum2: integer;
flag:boolean;
begin
Write ('Введите порядок матрицы n: ');
readln(n);
writeln('Введите ээлементы матрицы.');
for i:=1 to n do       // ввод элементов матрицы
for j:=1 to n do
    begin
    write('a[',i,',',j,']=');
    read(a[i,j]);
    end;
for i:=1 to n do    // показ матрицы
begin
   for j:=1 to n do
   write(a[i,j]:3);
   writeln;
end;
sum1:=0;
flag:= true;
//**** вычисление суммы первой строки
       for i:=1 to n do
           sum1:=sum1 + a[1,i];
//*** проверка остальных строк матрицы
      for i:=2 to n do
      begin
           sum2:=0;
          for j:=1 to n do
          sum2:=sum2+a[i,j];
      if sum2 <> sum1 then
          begin
              flag:=false;
              break;
          end;
      end;
      if flag = true then     // если сумма строк сходится, то проверяем столбцы
         begin
             for i:=1 to n do
             begin
                  sum2:=0;
                  for j:=1 to n do
                  sum2:=sum2 + a[j,i];
                  if sum2 <> sum1 then
                     begin
                     flag:=false;
                     break;
                     end;
             end;
             
             if flag = true then // если сумма столбцов сходится проверяем главную диаганаль
                begin
                     sum2:=0;
                     for i:=1 to n do
                     sum2:=sum2 + a[i,i];
                     if sum2 = sum1 then  // если главная диаганаль сходится по сумме элементов, проверяем побочную диагональ.
                        begin
                           sum2:=0;
                           for i:=1 to n do
                           sum2:=sum2+ a[i, n+1-i];
                               if sum2 = sum1 then
                                  writeln('Суммы элементов строк, столбцов, главной и побочной диаганалей сходятся. ')
                               else
                                   writeln('Сумма элементов побочной диаганали не сходится.');
                        
                        end
                     else writeln('Матрица не является магическим квадратом. Не сходится сумма элементов главной диаганали.')
                end
             else writeln ('Матрица не является магическим квадратом. Не сходится сумма столбцов.')
         end
      else writeln('Матрица не является магическим квадратом. Не сходится сумма строк.');
end.
пишу код не только за печеньки
VIK_aka_TOR вне форума Ответить с цитированием
Старый 14.12.2011, 14:29   #12
VIK_aka_TOR
Участник клуба
 
Аватар для VIK_aka_TOR
 
Регистрация: 30.01.2011
Сообщений: 1,578
По умолчанию

energylol... в какомместе компилятор матюкается на вас?
пишу код не только за печеньки
VIK_aka_TOR вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
По введенному номеру билета определить, является ли билет счастливым. veter_s_morya Паскаль, Turbo Pascal, PascalABC.NET 26 14.06.2011 20:39
Среди 20 введёных чисел определить чётные, распечатать их, определить min Spade Помощь студентам 4 15.06.2008 18:39
является ли матрица А ленточной Andrei18 Помощь студентам 3 23.11.2007 19:05
Определить, является ли заданная строка правильной записью вещественного числа Sergik1977 Паскаль, Turbo Pascal, PascalABC.NET 2 18.10.2007 16:53