Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LABs1-10a.doc
Скачиваний:
6
Добавлен:
17.11.2019
Размер:
833.54 Кб
Скачать

Лабораторная работа n 9.Одномерные массивы

===================

Цель и задача работы : изучение структурированного типа данных -

---------------------- одномерный массив. Понятие массив.

Теоретические положения.

------------------------

Массив - это упорядоченная совокупность компонент одного и того

же типа, который называется базовым для массива типом.

Массив характеризуется следующими особенностями:

- каждая компонента массива может быть явно обозначена и к ней

имеется прямой доступ;

- число компонент массива определяется при его описании и в даль-

нейшем не меняется;

Для обозначения компонент массива используется имя переменной-

массива и индексы. Тип массива может быть либо перечисляемым типом,

либо ограниченным типом. Типы REAL и INTEGER не допускаются (т.к.

множество значений этих типов в самом языке неограниченно). Наиболее

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

Значение индекса не должно выходить за пределы допустимого диапазона.

Формат описания:

тип-ARRAY = "ARRAY" "[" тип-индекса (*"," тип-индекса*) "]"

"OF" тип-компонент

тип-индекса = перечисляемый-тип!интервальный-тип!BOOLEAN!CHAR

тип-компонент = тип.

Массив можно описать несколькими способами, некоторые из них:

A) описание массива, тип индекса которого является ограниченным

типом.

CONST MN=50;

VAR A: ARRAY [1..MN] OF REAL;

Это означает, что зарезервирована память под переменную A, предс-

тавляющую массив с элементами пронумерованными от 1 до MN типа REAL.

Ограниченный целый тип 1..MN определяет количество компонент (MN)

и их упорядоченность (от первой до MN).

Обращение к элементу массива : указать имя массива, а в квадратных

скобках индекс, например A[10] и т.д.

В качестве индекса можно использовать арифметическое или логическое

выражения.

Формат обращения к элементу массива:

переменная-с-индексом = переменная-массив "[" выражение (*","

выражение *) "]" ";"

переменная-массив = идентификатор.

Обратим внимание на то, что вышеописанный массив A в качестве

индекса использует значения ограниченного целого типа, тогда при

обращении к элементу массива будет использоваться арифметичес-

кое выражение.

VAR I, J: INTEGER;

I:=50; J:=47;

A[I-J]:=3.05; (*I-J=50-47=3, T.E.Индекс равен 3*)

A[I DIV J]:=7.8E-04; (*I DIV J=50 MOD 47=1, т.е. индекс равен

1*)

B) Описание массива, тип индекса которого является перечисляемым

типом.

TYPE MONTH=(JAN,FEB,MAR,APR,MAY,JUN,JUL,AUG,SEP,OCT,NOV,DEC);

VAR A: ARRAY [MONTH] OF INTEGER;

Обращение к элементу массива : указать имя массива, а в квадратных

скобках индекс, например A[APR] и т.д.

Варианты заданий :

------------------

1) Задано N вещественных чисел. Вычислить разность между макси-

мальным и минимальным из них

2) Задана последовательность из N чисел, упорядочить ее по воз-

растанию методом сортировки выбором (см. Примечание)

3) Заданную последовательность из N чисел, упорядочить по убыва-

нию методом сортировки вставками (см. Примечание)

4) Задана последовательность из N вещественных чисел. Определить

сколько чисел меньше K, равно K и больше K

5) Дана последовательность из N положительных чисел, вычислить

среднее геометрическое этих чисел

6) Для заданной последовательности из N-чисел, вычислить среднее

арифметическое положительных чисел

7) Задана последовательность из N вещественных чисел. Определить

образуют ли они возрастающую последовательность, если после-

довательность не возрастает, то упорядочить ее по возрастанию

любым способом, приведенным в примечании

8) Задана последовательность из N вещественных чисел. Определить

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

числу

9) Задана последовательность из N вещественных чисел. Определить

сколько чисел лежат в интервале [A,B] (A и B заданные числа)

