Методичка "Массивы"
методическая разработка по информатике и икт по теме

Курилов Игорь Анатольевич

Методичка по теме "Массивы" для 9-11 классов. 2009 год.

Скачать:


Предварительный просмотр:

Массивы

Виды массивов,

 работа с матрицами и т. д.

        

Составитель Курилов И. А.

Массивы: Виды массивов, работа с матрицами и т. д.

В данной книжки приводится теоретический материал по основным понятиям данного раздела информатики, основные операции работы с массивами на двух языках, а в конце приводятся задания для самопроверки учащимся по темам, позволяющие самостоятельно и заранее подготовиться к контрольно-зачетным занятиям. (Издание 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

         if max

      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)

т


Предварительный просмотр:


Подписи к слайдам: