|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
МассивыВ языках программирования существует сложный тип переменной - переменная с индексом, являющая собой отдельный элемент сложного типа данных под названием массив. Массив –это конечная упорядоченная совокупность переменных одного типа. Упорядоченная - это значит, что каждый элемент массива находится на своём месте, т.е. если 2 элемента массива поменять местами, то это будет уже другой массив. Величина, определяющая местоположение переменной в массиве, называется индексом.Иначе говоря, индекс – это номер элемента (переменной) в массиве. Массив считается данным сложного типа и требует обязательного описания.В Basic описание массива выполняется с помощью оператора DIM (dimension), который относится к т.н. описательным или невыполняемым операторам. Формат записи такого оператора: DIM <имя массива > (< максимальные размеры индексов> ) При выполнении оператора DIM в памяти компьютера выделяется место для хранения элементов массива в указанном объёме. На выделение объёма памяти для массивов существуют ограничения, заданные системой программирования. Например: DIM A(10), DIM Z(5,3,7) Массивы могут иметь несколько индексов и бывают одномерные (или вектора), двумерные (или матрицы), трёхмерные и т.д. – многомерные. В Basic, если массив одномерный, то в нем максимальное значение индекса равно кол-ву элементов в массиве. В двумерном массиве кол-во элементов равно произведению максимальных значений индексов. Например, в матрице DIM B(4,5) кол-во элементов равно 4*5 = 20 элементов. В памяти компьютера все элементы всех массивов расположены линейно. Это значит, что элементы матрицы будут расположены в порядке 5, 0, 2, 1, 6, 3, то есть по строчкам. Говорят, что элементы многомерных массивов расположены в порядке наибыстрейшего изменения последнего индекса. Индекс может изменяться от начального значения до максимального значения, указанного в операторе DIM. В качестве индекса может выступать переменная, например, А(i) или даже выражение - A(k+1). Использование переменных в качестве индексов обеспечило максимальную эффективность в обработке массивов. 5. Двумерные массивы Двумерный массив – это совокупность однотипных элементов, каждый из которых имеет две координаты: номер строки и номер столбца. Как правило, двумерные массивы называют матрицами. Обработка матриц проходит в двух вложенных циклах FOR…NEXT. Внешний задает номер текущей строки, вложенный – текущий столбец. Матрицу наиболее удобно рассматривать по строкам слева направо, хотя можно спрограммировать анализ и по другой схеме. Ввод и формирование матрицы В общем виде матрица А имеет вид: А= , где - общий элемент матрицы, где i – номер строки, j – номер столбца. Если m≠n, матрица называется прямоугольной. Если m=n, матрица называется квадратной. В главную диагональ квадратной матрицы войдут ее элементы, у которых равны индексы, т.е. i=j. Если i<j, то элементы матрицы находится выше главной диагонали, и наоборот, если i>j – ниже. Если i+j=n+1, то элементы образуют побочную диагональ. Ввод матрицы подразумевает ввод каждого элемента с клавиатуры, а формирование – автоматическое присвоение значений элементам самой программой. Пример. Ввести матрицу М(3, 4) DIM M(1 TO 3, 1 TO 4) FOR i=1 TO 3 FOR j=1TO 4 INPUT M(i, j) NEXT j NEXT i Работа программы: Внешний цикл со счетчиком i перебирает номера строк, внутренний – номера столбцов в каждой строке. Циклы работают по очереди. Внешний цикл переходит к следующему значению i только после того, как внутренний переберет все значения j. Важно четко представлять себе, что счетчики циклов i и j обозначают только номера строк и столбцов, а не значение элементов. Именно на использовании счетчиков основано применение циклов в обработке матриц. Счетчики задают позицию в матрице, а действия с элементами в этой позиции выполняют уже другие операторы. Для большей наглядности ввода и иллюстрации работы счетчиков программу можно немного усовершенствовать. DIM M(1 TO 3, 1 TO 4) FOR i=1 TO 3 FOR j=1 TO 4 PRINT ²M(²; i; j; ²)² INPUT M(i, j) NEXT j NEXT i После запуска такого алгоритма на экран перед вводом очередного элемента будет выводиться его номер и знак вопроса – М(1,1)?, М(1,2)?, М(1,3)?.... После каждого запроса нужно вводить значения элемента и нажимать Enter.
Вывод матрицы на экран Выводить матрицу на экран нужно в виде строк и столбцов. Для этой задачи подходят вложенные циклы FOR…NEXT. Пример. Двумерный массив М(3,4) вывести на экран в виде матрицы FOR i=1 TO 3 FOR j=1 TO 4 PRINT M(i, j); NEXT j NEXT i Работа программы: Вложенный цикл со счетчиком j выводит элементы строки. Точка с запятой (;) в операторе PRINT дает команду на вывод элементов в одну строку через пробел. Внешний цикл задает номер выводимой строки. Для перевода курсора в очередную строку матрицы после завершения работы внутреннего цикла использую «пустой» PRINT между операторами NEXT i и NEXT j. Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.008 сек.) |