Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Одномерные массивы. Массивы в языке программирования паскаль

Понятие массива

Массивы в языке программирования паскаль

 

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

- способ объединения элементов в структуру;

- число элементов;

- тип элементов.

Общий вид описания массива:

<имя массива>: ARRAY [тип–диапазон индексов] OF <тип элементов массива>;

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

В математике одномерному массиву соответствует мерный вектор, например:

, где

компонента (координата) вектора;

номер компоненты;

число компонент.

Описание одномерного массива

В Турбо Паскале описание одномерного массива задается следующим образом:

<имя массива>: ARRAY [m1 ¼m2] OF < тип элементов>;

Индекс одномерного массива определяет порядковый номер элемента в массиве.

m1 ¼m2 – диапазон значений индекса.

Тип элементов в массиве может быть любым: простым (REAL, INTEGER, CHAR), структурным (ARRAY), строковым (STRING).

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

Var

X: array [1¼5] of real;

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

Индексные переменные

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

индексная переменная (элемент массива);

имя массива;

индекс (номер элемента массива).

В качестве индекса используются:

- целые константы, например, ;

- целые переменные, например, ;

- индексные выражения, например, .

Замечание. Индексными выражениями являются арифметические выражения целого типа.

Индексная переменная, как и простая, может стаять в левой части оператора присваивания, например:

;

Ввод-вывод одномерных массивов

Ввод-вывод массивов осуществляются поэлементно с помощью оператора цикла FOR, в котором в качестве параметра используется индекс.

Пример 1. Организовать ввод с клавиатуры массива:

.

В разделе описания переменных необходимо задать описание массива и индекса.

Var

A: array [1¼4] of real;

i: integer;

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

Begin {начало программы}

WRITELN (‘Введите массив А’);

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

……………

На клавиатуре набирается:

1.2 5 6.8 14 < Enter >.

Пример 2. Организовать вывод массива А на экран таким образом, чтобы все элементы располагались на одной строке экрана.

В программе надо записать следующие операторы:

for i:= 1 to 4 do write(a[i]:5:1);

writeln;

Вид выводимого массива на экране:

1.2 5.0 -6.8 14.0

Оператор WRITELN без списка служит для перевода курсора к началу следующей строки.

Обработка одномерных массивов

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

Задача 1. Организация счетчика.

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

Program OM_1;

Var

B: array [1… 20] of integer;

i, L: integer;

Begin

writeln(‘Введите массив В’);

for i:=1 to 20 do read(b[i]);

L:= 0;

for i:=1 to 20 do

if (b[i] MOD 3) = 0 then L:= L+1;

writeln(‘L =’, L);

End.

Задача 2. Накопление суммы и произведения.

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

; .

Program ОМ_2;

Var

Х: array [1… 100] of real;

n, i: integer;

S, P: real;

Begin

writeln(‘Введите размер массива n’);

read(n);

writeln(‘Введите массив Х’);

for i:= 1 to n do read(x[i]);

S:= 0;

P:= 1;

for i:= 1 to n do

begin

S:= S + x[i];

P:= P * x[i];

end;

S:= S/n;

P:= exp(1/n * ln(P));

writeln(‘S =’, S:6:2);

writeln(‘P =’, P:10:2);

End.

Задача 3. Поиск минимального и максимального элементов массива.

Дан вещественный массив .

Поменять местами минимальный и максимальный элементы массива и вывести массив после обмена.

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

Введем обозначения:

min – минимальный элемент;

imin – индекс минимального элемента;

max – максимальный элемент;

imax – индекс максимального элемента.

Program ОМ_3;

Var

T: array [1… 10] of real;

i, imin, imax: integer;

min, max: real;

Begin

writeln(‘Введите массив T’);

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

min:= +1E6;

max:= -1E6;

for i:= 1 to 10 do

begin

if t[i]<min then

begin

min:= t[i];

imin:= i;

end;

if t[i]>max then

begin

max:= t[i];

imax:= i;

end;

end;

t[imin]:= max;

t[imax]:= min;

for i:= 1 to 10 do write(t[i]:6:2);

writeln;

End.

<== предыдущая лекция | следующая лекция ==>
Примеры программ. Оператор цикла с постусловием | Двумерные массивы
Поделиться с друзьями:


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


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



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




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