Работа с массивами

Содержание

Слайд 2

Массивы Массив – это упорядоченная совокупность однородных элементов (переменных) Пример массива

Массивы

Массив – это упорядоченная совокупность однородных элементов (переменных)
Пример массива – любое

пронумерованное множество элементов одного типа.
A$(1)=“Иванов”
A$(2)=“Хорошева”
A$(3)=“Печенкин”
A$(4)=“Вахрушина”
A$(5)=“Петров”
A$(6)=“Васильков”
Слайд 3

Массивы Массив организуется с помощью индекса, который указывается после имени переменной

Массивы

Массив организуется с помощью индекса, который указывается после имени переменной в

скобках. Индекс – это целое число, обозначающее порядковый номер элемента в массиве.

-8

5

2

-3

1

20

-6

A

Одномерный целочисленный массив

A(1)

A(2)

A(7)

Слайд 4

Классификация массивов Одномерные и двумерные массивы Одномерный массив (вектор) – совокупность

Классификация массивов

Одномерные и двумерные массивы
Одномерный массив (вектор) – совокупность однородных элементов,

имеющих один индекс.
Двумерный массив (матрица) – совокупность однородных элементов, имеющих два индекса (номер строки и номер столбца).
Статические и динамические массивы
Статические массивы – массивы, размерность которых определяется константой
Динамические массивы – массивы, размерность которых определяется переменной
Слайд 5

Оператор, объявляющий массив Оператор DIM объявляет массивы Задается имя массива, его

Оператор, объявляющий массив

Оператор DIM объявляет массивы
Задается имя массива, его тип и

размерность. В памяти компьютера выделяется место для записи значений элементов массива и по умолчанию значения элементов массива определяются равными нулю.
Пример:
DIM A$(6), B(10) ‘статические массивы
DIM C(N) ‘динамический массив
Слайд 6

Ввод данных в одномерный массив REM 1вариант: INPUT INPUT “Размерность N=”;

Ввод данных в одномерный массив

REM 1вариант: INPUT
INPUT “Размерность N=”; N
DIM A(N)
FOR

i=1 TO N
INPUT “Введите элемент”; A(i)
NEXT i

REM 2вариант: DATA-READ
INPUT “Размерность N=”; N
DIM A(N)
DATA -8, 5, 2, -3, 1, 20, -6
FOR i=1 TO N
READ A(i)
NEXT i

N

A(N)

i=1,N

Ввод
A(i)

Слайд 7

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

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

Поиск минимума/ максимума в массиве
Поиск среднего значения (количества,

суммы, произведения) элементов, удовлетворяющих условию
Выписать из исходного массива элементы, удовлетворяющие условию, в результирующий массив
Слайд 8

Поиск минимума/максимума в одномерном массиве CLS INPUT “N=”;N DIM A(N) FOR

Поиск минимума/максимума в одномерном массиве

CLS
INPUT “N=”;N
DIM A(N)
FOR i=1 TO N
INPUT “Введите

элемент”; A(i)
PRINT “A(”; i ; “)=“; A(i)
NEXT i
REM Поиск минимума
Min=1000
FOR i=1 TO N
IF A(i)NEXT i
PRINT “Min=”;Min
PRINT “Номер мин.элемента=”;nom
END

Переменные:
N – размерность
массива
A(N) – массив
i - номер элемента
массива
A(i) – текущее i-ое
значение в массиве
Min – переменная
для хранения мини-
мального значения
nom – номер мини-
мального элемента

Слайд 9

Блок-схема: Поиск минимума/максимума в одномерном массиве Объявление массива

Блок-схема: Поиск минимума/максимума в одномерном массиве

Объявление
массива

Слайд 10

Поиск среднего значения элементов CLS INPUT “N=”;N DIM A(N) FOR i=1

Поиск среднего значения элементов

CLS
INPUT “N=”;N
DIM A(N)
FOR i=1 TO N
INPUT “Введите элемент”;

A(i)
PRINT “A(”; i ; “)=“; A(i)
NEXT i
REM Поиск среднего четных элементов
S=0: K=0
FOR i=1 TO N
IF A(i)/2=A(i)\2 THEN S=S+A(i): K=K+1
NEXT I
SR= S/K
PRINT “Среднее значение=”; SR
END

Переменные:
N – размерность
массива
i - номер элемента
массива
A(i) – текущее i-ое
значение в массиве
S – сумма четных
элементов
K – количество
четных элементов
SR=S/k – среднее
значение
Проверка на четность
A(i)/2 = A(i)\2
Нацело делится
на 2?

Слайд 11

Выписать из массива элементы, удовлетворяющие условию, в другой массив CLS INPUT

Выписать из массива элементы, удовлетворяющие условию, в другой массив

CLS
INPUT “N=”;N
DIM A(N),

B(N)
FOR i=1 TO N
INPUT “Введите элемент”; A(i)
PRINT “A(”; i ; “)=“; A(i)
NEXT i
REM Выписать положительные элементы из массива A в массив B
K=1
FOR i=1 TO N
IF A(i)>0 THEN B(K)=A(i): K=K+1
NEXT i
REM Распечатка результирующего массива
FOR i=1 TO K-1
PRINT B(i)
NEXT i
END

