Массивы в Pascal
Массивы
Одномерные массивы
Массивы Одномерные массивы
Способы задания элементов массива:
Способы задания элементов массива:
Двумерные массивы
Массивы Двумерные массивы
Обращение к элементам массива При обращении к элементу двумерного массива необходимо указывать два индекса: номер строки и номер столбца.
Описание двумерного массива
Пример 2 В одномерном массиве вычислить минимальный элемент
Найти наименьший элемент одномерного массива.
607.50K
Категория: ПрограммированиеПрограммирование

Массивы в Pascal. Одномерные массивы

1. Массивы в Pascal

Одномерные массивы

2. Массивы

Один из самых распространенных способов
организации данных – табличный.
Таблицы могут состоять из 1 строки (линейная):
а1 а2 а3 а4
и из нескольких строк и столбцов (прямоугольная):
а11 а12 а13 а14
а21 а22 а23 а24
а31 а32 а33 а34

3. Одномерные массивы

Массив – пронумерованная
совокупность ячеек памяти, названная
одним именем
Обозначаются массивы латинскими
буквами, строки нумеруются сверху вниз,
столбцы слева направо. Элемент,
расположенных на i – том месте линейной
таблицы обозначается A [ i ]
Название
массива
Номер
элемента

4.

Определение
1
1
2
3
4
5
6
7
44 22 10 Индекс
11 14 30 19
Имя массива
(порядковый
номер) элемента
массива
А
A [ 4 ] := 11;
Значение
элемента
массива

5. Массивы Одномерные массивы

Прежде чем использовать массив в
программе необходимо зарезервировать в
памяти место под него. Для этого
используется зарезервированное слово
array.

6.

Описание массива
2
Объявление массива в разделе описания
переменных:
Var имя:ARRAY[1..N] OF тип;
Например:
Имя массива
Количество Тип элементов
элементов
Var A:Array[1..10] of Integer;
Var Tem:Array[1..100] of Real;

7.

Описание массива
3
Количество элементов можно
описать в разделе констант
Const
m=10;
Var a : array [1.. m] of integer;
Иногда массив объявляют
как пользовательский тип
данных
Type t=array[1..10] of integer;
Var a : t;

8. Способы задания элементов массива:

Ввод с клавиатуры.
Write(‘Введите число элементов’);
Read(n);
Ввод элементов массива
For i:=1 to n do
Read(a[i]);
Writeln;
Вывод элементов массива
For i:=1 to n do
Write(a[i]:4);
1.

9. Способы задания элементов массива:

2. С помощью генератора случайных чисел.
Randomize;
Write(‘Введите число элементов’);
Ввод
элементов
Read(n);
массива
For i:=1 to n do begin
a[i]:=random(10);
Вывод элементов массива
Write(a[i]:4);
End;

10.

Вывод массива
8
а) в столбик:
For i:=1 to N do Writeln(a[i]:4:2);
б) в строку
For i:=1 to N do Write(a[i]:4:2);
i , 1, N
2.23
Вывод a i
2.23
3.19
1.44
4.93
5.58
3.19 1.44 4.93 5.58

11.

Вывод массива в две строки
9
var
A:array
[1..10]массив
of integer;
Задача
1. Заполнить
из 10 элементов случайными
Оператор
выводана экран, а
i:integer;
числами
из интервала от -10
до 10, вывести
без LN, вывод
затем
элемент
массива на 1 и
Begin увеличить каждый осуществляется
в
Пустой
оператор
повторно
вывести на экран.
Clrscr;
строку
вывода с LN, когда
for
i:=1 to
10 do begin
первая
строка
закончена, переходa[i]:= random(21)-10;
на вторую
write(a[i]:5);
Оператор вывода
end;
без LN, вывод
writeln;
осуществляется в
for i:=1 to 10 do begin
строку
a[i]:=a[i]+1;
write(a[i]:5);
end;
end.

12. Двумерные массивы

13. Массивы Двумерные массивы

Двумерный массив (матрица) – это
прямоугольная таблица, состоящая из
нескольких строк и столбцов.
-1 3 -2 6
Обозначение: a[i,j],
-4 0 5 -2
где i – номер строки,
9 -8 3 2
j – номер столбца

14.

Двумерный массив. Описание
5
Описание массива
a : array [1..10, 1..20] of real;
Количество
Имя Описание
строк
как массив массивов: Тип
массива
данных в
Количество
массиве
a: array [1..10] ofстолбцов
array [1.. 20] of real;
Одномерный
массив
Каждый элемент
которого в свою
очередь является
одномерным
массивом

15.

Двумерный массив. Заполнение
8
Цикл отвечающий за перебор строк.
первую,
вторую и так далее
Заполнение Берем
массива
с клавиатуры:
строки
For i := 1 to 3 do begin
For j := 1 to 4 do
begin
write('A[ ', i, ', ',j, ']= ');
readln(a[i, j])
end;
Цикл отвечающий за
end;
перебор ячеек в
каждой строке.

16.

Двумерный массив. Заполнение
9
Блок-схема заполнения с клавиатуры:
i , 1, N
Цикл отвечающий за
перебор строк.
(Внешний цикл)
j , 1, N
Ввод a i , j
Цикл отвечающий за
перебор ячеек в
каждой строке.
(Внутренний цикл)

