Категории: ДомЗдоровьеЗоологияИнформатикаИскусствоИскусствоКомпьютерыКулинарияМаркетингМатематикаМедицинаМенеджментОбразованиеПедагогикаПитомцыПрограммированиеПроизводствоПромышленностьПсихологияРазноеРелигияСоциологияСпортСтатистикаТранспортФизикаФилософияФинансыХимияХоббиЭкологияЭкономикаЭлектроника |
Операции с индексированными переменнымиМассивы одномерные Массив – это поименованный набор однотипной информации. Массив объединяет элементы одного типа данных. Всему набору данных присваивают общее имя - имя массива. Каждый элемент массива определяется с помощью индекса, определяющего место этого элемента в общем наборе. Данные в массиве сохраняются, как и в случае использования обычных неиндексированных переменных, только до конца работы программы. Характеристики массива: тип – общий тип всех элементов массива; размерность (ранг) – количество индексов массива; диапазон изменения индексов – определяет количество элементов в массиве. Вектор (одномерный массив) – это массив, в котором элементы нумеруются одним индексом.
Описание массивов
Для одномерного массива: var a: array[1…n] of <тип>; где a - имя массива; n - максимальное количество элементов массива; <тип> - тип элементов массива. Например: var mas: array [1…10] of real; begin ... Описан массив mas - содержащий 10 элементов вещественного типа. Каждый элемент массива определяется с помощью индекса, стоящего справа от имени в квадратных скобках. a [ i ], a [i+2], a [9] Индекс может быть - переменной, константой, арифметическим выражением целого типа. Размер массива должен быть задан в явном виде (как в предыдущем фрагменте), или через const. Например: const n = 10; var mas: array [1…n] of real; begin …
Ввод элементов массива … for i:=1 to n do readln( a[ i ] ); … Каждое прохождение через цикл соответствует вводу одного элемента массива.
Вывод элементов массива … for i:=1 to n do writeln( a[ i ] ); …
Каждое прохождение через цикл соответствует выводу одного элемента массива.
Обработка одномерных массивов
Рассмотрим типовые задачи обработки одномерных массивов.
Задача.
Составить программу подсчета суммы и произведения элементов одномерного массива вещественных чисел.
Таблица идентификаторов
program mas_1; uses crt; var a : array [1…100] of real; n, I : integer; p, s : real; begin clrscr; {подготовить переменные для суммы и произведения} s: = 0; p: =1; writeln ('введите размер массива n<=100'); readln (n); writeln ('введите элемент массива'); for i:=1 to nk do readln (a[i] ); for i:=1 to nk do begin s:= s + a[ i ]; p:= p * a[ i ]; end; writeln ('Сумма = ',s:8:3,'Произведение =',p:8:3); readln; end.
При накапливании суммы переменную необходимо обнулить, а при накапливании произведения – присвоить 1.
Задача. Дан массив a(n). Найти максимальный элемент массива и определить его номер.
Таблица идентификаторов
program mas_2; var a: array [1…100] of real; i,n,nmax: integer; max: real; begin writeln ('введите размер массива n<=100'); readln (n); writeln ('введите элементы массива'); for i:=1 to n do readln (a[ i ] ); {за максимальный принимается первый элемент массива} max:=a[1]; nmax:=1; for i:=1 to n do If a[i]>max then begin max:=a[i]; nmax:=i; end; writeln ('max =', max, ' N=', nmax); readln; end.
Задача.
Задан массив целых чисел. Отсортировать элементы одномерного массива по возрастанию.
Существует много способов сортировки элементов массива Таблица идентификаторов
program mas_3; uses crt; var a: array [1…100] of integer; f, n, i,p : integer;
begin clrscr; writeln ('введите размер массива n<=100'); readln (n); writeln ('введите элементы массива'); for i:=1 to n do readln (a[i]); repeat f:=0; for i:=1 to n-1 do if a[ i ]>a[i+1] then begin p: =a[ i ]; a[ i ]:=a[i+1]; a[i+1]:=p; f:=1; end; until f=0; for i:=1 to n do writeln (a[ i ]); readln; end. В данном алгоритме используются вложенные циклы. Внутренний цикл (for…to…do) – позволяет один раз пройтись по массиву, сравнивая соседние элементы. В случае, если предыдущий элемент (a[ i ]) окажется больше последующего (a[i+1]), элементы меняются местами через дополнительную переменную p. Внешний цикл(repeat…until) – повторяется до тех пор, пока массив не будет упорядочен. В программе применяется переменная – флажок. f =1 – признак того, что два соседних элемента менялись местами, массив еще не упорядочен. f =0 – признак того, что массив упорядочен.
Пример программы обработки одномерного массива Задача. Задан одномерный массив целых чисел. Найти количество нечетных чисел среди элементов массива 2. Таблица идентификаторов
3. Листинг программы
program lab5; uses crt; var a: array [1…100] of integer; n, i,kol : integer; begin clrscr; writeln ('Введите размер массива n<=100'); readln (n); writeln ('Введите элементы массива'); for i:=1 to n do readln (a[ i ]); kol:=0; for i:=1 to n do if odd(a[ i ]) then kol:=kol+1; writeln(‘Количество нечетных = ’, kol); readln; end.
Вопросы для самоконтроля
11.4. Методические указания для выполнения практического задания №7. «Операции с индексированными переменными» Цель работы: Ознакомиться со способом хранения однотипной информации в поименованном наборе, массиве, Задание: 1. В приложении 8 выбрать вариант задания. 2. Выполнить практическое задание №7, используя пример программы обработки одномерного массива. 3. Составить блок-схему алгоритма. 4. Написать программу и отладить ее по заранее подготовленному тесту. 5. Оформить задание в тетради для практических работ. 6. Результат выполнения программы предъявить преподавателю. 7. Ответить на вопросы самоконтроля. 8. Защитить выполненную работу у преподавателя. Приложение 8. Таблица вариантов заданий
Двумерные массивы
Матрицы
Если в массиве хранится таблица значений, то такой массив называют двумерным, а его элементы нумеруются двумя индексами – номером строки и номером столбца, на пересечении которых находится данный элемент. В памяти компьютера все элементы массива занимают одну непрерывную область. Двумерный массив располагается в памяти по строкам. Двумерный массив можно представить в виде матрицы: .
Описание двумерного массива
Для двумерных массивов:
var a :array[1..n ,1..m] of <тип>;
Где a - имя массива; n, m - количество строк и столбцов в массиве; <тип> - тип элементов массива. Количество элементов в массиве - n m. Например: var mas: array [1…10,1..10] of real; begin …
Описан массив mas - содержащий 100 элементов вещественного типа (10 строк и 10 столбцов). Размер массива должен быть задан в явном виде (как в предыдущем фрагменте), или через const.
Например: const n = 5, m=5; var mas: array[1…n,1..m] of real; begin … Описан массив mas - содержащий 25 элементов целого типа (5 строк и 5 столбцов). Каждый элемент массива определяется с помощью двух индексов, стоящих справа от имени в квадратных скобках. a[i, j] - элемент стоящий на пересечении i-ой строки и j-го столбца. a[i, i] - элементы главной диагонали. a[i, 2] - элементы второго столбца. Индекс может быть - переменной, константой, арифметическим выражением целого типа. Если количество строк равно количеству столбцов, матрица называется квадратной. Обработка двумерных массивов производится при изменении индексов элементов. Все элементы главной диагонали удовлетворяют условию: i=j (номер строки равен номеру столбца).
Все элементы побочной диагонали удовлетворяют условию: i+j=n+1 (n - количество строк и столбцов). Элементы, расположенные над главной диагональю удовлетворяют условию: i<j (номер строки строго меньше номера столбца). Элементы, расположенные под главной диагональю удовлетворяют условию: i>j (номер строки строго больше номера столбца).
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2017-09-14 lectmania.ru. Все права принадлежат авторам данных материалов. В случае нарушения авторского права напишите нам сюда... |