и запомнить их порядковые номера

10) Задана последовательность из N вещественных чисел. Вычислить

корень квадратный из ((XI-M)*(XI-M)/(N-1)), где M - среднее

алгебраическое данной последовательности

11) Задана последовательность из N вещественных чисел. Вычислить

порядковый номер числа наиболее приближенному к среднему ариф-

метическому максимального и минимального чисел данной последо-

вательности

12) Задан массив (VAR A: ARRAY [1..N] OF '0'..'9';), Определить

входит ли в него последовательность символов '123', если да,

то с какой позиции (N>3)

13) Задан массив. Запомнить сколько чисел больше предыдущего и

последующего чисел и вывести их порядковые номера

14) Задан массив. Определить сколько раз меняется знак в данной

последовательности чисел, запомнить намера позиций, в которых

меняется знак

15) Задано N натуральных чисел (N>10), найти наибольший общий де-

литель

16) Задана последовательность из N вещественных чисел. Вычислить

сумму чисел, порядковые номера которых являются простыми чис-

лами

17) Задана последовательность из N вещественных чисел. Вычислить

сумму чисел, порядковые номера которых являются числами фиб-

боначчи

18) Задана последовательность из N вещественных чисел. Вычислить

значение функции : корень N-ой степени из IX1*X2*X3*...*XNI

19) Задан массив (VAR A: ARRAY [1..N] OF '0'..'9';), Определить

какой символ наиболее часто встречается в данном массиве

20) Задана последовательность из N целых чисел. Вычислить сумму

элементов массива, порядковые номера которых совпадают со зна-

чением этого элемента

21) Заполнить массив из N элементов с начальным значением задан-

ным A0<>0, по принципу A(N)=A(N DIV 2)+A(N-1)

22) Задана последовательность из N целых чисел. Вычислить среднее

арифметическое четных элементов массива

23) Задана последовательность из N целых чисел. Все отрицательные

элементы массива перенести в его начало, а все остальные в

его конец

24) Заданы два массива с N и M элементами, упорядоченными по неубы-

ванию, об'единить элементы этих массивов в один массив так,

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

25) Задана последовательность из N вещественных чисел, упорядочить

элементы массива по возрастанию методом сортировки обменом

(см. Примечание)

26) Задана последовательность из N вещественных чисел. Найти частное

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

индексами.

27) Определить количество элементов последовательности натуральных

чисел, кратных числу M и заключенных в промежутке от L до N.

28) Преписать массив ( элементы - вещественные числа) так,чтобы

1-й элемент стал последним, 2-й - предпоследним и т. д.

29) Задана последовательность N вещественных чисел. Отсортировать

последовательность по убыванию методом выбора (см. Примечание).

30) Задано N натуральных чисел. Найти наименьшее общее кратное

этих чисел.

31) Определить, сколько процентов от всего количества элементов

последовательности целых чисел составляют нечетные элементы.

32) Вывести информацию о наибольшем, наименьшем и наименее удаленном

от среднего арифметического членах последовательности вещественных

чисел.

Примечание : методы сортировки (например по возрастанию)

------------

A) Выбором : отыскивается максимальный элемент и переносится в ко-

нец массива, затем этот метод применяется ко всем элементам

массива кроме последнего, т.к. Он уже на своем месте и т.д.

B) Обменом (метод пузырька) : последовательно сравниваются пары

соседних элементов X(I) и X(I+1) (I=1,N-1), если X(I)>X(I+1),

то они меняются местами, делается шаг назад (т.е. уменьшается

значение индекса текущего элемента I), иначе проверяются сле-

дующие элементы, тем самым наибольший элемент окажется в конце

массива, этот метод применяется ко всем элементам кроме пос-

леднего и т.д.

C) Вставками : пусть первые K элементов массива уже упорядоченны

по возрастанию, берется (K+1)-й элемент и размещается среди

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

(K+1) первых элементов, этот метод применяется при K от 1 до

N-1.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]