- •Часть первая
- •Предварительные сведения
- •Индекс элемента массива
- •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
1.2. Ввод и вывод элементов массива
Присвоить значения элементам массива можно различными способами.
С помощью оператора присвоения.
B(1) = 1
B(2) = 10
B(3) = 100
С помощью цикла при заполнении большого массива.
Для одномерного массива:
FOR i = 1 TO 10
INPUT B(i)
NEXT i
В данном способе при вводе массива для каждого из значений i, выполняя оператор INPUT, компьютер печатает знак вопроса и пользователь должен на каждый вопрос ввести одно значение с клавиатуры, соответствующее элементу В(i), и нажать клавишу ENTER.
Ввод элементов двумерного массива, характеризующихся наличием двух индексов, представляет собой сложный циклический процесс и может быть произведен как по строкам, так и по столбцам.
Ввод по строкам |
Ввод по столбцам |
FOR i = 1 TO n FOR j = 1 TO m INPUT B(i,j) NEXT j,i |
FOR j = 1 TO n FOR i = 1 TO m INPUT B(i,j) NEXT i, j |
В этом случае на каждый знак вопроса, выводимый компьютером при выполнении оператора INPUT, пользователь должен печатать значение соответствующего элемента B(i,j). Последовательность записи значений элементов при вводе по строкам, например, для матрицы 3х3 такая:
В(1,1), В(1,2), В(1,3), В(2,1), В(2,2), В(2,3), В(3,1), В(3,2), В(3,3),
т.е. элементы первой строки, затем второй, третьей строки, а по столбцам –
В(1,1), В(2,1), В(3,1), В(1,2), В(2,2), В(3,2), В(1,3), В(2,3), В(3,3),
т.е. элементы первого столбца, затем второго, третьего столбца.
Вывод массивов может осуществляться такими же последовательностями операторов, что и ввод, но вместо оператора INPUT записывается оператор печати PRINT. Для одномерного массива вывод элементов осуществляется следующим образом.
FOR i = 1 TO 10
PRINT B(i)
NEXT i
Вывод элементов двумерного массива может быть произведен следующим способом:
FOR i = 1 TO n
FOR j = 1 TO m
PRINT B(i,j);
NEXT j
NEXT i
В результате массив распечатается построчно в виде матрицы.
п
ример
1
Дан массив целых чисел. Напечатать все элементы, оканчивающиеся нулем.
Тест
Данные |
Результат |
|
n=5 |
A=(3, 50, -20, 4, 0) |
50, -20, 0 |
Исполнение алгоритма
Чтобы проверить оканчивается ли число на число 0, необходимо вычислить остаток от деления данного числа на 10. Если остаток равен 0, то это целый десяток.
i |
Проверка условия |
Элементы, оканчивающиеся нулем |
1 |
A(1) делится на 10 остаток 0 |
|
2 |
A(2) делится на 10 остаток = 0 |
А(2)= 50 |
3 |
А(3) делится на 10 остаток = 0 |
А(3)=-20 |
4 |
A(4) делится на 10 остаток 0 |
|
5 |
А(5) делится на 10 Остаток = 0 |
А(5)=0 |
Блок-схема алгоритма
Начало
Ввод n
i=1,n
Ввод Ai
i=1,n
+ AiMOD10=0 -
Вывод Ai
Конец
программа
CLS
INPUT "введи размер массива " ; n
DIM A(n)
PRINT "введи массив"
'Цикл по элементам массива
FOR i = 1 TO n
'Ввод элементов массива
INPUT A(i)
NEXT i
FOR i = 1 TO n
'Проверка остатка от деления числа на 10
IF A(i) MOD 10 = 0 THEN PRINT A(i)
NEXT i
END
п
ример
2
Дан двумерный массив. Вывести на экран элементы следующим образом сначала элементы первого столбца сверху вниз, затем второго столбца снизу вверх и т.п.
Программа
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 j = 1 TO m
'Определение четности номера столбца
IF j MOD 2 = 0 then
'Если столбец четный, то вывод производится снизу вверх
FOR i = n TO 1 STEP –1
PRINT A(i,j);
NEXT i
ELSE
'Если столбец нечетный, то вывод производится сверху вниз
FOR i = 1 TO n
PRINT A(i,j);
NEXT i
END IF
NEXT j
END
