Каким способом можно заполнять массив

Одномерные и двумерные массивы

Массив — это пронумерованная последовательность величин одинакового типа, обозначаемая одним именем. Элементы массива располагаются в последовательных ячейках памяти, обозначаются именем массива и индексом. Каждое из значений, составляющих массив, называется его компонентой (или элементом массива).

Массив данных в программе рассматривается как переменная структурированного типа. Массиву присваивается имя, посредством которого можно ссылаться как на массив данных в целом, так и на любую из его компонент.

Вообще, массив – однородный, упорядоченный структурированный тип данных с прямым доступом к элементам.

Переменные, представляющие компоненты массивов, называются переменными с индексами в отличие от простых переменных, представляющих в программе элементарные данные. Индекс в обозначении компонент массивов может быть константой, переменной или выражением порядкового типа (целочисленный, логический, символьный, перечислимый, диапазон).

Если за каждым элементом массива закреплен только один его порядковый номер, то такой массив называется линейным . Вообще количество индексов элементов массива определяет размерность массива. По этом признаку массивы делятся на одномерные (линейные), двумерные, трёхмерные и т.д.

Пример: числовая последовательность четных натуральных чисел 2, 4, 6, . N представляет собой линейный массив, элементы которого можно обозначить А[1]=2, А[2]=4, А[3]=6, . А[К]=2*(К+1), где К — номер элемента, а 2, 4, 6, . N — значения. Индекс (порядковый номер элемента) записывается в квадратных скобках после имени массива.

Например, A[7] — седьмой элемент массива А; D[6] — шестой элемент массива D.

Для размещения массива в памяти ЭВМ отводится поле памяти, размер которого определяется типом, длиной и количеством компонент массива. В языке Pascal эта информация задается в разделе описаний. Массив описывается так:

Чаще всего типом индекса является диапазон. Например, — описывается массив В , состоящий из 5 элементов и символьный массив R , состоящий из 34 элементов. Для массива В будет выделено 5*6=30 байт памяти, для массива R — 1*34=34 байта памяти.

Базовый тип элементов массива может быть любым простым или структурированным, за исключением файлового.

Кроме того, массив можно объявить с использованием собственного типа:

Заполнить массив можно следующим образом:

1) с помощью оператора присваивания. Этот способ заполнения элементов массива особенно удобен, когда между элементами существует какая-либо зависимость, например, арифметическая или геометрическая прогрессии, или элементы связаны между собой рекуррентным соотношением.

Задача 1. Заполнить одномерный массив элементами, отвечающими следующему соотношению:

Другой вариант присваивания значений элементам массива — заполнение значениями, полученными с помощью датчика случайных чисел.

Задача 2. Заполнить одномерный массив с помощью датчика случайных чисел таким образом, чтобы все его элементы были различны.

2) ввод значений элементов массива с клавиатуры используется обычно тогда, когда между элементами не наблюдается никакой зависимости. Например, последовательность чисел 1, 2, -5, 6, -111, 0 может быть введена в память следующим образом:

Над элементами массивами чаще всего выполняются такие действия, как

а) поиск значений;

б) сортировка элементов в порядке возрастания или убывания;

в) подсчет элементов в массиве, удовлетворяющих заданному условию.

Сумму элементов массива можно подсчитать по формуле S=S+A[I] первоначально задав S =0. Количество элементов массива можно подсчитать по формуле К = К +1, первоначально задав К =0. Произведение элементов массива можно подсчитать по формуле P = P * A[I] , первоначально задав P = 1.

Читайте также:  Способы защиты от опасностей природного характера

Задача 3. Дан линейный массив целых чисел. Подсчитать, сколько в нем различных чисел.

Тест: N = 10; элементы массива — 1, 2, 2, 2, -1, 1, 0, 34, 3, 3. Ответ: 6.

Задача 4. Дан линейный массив. Упорядочить его элементы в порядке возрастания.

Тест: N = 10; элементы массива — 1, 2, 2, 2, -1, 1, 0, 34, 3, 3.

Ответ: -1, -1, 0, 1, 2, 2, 2, 3, 3, 34.

Если два массива являются массивами эквивалентных типов, то возможно присваивание одного массива другому. При этом все компоненты присваиваемого массива копируются в тот массив, которому присваивается значение. Типы массивов будут эквивалентными, если эти массивы описываются совместно или описываются идентификатором одного и того же типа. Например, в описании типы переменных A, B эквивалентны, и поэтому данные переменные совместимы по присваиванию; тип переменных C, D также один и тот же, и поэтому данные переменные также совместны по присваиванию. Но тип переменных C, D не эквивалентен типам переменных A, B, E, поэтому, например, A и D не совместны по присваиванию. Эти особенности необходимо учитывать при работе с массивами.

