Массивы. Двумерные массивы

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

Объявляются двумерные массивы так же, как переменные и одномерные массивы. Например, целочисленный числовой массив, содержащий 3 строк и 4 столбца объявляется следующим образом:

DIM tabl(3 ,4)

DIM tabl(3 ,4) AS INTEGER

Tabl

 

DIM tabl1(1 TO 3 ,1 TO 4) AS INTEGER

Tabl1

 

С помощью двумерного массива 9х9 и двух вложенных циклов можно легко составить программу, реализующую таблицу умножения. Сомножителями будут значения индексов строк и столбцов, а их произведения будут значениями элементов массива.

Символьные и строчные переменные.

Строки - последовательность алфавитно-цифровых символов.

Для того, чтобы использовать такие переменные в программе необходимо их соответствующим образом объявить. Для этого используется уже известный оператор DIM.

DIM s AS STRING
s="Cтрока123"

Или добавлять справа от переменной символ $.

s$="Тоже строка 987"

Задание 6.

В таб­ли­це Dat хра­нят­ся дан­ные о ко­ли­че­стве сде­лан­ных за­да­ний уче­ни­ка­ми (Dat[1] за­да­ний сде­лал пер­вый уче­ник, Dat[2] — вто­рой и т. д.). Опре­де­ли­те, какое число будет на­пе­ча­та­но в ре­зуль­та­те ра­бо­ты сле­ду­ю­щей про­грам­мы. Текст про­грам­мы при­ведён на трёх язы­ках про­грам­ми­ро­ва­ния.

Ал­го­рит­ми­че­ский язык Бей­сик Пас­каль
алг нач цел­таб Dat[1:10] цел к, m, n Dat[1] := 7 Dat[2] := 9 Dat[3] := 10 Dat[4] := 5 Dat[5] := 6 Dat[6] := 7 Dat[7] := 9 Dat[8] := 8 Dat[9] := 6 Dat[10] := 9 m := 10; n: = 0 нц для к от 1 до 10 если Dat[к] < m то m : = Dat[к] n: = к все КЦ вывод n КОН DIM Dat(10) AS INTEGER DIM k,m,n AS INTEGER Dat[1] = 7 Dat[2] = 9 Dat[3] = 10 Dat[4] = 5 Dat[5] = 6 Dat[6] = 7 Dat[7] = 9 Dat[8] = 8 Dat[9] = 6 Dat[10] = 9 m = 10; n = 0 FOR k := 1 TO 10 IF Dat(k) < m THEN m =Dat[k] n = k ENDIF NEXT k PRINT n Var k, m, n: integer; Dat: array[1...10] of integer; Begin Dat[1] := 7; Dat[2] := 9; Dat[3] := 10; Dat[4] := 5; Dat[5] := 6; Dat[6] := 7; Dat[7] := 9; Dat[8] := 8; Dat[9] := 6; Dat[10] := 9; m := 10; n: = 0; for k := 1 to 10 do if Dat[k] < m then begin m := Dat[k]; n := k end; writeln(n); End.

Решение.

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

Ответ: 4

При решении задачи стоит обратить внимание на следующие моменты:

1) задача распадается на следующие подзадачи. Для каждой строки надо найти максимальный элемент, затем проверить, является ли он минимальным в своем столбце. Эту операцию при необходимости надо проделать со всеми строками;

2) когда мы ищем максимальный элемент в строке, мы должны обязательно запоминать координаты этого элемента, чтобы знать, для какого столбца проверять, является ли найденный элемент минимальным;

3) для поиска максимального элемента в строке целесообразно использовать цикл for, так как мы должны перебрать все элементы строки;

4) для написания эффективной программы операцию поиска минимального элемента в столбце следует заменить на операцию проверки, является ли данный элемент минимальным в столбце. Это позволит не выполнять лишних действий.

Задание 7. Массивы. Двумерные массивы - student2.ru

Решение.

Решением является программа, записанная на любом языке программирования. Пример верного решения, записанного на языке Паскаль:

Массивы. Двумерные массивы - student2.ru

Для проверки правильности работы программы необходимо использовать тесты

Массивы. Двумерные массивы - student2.ru

Массивы. Двумерные массивы - student2.ru

Наши рекомендации