
- •Часть первая
- •Предварительные сведения
- •Индекс элемента массива
- •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
Задачи для дополнительного решения
Дан массив чисел. Вставить два максимальных значения в массив в третью позицию массива.
В последовательности из 10 чисел. Вставить первый четный элемент до второй позиции.
Задача 3*. Дан массив чисел. Вставить число ноль после минимума.
В массиве из n чисел вставить число m1 до первого нулевого элемента.
В массиве из n чисел вставить максимальное и минимальное значение в первую позицию массива .
3. Примеры решения типовых задач с использованием двумерных массивов
3.1. Определение суммы, произведения, количества в каждой строке или столбце
Алгоритм решения
Для вычисления суммы (произведения или количества) элементов некоторой строки i необходимо организовать цикл для перебора всех элементов данной строки. Поэтому параметром этого цикла следует выбрать номер столбца j. Перед циклом необходимо задать начальное значение суммы S=0 (для произведения P=1 и для количества К=0). После окончания цикла результат присваивается новому массиву, который в дальнейшем будет содержать найденные значения сумм (произведений или количеств). Для вычисления сумм (произведений или количеств) каждой из всех строк необходимо описанные действия повторить для всех значений i, т.е. внешний цикл должен быть организован по i.
Вычисления по столбцам производится по той же схеме.
Программная реализация
|
для подсчета суммы элементов |
для подсчета произведения элементов |
в каждой строке |
FOR i = 1 TO n S = 0 FOR j = 1 TO m S = S + A(i,j) NEXT j B(i) = S NEXT i |
FOR i = 1 TO n P = 1 FOR j = 1 TO m P = P * A(i,j) NEXT j B(i) = P NEXT i |
в каждом столбце |
FOR j = 1 TO n S = 0 FOR i = 1 TO m S = S + A(i,j) NEXT i B(j) = S NEXT j |
FOR j = 1 TO n P = 1 FOR i = 1 TO m P = P * A(i,j) NEXT i B(j) = P NEXT j |
пример 15
Дана матрица чисел. Найти сумму положительных элементов в каждой строке матрицы.
Тест
Данные |
Результат |
|
n = 3, m = 3 |
|
|
Исполнение алгоритма
i |
j |
Проверка условия |
S |
Массив В |
1 |
|
|
0 |
|
|
1 |
A(1,1)>0 (истина) 1>0 |
0+A(1,1)=0+1=1 |
|
|
2 |
A(1,2)>0 (истина) 2>0 |
A(1,1)+А(1,2)=1+2=3 |
|
|
3 |
А(1,3)>0 (ложь) 0=0 |
сумма остается прежней |
|
|
|
|
|
В(1)=3 |
2 |
|
|
0 |
|
|
1 |
А(2,1)>0 (ложь) -2<0 |
сумма остается прежней |
|
|
2 |
A(2,2)>0 (истина) 5>0 |
0+A(2,2)=0+5=5 |
|
|
3 |
A(2,3)>0 (истина) 1>0 |
A(2,2)+А(2,3)=5+1=6 |
|
|
|
|
|
B(2)=6 |
3 |
|
|
0 |
|
|
1 |
А(3,1)>0 (ложь) -1<0 |
сумма остается прежней |
|
|
2 |
А(3,2)>0 (ложь) -7<0 |
сумма остается прежней |
|
|
3 |
A(3,3)>0 (истина) 4>0 |
0+A(3,3)=0+4=4 |
|
|
|
|
|
B(3)=4 |
Блок-схема алгоритма
Начало
Ввод n,m
Ввод массива А
i=1,n
S=0
j=1,m
+ Aij>0 -
S=S+Aij
Bi=S
Вывод
массива В
Конец
программа
CLS
INPUT "введи размер матрицы " ; n, m
DIM A(n, m)
PRINT "введи матрицу"
'Цикл по строкам матрицы
FOR i = 1 TO n
'Цикл по столбцам матрицы
FOR j = 1 TO m
'Ввод элементов массива
INPUT A(i,j)
NEXT j, i
FOR i = 1 TO n
'Присваивание начального значения суммы
S = 0
FOR j = 1 TO m
'Суммирование положительных элементов строки
IF A(i, j) > 0 THEN S = S + A(i, j)
NEXT j
B(i) = S
NEXT i
FOR i = 1 TO n
PRINT "Сумма положительных элементов в " ; i; " строке="; В(i)
NEXT i
END
пример 16
Дана матрица чисел. Найти номер столбца, где все элементы четные.
Программа
CLS
INPUT "введи размер матрицы " ; n, m
DIM A(n, m), В(m)
PRINT "введи матрицу"
FOR j = 1 TO m
FOR i = 1 TO n
'Ввод элементов матрицы
INPUT A(i,j)
NEXT i, j
FOR j = 1 TO m
'Задание начального значения счетчика четных элементов в каждом столбце матрицы
K = 0
FOR i = 1 TO n
'Определение количества четных элементов
IF A(i, j) MOD 2 = 0 THEN K = K + 1
NEXT i
'Создание массива, состоящего из количества четных элементов
B(j) = K
NEXT j
FOR j = 1 TO m
'Определение номера столбца, где все элементы четные
IF B(j) = n THEN
PRINT "В " ; j; " столбце все элементы четные"
END IF
NEXT j
END