Квадратная матрица

Закономерности в квадратной матрице и ее обработка

 

Двумерный массив в котором число строк совпадает с числом столбцов называют квадратной матрицей. Рассмотрим закономерности определяющие характерное расположение элементов в квадратной матрице. Очевидно, что для элемента расположенного на главной диагонали номер его строки равен номеру его столбца i = j. Для элемента расположенного на побочной диагонали справедливо i + j = n + 1, где n — размер квадратной матрицы. Проверьте справедливость этого равенства.

Для элементов расположенных выше главной диагонали справедливо утверждение i < j, то есть номер строки элемента обязательно меньше номера его столбца. Для нижних элементов справедливо: i > j. Для побочной диагонали: i + j < n + 1 и i + j > n + 1.

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

 

1 четверть — (i < j) And (i + j < n + 1)

2 четверть — (i < j) And (i + j > n + 1)

3 четверть — (i > j) And (i + j > n + 1)

4 четверть — (i > j) And (i + j < n + 1)

 

В записи условий используется логический оператор And (логическое и). Логическое и требует выполнения обоих условий, в отличии от логического или (оператор Or), который  требует выполнения хотя бы одного из условий. Попутно следует сказать еще об одном важном логическом операторе Not (логическое нет).

Решим задачу: сформировать квадратную матрицу 5х5 из случайных целых чисел в диапазоне от 0 до 9 и вычислить сумму ее элементов расположенных на главной диагонали.

В окне для ввода программного кода в общем разделе (general) запишите:

 

Dim a(1 To 5, 1 To 5)

 

В процедуре Command1_Click разместите следующий программный код:

 

     Print

     Randomize

     s = 0

 

  For i = 1 To 5

  For j = 1 To 5

    a (i, j) = Fix (Rnd * 10)

  Next j

  Next i

     

  For i = 1 To 5

     Print

  For j = 1 To 5

    Print a (i, j);

    If i = j Then s = s + a (i, j)

  Next j

  Next i

   

    Print

    Print "Сумма в главной диагонали ="; s

 

Проверьте результат работы программы.

Следующую программу построим таким образом, чтобы можно было задавать размер квадратной матрицы в процессе работы программы. Воспользуемся оператором считывания InputBox, который позволяет пользователю вводить данные во время работы программы.

 

Dim a(1 To 50, 1 To 50), n

 

     Cls

     Randomize

    

100      n = InputBox ("Запишите размер квадратной матрицы")

     If n = "" Then 100

     If n > 50 Or n < 2 Then 100

 

  For i = 1 To n

  For j = 1 To n

    a (i, j) = Fix (Rnd * 10)

  Next j

  Next i

     

  For i = 1 To n

     Print

  For j = 1 To n

    Print a (i, j);

  Next j

  Next i

 

Переменная n используется под размер квадратной матрицы. Все циклы будут работать от 1 до n. Метка «100» необходима для того чтобы можно было вернуться к оператору считывания в случае некорректного ввода данных пользователем. Сразу за этой строкой идет два условия защищающие работу программы. Первое условие возвращает к оператору считывания, если пользователь не ввел размер матрицы. Второе условие является сложным, так как применен оператор Or (или). Эта строка-условие читается: если n больше 50-и или меньше 2-х, то иди к сотой строке.

В выше построенной квадратной матрице 20х20 вычислим сумму всех ее элементов, расположенных ниже побочной диагонали. Для этого в общем разделе general объявим переменную s  с помощью оператора Dim и после строки закладывающей в ячейки матрицы случайные числа запишем инструкцию:

 

     If i + j > n + 1 Then s = s + a (i, j)         ‘ условие наращивания суммы

 

В конце программы не забудьте вывести на экран вычисленную сумму:

 

     Print "Сумма элементов в побочной диагонали ="; s

 

Домашнее задание

 

1.  Сформируйте квадратную матрицу размерности 8х8 из случайных однозначных чисел и вычислите сумму ее элементов расположенных на побочной диагонали.

2. Сформируйте квадратную матрицу размерности 10х10 из случайных однозначных чисел и вычислите сумму ее элементов расположенных во второй четверти.

3. Сформируйте квадратную матрицу размерности 7х7 из случайных однозначных чисел и вычислите произведение ее элементов расположенных в четвертой четверти.

4. Сформируйте квадратную матрицу размерности 25х25 из случайных однозначных чисел и вычислите число «восьмерок» выпавших в первой четверти.

 

BigCamagan

Урок десятый

Рейтинг@Mail.ru

Азбука

Visual Basic

Hosted by uCoz