Программирование задач на одномерные и двумерные массивы
Понятие массива
Массив – это упорядоченный набор однотипных данных, объединенных одним именем.
По размерности различают одномерные и двумерные массивы. В одномерном массиве положение каждого элемента определяется одним индексом, в двумерном – двумя.
Массивы различаются по типу элементов. Бывают целочисленные, вещественные (состоящие из дробных чисел), символьные массивы.
Пример одномерного массива a из 5 целых чисел:
Номер (индекс) элемента | 1 | 2 | 3 | 4 | 5 |
Значение элемента | 7 | 5 | -10 | 0 | 12 |
Обозначение элемента |
Пример двумерного вещественного массива b из 2 строк и 3 столбцов.
Номер столбца Номер строки | 1 | 2 | 3 |
1 | 4,7 ( ) | -15,3 ( ) | 0,2 ( ) |
2 | 8 ( ) | 0,16 ( ) | -24 ( ) |
При работе с массивом необходимо зарезервировать нужное число ячеек памяти. Для каждого массива это число определяется его размерностью – количеством элементов. Резервирование места в памяти осуществляется при объявлении массива.
Одномерные массивы
Объявление массивов производится в разделе Var.
Var переменная: array [значения индексов] of тип элементов;
Например,
var a: array [1..5] of integer; //массив из 5 целочисленных элементов, с индексами от 1 до 5.
b: array [0..9] of real; // массив из 10 вещественных элементов с индексами от 0 до 9.
Для описания массива можно использовать предварительно определенные константы:
const n=5; m=9;
var a: array [1..n] of integer;
b: array [0..m] of real;
Для доступа к данным, хранящимся в определенном элементе массива, необходимо указать имя массива и его индекс в квадратных скобках.
|
|
Присвоение переменной x значение пятого элемента массива a:
x:=a[5];
Присвоение второму элементу массива a значения 10:
а[2]:=10;
Операции с массивами проводятся поэлементно. Для ввода, вывода, обработки элементов массива удобно использовать цикл for. В качестве параметра цикла обычно используют переменную i, обозначающую индекс элемента массива.
Ввод массива c клавиатуры
var a: array[1..5] of integer; i: integer; begin for i:=1 to 5 do begin write ('a[',i,']='); readln(a[i]); end; end. |
Заполнение массива случайными числами
Фрагмент блок-схемы | Фрагмент программы for i:=1 to 5 do a[i]:=10-random(20); {интервал значений -9..10} |
Ввод элементов массива по формуле
Фрагмент блок-схемы | Фрагмент программы for i:=1 to 5 do a[i]:=формула; |
Вывод элементов массива
Фрагмент блок-схемы | Фрагмент программы for i:=1 to 5 do write (a[i],' '); |
При вычислении таких величин, как сумма, произведение, минимальное, максимальное значение элементов массива следует для соотвествующих величин объявлять переменные того же типа, что и у элементов обрабатываемого массива.
При нахождении среднего арифметического значения для искомой величины должна быть объявлена переменная типа real, так как среднее арифметическое получаем в результате операции деления.
|
|
Для количества и номеров элементов массива используют переменные целого типа.
Нахождение суммы элементов массива (n – размер массива)
Фрагмент программы s:=0; for i:=1 to n do s:=s+a[i]; writeln('s=', s); |
Нахождение произведения элементов массива
Фрагмент программы p:=1; for i:=1 to n do p:=p*a[i]; writeln('p=', p); |
Нахождение минимального элемента массива
Фрагмент программы (начальное значение минимума -число, большее всех элементов) min:=1000000; for i:=1 to n do if a[i]<min then begin min:=a[i]; imin:=i; end; writeln('min=',min); writeln('imin=',imin); |
Нахождение максимального элемента массива
Фрагмент программы (начальное значение минимума -число, меньшее всех элементов) max:=-1000000; for i:=1 to n do if a[i]>max then begin max:=a[i]; imax:=i; end; writeln('max=',max); writeln('imax=',imax); |
Нахождение среднего арифметического значения элементов массива
s:=0; k:=0; for i:=1 to 5 do begin s:=s+a[i]; k:=k+1; end; sr:=s/k; writeln('sr=',sr); |
Пример. В одномерном массиве из пяти элементов вычислить сумму элементов, произведение элементов, меньших 2; переставить местами первый и последний элементы массива.
|
|
Приведем блок-схему и программу.
program perest_s_pr; var i,s,pr,c: integer; a:array[1..5] of integer; begin writeln('Введите 5 элементов'); for i:=1 to 5 do read (a[i]); for i:=1 to 5 do write (' ',a[i]); writeln; s:=0; pr:=1; for i:=1 to 5 do begin s:=s+a[i]; if a[i]<2 then pr:=pr*a[i]; end; c:=a[1]; a[1]:=a[5]; a[5]:=c; writeln('s=',s,' pr= ',pr); for i:=1 to 5 do write (' ',a[i]); readln; end. Результат работы программы: Введите 5 элементов 12 -3 10 24 -8 12 -3 10 24 -8 s=35 pr= 24 -8 -3 10 24 12 |
Двумерные массивы (матрицы)
Общий вид двумерного массива состоящего из 4 строк и 4 столбцов а(4,4):
a11 | a12 | a13 | a14 |
a21 | a22 | a23 | a24 |
a31 | a32 | a33 | a34 |
a41 | a42 | a43 | a44 |
Особенности работы с матрицами:
i=j – элемент лежит на главной диагонали;
i<j – элемент лежит выше главной диагонали;
i<j – элемент лежит ниже главной диагонали;
i+j=n+1– элемент лежит на побочной диагонали;
i+j>n+1– элемент лежит ниже побочной диагонали;
i+j<n+1– элемент лежит выше побочной диагонали.
Матрица объявляется в разделе Var следующим образом:
Var
a: array[1..4,1..4] of real;
i,j:integer;
Переменные i,j необходимы для работы с матрицами, i – счетчик для строк, j – счетчик столбцов.
Дата добавления: 2019-09-13; просмотров: 247; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!