Конспект урока по теме Двумерные массивы

Автор публикации:

Дата публикации:

Краткое описание: ...


Тема:

«Обработка элементов двумерного массива.

Решение задач с двумерными массивами на языке QBasic»

Тип урока: комбинированный.

Технология: личностно-ориентированная.

Цели урока:

  1. закрепление у учащихся понятия двумерного массива, элементов двумерного массива и правил работы с двумерным массивом;

  2. стимулирование интереса учащихся к данной теме и предмету в целом;

  3. воспитание у учащихся самостоятельности, коллективизма, ответственности за себя и других;

  4. развитие мышления, умения применять полученные знания при решении задач различной направленности.

Задачи урока:

  • Воспитательная - развитие познавательного интереса, логического мышления.

  • Учебная - совершенствование навыков составления программ на языке программирования Basic для ЭВМ;

  • Развивающая - развитие алгоритмического мышления, памяти, внимательности.

Оборудование: ПК, интерактивная доска.

Программное обеспечение: средство мультимедиа PowerPoint, язык программирования QBasic.

ПЛАН УРОКА

  1. Организационный момент.

  2. Актуализация знаний по теме, повторение.

  3. Решение задач с двумерными массивами.

  4. Проверка знаний в виде самостоятельной работы .

  5. Подведение итогов урока. Домашнее задание









ХОД УРОКА

1. Организационный момент.

Приветствие учащихся, ознакомление учащихся с целями и задачами урока.

2. Актуализация знаний по теме, повторение

Вопросы:

  1. Чем двумерный массив отличается от одномерного?

  2. Что означает запись: а) А(2,3); б) В(I,J)=5; в) В (G,N) при G=5, N=4.

  3. Сколько элементов содержит массив А(4,7). Как находится количество элементов в двумерном массиве?

  4. Что такое матрица?

  5. Какая матрица называется квадратной? Прямоугольной?

  6. Каким признаком обладают элементы матрицы, принадлежащие главной диагонали?

В двумерном массиве каждый элемент фиксируется номером строки и столбца, на пересечении которых он расположен.

Положение элемента в двумерном массиве определяется двумя индексами. Они разделяются запятой.

В качестве индексов могут использоваться любые арифметические выражения, константы, переменные. Если арифметическое выражение содержит дробную часть, то при определении индекса она отбрасывается.

При появлении отрицательного значения индекса вызывает сообщение об ошибке.

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

Для определения двумерного массива в программе используется тот же оператор DIM, только при определении размера необходимо указать два индекса - количество строк и столбцов:

DIM A(5,7)

Данное описание предполагает, что в массиве с именем А будет 5 строк и 7 столбцов.





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

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





Дан массив А

Какая размерность данного массива (5*7)

Найдите элемент А(4,3), А(5,7)

Найдите А(3,1)+А(2,6)

Найдите А(6,4)*А(5,4)



Ввод, вывод элементов двумерного массива

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

For i=a to b

For k=c to d

:

Next k

Next i









Дана программа

10 CLS

20 INPUT "введите через запятую число  строк и столбцов ";N,M

30 DIM A(N,M)

40 FOR I=1 TO N

50 FOR J=1 TO M

60 PRINT"введите элемент А(";I;J;")=";

70  INPUT A(I,J)

80 NEXT J

90 NEXT I

100 FOR I=1 TO N

110 FOR J=1 TO M

120 PRINT A(I,J);

130 NEXT J

140 PRINT

150 NEXT I

160 END     



ответьте на вопросы:

  1. Как называется массив в предложенной программе?

  2. Сколько строк, столбцов в данном массиве?

  3. Каким способом заполнен массив?

  4. Назовите номера строк или строки, в которых вводятся элементы массива?

  5. Назовите номера строк или строки, в которых выводятся элементы массива на экран?

















3. Обработка элементов двумерного массива

1. Удаление строки из массива.

90 REM УДАЛЕНИЕ СТРОКИ

100 N=N-1

105 INPUT “ВВЕДИТЕ НОМЕР УДАЛ СТРОКИ”;K

110 FOR I=K TO N

120 FOR J=1 TO N

130 B(I,J)=B(I+1,J)

140 NEXT J

150 NEXT I


2. Включение строки в массив.

90 REM ВКЛЮЧЕНИЕ СТРОКИ В МАССИВ

100 FOR I=N TO K STEP –1

110 FOR J=1 TO M

120 B(I+1,J)=B(I,J)

130 NEXT J

140 NEXT I

150 FOR J=1 TO M

160 A(K,J)=C(J)

170 Next J

180 N=N+1


3. Перестановка строк матрицы.

(с использованием вспомогательной переменной Р перестановка осуществляется во всех столбцах двух строк)

90 REM ПЕРЕСТАНОВКА СТРОК

100 FOR K=1 TO M

110 P=A(I,K): A(I,K)=(J,K):A(J,K)=P

120 NEXT K

4. Поиск минимального( максимального) элемента в массиве.

Для двухмерного массива алгоритм аналогичный, но нужно для каждой строки просматривать элементы всех столбцов(что требует двойного цикла) и запомнить два индекса: номер строки (K) и номер столбца (L).