При работе с массивами целесообразно использовать процедуры и функции. Вот типовые процедуры:

Задача 5. Дан линейный массив. Найти: сумму минимального и максимального элементов; количество отрицательных элементов, стоящих на чётных местах. Изменить массив, вычеркнув из него нечетные элементы.

При решении практических задач часто приходится иметь дело с различными таблицами данных, математическим эквивалентом которых служат матрицы. Такой способ организации данных, при котором каждый элемент определяется номером строки и номером столбца, на пересечении которых он расположен, называется двумерным массивом или таблицей .

Например, данные о планетах Солнечной системы представлены следующей таблицей:

Планета Расст. до Солнца Относ. обьем Относ. масса
Меркурий 57.9 0.06 0.05
Венера 108.2 0.92 0.81
Земля 149.6 1.00 1.00
Марс 227.9 0.15 0.11
Юпитер 978.3 1345.00 318.40
Сатурн 1429.3 767.00 95.20

Их можно занести в память компьютера, используя понятие двумерного массива. Положение элемента в массиве определяется двумя индексами. Они показывают номер строки и номер столбца. Индексы разделяются запятой. Например: A[7, 6], D[56, 47].

Заполняется двумерный массив аналогично одномерному: с клавиатуры, с помощью оператора присваивания. Например, в результате выполнения программы: элементы массива примут значения A[1, 1] = 457; A[1, 2] = 457; A[2, 1] = 458; A[2, 2] = 458; A[3, 1] = 459; A[3, 2] = 459.

При описании массива задается требуемый объем памяти под двумерный массив, указываются имя массива и в квадратных скобках диапазоны изменения индексов.

При выполнении инженерных и математических расчетов часто используются переменные более чем с двумя индексами. При решении задач на ЭВМ такие переменные представляются как компоненты соответственно трех-, четырехмерных массивов и т.д.

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

Читайте также:  Невербальный способ общения презентация

Задача 6. Заполнить матрицу порядка n по следующему образцу:

Задача 7. Дана целочисленная квадратная матрица. Найти в каждой строке наибольший элемент и поменять его местами с элементом главной диагонали.

Задача 8. Задана прямоугольная целочисленная таблица размером m × n . Указать столбец (назвать его номер), где минимальное количество элементов, кратных сумме индексов.

Источник

Одномерные массивы в Паскале

Работа с одномерными массивами на языке программирования Паскаль

Массив — самая распространенная структура хранения данных, присутствующая в любом языке программирования.

В Pascal используются одномерные и двумерные массивы. В школьной программе обычно их изучают в 9-10 классах.

Одномерный массив — это конечное количество однотипных элементов, объединенных общим именем. Каждому элементу присвоен свой порядковый номер. Обращение к элементам происходит по имени массива и индексу (порядковому номеру).

Одномерный числовой массив

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

Одномерный массив. Обозначение элементов

Имя массива формируется по тем же правилам, что и имя любой другой переменной в программе. Границы индексов задают при описании массива в квадратных скобках. Удобнее задавать начальный индекс равный единице. Конечный индекс определяется условием задачи и численно равен размеру массива — количеству элементов. Числовые массивы могут содержать целые и действительные числа. Тип элементов указывается в описании. Смотрите рисунок выше.

Способы заполнения одномерных массивов

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

Источник

Урок 21. Заполнение массива и вывод на экран

Урок из серии: «Язык программирования Паскаль»

Скачать исходные коды примеров
После объявления массива с ним можно работать. Например, присваивать значения элементам массива и вообще обращаться с ними как с обычными переменными. Для обращения к конкретному элементу необходимо указать идентификатор (имя) массива и индекс элемента в квадратных скобках.

Например, запись Mas[2], A[10] позволяет обратиться ко второму элементу массива MAS и десятому элементу массива A. При работе с двумерным массивом указывается два индекса, с n-мерным массивом — n индексов.

Например, запись Matr[4, 4] делает доступным для обработки значение элемента, находящегося в четвертой строке четвертого столбца массива M.

Индексированные элементы массива называются индексированными переменными. За границы массива выходить нельзя. То есть, если в массиве Mas пять элементов, то обращение к шестому или восьмому элементу приведет к ошибке.

