Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать неотразимый комплимент Как противостоять манипуляциям мужчин? Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?

Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






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





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

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

Цель:

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

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

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

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

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

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

В 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

Форма:

Данная задача решена в среде VBA. Для ввода информации используются редакторы ввода TextBox1 и TextBox2. Для вывода информации используется текстовый редактор TextBox3. Его свойство MultiLine должно быть равно True.  





Date: 2015-10-18; view: 72; Нарушение авторских прав

mydocx.ru - 2015-2018 year. (0.007 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию