Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Изучение приемов программирования задач с использованием двухмерных массивов

Читайте также:
  1. I. Возможности пакета GeoScape и решаемые задачи.
  2. I. Цели и задачи
  3. I. ЦЕЛИ И ЗАДАЧИ ОЛИМПИАДЫ
  4. II. Цели, задачи и основные направления деятельности Совета
  5. III. Обучающие тестовые задачи.
  6. IV. Изучение нового материала
  7. V. Изучение личности с помощью психогеометрического теста.

Лабораторная работа №8

Работа с двухмерными массивами

Цель:

изучить приемы программирования задач с использованием двухмерных массивов.

Результат обучения:

знать алгоритмы ввода/вывода двухмерного массива;

уметь составлять описание двухмерных массивов;

уметь программировать задачи по обработке двухмерных массивов.

Изучение приемов программирования задач с использованием двухмерных массивов

В Visual Basic имеется возможность работы с двухмерными массивами. В математике аналогом двухмерного массива является матрица.

А =

Матрица А состоит из четырех строк и четырех столбцов. В матрице каждый элемент идентифицируется номером строки и номером столбца, на пересечении которых он расположен.

В двухмерном массиве элемент также определяется двумя индексами, которые заключаются в скобки и отделяются друг от друга запятыми, например: a(2, 3)

В двухмерном массиве первый индекс указывает на номер строки, а второй индекс указывает на номер столбца, на пересечении которых расположен элемент. В матрице А, записанной выше, элемент а(2, 3) равен 1, а элемент a(3, 2) равен 0.

Предположим, перед нами стоит задача обнулить все элементы первой строки. Можно рассматривать строку матрицы как одномерный массив. Тогда нужно записать оператор:

For i=1 To 4

a (1, i) =0

Next i

Первый индекс элемента остается неизменным, он равен 1. Это номер строки. Второй индекс изменяется от 1 до 4. Это номер столбца.

Пусть теперь необходимо обнулить все элементы первого столбца.

For i=1 To 4

a (i,1) =0

Next i

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

Если нужно обнулить все элементы матрицы, то следует организовать два вложенных цикла.   For i=1 To 4 For j =1 To 4 a (i,j) =0 Next j Next i

При каждом значении i (номера строки) j пробегает все значения от 1 до 4.

Так, при работе с двумерными массивами для определения каждого элемента массива нужно организовать два вложенных цикла. Например, для ввода значений элементов матрицы, состоящей из 4-х строк и 4-х столбцов, нужно записать следующий код:

Для ввода элементов используется текущий лист электронной таблицы. For i = 1 To n For j = 1 To m A(i, j) = cells(i, j) Next j Nexti Для ввода элементов массива в VBA используется функция InputBox: For i = 1 To n For j = 1 To m A(i, j) = InputBox("a(" + Str(i) + Str(j) + ")") Next j Nexti

Ввод по строкам, реализованный в приведенном фрагменте программы является наиболее естественным. В случае необходимости можно организовать заполнение массива по столбцам. Для этого внешний цикл должен быть организован по номеру столбца (j), а внутренний — по номеру строки (i) с соответствующими границами изменения индексов.

For j = 1 To 4

For i = 1 To 4

a (i, j) = cells(i, j)

Next j: Next i

Объявление массивов фиксированного размераосуществляется с помощью тех же операторов, что и простая переменная. Только после имени массива в круглых скобках проставляется размер массива. Размер массива можно задавать целым числом или переменной, значение которой перед этим должно быть определено. Область видимости массивов определяется так же, как для простых переменных.

Примеры объявления массивов:

Dim intA(21) As Integer

Public sngMas(6, 4) As Single

или

Dim intA(1 To 21) As Integer, intD(- 4 To 5) As Single

Public sngMas(1 To 6, 1 To 4) As Single

В первом варианте в массиве intA(21) всего 22 элемента, т. к. индекс изменяется от 0 до 21. Но можно использовать только элементы с индексами от 1 до 21, хотя элемент intA(0) также будет существовать. А в двумерном массиве sngMas(6, 4) всего 35 элементов (7х5), т. к. отсчет каждого индекса начинается с 0. В одномерном массиве intD(- 4 To 5) начальное значение индекса – отрицательное число.

Элементов с нулевыми индексами во втором варианте объявления массивов нет. И количество элементов в массиве intA() всего 21, а в sngMas() – 24 (6х4). Но можно «заставить» вести отсчет индексов всегда с 1, если ввести оператор Option Base 1 в раздел (General) (Declarations).

Объявление динамического массива производится в случае, когда размер массива может изменяться во время выполнения программы. В начале программы (процедуры) необходимо объявить массив без указания его размера, например для массива А

Dim A() As Integer

После того, как размер массива (N и M) в программе станет известен, нужно переопределить массив с помощью оператора Redim:

ReDim A(M, N) As Integer

Форма:


Дата добавления: 2015-08-09; просмотров: 80 | Нарушение авторских прав


Читайте в этой же книге: Самостоятельная работа | Теоретичні відомості | Порядок виконання роботи |
<== предыдущая страница | следующая страница ==>
Создание критерия отбора| Пример 2.

mybiblioteka.su - 2015-2024 год. (0.007 сек.)