Программирование задач на одномерные и двумерные массивы



Понятие массива

Массив – это упорядоченный набор однотипных данных, объединенных одним именем.

По размерности различают одномерные и двумерные массивы. В одномерном массиве положение каждого элемента определяется одним индексом, в двумерном – двумя.

Массивы различаются по типу элементов. Бывают целочисленные, вещественные (состоящие из дробных чисел), символьные массивы.

Пример одномерного массива 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; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!