Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Ввод и вывод массивов

Описание массива.

Для записи элементов массива в память ЭВМ нужно выделить для их хранения необходимое количество (массив) ячеек памяти, которое определяется размером массива. Размеры массива задаются границами измерения индексов по каждому измерению. Минимальное значение индексов равно 0. С учетом этого количество элементов в одномерном массиве будет равен значению верхней границы индекса плюс единица, а двумерного – произведению увеличенных на единицу значений верхних границ индексов.

В программе для каждого массива должны быть указаны его параметры, имя, размерность и размеры. Эта информация нужна для резервирования необходимого объема памяти для хранения числовых значений, она задается специальным оператором описания массива DIM (сокращение от DIMENSION – размерность). Оператор DIM в общем имеет следующий вид:

<n> DIM V1(i1[ j1]), V2(i 2[ j2]), Vk(ik[ jk])

где n – номер строки; DIM – имя оператора; V1, V2, Vk – имена массивов; i1, j1, i 2, j2, ik, jk – верхние границы индексов, представляющие собой положительные целые константы; квадратные скобки здесь указывают на необязательность элемента. Например, если в программе используется одномерный массив А, содержащий 10 элементов, и двумерный массив В1, состоящий из трех строк и пяти столбцов, то оператор описания массивов будет иметь вид

10 DIM А(9), В1(2,4)

Оператор DIM может быть записан в любом месте программы до первого оператора, использующего соответствующую индексную переменную. Однако наиболее употребительной является такая структура, при которой все описания объединяются в начале программы. Выполняя оператор DIM, машина выделяет для массива соответствующее количество ячеек памяти, причем имя массива определяет адрес первой ячейки участка памяти, хранящего данный массив. Элементы массивов располагаются в памяти ЭВМ один за другим в последовательных ячейках памяти. Строгая последовательность записи элементов исключает необходимость хранения порядковых номеров элементов.

Элементы массива могут быть использованы для вычислений только после того, как их значения будут записаны в память ЭВМ. Запись элементов массива в зарезервированную область памяти может осуществляться, вообще говоря, в любой последовательности с помощью оператора RFAD из блока данных или в диалоговом режиме оператором INPUT. Простейшим способом ввода является последовательная запись вводимых элементов массива в операторе ввода. Например, во фрагменте программы

10 DIM С(3)

20 DATA 3,4.856, 3У-5, 123

30 READ C(0), С(1), С(2), С(3)

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

10 DIM А(9) 20 FOR 1=0 TO 9 30 READ A(I) 40 NEXT I 50 DATA 0.8, 0.1, 2,4,5 (продолжение программы) 60 DATA 4.2, 3.5, 6, 0.4 (продолжение программы)   10 DIM А(9) 20 FOR 1=0 TO 9 30 INPUT A(I) 40 NEXT I  

В первом случае запись значений элементов массива А осуществляется из блока данных последовательно дя каждого значения в отведенные для данного массива ячейки. При втором варианте ввода массива для каждого из значений, выполняя оператор, машина печатает знак вопроса и пользователь должен на каждый вопрос напечатать и ввести одно значение, соответствующее элементу А(1) (=0, 1, 2, …,9).

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

10 DIM B(2, 4) 20 FOR I=0 TO 2 30 20 FOR J=0 TO 4 40 INPUT B(I, J) 50 NEXT J 60 NEXT I (продолжение программы) 10 DIM B(2, 4) 20 FOR I=0 TO 4 30 FOR I=0 TO 2 40 INPUT B(I, J) 50 NEXT I 60 NEXT J (продолжение программы)

В этом случае на каждый знак вопроса, вводимой машиной при выполнении оператора INPUT, пользователь должен печатать и вводить значение соответствующего элемента B(I, J). Последовательность записи значений элементов при вводе по строкам такая:

B(0, 0) B(0, 1) B(0, 2) B(0, 3) B(0, 4) B(1,0), ……. B(1, 4), т.е элементы первой строки, затем второй и т.д.,

А по столбцам такая: B(0, 0) B(1, 0) B(2, 0) B(0,1) B(1, 1) B(2, 1), ……. т.е элементы первого столбца, затем второго и т.д.

При большом количестве элементов в массиве удобно воспользоваться такой последовательностью операторов:

10 DIM B(2, 4)

20 FOR I=0 TO 2

30 INPUT B(I, 0) B(I, 1) B(I, 2) B(I, 3) B(I, 4)

40 NEXT I

(продолжение программы)

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

S = 0,8 -3 5

1,7 3,2 -0,8 можно записать операторы

0 2,2 1

2,5 2,4 5,2

10 DIM S(3 2)

20 FOR I=0 TO 3

30 20 FOR J=0 TO 2

40 READ S(I, J)

50 NEXT J

60 NEXT I

70 DATA 8? -3 5 1 7 3 2 -8 0 2 2 1 2 5 2 4 5 2

(продолжение программы)

Для ввода в память ЭВМ элементов нескольких массивов в программе должны предусматриваться соответствующие операторы для ввода каждого из них. При этом значения элементов каждого массива в блоке данных записываются последовательно. Например, массивы 2,71 -0,7

Т = 1 0,63 0,71 R = -2,3 1,2

- 0,34 2,8 1,17

0,18 -0,65 0,7

Можно ввести следующей группой операторов:

10 DIM S(3 2)

20 FOR I=0 TO 3

30 20 FOR J=0 TO 2

40 READ

50 NEXT J

60 NEXT I

70 FOR I=0 TO 3

80 FOR I=0 TO 3

90 READ

100 NEXT J

110 NEXT I

120 DATA

130 DATA

 

 

<== предыдущая лекция | следующая лекция ==>
Линейные и прямоугольные массивы | Способи захисту права інтелектуальної власності. Форми захисту права інтелектуальної власності
Поделиться с друзьями:


Дата добавления: 2014-01-05; Просмотров: 759; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.009 сек.