A(N) – исходный массив
B(N) – результирующий массив
K – номер элемента в
результирующем массиве

Слайд 12

-8 5 2 -3 1 20 -6 A A(1) A(2) A(3)

-8

5

2

-3

1

20

-6

A

A(1)

A(2)

A(3)

5

2

1

20

B

B(1)

B(2)

B(7)

B(3)

B(4)

A(4)

A(5)

A(6)

A(7)

Слайд 13

Ввод данных в двумерный массив REM 1вариант: INPUT INPUT “Размерность N,

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

REM 1вариант: INPUT
INPUT “Размерность N, M ”; N,

M
DIM A(N, M)
FOR i=1 TO N
FOR j=1 TO M
INPUT “Введите элемент”; A(i,j)
NEXT j
NEXT i

REM 2вариант: DATA-READ
INPUT “Размерность N, M ”; N, M
DIM A(N, M)
DATA -8, 5, 2, -3, 1, 20, -6, 0
FOR i=1 TO N
FOR j=1 TO M
READ A(i, j)
NEXT j
NEXT i

Матрица А

-8

5

2

-3

1

20

-6

0

i=1…2

J=1…4
Номер столбца

Номер
строки

Слайд 14

Поиск количества нулевых элементов с нечетным номером строки в матрице CLS

Поиск количества нулевых элементов с нечетным номером строки в матрице

CLS
INPUT “Размерность

N, M ”; N, M
DIM A(N, M)
FOR i=1 TO N
FOR j=1 TO M
INPUT “Введите элемент”; A(i,j)
NEXT j
NEXT i
REM Распечатка матрицы
FOR i=1 TO N
FOR j=1 TO M
PRINT A(i,j);
NEXT j
PRINT
NEXT i

REM Поиск количества
K=0
FOR i=1 TO N STEP 2
FOR j=1 TO M
IF A(i,j)=0 THEN K=K+1
NEXT j
NEXT i
PRINT “K=”; K
END

K – количество нулевых эле-
ментов с нечетным номером строки
N – число строк матрицы
M – число столбцов матрицы

Слайд 15

Блок-схема N, M A(N) i=1,N Ввод A(i,j) Начало Ввод размерности Объявление

Блок-схема

N, M

A(N)

i=1,N

Ввод
A(i,j)

Начало

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

Объявление
массива

j=1,M

i=1,N

Вывод
A(i,j)

j=1,M

K=0

i=1,N,2

J=1,M

A(i,j)=0

K=K+1

Вывод
K

конец

1

+

-

Слайд 16

Поиск количества нулевых элементов с нечетным номером строки в каждой строке

Поиск количества нулевых элементов с нечетным номером строки в каждой строке

матрицы

CLS
INPUT “Размерность N, M ”; N, M
DIM A(N, M)
FOR i=1 TO N
FOR j=1 TO M
INPUT “Введите элемент”; A(i,j)
NEXT j
NEXT i
REM Распечатка матрицы
FOR i=1 TO N
FOR j=1 TO M
PRINT A(i,j);
NEXT j
PRINT
NEXT i

REM Поиск количества
FOR i=1 TO N STEP 2
K=0
FOR j=1 TO M
IF A(i, j)=0 THEN K=K+1
NEXT j
PRINT “K=”; K
NEXT i
END

-8

5

2

-3

1

20

-6

0

Слайд 17

Поиск количества нулевых элементов с нечетным номером строки в каждом столбце

Поиск количества нулевых элементов с нечетным номером строки в каждом столбце

матрицы

CLS
INPUT “Размерность N, M ”; N, M
DIM A(N, M)
FOR i=1 TO N
FOR j=1 TO M
INPUT “Введите элемент”; A(i,j)
NEXT j
NEXT i
REM Распечатка матрицы
FOR i=1 TO N
FOR j=1 TO M
PRINT A(i,j);
NEXT j
PRINT
NEXT i

REM Поиск количества
FOR j=1 TO M
K=0
FOR i=1 TO N STEP 2
IF A(i, j)=0 THEN K=K+1
NEXT i
PRINT “K=”; K
NEXT j
END

-8

5

2

-3

1

20

-6

0

Слайд 18

Движение по главной диагонали матрицы REM Поиск суммы положительных элементов главной

Движение по главной диагонали матрицы

REM Поиск суммы положительных элементов
главной диагонали
CLS
INPUT

“Размерность N ”; N
DIM A(N, N) ‘диагональ только в квадратной матрице
FOR i=1 TO N
FOR j=1 TO N
INPUT “Введите элемент”; A(i,j)
NEXT j
NEXT i
S=0
FOR i=1 TO N
IF A(i, i)>0 THEN S=S+A(i, i)
NEXT i
PRINT “S=”; S
END

- 5

2

8

0

- 9

1

- 4

- 3

10

Номер строки=
=номер столбца