Методичка "Массивы"
методическая разработка по информатике и икт по теме
Методичка по теме "Массивы" для 9-11 классов. 2009 год.
Скачать:
Вложение | Размер |
---|---|
Методичка по теме "Массивы" | 226.5 КБ |
Презентация по теме "Массив" | 2.08 МБ |
Предварительный просмотр:
Массивы
Виды массивов,
работа с матрицами и т. д.
Составитель Курилов И. А.
Массивы: Виды массивов, работа с матрицами и т. д.
В данной книжки приводится теоретический материал по основным понятиям данного раздела информатики, основные операции работы с массивами на двух языках, а в конце приводятся задания для самопроверки учащимся по темам, позволяющие самостоятельно и заранее подготовиться к контрольно-зачетным занятиям. (Издание 1-ое, 24.09.2007).
Структурный тип: массив.
1.Табличный способ организации данных. Понятие массива и матрицы.
а) Табличный способ организации данных.
С табличным способом организации данных (таблицами) мы встречаемся каждый день.
Пример: Классный журнал, схема зрительного зала, дневник и т.д.
Табличным способом организации данных называется таблица, состоящая из строк (строки) и столбцов.
а) таблицу обозначают буквой латинского алфавита
б) строки считаются сверху вниз, столбцы слева на право
в) таблица, состоящая из одной строки называется линейной, а остальные прямоугольными.
Пример:
Таблица (матрица) А: 7 2 3 34
4 5 0 -3
1 3 8 1,2
- Каждый элемент обозначается Х(i, j).
Например А(1,1)=7; А(2,3)=0 и т.д. (так хранится и используется табличная информация в памяти компьютера).
б) Массив и матрица. Заполнение, вывод.
Массив – это табличный способ организации данных на языке программирования.
Матрица – это числовой массив.
QBasic:
Оператор DIM (DIMENSION-размерность, объем, протяженность) – это оператор массива.
Основная функция: выделение места в памяти для некоторого числа переменных (постоянных).
Примеры:
100 DIM K(12)- означает в памяти зарезервировано место для 12 переменных с именем К-К(1),…
110 DIM В (2,12) – означает в памяти выделена таблица из 2 строк и 12 столбцов
(* бывают также операции над отдельные элементы массива).
Заполнение массива.
Массив заполняется с помощью цикла и применением оператором INPUT, если массив переменный и операторов DАТА. READ, если массив постоянный.
а) заполнение переменного массива (одномерный)
Пример:
10 DIM A(10)
20 FOR I=1 TO 10
30 INPUT A(I)
40 NEXT I
б) заполнение постоянного массива (одномерный)
Пример:
10 DIM A(10)
20 DATA 2,3,8,6,0,-3,14,6.5,3.1,10
30 FOR I=1 TO 10
40 READ A(I)
50 NEXT I
Примечание: Операторы DATA (данные с англ.) и READ (читать с англ.) –записывают и считывают данные в массив или просто в ячейку памяти:
120 DATA 1,2,3
130 READ A,B,C
в) заполнение двумерных массивов (переменного и постоянного)
Пример:
10 DIM A(2,5) 10 DIM A(2,5)
20 FOR I=1 TO 2 20 DATA 2,3,8,6,0,1,1,2,7,9
30 FOR j=1 TO 5 30 FOR I=1 TO E
40 INPUT A(I, j) 40 FOR j=1 TO 5
50 NEXT j 50 READ A (I, j)
60 NEXT I 60 NEXT j, I
Примечание: Есть также понятие произвольный массив – размерность задается в ходе запуска программы
Пример:
10 INPUT N
20 DIM A(N)
(* может быть только переменный)
Вывод элементов массива
Производится оператором PRINT и циклом, если более 1-го элемента
Пример:
70 FOR I=1 TO 2
80 FOR j=1 TO 5
90 PRINT A(I, j);
100 NEXT j
110 PRINT
120 NEXT I
Turbo Pascal:
Для работы с массивами в Turbo Pascal нужно:
а) определить переменные и т. д.
б) назвать массив
в) описать массив (раздел var)
г) ввести данные в память
Рассмотрим одномерные массивы, их общая запись:
const n=a; {a – число}
var dim:array[1..n] of real; {или другой тип переменных} – это описание массива с названием и определением чисел.
Общая запись двумерного массива:
const n=a; m=b;
var dim:array[1..n, 1..m] of real; {или другой тип переменных}, где n – строки, а m – столбцы.
Ввод постоянного массива
type a=array[1..3] of string[10]
const name: mas(‘a’,’bb’,’ccc’);
const n=5
a: array[1..n,1..n] of integer=((1,2,3),(4,5,6));
Ввести (вывести) данные можно сразу все* или по одному:
а) for I:=1 to n do
read (dim[i]);
б) for I:=1 to n do
begin
write(‘dim[‘,i,’]=’);
readln(dim[i]);
end;
*имеется ввиду с помощью оператора randomize (генератор случайных чисел – компьютер сам загадывает числа в выбранном диапазоне);
randomize;
for i:=1 to 10 do
x[i]:=random(100);
Аналогичная запись для 2-х-мерного массива.
в) Общий алгоритм программ с массивами.
Общего алгоритма для всех программ использующих массив естественно нет, можно лишь приближенно привести пример для большинства задач с массивами решающих в школе
- выделение в памяти места для таблицы (массива)
-считывание и заполнение массива
-работа над массивом
-вывод нужных результатов
Блок работы над массивом является главным, так как это часть программы, по сути, является всей задачей, над которой вам придется работать.
общий вид блок-схема:
г) Примеры программ
QBasic:
Пример 1: «Сложение всех элементов массива (постоянного)»
10 REM Сложение всех элементов массива
20 DIM C(2,10)
30 DATA 1,2,3,4,5,6,7,8,9,10
40 DATA 11,12,13,14,15,16,17,18,19,20
50 FOR I=1 TO 2
60 FOR K=1 TO 10
70 READ C(I, K)
80 NEXT K
90 NEXT I
100 LET T=0
110 FOR I=1 TO 2
120 FOR K=1 TO 10
130 LET T=T+C(I, K)
140 NEXT K
150 NEXT I
160 PRINT T
170 END
Пример 2: «Обнуление например нечетных значений массива»
…
180 FOR M=1 TO 10 STEP 2
190 LET A(M)=0
200 NEXT M
…
блок-схема:
Домашнее задание:
а) увеличить каждый нечетный элемент постоянного одномерного массива на 1.
б) подсчитать элементы переменного одномерного массива меньше некоторого введенного значения N.
в) программа ввода таблицы температур и вывод чисел, когда была температура Т.
г) у массива А(3,5) увеличить 1 строку на 1, 2-ю, 3-ю на 3.
Turbo Pascal:
Задача 1: Найти наибольший элемент массива.
Program pr32;
const n=10;
var a:array[1..n] of integer; max,i:integer;
begin
for i:=1 to n do
begin
writeln(‘a[‘,i,’]=’);
readln(a[i]);
end;
max:=a[1];
for i:=1 to n do
writeln(‘наибольший элемент массива max=’,max);
readln;
end.
Задача 2: Найти наибольшие элементы каждой строки таблицы (массива).
Program pr33;
const n=3;
var b: array[1..n, 1..n] of integer;
i, j: integer;
a: array[1..n] of integer;
begin
writeln(‘введите значение элементов таблицы по строкам’);
writeln(‘в конце каждой строки нажмите
for i:=1 to n do
begin
for j:=1 to n do
read(b[i,j]);
writeln;
end;
for i:=1 to n do
begin
a[i]=b[i,1]
for j:=2 to n do
if a[i]< b[i,j] then a[i]:=b[i,j];
end;
writeln(‘наибольшие числа строк таблицы:’);
for i:=1 to n do
writeln(a[i]);
readln;
end.
Задача 3: Сколько встречается раз фамилия ИВАНОВ в таблице (таблица заполнена символьными переменными – фамилиями).
Program pr34;
const n=4;
var iv: array[1..n, 1..n] of string[20];
i, j,s: integer;
begin
writeln(‘введите фамилии по строкам’);
writeln(‘в конце каждой строки нажмите
for i:=1 to n do
begin
for j:=1 to n do
read(iv[i,j]);
writeln;
end;
for i:=1 to n do
begin
for j:=1 to n do
if iv[i,j]=’иванов’ then s:=s+1;
end;
writeln(‘фамилия <Иванов> встречается ’,s,’ раз(а)’);
readln;
end.
2.Поиск заданного(ых) элемента(ов) в массиве.
3.Подсчет заданного(ых) элемента(ов) в массиве.
4.Математические операции над массивами
5.Статистические операции над массивами
6.Работа со строками и столбцами.
7.Формирование из одного массива другого.
8.Сортировка.
9. Работа с матрицами. Работа с диагоналями матрицы.
10.Периметр матрицы.
11.Перестановки в матрице.
12.Повороты матрицы.
13. Транспонирование матрицы.
Транспонирование матрицы – это симметричный обмен ячейками, относительно главной диагонали.
14.Обработка символьного массива: поиск, подсчет.
15. Отбор по значению в символьном массиве.
16.Сортировка символьного массива.
17. Контрольная работа!
начало
n
i=0, n,1
mas (i)
Блок работы с массивом
Блок вывода нужных результатов
конец
начало
Т=о
c( i ,j)
j=1,10,1
i=1,2,1
i=1,2,1
j=1,10,1
конец
Т=т+c(i.j)
т