Краткие теоретические сведения. Цель работы:приобрести навыки решения задач с использованием одномерных массивов, усвоить операторы используемые при работе с массивами: ввода и вывода

Лабораторная работа №15

МАССИВЫ

Цель работы: приобрести навыки решения задач с использованием одномерных массивов, усвоить операторы используемые при работе с массивами: ввода и вывода одномерных массивов, оператора описания.

Краткие теоретические сведения.

В рассмотренных ранее примерах программ производилась обработка одиночных данных — значений простых перемен­ных. При решении практических задач данные объединяются в различные структуры, наиболее простыми из которых явля­ются массивы.

Массив — именованный набор с фиксированным количеством однотипных данных.

В массивы объединены результаты экспериментов, списки фамилий, различные сложные структуры данных. Так, список из классного журнала 10 «А» является массивом. В массиве могут быть одинаковые данные, поэтому элементы массива различаются по своим порядковым номерам. Если каждый элемент имеет один порядковый номер, то такой массив называется одномерным, если два — то это таблица из строк и столбцов. Для таблиц первый номер элемента пока­зывает строку, а второй — столбец, на пересечении которых находится элемент. Все строки таблицы имеют одинаковую длину.

Одномерный массив может быть числовой последователь­ностью с известным количеством членов. Так же, как и в по­следовательности, в массиве можно указать элемент с конк­ретным номером, например a5, или записать общий вид эле­мента, используя в качестве индекса переменную и указывая диапазон ее изменения: ai, i = 1, 2,..., n.

Задачи на обработку массивов могут иметь различную фор­мулировку. Например, начинаться со слов «Дано п чисел...», а далее говорится, что требуется сделать с этими числами. Чтобы решить такую задачу на компьютере с использованием языка программирования Паскаль, необходимо выполнить следующее:

1) определить, какие числа даны: целые или вещественные (если об этом конкретно не сказано, то лучше считать их ве­щественными);

2) назвать весь массив одним именем, которое будет ис­пользоваться для каждого элемента, только к нему добавится номер этого элемента (индекс);

3) описать массив в разделе переменных var, тем самым от­ведя место в памяти для массива;

4) ввести данные в память.

В описании массива имеется специальное слово array (массив), после которого в квадратных скобках через две точ­ки указывается диапазон изменения номеров элементов, затем слово of (из) и пишется тип данных массива. Встретив описа­ние массива, транслятор отводит для него столько последова­тельных ячеек, сколько указано в квадратных скобках, и тако­го формата, каков тип данных массива. Эту память в програм­ме можно использовать целиком или частично, вычисляя зна­чения элементов массива или вводя их с клавиатуры (либо с диска). Чаще всего номера элементов меняются от 1 до за­данного числа n. Поместив значение п в разделе констант (const), в описании можно указать в качестве переменной n последнее значение (верхнюю границу) номера элемента мас­сива.

Пример описания:

const n = 10;

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

Это описание означает, что для массива а будет отведено десять ячеек оперативной памяти по шесть байтов каждая. Имена ячеек: а1, а2,..., a10. В Паскале эти имена будут запи­саны следующим образом: а [1],..., a [10].

В описании после имени массива а ставится двоеточие, за которым указывается тип данного — массив. Если в програм­ме несколько массивов одного размера и типа, то, как и для простых переменных, их имена можно перечислить через за­пятую, а потом, после двоеточия, указать описание массива.

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

for i: = 1 to n do

read (a[ i ]);

Вводимые значения набираются на клавиатуре через про­бел и нажимается <Enter>.

Можно ввод прокомментировать и вводить каждое данное на отдельной строке экрана: for i: = 1 to n do

Begin

write (‘a[‘, i, ‘] = ‘);

readln (a [ i ])

end;

При обработке массивов решения многих задач основыва­ются на следующих, более простых, задачах: вычисление сум­мы (произведения) элементов массива; нахождение наиболь­шего (наименьшего) элемента; упорядочение элементов по возрастанию или убыванию. Рассмотрим эти базовые задачи.

1. Вычисление суммы элементов массива.

Вычисление суммы элементов массива ничем не отличается, в принципе, от суммирования значений простых переменных (программа Р11). Решение задачи состоит из трех основных этапов: 1) ввод данных; 2) вычисление суммы; 3) печать ре­зультатов.

program Р 12;

const n = 7;

var a: array [ 1.. n ] of real; S: real; i: integer;

Begin

write (‘вводите элементы массива — ‘, n, ‘ вещественных чисел через пробел’);

for i: = 1 to n do

read (a [ i ]);

S: = 0;

for i: = 1 to n do

S: = S+a [i];

writeln;

write (‘ сумма элементов массива S = ‘, S)

End.

Выполнение программы вычисления суммы элементов массива представлено в таблице:

Исходные данные: 3, -2, 9, 7, -1, 6, 1
I              
A [i]   -2     -1    
S              

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: