
- •Часть первая
- •Предварительные сведения
- •Индекс элемента массива
- •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
2.7. Определение k-го вхождения определенного значения
Алгоритм решения
Нахождение К-го вхождения определенного значения производится по аналогии с предыдущим типом задач, за исключением того, что здесь должен дополнительно присутствовать счетчик вхождения определенного значения.
пример 9
Дан массив чисел. Найти номер третьего элемента, который принадлежит интервалу (а,b).
Тест
Данные |
Результат |
|||
N=10 |
A=(-3, 5, -2, 4, 0, 7, 2, 8, 3, -2) |
a = 1 |
b = 5 |
A(7) = 2 |
Исполнение алгоритма
i |
Проверка условия |
K (счетчик вхождений) |
Третий элемент, принадлежащий (a,b) |
L (номер элемента, принадлежащего (a,b)) |
1 |
A(1)(1,5) (ложь) -3(1,5) |
|
|
|
2 |
A(2)(1,5) (истина) 5 (1,5) |
1 |
|
2 |
3 |
A(3)(1,5) (ложь) -2(1,5) |
|
|
|
4 |
A(4)(1,5) (истина) 4(1,5) |
2 |
|
4 |
5 |
A(5)(1,5) (ложь) 0(1,5) |
|
|
|
6 |
A(6)(1,5) (ложь) 7(1,5) |
|
|
|
7 |
A(7)(1,5) (истина) 2(1,5) |
3 |
А(7) = 2 |
7 |
Блок-схема алгоритма
Начало
Ввод n,
a, b
i=1,n
Ввод Ai
K=0 ; i=1
K <3;i<=n
+ Ai>=a -
Ai<=b
L=i ; K=K+1
i=i+1
L
Конец
программа
1 Способ (с помощью оператора цикла for...Next)
CLS
INPUT "введи размер массива " ; n
DIM A(n)
INPUT "введи интервал (a,b) " ; a, b
PRINT "введи массив"
'Цикл по элементам массива
FOR i = 1 TO n
'Ввод элементов массива
INPUT A(i)
NEXT i
'Поиск третьего элемента, принадлежащего (a,b)
FOR i = 1 TO n
IF A(i) >= a AND A(i) <= b THEN L = i : K = K + 1
IF K = 3 THEN EXIT FOR
NEXT i
IF K < 3 THEN
PRINT " третьего элемента, принадлежащего (а,b) нет "
ELSE
PRINT "номер третьего элемента, принадлежащего (а,b)=" ; L
PRINT "его значение =" ; A(L)
END IF
ЕND
2 Способ (с помощью оператора цикла while...Wend)
CLS
INPUT "введи размер массива " ; n
DIM A(n)
INPUT "введи интервал (a,b) " ; a, b
PRINT "введи массив"
'Цикл по элементам массива
FOR i = 1 TO n
'Ввод элементов массива
INPUT A(i)
NEXT i
'Присваивание начального значения счетчика цикла
i = 1
'Присваивание начального значения счетчика вхождения
K = 0
'Поиск третьего элемента, принадлежащего (a,b)
WHILE K < 3 OR i < = n
IF A(i) >= a AND A(i) <= b THEN L = i : K = K + 1
i = i + 1
WEND
IF K < 3 THEN
PRINT " третьего элемента, принадлежащего (а,b) нет "
ELSE
PRINT "номер третьего элемента, принадлежащего (а,b)=" ; L
PRINT "его значение =" ; A(L)
END IF
END
пример 10
Дан массив чисел. Заменить второй максимальный элемент на 1.
программа
CLS
INPUT "введи размер массива " ; n
DIM A(n)
PRINT "введи массив"
FOR i = 1 TO n
'Ввод элементов массива
INPUT A(i)
NEXT i
'Определение начального значения максимума
MAX = A(1)
'Нахождение наибольшего значения
FOR I = 2 TO n
IF A(i) > MAX THEN MAX = A(i)
NEXT i
'Определение второго по порядку максимального значения и замена его на 1
FOR i = 1 TO n
IF A(i) = MAX THEN L = i : K = K + 1
IF K = 2 THEN A(L) = 1 : EXIT FOR
NEXT i
FOR i = 1 TO n
'Вывод массива на печать
PRINT A(i);
NEXT i
END