Программирование (Паскаль). Массивы

Содержание

Слайд 2

Что такое массив?

Массив – это группа переменных одного типа, расположенных в памяти

Что такое массив? Массив – это группа переменных одного типа, расположенных в
рядом (в соседних ячейках) и имеющих общее имя.

Надо:

выделять память
записывать данные в нужную ячейку
читать данные из ячейки

Слайд 3

Выделение памяти (объявление)

var A: array[1..5] of integer;
V: array[0..5] of real;

минимальный

Выделение памяти (объявление) var A: array[1..5] of integer; V: array[0..5] of real;
индекс

максимальный индекс

const N = 10;
var A: array[1..N] of integer;

Индекс элемента — это значение, которое указывает на конкретный элемент массива.

Слайд 4

Что неправильно?

var A: array[10..1] of integer;
...
A[5] := 4.5;

[1..10]

var A: array[1..10] of integer;
...
A[15]

Что неправильно? var A: array[10..1] of integer; ... A[5] := 4.5; [1..10]
:= 'a';

Слайд 5

Обращение к элементу массива

A

массив

3

15

НОМЕР элемента массива
(ИНДЕКС)

A[1]

A[2]

A[3]

A[4]

A[5]

ЗНАЧЕНИЕ элемента массива

A[2]

НОМЕР (ИНДЕКС) элемента массива: 2

ЗНАЧЕНИЕ

Обращение к элементу массива A массив 3 15 НОМЕР элемента массива (ИНДЕКС)
элемента массива: 10

Слайд 6

Обращение к элементу массива

var i: integer;
i:= 2;
A[3]:= A[i] + 2*A[i-1] + A[2*i];
writeln(

Обращение к элементу массива var i: integer; i:= 2; A[3]:= A[i] +
A[3]+A[5] );

A[3]:= A[2] + 2*A[1] + A[4];
writeln( A[3]+A[5] );

101

152

Слайд 7

Что неверно?

var A: array[1..5] of integer;
x: integer;
...
x:= 2;
writeln( A[x-3] );
A[x+4]:=A[x-1]+A[2*x];

writeln( A[-1] );
A[6]:=A[1]+A[4];

Выход

Что неверно? var A: array[1..5] of integer; x: integer; ... x:= 2;
за границы массива — это обращение к элементу с индексом, который не существует в массиве.

Слайд 8

Перебор элементов массива

Перебор элементов: просматриваем все элементы массива и, если нужно, выполняем

Перебор элементов массива Перебор элементов: просматриваем все элементы массива и, если нужно,
с каждым из них некоторую операцию.

const N = 10;
var A: array[1..N] of integer;

for i:=1 to N do begin
{ здесь работаем с A[i] }
end;

Слайд 9

Заполнение массива

for i:=1 to N do
A[i]:= i;

В развёрнутом виде

A[1]:= 1;
A[2]:= 2;
A[3]:=

Заполнение массива for i:=1 to N do A[i]:= i; В развёрнутом виде
3;
...
A[N]:= N;

1

2

3

N

Слайд 10

X:= N;

Заполнение массива в обратном порядке

A[1]:= N;
A[2]:= N-1;
A[3]:= N-2;
...
A[N]:= 1;

for i:=1 to

X:= N; Заполнение массива в обратном порядке A[1]:= N; A[2]:= N-1; A[3]:=
N do begin
A[i]:= X;
end;

X:= X - 1
end;

X = N, N-1, …, 2, 1

начальное значение

уменьшение на 1

Слайд 11

Заполнение массива в обратном порядке

A[i]:= X;

–1

+1

i + X = N

Заполнение массива в обратном порядке A[i]:= X; –1 +1 i + X
+ 1

X = N + 1 - i

for i:=1 to N do
A[i]:= N + 1 – i
end;

Слайд 12

Вывод массива на экран

for i:=1 to N do
write( A[i] );

,

Вывод массива на экран for i:=1 to N do write( A[i] );
' ');

или так:

for i:=1 to N do
writeln( A[i] );

интервал между значениями

в столбик

или так:

write( '[' );
for i:=1 to N do
write( A[i], ',' );
writeln( ']' );

[1,2,3,4,5,]

Слайд 13

Ввод с клавиатуры

for i:=1 to N do begin
write( 'A[',i,']=' );
read(

Ввод с клавиатуры for i:=1 to N do begin write( 'A[',i,']=' );
A[i] )
end;

A[1] =
A[2] =
A[3] =
A[4] =
A[5] =

5
12
34
56
13

for i:=1 to N do
read( A[i] );

С подсказкой для ввода:

Слайд 14

Заполнение случайными числами

for i:=1 to N do begin
A[i]:=20+random(81);
write(A[i], ' ')
end;

сразу

Заполнение случайными числами for i:=1 to N do begin A[i]:=20+random(81); write(A[i], '
вывод на экран

Слайд 15

В других языках программирования

С++:

int A[N], i;
for (i = 0; i < N;

В других языках программирования С++: int A[N], i; for (i = 0;
i++)
A[i] = i + 1;
for (i = 0; i < N; i++)
cout << A[i] << " ";

A = [0]*N
for i in range(N):
A[i] = i + 1
print(A)

Python:

Слайд 16

Задачи

«A»: а) Заполните все элементы массива значением X , введённым с клавиатуры.
б)

Задачи «A»: а) Заполните все элементы массива значением X , введённым с
Заполните массив первыми N натуральными числами, начиная с X (значение X введите с клавиатуры).

«B»: а) Заполните массив натуральными числами в обратном порядке, начиная со значения X, введённого с клавиатуры. Последний элемент должен быть равен X, предпоследний равен X–1 и т.д.
б) Заполните массив степенями числа 2 (от 21 до 2N), так чтобы элемент с индексом i был равен 2i.

Слайд 17

Задачи

«C»: а) Заполните массив степенями числа 2, начиная с конца, так чтобы

Задачи «C»: а) Заполните массив степенями числа 2, начиная с конца, так
последний элемент массива был равен 1, а каждый предыдущий был в 2 раза больше следующего.
б) С клавиатуры вводится целое число X. Заполните массив, состоящий из нечётного числа элементов, целыми числами, так чтобы средний элемент массива был равен X, слева от него элементы стояли по возрастанию, а справа – по убыванию. Соседние элементы отличаются на единицу. Например, при X = 3 массив из 5 элементов заполняется так: 1 2 3 2 1.

Слайд 18

Задачи-2

«A»: Напишите программу, которая заполняет массив из N = 8 элементов случайными

Задачи-2 «A»: Напишите программу, которая заполняет массив из N = 8 элементов
числами в диапазоне [0,10], выводит его на экран, а затем выводит на экран квадраты всех элементов массива.
Пример:
Массив: 5 6 2 3 1 4 8 7
Квадраты: 25 36 4 9 1 16 64 49

«B»: Напишите программу, которая заполняет массив из N = 10 случайными числами в диапазоне [100,300] и выводит его на экран. После этого на экран выводятся средние цифры (число десятков) всех чисел, записанных в массив.
Пример:
Массив: 142 324 135 257 167 295 126 223 138 270
Число десятков: 4 2 3 5 6 9 2 2 3 7