QBASICBOOK.ru: сайт про QB64

Опубликовано: 2018-09-29 08:00:00

Решение задач на вектора. Часть вторая. Поиск минимального, максимального значения, суммы и произведения элементов

Задача №1. Определить количество отрицательных элементов массива А(10), который задан случайным образом на интервале [-100,100].

Заведем переменную-копилку (например, KOLOTR) и будем класть в нее единичку каждый раз, как встретится элемент, меньше нуля (все это будет происходить в цикле с параметром FOR).

Начнем:


  1. RANDOMIZE TIMER
  2. CONST N = 10 'RAZMER MASSIVA
  3. DIM A(N)
  4. 'ZAPOLNENIYE SLUCHAYNYMI CHISLAMI OT -100 DO 100
  5. A = -100: B = 100
  6. FOR I = 1 TO N
  7.     A(I) = INT((B - A + 1) * RND + A)
  8. NEXT
  9. 'VIVOD
  10. FOR I = 1 TO N
  11.     PRINT USING "#### "; A(I);
  12. NEXT
  13. PRINT
  14. 'PODSCHET OTRICATELNIH ELEMENTOV
  15. KOLOTR = 0
  16. FOR I = 1 TO N
  17.     IF (A(I) < 0) THEN KOLOTR = KOLOTR + 1
  18. NEXT
  19. PRINT "OTRICATELNIH ELEMENTOV: "; KOLOTR

 Рисунок 1 – Исходный текст программы на поиск отрицательных значений

Рисунок 1 – Исходный текст программы на поиск отрицательных значений

Рисунок 2 – Выполнение программы на поиск отрицательных значений

Рисунок 2 – Выполнение программы на поиск отрицательных значений

Задача №2. В случайно заданном одномерном массиве (векторе) найти минимальный элемент, максимальный элемент, сумму всех элементов, произведение всех элементов и количество нулевых элементов.


  1. RANDOMIZE TIMER
  2. CONST N = 10 'RAZMER MASSIVA
  3. DIM A(N)
  4. 'ZAPOLNENIYE SLUCHAYNYMI CHISLAMI OT -100 DO 100
  5. A = -100: B = 100
  6. FOR I = 1 TO N
  7.     A(I) = INT((B - A + 1) * RND + A)
  8. NEXT
  9. 'VIVOD
  10. FOR I = 1 TO N
  11.     PRINT USING "#### "; A(I);
  12. NEXT
  13. PRINT
  14. P = 1: S = 0
  15. KOL0 = 0
  16. MAX = A(1)
  17. MIN = A(1)
  18. IndexMAX = 1
  19. IndexMIN = 1
  20. FOR I = 1 TO N
  21.     IF (A(I) > MAX) THEN
  22.         MAX = A(I)
  23.         IndexMAX = I
  24.     END IF
  25.     IF (A(I) < MIN) THEN
  26.         MIN = A(I)
  27.         IndexMIN = I
  28.     END IF
  29.     IF (A(I) = 0) THEN KOL0 = KOL0 + 1
  30.     S = S + A(I)
  31.     P = P * A(I)
  32. NEXT
  33. PRINT "KOLICHESTVO NULEVYKH: "; KOL0
  34. PRINT "SUMMA: "; S
  35. PRINT "PROIZVEDENIYE: "; P
  36. PRINT "NOMER MAX: "; IndexMAX
  37. PRINT "MAKSIMALNYY ELEMENT: "; MAX
  38. PRINT "NOMER MIN: "; IndexMIN
  39. PRINT "MINIMALNYY ELEMENT: "; MIN

 Рисунок 1 – Исходный текст для второй задачи

Рисунок 3 – Исходный текст для второй задачи

Рисунок 4 – Выполнение программы второй задачи

Рисунок 4 – Выполнение программы второй задачи

Задача №3. Пользователь вводит одномерный массив целых чисел. Сдвинуть все элементы массива влево на 1 элемент. Первый элемент при этом занимает место последнего.


  1. CONST N = 5 'RAZMER MASSIVA
  2. DIM A(N)
  3. 'VVOD
  4. FOR I = 1 TO N
  5.     PRINT USING "A[#]: "; I
  6.     INPUT A(I)
  7. NEXT
  8. CLS
  9. 'VIVOD
  10. FOR I = 1 TO N
  11.     PRINT USING "## "; A(I);
  12. NEXT
  13. TEMP = A(1)
  14. FOR I = 2 TO N
  15.     A(I - 1) = A(I)
  16. NEXT
  17. A(N) = TEMP
  18. PRINT
  19. 'VIVOD IZM
  20. FOR I = 1 TO N
  21.     PRINT USING "## "; A(I);
  22. NEXT

Рисунок 5 – Исходный текст программы на сдвиг элементов в массиве

Рисунок 5 – Исходный текст программы на сдвиг элементов в массиве

Рисунок 6 – Выполнение программы на сдвиг элементов

Рисунок 6 – Выполнение программы на сдвиг элементов

В следующей статье мы попробуем порешать задачи на символьные одномерные массивы.

Спасибо за прочтение этой статьи.

 

Прикрепленные файлы:

< Предыдущая статья
Решение задач на вектора. Часть первая. Поиск максимального элемента
Следующая статья >
Решение задач на вектора. Часть третья. Перевернутая последовательность, подсчет данных по условию

Выделите опечатку и нажмите Ctrl + Enter, чтобы отправить сообщение об ошибке.