17.

Двумерный массив. Заполнение
10
Заполнение массива случайными числами:
For i := 1 to 3 do begin
For j := 1 to 4 do begin
a[i, j] := random(21) - 10;
write(a[i, j]:6);
Когда i-я строка
end;
закончилась,
Write
без LN выводит
пишем пустой
writeln;
элементы
массива в
WriteLN
для
строку
end;
перехода на
новую строку

18.

Двумерный массив. Заполнение
i , 1, N
j , 1, N
11
Цикл отвечающий за
перебор строк.
(Внешний цикл)
a i , j=
случайное[-10;10]
Вывод a i , j
Цикл отвечающий за
перебор ячеек в
каждой строке.
(Внутренний цикл)

19.

Одномерный массив
Одномерный массив можно рассматривать как список однотипных элементов.
Например, список фамилий студентов группы – одномерный массив, численные
данные о средней температуре за месяц - одномерный массив, буквы русского
алфавита - одномерный массив.
В Бейсике элементы массива располагаются в последовательных ячейках памяти. Это
означает, что массив занимает непрерывную область памяти. Прежде чем мы
сможем обращаться к массиву из программы, надо указать, сколько памяти
необходимо для размещения массива. Всему массиву, определяется объемом
памяти, занимаемым одним элементом массива умноженным на число элементов
в массиве. Поэтому нужно указать максимальное число элементов массива.
В Бейсике фирмы Microsoft описание размера массива делается с помощью
оператора DIM, который имеет следующий синтаксис:
DIM имя массива (максимальное число элементов массива)
Например:
DIM S(5)
DIM M(25)
S имя массива, 5- максимальное число элементов массива,
M имя массива, 25- максимальное число элементов массива.

20.

Присваивание значений элементам массива
1 способ (заполнение массива с помощью оператора ввода
CLS
INPUT “Введите количество элементов массива”; N
DIM A(N)
FOR I =1 TO N
PRINT “Введите”; i ; “элемент массива”
INPUT A(I)
NEXT I
FOR I=1 TO N
PRINT A(I)
NEXT I
Результаты работы программы для 3-х элементов будут выглядеть так:
Введите 1 элемент массива
? 23
Введите 2 элемент массива
? -54
Введите 3 элемент массива
? 21
23
-54
21

21.

Присваивание значений элементам массива
2 способ (заполнение массива с помощью генератора случайных чисел)
DIM S(IOO)
FOR i=1 ТО 100
S(i) = 1+INT(1000*RND)
NEXT i

22.

В двумерном массиве каждый элемент
фиксируется номером строки и столбца, на
пересечении которых он расположен.
Положение элемента в двумерном массиве
определяется
двумя
индексами.
Они
разделяются запятой.
В качестве индексов могут использоваться
любые арифметические выражения, константы,
переменные. Если арифметическое выражение
содержит дробную часть, то при определении
индекса она отбрасывается.
При появлении отрицательного значения
индекса вызывает сообщение об ошибке.

23. Обращение к элементам массива При обращении к элементу двумерного массива необходимо указывать два индекса: номер строки и номер столбца.

При обращении к элементу
двумерного массива необходимо
указывать два индекса: номер строки и
номер столбца.
57
34
56
21
44
88
90
11
91
45
88
92
0
37
73
67
85
16
42
30
22
65
92
49
64
27
82
19
62
37
99
10
35
21
11
Элемент двумерного массива А(3,6) равен 30

24. Описание двумерного массива

Для определения двумерного массива в
программе используется тот же оператор
DIM, только при определении размера
необходимо указать два индекса –
количество строк и столбцов:
DIM A(5,7)
Данное описание предполагает, что в массиве
с именем А будет 5 строк и 7 столбцов.

25.

DIM A(N)
FOR I = 1 TO N
INPUT A(I)
NEXT I
FOR I = 1 TO N
PRINT A(I)
NEXT I
DIM A(M,N)
FOR I = 1 TO M
FOR J = 1 TO N
INPUT A(I,J)
NEXT J
NEXT I
FOR I = 1 TO M
FOR J = 1 TO N
PRINT A(I,J)
NEXT J
NEXT I

26. Пример 2 В одномерном массиве вычислить минимальный элемент

program minimum;
uses crt;
var a:array[1..10] of integer;
i,n,min:integer;
begin
clrscr; write('Введите число элементов');
read(n);
for i:=1 to n do
read(a[i]); writeln;
for i:=1 to n do
write(a[i]:4);
min:=a[1];
for i:=2 to n do
if a[i]<min then min:=a[i];
writeln;
write('Мин. элемент= ',min);
readkey;
end.

27. Найти наименьший элемент одномерного массива.

INPUT N
DIM A(N)
FOR i=1 TO N
A(i)=INT(RND(1)*10)
NEXT i
K=1
MIN=A(1)
FOR i=2 TO N
IF A(i)<MIN THEN MIN=A(i) : K=i
NEXT i
? “Массив”
FOR i=1 TO N
?A(i);
NEXT i
? “Минимальный элемент массива”;MIN; “расположен на”;K;
“месте”
END

28.

Спасибо за
внимание!
English     Русский Правила