С клавиатуры вводятся числа для квадрата, программа сообщает является ли квадрат магическим- Basic(Бейсик)

алгоритм

  1. ввести количество чисел N
  2. заполнить двумерный массив размера sqr(n)*sqr(n)
  3. находим сумму элементов 1 строки s
  4. ищем суммы элементов всех строк, столбцов, диагоналей и сравниваем с s
  5. если находим неравность, то f=1
  6. если f=0, то квадрат -магический, иначе — нет.
CLS
INPUT "Razmer storony matrici:", n
DIM KV(n, n), s, f
  ' Вводим эл-ты матрицы
 
FOR iy = 1 TO n: FOR ix = 1 TO n
LOCATE 10, 5: PRINT "Vvedite element(goriz:" + STR$(ix) + "  vert:" + STR$(iy) + ")"
PRINT SPACE$(80): LOCATE CSRLIN - 1, 1: INPUT a
KV(iy, ix) = a
NEXT: NEXT
  ' Проверяем на "волшебность")))
FOR i = 1 TO n: s = s + KV(i, 1): NEXT
  ' Строки&столбцы
FOR iy = 1 TO n: a = 0
   FOR ix = 1 TO n
   a = a + KV(iy, ix)
   NEXT
      IF a <> s THEN f = 1
NEXT
FOR ix = 1 TO n: a = 0
   FOR iy = 1 TO n
   a = a + KV(iy, ix)
   NEXT
      IF a <> s THEN f = 1
NEXT
  ' Диагонали
a = 0
FOR i = 1 TO n
a = a + KV(i, i)
NEXT: IF a <> s THEN f = 1
a = 0
FOR i = 1 TO n
a = a + KV((n - i) + 1, i)
NEXT: IF a <> s THEN f = 1
 ' Выводим результат
 LOCATE 2, 1
 IF f = 0 THEN
  COLOR 10: PRINT "Magicheskij kvadrat"
 ELSE
  COLOR 12: PRINT "Ne magicheskij kvadrat"
 END IF
 COLOR 7

Leave a Comment