Ваш браузер устарел. Рекомендуем обновить его до последней версии.




 



 


Delphi

 

 


 

Урок девятый

Двумерный массив. Обработка двумерного массива

Мы постоянно сталкиваемся с двумерными массивами. Далеко ходить не надо: посмотрите на экран Вашего дисплея – его матрица не что иное как двумерный массив размером, например, 1024х768 точек. Вспомните старую мудрую шахматную доску или знаменитую компьютерную игру «Цветные линии». Примером квадратной матрицы является также удивительный квадрат, который открыли три тысячи лет назад китайские ученые. Размер такого квадрата 3х3, в него входят девять цифр привычной нам десятичной системы счисления кроме нуля. А замечателен он тем, что сумма в нем в любых строках, столбцах и обеих диагоналях равна одному и тому же числу, причем ни в одной ячейке цифры не повторяются! Настоящий программист получает истинное наслаждение в работе с матрицами.

Сформируем двумерный массив размером 15х10, состоящий из случайных чисел в диапазоне от 0 до 9. Запустите Visual Basic. На форме Form1 разместите электронную кнопку Command1. В окне для ввода программного кода в общем разделе (general) запишите строку объявляющую двумерный массив a:

 

     Dim a (15, 10)     ‘ резервирование памяти для двумерного массива a на 150 элементов

 

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

 

     Print

     Randomize

 

     For i = 0 To 14     ‘ внешний цикл i для 15-и строк

          For j = 0 To 9     ‘ внутренний цикл j для 10-и столбцов

               a (i, j) = Fix (Rnd * 10)     ’ заполнение массива случайными числами

          Next j     ‘ конец внутреннего цикла j

     Next i     ‘ конец внешнего цикла i

 

     For i = 0 To 14

                                        Print

          For j = 0 To 9

              Print a (i, j);     ‘ вывод элементов массива a на экран

          Next j

     Next i

 

Здесь i это номер строки, а j это номер столбца. Запустите программу на выполнение. Здесь дважды используются вложенные циклы: создание двумерного массива и вывод последнего на экран.

Самостоятельно создайте двумерный массив с размерностью 20х5 и выведите его на экран.

Заполним массив размерности 15х10 случайными всевозможными двузначными числами. Будет достаточно изменить строку заполняющую массив случайными числами:

 

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

 

Запустите программу на выполнение. Внимательно посмотрите и разберитесь как эта строка формирует случайные двузначные числа в диапазоне от 10 до 99. Попробуйте изменить в этой инструкции число 10, а затем число 90!

Займемся обработкой двумерного массива размерностью 4х5. Найдем сумму случайных чисел в третьей строке. Так как нумерация строк идет от 0 до 3, то третья строка будет иметь номер 2.

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

 

     Dim a (4, 5), s

 

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

 

    Print

     Randomize

     s = 0     ‘ обнуление переменной s

 

     For i = 0 To 3

     For j = 0 To 4

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

     Next j

     Next i

 

     For i = 0 To 3

                                        Print

     For j = 0 To 4

          Print a (i, j);

          If i = 2 Then s = s + a (i, j)     ‘ суммирование элементов третьей строки

     Next j

     Next i

 

     Print

     Print "Сумма в третьей строке ="; s

 

Строка условия If (Если) накапливает сумму в переменную s при условии если номер строки i равен двум, то есть номеру третьей строки. Протестируйте программу.

Усложним предыдущую задачу. Кроме суммы в третьей строке, нужно найти еще и сумму элементов массива в четвертом столбце, а также вычислить общую сумму всех элементов двумерного массива. Необходимо будет использовать три переменных. Для всей суммы переменную s, для сумм в третьей строке и четвертом столбце отдельно, например, переменные s1 и s2.

В общем разделе (general) запишите строку объявляющую все переменные:

 

     Dim a (4, 5), s, s1, s2

 

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

 

     Print

     Randomize

     s = 0

     s1 = 0

     s2 = 0

 

     For i = 0 To 3

     For j = 0 To 4

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

     Next j

     Next i

 

     For i = 0 To 3

                                                     Print

     For j = 0 To 4

          Print a (i, j);

          s = s + a (i, j)

          If i = 2 Then s1 = s1 + a (i, j)     ‘ суммирование элементов 3-ей строки

          If j = 3 Then s2 = s2 + a (i, j)     ‘ суммирование элементов 4-го столбца

     Next j

     Next i

 

     Print

     Print "Сумма всех элементов массива ="; s

     Print "Сумма в третьей строке ="; s1

     Print "Сумма в четвертом столбце ="; s2

 

Проверьте правильно ли работает программа, благо что числа в массиве небольшие, да и размерность его невелика.

 

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

1. Сформируйте двумерный массив размером 5х8, состоящий случайных трехзначных чисел в диапазоне от 100 от до 999.

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

3. В массиве первого задания определить число элементов меньших ста.

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

5. Постройте программу отыскивающую максимальный элемент в двумерном массиве случайных целых чисел.

Flag Counter
Яндекс.Метрика
200stran.ru: показано число посетителей за сегодня, онлайн, из каждой страны и за всё время
Besucherzahler russain brides
счетчик посещений

Выбери лучшее!

allbest