Опубликовано: 2018-09-29 08:00:00
Решение задач на вектора. Часть вторая. Поиск минимального, максимального значения, суммы и произведения элементов
Задача №1. Определить количество отрицательных элементов массива А(10), который задан случайным образом на интервале [-100,100].
Заведем переменную-копилку (например, KOLOTR) и будем класть в нее единичку каждый раз, как встретится элемент, меньше нуля (все это будет происходить в цикле с параметром FOR).
Начнем:
- RANDOMIZE TIMER
- CONST N = 10 'RAZMER MASSIVA
- DIM A(N)
- 'ZAPOLNENIYE SLUCHAYNYMI CHISLAMI OT -100 DO 100
- A = -100: B = 100
- FOR I = 1 TO N
- A(I) = INT((B - A + 1) * RND + A)
- NEXT
- 'VIVOD
- FOR I = 1 TO N
- PRINT USING "#### "; A(I);
- NEXT
- 'PODSCHET OTRICATELNIH ELEMENTOV
- KOLOTR = 0
- FOR I = 1 TO N
- IF (A(I) < 0) THEN KOLOTR = KOLOTR + 1
- NEXT
- PRINT "OTRICATELNIH ELEMENTOV: "; KOLOTR
Рисунок 1 – Исходный текст программы на поиск отрицательных значений
Рисунок 2 – Выполнение программы на поиск отрицательных значений
Задача №2. В случайно заданном одномерном массиве (векторе) найти минимальный элемент, максимальный элемент, сумму всех элементов, произведение всех элементов и количество нулевых элементов.
- RANDOMIZE TIMER
- CONST N = 10 'RAZMER MASSIVA
- DIM A(N)
- 'ZAPOLNENIYE SLUCHAYNYMI CHISLAMI OT -100 DO 100
- A = -100: B = 100
- FOR I = 1 TO N
- A(I) = INT((B - A + 1) * RND + A)
- NEXT
- 'VIVOD
- FOR I = 1 TO N
- PRINT USING "#### "; A(I);
- NEXT
- P = 1: S = 0
- KOL0 = 0
- MAX = A(1)
- MIN = A(1)
- IndexMAX = 1
- IndexMIN = 1
- FOR I = 1 TO N
- IF (A(I) > MAX) THEN
- MAX = A(I)
- IndexMAX = I
- END IF
- IF (A(I) < MIN) THEN
- MIN = A(I)
- IndexMIN = I
- END IF
- IF (A(I) = 0) THEN KOL0 = KOL0 + 1
- S = S + A(I)
- P = P * A(I)
- NEXT
- PRINT "KOLICHESTVO NULEVYKH: "; KOL0
- PRINT "SUMMA: "; S
- PRINT "PROIZVEDENIYE: "; P
- PRINT "NOMER MAX: "; IndexMAX
- PRINT "MAKSIMALNYY ELEMENT: "; MAX
- PRINT "NOMER MIN: "; IndexMIN
- PRINT "MINIMALNYY ELEMENT: "; MIN
Рисунок 3 – Исходный текст для второй задачи
Рисунок 4 – Выполнение программы второй задачи
Задача №3. Пользователь вводит одномерный массив целых чисел. Сдвинуть все элементы массива влево на 1 элемент. Первый элемент при этом занимает место последнего.
- CONST N = 5 'RAZMER MASSIVA
- DIM A(N)
- 'VVOD
- FOR I = 1 TO N
- PRINT USING "A[#]: "; I
- INPUT A(I)
- NEXT
- CLS
- 'VIVOD
- FOR I = 1 TO N
- PRINT USING "## "; A(I);
- NEXT
- TEMP = A(1)
- FOR I = 2 TO N
- A(I - 1) = A(I)
- NEXT
- A(N) = TEMP
- 'VIVOD IZM
- FOR I = 1 TO N
- PRINT USING "## "; A(I);
- NEXT
Рисунок 5 – Исходный текст программы на сдвиг элементов в массиве
Рисунок 6 – Выполнение программы на сдвиг элементов
В следующей статье мы попробуем порешать задачи на символьные одномерные массивы.
Спасибо за прочтение этой статьи.