- •Часть первая
- •Предварительные сведения
- •Индекс элемента массива
- •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.8. Задачи для дополнительного решения
Дан массив. Поменять местами третий четный элемент массива и максимальный элементы.
В последовательности B из n чисел поменять местами максимальный элемент и первый элемент массива, если количество отрицательных элементов больше количества положительных. Если элементов с максимальным значением несколько, то в обмене должен участвовать второй из них.
Задача 3*. Дан массив чисел. Определить второе четное значение в данном массиве. Домножить все элементы на найденное число.
В последовательности из n чисел определить сумму чисел до первого положительного элемента и сумму после второго положительного элемента. Сравнить полученные суммы и распечатать наибольшую.
В последовательности из n чисел определить значения первого и второго по порядку отрицательного элемента. Если первое значение больше второго, то распечатать сумму элементов до первого отрицательного числа.
Удаление элемента из массива
Алгоритм решения
Допустим, требуется удалить элемент под номером К из массива А, состоящего из N элементов. Для этого необходимо сдвинуть влево на одну позицию все элементы, следующие за элементом под номером К.
Программная реализация
FOR i = K TO n-1
A(i) = A(i + 1)
NEXT i
n = n - 1
пример 11
Дан массив чисел. Удалить первый отрицательный элемент.
Тест
Данные |
Результат |
|
N=10 |
A=(3, 5, -2, -4, 0, 7, 2, 8, 3, -2) |
A=(3, 5, -4, 0, 7, 2, 8, 3, -2) |
Исполнение алгоритма
Определение позиции первого отрицательного элемента |
||||
i |
Проверка условия |
Первый отрицательный элемент |
Номер первого отрицательного элемента К |
|
1 |
A(1)<0 (ложь) 3>0 |
|
|
|
2 |
A(2)<0 (ложь) 5>0 |
|
|
|
3 |
A(3)<0 (истина) -2<0 |
A(3)=-2 |
3 |
|
Удаление первого отрицательного элемента |
||||
i |
Cдвиг |
Массив |
n |
|
3 |
A(3)=A(4) |
A=(3, 5, -4, -4, 0, 7, 2, 8, 3, -2) |
|
|
4 |
A(4)=A(5) |
A=(3, 5, -4, 0, 0, 7, 2, 8, 3, -2) |
|
|
5 |
A(5)=A(6) |
A=(3, 5, -4, 0, 7, 7, 2, 8, 3, -2) |
|
|
6 |
A(6)=A(7) |
A=(3, 5, -4, 0, 7, 2, 2, 8, 3, -2) |
|
|
7 |
A(7)=A(8) |
A=(3, 5, -4, 0, 7, 2, 8, 8, 3, -2) |
|
|
8 |
A(8)=A(9) |
A=(3, 5, -4, 0, 7, 2, 8, 3, 3, -2) |
|
|
9 |
A(9)=A(10) |
A=(3, 5, -4, 0, 7, 2, 8, 3, -2, -2) |
n=n-1=10-1=9 |
|
|
|
A=(3, 5, -4, 0, 7, 2, 8, 3, -2) |
|
|
Блок-схема алгоритма
Начало
Ввод n
i=1,n
ввод Ai
i=1
Ai<=0 ; i<=n
i=i+1
K=i
i=K,n
Ai = Ai + 1
n=n-1
i=1,n
Вывод Ai
Конец
программа
CLS
INPUT "введи размер массива " ; n
DIM A(n)
PRINT "введи массив"
'Цикл по элементам массива
FOR i = 1 TO n
'Ввод элементов массива
INPUT A(i)
NEXT i
FOR i = 1 TO n
'Поиск первого отрицательного элемента
IF A(i) < 0 THEN K = i : EXIT FOR
NEXT i
IF К = 0 THEN
PRINT "отрицательных элементов нет "
ELSE
'Удаление первого отрицательного элемента
FOR i = K TO n-1
A(i) = A(i + 1)
NEXT i
n = n - 1
END IF
FOR i = 1 TO n
'Вывод элементов массива
PRINT A(i);
NEXT i
ЕND
пример 12
Дан массив чисел. Удалить все максимальные значения.
программа
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
j = 1
'Удаление максимальных значений
DO
IF A(j) = MAX THEN
K = j
FOR i = K TO n-1
A(i) = A(i + 1)
NEXT i
n = n – 1
END IF
j = j + 1
IF j > n THEN EXIT DO
LOOP
FOR i = 1 TO n
'Вывод элементов массива
PRINT A(i);
NEXT i
END