90 REM ПОИСК МИНИМАЛЬНОГО ЭЛЕМЕНТА МАССИВА

100 P=A(1,1) : K=1:L=1

110 FOR I=1 TO N

120 FOR J=1 TO M

130 IF P<=A(I,J) GOTO 150

140 P=A(I,J) : K=I:L=J

150 NEXT J

160 NEXT I

4. Закрепление пройденной темы. Решение задачи.

Задача 1. Напишите программу формирования и вывода двумерного массива произвольного размера так, чтобы в четных строках стояли 1, а в нечетных элементы задавались случайным образом из интервала (0,10).

CLS

Randomize Timer

Dim A(10,10)

For k=1 to 10

For m=1 to 10

If k mod 2=0 then A(k,m)=1 else A(k,m)=int(rnd*10)

Next m

Next k

For k=1 to 10

For m=1 to 10

Print A(k,m);

Next m

Print

Next k

end



Задача 2. Двумерный массив В(5,6) задан четными элементами случайным образом из интервала (-10,10). Включите на место третьей строки строку, состоящую из 1. выведите на экран оба массива.

CLS

RANDOMIZE TIMER

DIM B(5,6)

FOR I=1 TO 5

FOR J=1 TO 5

B(I,J)=INT(RND*20-10)

? B(I,J);

NEXTJ

?

NEXT I

D(6,6)

FOR I=5 TO 3 STEP –1

FOR J=1 TO 5

B(I+1,J)=B(I,J)

NEXT J

NEXT I

FOR J=1 TO 5

D(3,J)=1

Next J

FOR I=1 TO 5

FOR J=1 TO 5

? D(I,J);

NEXT J

?

NEXT I


Задача 3. В двумерном массиве произвольных чисел В(4,7) взаимно поменять местами 2-й и 5-й столбцы. Вывести исходный масссив и массив, полученный после перестановок.

CLS

RANDOMIZE TIMER

DIM B(4,7)

DIM A(4,7)

FOR I=1 TO 4

FOR J=1 TO 7

B(I,J)=INT(RND*10)

? B(I,J)

A(I,J)=B(I,J)

NEXT J

?

NEXT I

FOR I=1 TO 4

P=A(I,2):A(I,2)=A(I,5): A(I,5)=P

NEXT I

FOR I=1 TO 4

FOR J=1 TO 7

? A(I,J);

NEXT J

?

NEXT I













Задача 4 В двумерном массиве произвольных чисел А(10,10) найти наибольший элемент главной диагонали.

CLS

RANDOMIZE TIMER

DIM A(10,10)

FOR I=1 TO 10

FOR J=1 TO 10

A(I,J)=INT(RND*10)

NEXT J

NEXT I

MAX=A(1,1)

B(10)

FOR I=1 TO 10

FOR J=1 TO 10

IF I=J THEN B(I)=A(I,J)

NEXT J,I

FOR I=2 TO 10

IF MAX>B(I) THEN MAX=MAX ELSE MAX=B(I)

NEXT I

? “MAX=”;MAX



Дополнительно (если останется время)

Задача 2. Напишите программу формирования и вывода массива размером (6*9), каждые 3 последовательных элемента в строке которого составлены по следующему правилу:

  • 1-й - числу введенному с клавиатуры

  • 2-й - удвоенному индексу строки

  • 3-й - случайному однозначному числу

Dim A(6,9)

For k=1 to 6

For m=1 to 9 step 3

Input "введите 1 элемент массива";A(k,m)

A(k,m+1)=2*k

A(k,m+2)=int(rnd(1)*10)

Next m

Next k

For k=1 to 6

For m=1 to 9

Print A(k);

Next m:Print

Next k



Задача 2. Составьте программу формирования одномерного массива из максимальных элементов строк двумерного массива, заданного датчиком случайных чисел.

CLS

Dim A(10,10),B(10)

For k=1 to 10: for m=1 to 10

A(k,m)=int(rnd(1)*100)

Print A(k,m);: Next m: Print: Next k

For k=1 to 10: min=A(k,1)

For m=1 to 10

If A(k,m)

Next m

B(k)=min:Next k

For k=1 to 10

Print B(k)

Next k





Задача 3. Напишите программу, которая заполняет первую строку массива размером 2*5 фамилиями врачей, а вторую их специальностями. Определите и выведите по запросу с клавиатуры фамилию нужного специалиста.



Dim A$(2,5)

Data Иванов, Петров, Сидорова, Кулаков, Ильин

Data окулист, педиатр, стоматолог, кардиолог, лор

For m=1 to 2

For n=1 to 5

Read A$(m,n)

Print A$(m,n)

Next n

Print

Next m

Input "Введите специальность врача" F$

For m1 to 5

If A$(2,m)=F$ then Print A$(1,m)

Next m









4. Самостоятельная работа.

5. Подведение итогов. Домашнее задание

Задача 1. Напишите программу формирования массива размером 5*5 датчиком случайных чисел. Замените в нем нечетные значения элементов максимальными. Выведите исходный массив и измененный массивы.

Задача 2. В таблице А(3,3) случайных чисел найти разницу между наибольшими и наименьшими числами.

Задача 3. Дан массив D(12,15). Удалить из данного массива 10 строку.


12