В Паскале, кроме простых типов данных (integer, real, char и т.д.), имеются и сложные типы. К ним относятся массивы.


Массив (array,от французского – сплошной) – это область памяти, в которой размещается совокупность конечного числа данных одного типа с одним именем. Каждый элемент такой совокупности обозначается именем массива с индексом (номером элемента в массиве).

Элемент массива – отдельная переменная, входящая в массив;

Индекс (index) – это числовая константа или целочисленное арифметическое выражение (частный случай - целочисленная переменная), которым снабжаются элементы массива, чтобы отличать их друг от друга.

Индекс элемента массива – номер элемента в массиве.

Особенность массивов заключается в том, что все элементы массива являются данными одного типа (возможно и структурированного). При назначении массиву имени соблюдаются те же требования, какие предъявляются к именам переменных простых типов.

a11 a12 a1n
a21 a22 a2n
am1 am2 amn

В зависимости от количества используемых индексов, массивы могут быть одномерные (строка), двухмерные (таблица), трехмерные и т.д.

Двухмерный массив
Одномерный массив

 

 


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

В двухмерном массиве – два индекса, для строк и граф.

Размерность массива определяется количеством индексов.

Размермассива – диапазон изменения индексов массива.

Размер одномерного массива – количество элементов, которое содержит массив.

Размер двухмерного массива - количество элементов в сроках и графах таблицы и т.д.

Описание массивов:

Тип массива Описание массива
1 способ 2 способ
одномерный: Type t=array[1..n] of тип; Var a:t; Var a: array[1..n] of тип;
двухмерный Type р=array[1..n,1..m] of тип; Var a:р; Var а=array[1..n,1..m] of тип;
трехмерный Type р=array[1..n,1..m,1..k] of тип; Var a:р; Var a=array[1..n,1..m,1..k] of

Пример описания одномерного массива размерностью 20:

type mas=array[1..20] of integer; var a : mas; mas – имя типа, a – имя переменной типа массив. Границы изменения индексов - от 1 до 20, т.к. размерность 20 элементов
const mas : array [1..7] of byte=(31,–7,4,3,25,–3,2); Массив, объявленный как константа, т.е. совмещается объявление массива и занесение в него констант.

Следует помнить, что значением переменной a является весь массив!

Элемент массива обозначается указанием имени массива, за которым в квадратных скобках следует индекс массива. Например, a[1] – первый элемент одномерного массива; с[5] – пятый элемент одномерного массива; a[i] – i-тый элемент одномерного массива или для двухмерных массивов: с[1,5] – пятый элемент первой строки массива; a[i,j] – j-тый элемент i-й строки двухмерного массива.

В двухмерном массиве первый индекс - номер строки, второй - номер столбца.

Двухмерные массивы иногда называют матрицами. Двухмерные массивы могут быть прямоугольными (количество строк и столбцов разное) или квадратными (одинаковое количество строк и столбцов). В двухмерных массивах элементы, у которых номер строки совпадает с номером столбца, называются диагональными или элементами главной диагонали. Главная диагональ начинается с первой с роки первого столбца и заканчивается на последней строке последней графы. Кроме главной диагонали существует побочная диагональ - с последней графе первой строки до первой графы последней строки.



 

Базовые алгоритмы работы с одномерными массивами

 

Будем считать, что объявили массив из 10 элементов, тип элементов в данном случае значение не имеет:

1. заполнение одномерного массива:

· заполнение с клавиатуры:

for i:=1 to 10 do

begin

writeln (‘Введите значение элемента’);

readln(a[i]);

end;

· заполнение случайным образом:

for i:=1 to 10 do

a[i]:=random(n); {n должно быть задано заранее}

· заполнение натуральными числами:

for i:=1 to 10 do

a[i]:=i;

· поменять местами два заданных элемента массива:

c:=a[i]; a[i]:= a[j]; a[j]:=c;

· заполнение по формуле (например, ai=sin i):

for i:=1 to 10 do

a[i]:=sin(i);

2. вывод массива на экран:

for i:=1 to 10 do

writeln (‘элемент ’, i, ‘ массива ’,a[i]);

3. нахождение суммы элементов одномерного массива:

s:=0;

for i:=1 to 10 do

s:=s+a[i];

4. подсчёт количества элементов, удовлетворяющих заданному условию (например, положительных элементов):

k:=0;

for i:=1 to 10 do

if a[i]>0 then k:=k+1;

5. поиск максимального элемента одномерного массива и его номера:

max:=a[1];

n:=1;

for i:=2 to 10 do

if a[i]>max then begin max:=a[i]; n:=i; end;

Задача MaxMin. Программа для поиска максимального и минимального элемента массива, с указанием их номеров (maxmin.pas).

program maxmin;

uses crt;

var a: array[1..5] of integer; i,max,nmax,min,nmin:integer;

begin

clrscr;

for i:=1 to 5 do { ввод данных }

begin writeln ('Введите значение элемента');

readln (a[i]);

end;

for i:=1 to 5 do { выдача массива на экран } writeln (a[i]:7);

nmax:=1; { задание начальных значений }

max:=a[1];

nmin:=1;

min:=a[1];

for i:=1 to 5 do{ нахождение минимума и максимума}

if a[i]>max then begin max:=a[i]; nmax:=i; end;

if a[i]<min then begin min:=a[i]; nmin:=i; end;

end;

writeln ('Максимальный элемент=',max);

writeln ('Номер максимального элемента=',nmax);

writeln ('Минимальный элемент=',min);

writeln ('Номер минимального элемента=',nmin);

repeat until keypressed; end.

 


 

Практическая работа №15, 16

Тема: MS Excel. Ввод данных, адресация данных, использование формул.

Цель работы: научиться использовать табличный редактор для работы с табличной информацией.

Оборудование: ПК с предустановленным пакетом программ MS OFFICE

Задание: " Расчитать диапазон из 20 значений. Найти минимальное, максимальное, среднее значение. Вычислить произведение максимального члена диапазона на полусумму его первой половины "

Ход работы

1 Входной контроль:

§ Что такое лист, ячейка, книга? Что такое диапазон значений, формула?

2 Выполнение работы:

· Создать новую книгу и проименовать ее собственной фамилией

· На листе 1 создать диапазон из 20 значений

· Используя формулу и связанную ячейку удвоить значения диапазона, тем самым создав новый.

· Используя формулы найти: минимальное, максимальное, и среднее значения второго диапазона. Вычислить произведение максимального члена диапазона на полусумму его первой половины.

Вывод по работе

4 Дополнительные вопросы

§ Как адресовать ячейку из другого листа книги?

§ Как в аргументе функции предоставить диапазон?


 

Практическая работа №17, 18









Последнее изменение этой страницы: 2016-04-07; Нарушение авторского права страницы

infopedia.su не принадлежат авторские права, размещенных материалов. Все права принадлежать их авторам. Обратная связь