- •Часть первая
- •Предварительные сведения
- •Индекс элемента массива
- •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.2. Задачи для дополнительного решения
Дан массив. Найти сумму элементов массива, значение которых не превышает 20.
Дан массив чисел. Найти сумму элементов массива, больших А.
Дан массив целых чисел. Найти сумму нечетных элементов.
Дан массив целых чисел. Найти сумму второго, четвертого, шестого и т.д. элементов массива.
Задача 5*. Определить частное от деления суммы положительных элементов массива на модуль суммы отрицательных элементов.
Дан массив целых чисел. Найти номера элементов, оканчивающихся цифрой 0 (известно, что такие элементы есть в массиве).
Дан массив чисел. Определить количество неотрицательных элементов.
Дан массив целых чисел. Определить количество элементов, отличных от последнего элемента.
Даны натуральное число N, действительные числа Х1,...,ХN. Получить (1+r)/(1+s), где r - сумма всех тех членов последовательности х1,...,хn, которые не превосходят 1, а s - сумма членов, больших 1.
Задача 10*. Даны целые числа С1,...,C11. Имеются ли в последовательности С1,...,C11 два идущих подряд члена кратных 3 .
Определить количество элементов массива, принадлежащих промежутку от А до В (значения А и В вводятся с клавиатуры; В>А).
Дан массив чисел. Подсчитать сумму четных элементов и количество элементов кратных 3.
Дан массив чисел. Подсчитать произведение нечетных элементов и количество элементов кратных 5.
Найти среднее арифметическое элементов массива, больших числа 10.
Задача 15*. Даны последовательности А и В. Если сумма элементов первой последовательности больше суммы элементов второй последовательности, то поменять местами А3 c В5. В противном случае поменять местами В4 и А6.
2.3. Определение максимального и минимального значения в массиве
Алгоритм решения
Допускается, что первый элемент массива является наибольшим (наименьшим). Циклически все последующие элементы сравниваются с допустимым. Если текущее значение больше допустимого максимума, то оно принимается за новое наибольшее значение. В противном случае наибольшее значение остается прежним. Этот процесс продолжается до тех пор, пока не будут сравнены все элементы массива.
Программная реализация
Для нахождения максимального значения |
Для нахождения минимального значения |
MAX = A(1) K = 1 FOR I = 2 TO n IF A(i) > MAX THEN MAX = A(i): K = i END IF NEXT i |
MIN = A(1) L = 1 FOR I = 2 TO n IF A(i) < MIN THEN MIN = A(i): L = i END IF NEXT i |
пример 5
Дан массив чисел. Поменять местами первый и максимальный элемент массива.
Тест
Данные |
Результат |
|
N=5 |
A=(3, 5, -2, 4, 0) |
A=(5, 3, -2, 4, 0) |
Исполнение алгоритма
i |
Проверка условия |
max |
K |
Массив |
|
|
=А(1)=3 |
1 |
3, 5, -2, 4, 0 |
2 |
А(2)>max(истина) 5>3 |
=A(2)=5 |
2 |
3, 5, -2, 4, 0 |
3 |
А(3)>max(ложь) -2<5 |
Значение осталось прежним |
Значение осталось прежним |
3, 5, -2, 4, 0 |
4 |
А(4)>max(ложь) 4<5 |
Значение осталось прежним |
Значение осталось прежним |
3, 5, -2, 4, 0 |
5 |
А(5)>max(ложь) 0<5 |
Значение осталось прежним |
Значение осталось прежним |
3, 5, -2, 4, 0 |
|
|
|
|
Обмен элементов 5, 3, -2, 4, 0 |
Блок-схема алгоритма
Начало
Ввод n
i=1,n
Ввод Ai
max=Ai ; K=1
i=2,n
+ Ai>max -
max=Ai ; K=i
Обмен значений
элементов А1 и АК
i=1,n
Вывод Ai
Конец
программа
CLS
INPUT "введи размер массива " ; n
DIM A(n)
PRINT "введи массив"
'Цикл по элементам массива
FOR i = 1 TO n
'Ввод элементов массива
INPUT A(i)
NEXT i
'Присваивание начального значения максимума
MAX = A(1)
K = 1
FOR I = 2 TO n
'Нахождение максимального значения и его номера
IF A(i) > MAX THEN MAX = A(i): K = i
NEXT i
'Обмен значений элементов А1 и АК
SWAP A(1),A(K)
FOR i = 1 TO n
'Вывод элементов массива
PRINT A(i);
NEXT i
END
пример 6
Дан массив чисел. Найти сумму положительных элементов до и после максимального значения. Сравнить полученные значения.
программа
CLS
INPUT "введи размер массива " ; n
DIM A(n)
PRINT "введи массив"
FOR i = 1 TO n
'Ввод элементов массива
INPUT A(i)
NEXT i
'Задание начального значения максимума.
MAX = A(1)
K = 1
FOR I = 2 TO n
'Сравнение элементов массива для поиска наибольшего значения
IF A(i) > MAX THEN MAX = A(i): K = i
NEXT i
'Задание начального значения суммы
S1 = 0
S2 = 0
'Поиск значения суммы положительных элементов до наибольшего значения
FOR i = 1 TO K – 1
IF A(i) > 0 THEN S1 = S1 + A(i)
NEXT i
'Поиск значения суммы положительных элементов после наибольшего значения
FOR i = K +1 TO n
IF A(i) > 0 THEN S2 = S2 + A(i)
NEXT i
'Сравнение найденных сумм
IF S1 > S2 THEN
PRINT "до максимального значения сумма больше и равна " ; S1
ELSE
PRINT "после максимального значения сумма больше и равна" ; S2
END IF
