
- •Часть первая
- •Предварительные сведения
- •Индекс элемента массива
- •1.1. Объявление массива
- •Dim имя1 (индекс1) [, имя2 (индекс2), ...]
- •[Нижний to] верхний [, нижний to] верхний ...
- •1.2. Ввод и вывод элементов массива
- •1.3. Задачи для дополнительного решения
- •2. Примеры решения типовых задач с использованием одномерных массивов
- •2.1. Определение суммы, произведения, количестваэлементов массива
- •2.2. Задачи для дополнительного решения
- •2.3. Определение максимального и минимального значения в массиве
- •2.4. Задачи для дополнительного решения
- •2.5. Определение первого вхождения определенного значения
- •1 Способ (с помощью оператора цикла for...Next)
- •2 Способ (с помощью оператора цикла while...Wend)
- •2.6. Задачи для дополнительного решения
- •2.7. Определение k-го вхождения определенного значения
- •1 Способ (с помощью оператора цикла for...Next)
- •2 Способ (с помощью оператора цикла while...Wend)
- •2.8. Задачи для дополнительного решения
- •Удаление элемента из массива
- •Задачи для дополнительного решения
- •Вставка элемента в заданную позицию
- •Задачи для дополнительного решения
- •3. Примеры решения типовых задач с использованием двумерных массивов
- •3.1. Определение суммы, произведения, количества в каждой строке или столбце
- •3.2. Задачи для дополнительного решения
- •3.3. Определение максимального и минимального значения в каждой строке или столбце матрицы
- •3.4. Задачи для дополнительного решения
- •3.5. Определение первого вхождения определенного значения в каждую строку и столбец матрицы
- •1 Способ (используя оператор цикла for...Next)
- •2 Способ (с помощью оператора цикла while...Wend)
- •3.6. Задачи для дополнительного решения
- •3.7. Главная и побочная диагональ матрицы
- •Задачи для дополнительного решения
- •Удаление строки или столбца из матрицы
- •Задачи для дополнительного решения
- •3.10.Включение строки или столбца в матрицу
- •3.11. Задачи для дополнительного решения
- •Часть вторая задания для организации самостоятельной работы студентов
- •Дан одномерный элемент. Удалить все отрицательные элементы из массива.
- •Задача 3 (стр.62)
- •Задача 4 (стр. 67)
- •2. Примеры решения типовых задач с использованием одномерных массивов . . . . . .
- •420008, Казань, Университетская, 17 – 319
Задачи для дополнительного решения
Дан двумерный массив целых чисел. Удалить из него первый из столбцов, количество нулей, в котором равно заданному числу.
Дан двумерный массив. Удалить строку и столбец, на пересечении которых расположен наименьший по модулю элемент массива.
Задача 3*. Дан двумерный массив. Удалить из него первую из строк, сумма элементов которых не превышает заданное число.
Дан двумерный массив. Удалить из него две строки, одна из которых расположена перед s1-й строкой, а вторая — перед s2-й.
Задача 5. Дан двумерный массив. Удалить из него все столбцы с s1-го по s2-й (s1 < s2).
3.10.Включение строки или столбца в матрицу
Алгоритм решения
Допустим, что необходимо включить массив В в строку (столбец) по номером К. В этом случае перед включением, все строки, начиная с К строки, необходимо сдвинуть вниз, а для столбцов право. Перемещение строк или столбцов начинают с конца. Затем элементы массива В присваиваются элементам К строки (столбца).
Программная реализация
Вставка строки |
Вставка столбца |
FOR i = n TO K STEP –1 FOR j = 1 TO m A(i+1, j) = A(i, j) NEXT j, i FOR j = 1 TO m A(K, j) = B(j) NEXT j n = n + 1 |
FOR j = m TO K STEP –1 FOR i = 1 TO n A(i, j +1) = A(i, j) NEXT i, j FOR i = 1 TO n A(i, K) = B(i) NEXT i m = m + 1 |
пример 24
Дан двумерный массив. Вставить в него строку из чисел 100 после строки с номером s.
Тест
Данные |
Результат |
|
n = 3 s = 1 |
|
|
Исполнение алгоритма
i |
j |
Сдвиг |
Массив |
n |
|||
3 |
|
|
|
|
|||
|
1 |
А(4,1)=A(3,1) |
|
|
|||
|
2 |
А(4,2)=A(3,2) |
|
|
|||
|
3 |
А(4,3)=A(3,3) |
|
|
|||
2 |
|
|
|
|
|||
|
1 |
А(3,1)=A(2,1) |
|
|
|||
|
2 |
А(3,2)=A(2,2) |
|
|
|||
|
3 |
А(3,3)=A(2,3) |
|
|
|||
Вставка чисел 100 после строки под номером 1 |
|||||||
j |
Вставка |
Массив |
n |
||||
1 |
A(2,1)=100 |
|
|
||||
2 |
A(2,2)=100 |
|
|
||||
3 |
A(2,3)=100 |
|
|
||||
|
|
|
n=n+1=3+1=4 |
Блок-схема алгоритма
Начало
Ввод n,m,s
Ввод матрицы А
i=n,s+1
j=1,m
Ai+1j=Aij
j=1,m
As+1j=100
Вывод массива A
Конец
Программа
CLS
INPUT "введи размер матрицы " ; n,m
DIM A(n + 1, m)
PRINT "введи матрицу"
FOR i = 1 TO n
FOR j = 1 TO m
'Ввод элементов матрицы
INPUT A(i,j)
NEXT j, i
INPUT "введи номер строки " ; s
'Сдвиг всех строк матрицы, начиная со строки следующей за строкой s , на одну позицию вниз
FOR i = n TO s + 1 STEP –1
FOR j = 1 TO m
A(i+1, j) = A(i, j)
NEXT j, i
'Вставка чисел 100 после строки под номером s
FOR j = 1 TO m
A(s+1, j) = 100
NEXT j
n = n + 1
FOR i = 1 TO n
FOR j = 1 TO m
PRINT A(i,j);
NEXT j
NEXT i
END
пример 25
Дан двумерный массив. Вставить в него строку из нулей после первой из строк, количество нулей в которой равно заданному числу.
Программа
CLS
INPUT "введи размер матрицы " ; n,m
DIM A(n + 1, m)
PRINT "введи матрицу"
FOR i = 1 TO n
FOR j = 1 TO m
'Ввод элементов матрицы
INPUT A(i,j)
NEXT j, i
FOR i = 1 TO n
'Задание начального значения счетчика нулей в каждой строке матрицы
L = 0
FOR j = 1 TO m
'Определение количества нулей в каждой строке матрицы
IF A(i,j) = 0 THEN L = L + 1
NEXT j
'Определение номера строки, где все элементы равны нулю
IF L = S THEN K = i : EXIT FOR
NEXT i
'Сдвиг всех строк на одну позицию вниз, начиная со строки, где все элементы равны нулю
FOR i = n TO K + 1 STEP –1
FOR j = 1 TO m
A(i+1, j) = A(i, j)
NEXT j, i
'Вставка нулей после строки, где все элементы нулевые
FOR j = 1 TO m
A(K + 1, j) = 0
NEXT j
n = n + 1
FOR i = 1 TO n
FOR j = 1 TO m
PRINT A(i,j);
NEXT j
NEXT i
END