- •Лабораторная работа №1. Работа в среде Norton Commander
- •Лабораторная работа n 2. Среда программирования turbo pascal 7.0
- •Лабораторная работа n 3. Программирование в среде turbo pascal 7.0
- •Лабораторная работа n°4.Ознакомление со средствами компиляции и отладки в среде Turbo Pascal 7.0.
- •Лабораторная работа n 5. Ввод/вывод на языке программирования Паскаль
- •Лабораторная работа n 6.Программирование алгоритмов линейной структуры
- •Лабораторная работа n 7. Программирование алгоритмов ветвящейся структуры
- •Лабораторная работа n 8. Программирование алгоритмов циклической структуры
- •Лабораторная работа n 9.Одномерные массивы
- •Лабораторная работа n 10. Многомерные массивы
Лабораторная работа 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.