КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Одномерные массивыВ математике одномерному массиву соответствует мерный вектор, например: , где компонента (координата) вектора; номер компоненты; число компонент. Описание одномерного массива В Турбо Паскале описание одномерного массива задается следующим образом: <имя массива>: 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.
|