Опубликовано: 2018-07-01 08:00:00
Решение задач на вектора. Часть первая. Поиск максимального элемента
Предлагаю решить нашу первую задачу на одномерный массив (вектор).
Задача. Дан одномерный массив (вектор) A(10), найти максимальный элемент MAX, одномерный массив заполнить случайным образом.
Итак, давайте рассуждать – что от нас хотят?
- Должен быть одномерный массив из 10 элементов.
- Массив необходимо заполнить случайными числам.
- После этого находим значение максимального элемента и записываем его в отдельную переменную.
- Вывести переменную с максимальным элементом на экран.
Сказано – сделано. Делаем начало программы и объявление массива:
- RANDOMIZE TIMER
- CONST N = 10
- DIM A(N)
Теперь попробуем заполнить массив случайными числами. Нам нужно присвоить каждой ячейке массива случайное число. Будем писать десять раз присвоение? Как бы не так! У нас же есть FOR! Делаем так:
- A = 0: B = 10
- FOR I = 1 TO N
- A(I) = INT((B - A + 1) * RND + A)
- PRINT USING "## "; A(I);
- NEXT: PRINT
Когда оператор повторений FOR будет выполняться первый раз, он в I занесет 1. Первый элемент массива A получит значение от 0 до 10 (о чем говорят две переменные A и B). И так далее. Мы заполнили массив.
Теперь нужно искать максимальный элемент. Как? Берем переменную MAX и присваиваем ей значение первого элемента. Берем первый элемент массива и сравниваем его с MAX. Если MAX меньше первого элемента, то значение первого заносится в MAX. И так проверяем 10 элементов. В конце у нас будет значение максимальное значение из десяти элементов в переменной MAX.
- 'POISK MAX
- MAX = A(1)
- FOR I = 1 TO N
- IF (A(I) > MAX) THEN MAX = A(I)
- NEXT
- PRINT "MAKSIMALNYY ELEMENT:"; MAX
Вот и всё. Теперь в переменой MAX у нас самое большое значение. Нам остается только собрать всю задачу в кучу.
- RANDOMIZE TIMER
- CONST N = 10
- DIM A(N)
- A = 0: B = 10
- FOR I = 1 TO N
- A(I) = INT((B - A + 1) * RND + A)
- PRINT USING "## "; A(I);
- NEXT: PRINT
- 'POISK MAX
- MAX = A(1)
- FOR I = 1 TO N
- IF (A(I) > MAX) THEN MAX = A(I)
- NEXT
- PRINT "MAKSIMALNYY ELEMENT:"; MAX

Рисунок 1 – Поиск максимального элемента в одномерном массиве

Рисунок 2 – Вывод максимального элемента на экран
Еще раз проговорим алгоритм работы программы:
- Заведем вспомогательную переменную МАХ и присвоим ей значение первого элемента массива А(1).
- Сравним МАХ со следующим элементом массива:
ЕСЛИ А(I) > MAX
ТО ячейке МАХ присвоим А(I)
ИНАЧЕ перейдем к следующему элементу.
Смысл должен быть вам понятен. Задачи на двумерные массивы будут похожи на эти
Задача. Удвоить все элементы произвольного массива A из 10 элементов, заданного на интервале [-50,50]. Вывести на экран оба массива (первоначальный A и удвоенный массив A).
Примечание: Поскольку массив произвольный, то лучше заполнить его случайным образом.
- RANDOMIZE TIMER
- CONST N = 10 'RAZMER MASSIVA
- DIM A(N)
- A = -50: B = 50
- FOR I = 1 TO N
- A(I) = INT((B - A + 1) * RND + A)
- PRINT USING "##### "; A(I);
- NEXT: PRINT
- FOR I = 1 TO N
- 'UVELICHENIE V 2 RAZA
- A(I) = A(I) * 2
- NEXT
- FOR I = 1 TO N
- 'VIVOD IZM. MASSIVA
- PRINT USING "##### "; A(I);
- NEXT

Рисунок 3 – Удвоение значений одномерного массива

Рисунок 4 – Вывод результата удвоения значений одномерного массива
Принцип решения тот же самый, только выполняются другие действия над массивами в теле циклов.
Спасибо за прочтение этой статьи.