- Одномерные массивы. Способы описания и заполнения одномерных массивов
- Ключевые слова:
- Описание и заполнение одномерного массива
- 1 Описание массива в разделе переменных VAR:
- 2 Описание массива в разделе описания типов TYPE:
- BestProg
- Массивы. Часть 1. Определение массива. Одномерные массивы. Инициализация массива
- Содержание
- Одномерные массивы в Паскале
- Работа с одномерными массивами на языке программирования Паскаль
- Одномерный числовой массив
- Способы заполнения одномерных массивов
- Урок 20. Описание массива
- Описание массива
Одномерные массивы. Способы описания и заполнения одномерных массивов
Ключевые слова:
Массив -это
1) о бласть машинной памяти, в которой могут размещаться совокупности значений одного и того же типа (англ.- array);
2) упорядоченный набор переменных, объединенных общим назначением и имеющих одно имя.
Элемент массива – отдельная переменная, входящая в массив.
Индекс элемента — номер элемента массива, обозначаемый числом или буквой (англ.- индекс).
Размер массива — количество элементов в массиве.
Размерность – число индексов в массиве (1-мерный,2-мерный, N-мерный).
Описание и заполнение одномерного массива
Массив — это структурированный тип для резервирования в памяти места под большое количество однородных элементов ( общий размер – не более 65.52 кБайт). Оперировать можно как с отдельными элементами массива, так и с массивом в целом.
- В математике обычно элемент записывается в виде:A(1), A(2),…A(n) или А1, А2,… Аn,
- в языкеPascal индекс заключается в квадратные скобки:А[1],A[2].A[n].
ARRAY – зарезервированное слово Pascal, оно указывает, что данная переменная является массивом.
Возможны 2 способа описания массива:
1 Описание массива в разделе переменных VAR:
|
i1..i2 – диапазон индексов (любой порядковый тип, кроме longint);
t – тип элемента.
Например:
VAR A: array [1..10] of byte;
VAR ENTER: array [1998..2002] of integer ;
VAR y: array[-3..5] of real ;
VAR FIO: array [1..30] of string ;
VAR mas: array [1..M] of real;
CONST b: array [1..5] OF byte = ( 1,4,3,2,0);
Заполнение одномерного массива возможно несколькими способами, основные из которых:
2 с помощью генератора случайных чисел;
3 объявление массива как CONST;
Упражнение arr1: Описать в разделе VAR и заполнить массив А из 5 целых элементов с клавиатуры. Вывести массив в строчку.
var a: array[1..5] of integer;
write(‘Введите элемент массива А[‘,i,’]= ‘);
ReadLn (a[i]);
writeLn(‘Результирующий массив А:’);
2 Описание массива в разделе описания типов TYPE:
|
Например:
TYPE mas = array[1..20] of integer;
TYPE m = array[1..5] of string[3];
Const mes: m =(’jan’,’feb’,’mar’,’apr’,’may’);
Упражнение arr2: Описать в разделе TYPE и заполнить массив MAS из 5 целых случайных чисел. Вывести массив в столбик.
TYPE a= array[1..5] of integer;
VAR mas: a;
randomize;
mas[i]:= random(100);
Упражнение arr3: Заполнить массив – CONST из 12 чисел.
const a: array[1..12] of byte=(1,3,2,3,0,0,4,5,6,7,8,2);
for i:=1 to 10 DO
Упражнение arr4: Заполнить массив – символьную CONST из 12 английских наименований месяцев года длиной в 3 символа, например: JAN, FEB и т. д.
Упражнение arr5: Заполнить массив по формуле: y = x2 в диапазоне [0; 1] с шагом 0.1.
Источник
BestProg
Массивы. Часть 1. Определение массива. Одномерные массивы. Инициализация массива
Содержание
Поиск на других ресурсах:
1. Что такое массив? Определение массива
Массив – набор переменных одинакового типа. Доступ к этим переменным осуществляется по одному имени. Это имя называется именем массива.
Массивы используются для группирования связанных переменных между собой.
2. Определение одномерных и многомерных массивов.
Массивы могут быть одномерными и многомерными. В одномерных массивах для доступа к элементу массива используется один индекс. В многомерных массивах для доступа к элементу массива используется несколько индексов.
3. Описание одномерного массива. Примеры описания одномерных массивов
Общая форма описания одномерного массива:
В вышеприведенном описании:
- тип – это тип элементов массива. Он еще называется базовым типом. Базовый тип определяет количество данных каждого элемента, который составляет массив. Тип элементов массива может быть как базовым типом так и составным (например, структура). Подробно о базовых типах данных C++ описывается здесь.
- размер – количество элементов в массиве;
- имя_массива – непосредственно имя массива, по которому осуществляется доступ к элементам массива.
После описания массива, значение элементов может быть нулевым или неопределенным.
Пример 1. Описание массива из 10 целых чисел (тип int ) с именем A .
В результате, в памяти компьютера выделяется 10 ячеек типа int . Если одна ячейка занимает 2 байта, то всего будет выделено 20 байт памяти. Номер первой ячейки начинается с нуля. Эти ячейки объединены общим именем A .
Рисунок 1. Массив из 10 целых чисел
Пример 2. Описание массива с именем M , содержащим 20 элементов типа char .
4. Доступ к элементам одномерного массива. Примеры
Доступ к отдельному элементу массива осуществляется с помощью индекса. Индекс определяет позицию элемента в массиве. Первый элемент массива имеет нулевой индекс.
Чтобы получить доступ к отдельному элементу массива по его индексу, нужно после имени массива в квадратных скобках указать номер этого элемента.
Пример 1. Пусть дан массив с именем A , содержащий 10 целых чисел. Записать число 5 в первый и последний элементы массива.
На рисунке 2 видно результат работы вышеприведенного программного кода.
Рисунок 2. Результат работы фрагмента кода
Пример 2. Массив из 10 элементов типа char .
Рисунок 3. Массив из 10 элементов типа char
Пример 3. Массив из 30 вещественных чисел.
5. Как определить размер одномерного массива?
Размер одномерного массива определяется по формуле:
Пример.
Если в массиве 20 элементов типа double (8 байт), то размер массива будет
6. Особенности обработки массивов компилятором в C++ . Границы массива
В C++ не ведется строгого контроля за доступом к элементам за пределами массива. Если описать массив из 100 элементов, то можно прочитать или изменить 101-й, 102-й и следующие элементы. На этих позициях могут быть ячейки памяти, которые были выделены для других переменных или даже для вашей программы. Это может привести к уничтожению программы при отсутствии каких-нибудь замечаний со стороны компилятора C++ .
Вся ответственность за соблюдение границ массивов лежит строго на программисте. Программист должен писать такой код, который гарантирует корректную работу с массивами. Это реализуется с помощью включения в программу специальных проверок.
7. Как осуществляется инициализация массива в C++ . Примеры
В C++ поддерживается два вида инициализации массивов:
- инициализация с заданием размера массива;
- «безразмерная» инициализация.
Общий вид инициализации с заданием размера массива:
- тип – тип элементов массива;
- размер – количество элементов массива указанного типа;
- список_значений – список значений инициализации элементов массива. Элементы массива разделяются символом ‘ , ‘ (запятая).
Общий вид «безразмерной» инициализации:
В этом случае размер массива определяется количеством элементов, которые описаны в список_значений .
Пример 1. Массив B инициализирован с заданием размера.
Пример 2. Массив C инициализирован на основе списка значений («безразмерная» инициализация).
8. Инициализация символьных массивов. Пример
Для символьных массивов можно использовать сокращенный вариант инициализации:
В этом случае каждому элементу массива присваивается один символ строки. Значение размер задает размер памяти, который выделяется для массива. Значение размер должно быть не менее длины строки, в противном случае компилятор выдаст сообщение об ошибке.
Допускается также вариант инициализации массива без указания размера
В этом случае размер массива равен длине строки.
Пример. Инициализация символьного массива с именем str .
В вышеприведенном примере массивы str и str2 содержат одинаковые значения.
9. Присвоение одного массива другому. Пример
В языке программирования C++ (в отличие от других языков) нельзя присваивать непосредственно один массив другому. Присваивать можно только поэлементно с использованием оператора цикла. При этом оба массива должны иметь одинаковый тип элементов.
Пусть заданы два массива целых чисел. Фрагмент кода, который присваивает один массив другому:
10. Описание массива структур. Пример
Пусть дано описание структуры, которая содержит информацию о книге:
Это описание определяет новый тип struct BOOK . При таком описании память не выделяется. Это только информация о новом типе данных. Структура должна быть описана за пределами определения любого класса в начале определения пространства имен.
В программе массив из 5 книг (структур) можно описать так:
Доступ к элементам структуры в программе:
В вышеприведенном коде использована функция работы со строками
Эта функция копирует строку str2 в строку str1 . Чтобы использовать эту и другие функции работы со строками в начале программы (перед описанием пространства имен) нужно указать строку
Источник
Одномерные массивы в Паскале
Работа с одномерными массивами на языке программирования Паскаль
Массив — самая распространенная структура хранения данных, присутствующая в любом языке программирования.
В Pascal используются одномерные и двумерные массивы. В школьной программе обычно их изучают в 9-10 классах.
Одномерный массив — это конечное количество однотипных элементов, объединенных общим именем. Каждому элементу присвоен свой порядковый номер. Обращение к элементам происходит по имени массива и индексу (порядковому номеру).
Одномерный числовой массив
Одномерные массивы называют линейными, так как элементы расположены друг за другом. Их можно представить в виде таблицы, в которой всего две строки. В первой перечислены индексы элементов, а во второй — значения элементов.
Одномерный массив. Обозначение элементов
Имя массива формируется по тем же правилам, что и имя любой другой переменной в программе. Границы индексов задают при описании массива в квадратных скобках. Удобнее задавать начальный индекс равный единице. Конечный индекс определяется условием задачи и численно равен размеру массива — количеству элементов. Числовые массивы могут содержать целые и действительные числа. Тип элементов указывается в описании. Смотрите рисунок выше.
Способы заполнения одномерных массивов
В наших примерах будем использовать одномерный массив целых чисел, состоящий из пяти элементов. Для этого выполним его описание в разделе переменных
Источник
Урок 20. Описание массива
Урок из серии: «Язык программирования Паскаль»
В предыдущем уроке мы ввели понятие структурированных данных.
Изучение данных структурированного типа начнем с регулярного типа данных — массивов.
Название регулярный тип массивы получили за то, что в них объединены однотипные элементы, упорядоченные (урегулированные) по индексам, определяющим положение каждого элемента в массиве.
Массив — структурированный тип данных, состоящий из фиксированного числа однотипных элементов, объединённых одним именем, где каждый элемент имеет свой номер (индекс).
Когда возникает необходимость использовать массивы?
Рассмотрим следующую задачу: ввести с клавиатуры 30 целых чисел и вычислить их сумму, при этом каждое из чисел сохранить в памяти для последующей обработки.
Мы будем вынуждены ввести 30 имен переменных, что, естественно, очень неудобно. Как быть?
В этом случае лучше организовать массив. Имя у всех элементов будет общее. Чтобы получить доступ к элементу, достаточно будет указать имя массива и его порядковый номер.
И так, массивы будем использовать тогда, когда нужно обработать большой объем однотипной информации, которую необходимо сохранить в памяти для последующей обработки.
Определим еще несколько понятий, связанных с массивами.
Элемент массива — отдельная переменная, входящая в массив.
Размерность массива — количество индексов, по которым определяется положение элемента в массиве.
Индексы элемента массива — совокупность номеров, определяющих его местоположение в массиве.
Чтобы лучше понять, что такое размерность массива, сравним их с таблицами.
Одномерный массив сравним с таблицей, состоящей из одной строки. Для определения положения элемента в строке достаточно знать порядковый номер ячейки, в которой находится элемент. Поэтому в одномерном массиве один индекс — порядковый номер элемента.
Двумерный массив — прямоугольная таблица. Для определения положения элемента в прямоугольной таблице нужно знать порядковый номер строки и столбца, на пересечении которых находится ячейка. Поэтому в двумерном массиве — два индекса, номер строки и номер столбца.
И так, потребность использовать массив возникает всякий раз, когда при решении задачи приходится иметь дело с большим, но конечным количеством однотипных данных, которые необходимо хранить в памяти.
Переходим к изучению массивов.
Описание массива
Прежде чем использовать массив в программе, его необходимо предварительно описать. Описать массив — значит выделить в памяти место, достаточное для хранения всех его элементов. Для этого надо указать имя массива и длину массива — количество элементов в нем. В большинстве случаев при задании размеров массива используются диапазоны изменения значений индекса.
При описании массива используется зарезервированное слово array (массив), указываются диапазон изменения для индексов и тип компонентов массива.
Способ 1. Описание массива с определением типа.
Способ 2. Описание массива без определения типа.
Двумерный массив описывается так же, как и одномерный. Различие состоит в том, что вы должны указать диапазон для двух индексов массива — положение каждого элемента массива A[i, j] определяется номером строки и номером столбца.
Например, описание двумерного массива натуральных чисел размера N x М может быть задано следующей строкой:
Вернемся к нашей задаче. У нас 30 целых чисел, выделим для них 30 ячеек, объединим их общим именем А.
№ | A | Имя А — это общее имя для всех элементов. Элементы массива — это числа, их 30 |
1 | 25 | |
2 | 64 | |
3 | 27 | |
… | … | |
29 | 53 | |
30 | 89 |
Опишем одномерный массив из 30 целых чисел для этой задачи следующим образом:
Напомним, что раздел типов начинается со служебного слова type, после этого идет имя нового типа и его описание. Между именем типа и его описанием ставится знак «равно» (в разделе переменных между именем переменной и её описанием ставится двоеточие).
myarray — это имя нового типа;
array — служебное слово (в переводе с английского означает «массив», «набор»);
[1..30] — в квадратных скобках указывается номер первого элемента, затем, после двух точек, номер последнего элемента массива, в этом примере первый элемент имеет номер 1, а последний — номер 30;
Of — служебное слово (в переводе с английского — «из»);
Integer — тип всех элементов массива.
Так как каждый элемент имеет свой номер, то к каждому элементу можно обращаться непосредственно. Для того чтобы получить доступ к i-му элементу этого массива, необходимо записать: A[i] — сначала имя массива, а в квадратных скобках указывается номер элемента, к которому обращаемся, — i.
Например, обращаемся к первому элементу массива А — А[1], а к пятому — А[5].
Тот же самый массив может быть задан и при определении соответствующей переменной:
Особенность языка Паскаль
Особенностью языка Паскаль является то, что число элементов массива фиксируется при описании и в процессе выполнения программы не меняется. Это считается недостатком языка, так как не во всех программах можно заранее предсказать необходимый размер массива (который может определяться в зависимости от тех или иных условий, возникающих в процессе исполнения).
Для решения этой проблемы используют прием, позволяющий имитировать работу с массивами переменной длины, который заключается в следующем: в разделе описания предварительно определяют возможное максимальное значение размера массива, а затем в программе запрашивают текущее значение размера и используют это значение далее при заполнении и обработке массива.
На следующем уроке мы рассмотрим основные алгоритмы, которые используются при обработке данных, хранящихся в массиве.
Источник