Рассмотрим типичные операции, возникающие при работе с одномерными массивами.

Заполнение одномерного массива значениями

Заполнение и вывод массива можно осуществить только поэлементно, то есть можно сначала присвоить значение первому элементу, затем второму и так далее, то же самое и с выводом на экран — выводим первый, второй, третий и так до последнего.

Паскаль не имеет средств ввода-вывода элементов массива сразу, поэтому ввод и значений производится поэлементно. Значения элементу массива можно присвоить с помощью оператора присваивания, или ввести с клавиатуры с помощью операторов Read или Readln. Очень удобно перебирать все элементы массива в цикле типа for.

Способы заполнения одномерных массивов:

  1. Ввод значения с клавиатуры.
  2. Задание значений в операторе присваивания с помощью генератора случайных чисел. Этот способ более удобен, когда много элементов в массиве (ввод их значений с клавиатуры занимает много времени).
  3. Задание значений по формуле.
  4. Ввод элементов массива из файла
Читайте также:  Суспензионный способ получения полистирола

1. Ввод значений элементов массива с клавиатуры. В связи с тем, что использовался оператор Readln, каждое значение будет вводиться с новой строки.

2. Заполнение массива числами, сгенерированными случайным образом из интервала [a; b]. Подключаем датчик случайных чисел — функцию random.

3. Заполнение массива по формуле. Каждому элементу массива присваивается значение, вычисленное по формуле. Если каждый элемент массива равен утроенному значению его порядкового номера (индекса), то процедура будет иметь вид:

4. Чтение чисел из файла. Нужно заранее создать текстовый файл, в который запишите несколько строк, в каждой из которых по 30 чисел.

Вывод значений элементов массива на экран

Вывод значений элементов массива на экран выполняется, как и ввод, поэлементно в цикле. Для вывода будем использовать операторы Write или Writeln. В качестве входных параметров будем передавать процедуре не только массив, но и количество элементов, которые надо вывести, начиная с первого (это понадобится нам, когда мы будем удалять и добавлять элементы в массиве).

Пример 1. Заполнить массив с клавиатуры и вывести его на экран.

В программе будет использоваться две процедуры: процедура Init1 (заполнение массива с клавиатуры) и процедура Print (вывод массива на экран).

Пример 2. Заполнить массив из текстового файла и вывести на экран. В текстовом файте несколько строк, в каждой строке по 30 чисел.

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

На следующем уроке продолжим знакомиться с алгоритмами обработки одномерных массивов.

Источник

Каким способом можно заполнять массив

Ввод значений элементов массива можно осуществить несколькими способами (рис. 4.3).

Рис. 4.3. Способы ввода значений элементов массива

а) Ввод элементов массива с помощью оператора присваивания

Это самый нерациональный способ ввода.

var a: array [1..4] of word;

б ). Ввод элементов массива с клавиатуры

Этот способ и спользуется, когда значения элементов массива вполне определенные, но могут быть разные при каждом запуске программы.

var a: array [1..10] of integer;

for i:=1 to 10 do read(a[i]);

Здесь цикл перебирает все значения индекса массива. А чтобы было более наглядно и удобно можно использовать и такую запись операторов в цикле.

for i:=1 to 10 do

write(‘ введите ‘,i, ‘ элемент : ’);

в ). Ввод элементов массива с помощью генератора случайных чисел

Этот способ используется, когда не важно, какие значения имеют элементы массива.

var a: array [1..10] of real;

for i:=1 to 10 do

В этом случае, функция random генерирует псевдослучайные действительные числа в интервале от 0 до 1. Для генерации положительных и отрицательных действительных чисел в произвольном диапазоне, отрезок [0,1] растягивают и сдвигают, например, так a[i]:=10*random-5 присваивает элементам массива действительные числа от -5 до 5.

Для генерации значений элементов целочисленного массива из определенного диапазона (0…N-1) используют функцию random(N):

var b: array [1..10] of integer;

for i:=1 to 10 do

В этом случае значениями элементов массива b будут целые числа от 0 до 9.

г). Ввод с помощью описания массива как типизированной константы

Этот способ используется, когда значения элементов массива постоянны при каждом запуске программы. Такой способ задания начальных значений элементов массива очень удобен при отладке программы.

const a: array [1..5] of integer = (5,4,9,1,2);

Далее в программе типизированные константы используются как переменные, в том числе заданные значения элементов массива могут изменяться.

Источник

Оцените статью
Разные способы