Организация доступа к элементам массива.

Действия над массивами

Массивы, объявленные в разделе описания переменных, следует заполнять данными, прежде чем выполнить над ними какие-то действия. Значения элементов массива можно задать следующими способами:

- Ввести данные с клавиатуры;

- Присвоить элементам заданные значения;

- Считать значения из файла.

В любом случае для заполнения массива используется цикл FOR. Для двумерных массивов используются вложенные циклы.

Пример заполнения одномерного массива из 5 элементов при помощи ввода значений с клавиатуры:

for i:= 1 to 5 do readln(a[i]);

Пример заполнения матрицы 3х4 (всего 12 чисел) с клавиатуры:

for i:= 1 to 3 do

for j:= 1 to 4 do

readln(a[i,j]);

 

Иногда необходимо заполнить массив нулями, т.е. обнулить.

for i:= 1 to 5 do a[i]:= 0;

или

for i:= 1 to 3 do

for j:= 1 to 4 do

a[i,j]:= 0;

 

Вывод значений элементов массива также выполняется с помощью цикла FOR с использованием операторов write и writeln. Например, вывод вектора из пяти элементов выглядит так:

for i:= 1 to 5 do writeln (a[i]); -в столбец;

for i:= 1 to 5 do write (a[i], ' '); -в строку через пробел-разделитель;

for i:= 1 to 5 do write (a[i]:4); -с заданным форматом.

 

Вывод матриц по строкам и столбцам выполняется при помощи оператора writeln; (без параметра). Он используется после вывода текущей строки матрицы для перевода курсора в начало следующей строки:

for i:= 1 to 3 do

Begin

for j:= 1 to 4 do

write(a[i,j]:4);

Writeln;

End;

Действия с одномерными массивами

При обработке массивов часто требуется вычислить сумму элементов массива, их среднее арифметическое значение или найти значение и номер максимального и минимального элементов, а также изменить значения элементов массива.

Условимся, что в векторе a содержится n элементов.

{Вычислим сумму элементов:}

s:= 0;

for i:= 1 to n do

s:= s + a[i];

{Вычислим произведение элементов:}

р:= 1;

for i:= 1 to n do

р:= р*a[i];

{Подсчитаем количество четных элементов:}

k:= 0;

for i:= 1 to n do

if a[i] mod 2 = 0 then

k:= k + 1;

{Найдем номер первого из элементов массива, имеющего нулевое значение. Если такого элемента нет, то выведем соответствующее сообщение:}

i:= 0;

repeat

i:= i+ 1;

until (a[i] = 0) or (i = n);

if a[i] = 0 then writeln('Номер нулевого элемента = ', i)

else

writeln('Таких элементов нет');

{Если требуется найти номера всех нулевых элементов, то лучше применить оператор FOR:}

for i:= 1 to n do

if a[i] = 0 then write(i, ' ');

{Поиск максимального элемента и его номера. Переменная max хранит максимальное значение элемента, а k – его номер.}

max:= a[i];

k:= 1;

for i:= 2 to n do

if a[i] > max then

begin

max:= a[i];

k:= i;

end;

Многомерные массивы (матрицы).








Дата добавления: 2017-11-04; просмотров: 449;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

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

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.005 сек.