- Одномерные массивы. Способы описания и заполнения одномерных массивов
- Ключевые слова:
- Описание и заполнение одномерного массива
- 1 Описание массива в разделе переменных VAR:
- 2 Описание массива в разделе описания типов TYPE:
- BestProg
- Массивы. Часть 1. Определение массива. Одномерные массивы. Инициализация массива
- Содержание
- Одномерные массивы в Паскале
- Работа с одномерными массивами на языке программирования Паскаль
- Одномерный числовой массив
- Способы заполнения одномерных массивов
- Понятие массива. Способы описания массивов
Одномерные массивы. Способы описания и заполнения одномерных массивов
Ключевые слова:
Массив -это
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 классах.
Одномерный массив — это конечное количество однотипных элементов, объединенных общим именем. Каждому элементу присвоен свой порядковый номер. Обращение к элементам происходит по имени массива и индексу (порядковому номеру).
Одномерный числовой массив
Одномерные массивы называют линейными, так как элементы расположены друг за другом. Их можно представить в виде таблицы, в которой всего две строки. В первой перечислены индексы элементов, а во второй — значения элементов.
Одномерный массив. Обозначение элементов
Имя массива формируется по тем же правилам, что и имя любой другой переменной в программе. Границы индексов задают при описании массива в квадратных скобках. Удобнее задавать начальный индекс равный единице. Конечный индекс определяется условием задачи и численно равен размеру массива — количеству элементов. Числовые массивы могут содержать целые и действительные числа. Тип элементов указывается в описании. Смотрите рисунок выше.
Способы заполнения одномерных массивов
В наших примерах будем использовать одномерный массив целых чисел, состоящий из пяти элементов. Для этого выполним его описание в разделе переменных
Источник
Понятие массива. Способы описания массивов
До сих пор рассматривались лишь простые (скалярные), типы данных, где каждым значением любого из этих типов является отдельное данное, то есть тривиальная структура. Значения структурированных или производных типов в общем случае представляют собой нетривиальную структуру, то есть имеют более чем одну компоненту. При этом каждая компонента структуры может быть как отдельным данным, так и нетривиальной структурой, то есть значением любого из производных типов.
На языке Паскаль можно обрабатывать не только отдельные переменные, но и их совокупности. Одной из таких совокупностей и наиболее часто используемым производным типом является регулярный тип, а его значения обычно называют массивами. Массив – это структурированный тип данных, состоящий из фиксированного числа элементов, имеющих один и тот же тип.
Тип элементов массива называется базовым. Число элементов массива фиксируется при описании и в процессе выполнения программы не меняется. Доступ к каждому отдельному элементу осуществляется путем индексирования элементов массива. Индексы представляют собой выражения любого скалярного типа, кроме вещественного. Тип индекса определяет границы изменения значений индекса. Например, массив A состоит из элементов a1, a2, a3, . . . an. Здесь а – имя элемента массива, n – его индекс, т.е. порядковый номер в массиве, по которому можно определить (найти) каждый элемент.
Для описания массива в языке Паскаль предназначено словосочетание ARRAY OF (массив из. ). Описание массива возможно двумя способами.
Способ 1.Используя раздел описания типов
Type = array [тип индекса] of ;
Например, Type Mas = array[1..100] of real;
Способ 2.Используя раздел описания переменных (Var) без представления типа в разделе описания типов данных.
: array [тип индекса] of ;
Например, Var M1, M2: array[1..100] of real;
V1: array[1..50] of integer;
Если в качестве базового типа взят другой массив, образуется структура, которую принято называть многомерным массивом.
Например,Type Vector = array [1..4] of integer;
Massiv = array [1..4] of Vector;
Ту же структуру можно получить, используя другую форму записи:
Var M1: array[1..4,1..4] of integer;
Таким образом, многомерный массив задается при помощи индексированных выражений, следующих друг за другом. Если индексное выражение одно, то массив называется одномерным, если два – двумерным (матрица), если n – n-мерным. Одномерные массивы в Паскале обычно используются для представления векторов, двумерные – для представления матриц.
Например,Var Vector = array [1..5] of real;
Matr = array [1..4,1..3] of integer;
При описании массивов для задания границ индексов можно использовать предварительно определенные константы. Например,
Var Matr = array [1..G1,1..G2] of integer;
Элементы массива располагаются в памяти последовательно, по строкам. Для массива Matr:
Matr[1,1] Matr[1,2] Matr[1,3]
Matr[2,1] Matr[2,2] Matr[2,3]
Matr[3,1] Matr[3,2] Matr[3,3]
Matr[4,1] Matr[4,2] Matr[4,3]
При обращении к элементам массива на Паскале индекс указывается в квадратных скобках: А[i], B[i,j].
При работе с массивами необходимо помнить следующее:
массив – это структура данных, представляющая собой совокупность элементов одного типа;
при объявлении массива указывается количество элементов массива;
доступ к элементу массива осуществляется путем указания индекса (номера) элемента массива.
Тип индекса элемента массива может быть только скалярным. Наиболее часто в качестве типа индекса используется ограниченный тип [1], причем в большинстве случаев это ограниченный целый тип.
Так, например, массив из 100 компонент вещественного типа может быть задан как array [1..100] of real.
Ограниченный целый тип 1..100 определяет количество компонент – 100 и их упорядоченность – от 1-ой до 100-ой.
В большинстве задач нумерация компонент начинается от 1 и ограничивается положительным целым числом. Но это необязательно. Если, например, представить в виде массива численность г. Москвы [1] в отдельные годы, то нумерацию удобно начинать с 1147 – года основания Москвы и до 2006 , т.е. такой массив можно задать как array[1147..2006] of integer;, а для Рима, основанного в 754 г. до н.э. – array[-754..-1] of integer;.
Здесь –1 –последний год до н.э.
Каждый из рассмотренных массивов может быть задан двояко:
1) используя описание типа:
Type vector = array[1..100] of real;
ch_M = array[1147..2006] of integer;
ch_R = array[-754..-1] of integer;
Обращение к элементам массивов с и d: с[1147], c[1999] и т.п., то есть с[i], d[i];
2) непосредственно при описании переменной:
Var a,b: array[1..100] of real;
c: array[1147..2006] of integer;
d: array[-754..-1] of integer;
Использование ограниченного целого типадля индексов дает достаточно широкие возможности для описания массивов.
Множество значений перечисляемого типатакже образует ограниченное перенумерованное множество.Следовательно, перечисляемый типтакже может быть использован в качестве типа индексов [1]. Значения перечисляемого типа упорядочены (порядок задается порядком перечисления имен, являющихся значениями этого типа), и число их конечно (определяется количеством имен в этом типе).
Например, необходимо проанализировать среднемесячную температуру воздуха за год [1]. Можно в качестве индекса использовать ограниченный целый тип 1..12, но можно для наглядности ввести перечисляемый тип, состоящий из имен месяцев года:
Type Month = (Jan, Feb, Mar, Apr, … , Deс);
Тогда переменные, являющиеся векторами среднемесячных температур, можно определить следующим образом: Var t,r: array[Month] of real;
Частичные компоненты массива, обозначающие температуру каждого месяца, запишутся следующим образом: t[Yan], t[Feb], t[apr] и т. п. Если ввести переменную m типа Month (m: Month), то можно обращаться t[m], где m меняется от Janдо Deс.
В качестве типа индексов могут использоваться также стандартные типы Boolean и Char. Например,
Type priznak = array[Boolean] of integer;
kod_s = array[Char] of integer;
Var k: priznak; s: kod_s;
Частичные компоненты таких массивов выглядят следующим образом:
Для работы с массивом как с единым целым используется идентификатор массива без указания индекса в квадратных скобках. Если массивы описаны одинаково, то с ними можно проводить следующие операции [5]:
Проверка на равенство: А=В. Результатом является значение «истина», если каждый элемент массива А равен соответствующему элементу массива В.
Проверка на неравенство: А<>В. Результатом является значение «истина», если значение хотя бы одного элемента массива А не равно значению соответствующего элемента массива В.
Присваивание. А:=В. Все значения элементов массива В присваиваются элементам массива А. Значения элементов массива В остаются без изменения.
Источник