Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
4_Метод_Часть_4_Массивы.doc
Скачиваний:
6
Добавлен:
01.05.2025
Размер:
620.54 Кб
Скачать

2.5. Определение первого вхождения определенного значения

Алгоритм решения

Нахождение первого вхождения определенного значения производится в цикле, проверяя каждый раз заданное условие поиска для текущего значения Ai. Если текущее значение удовлетворяет условию, то запоминается номер (индекс) найденного элемента и процесс поиска прекращается.

пример 7

Дан массив чисел. Найти первый положительный элемент массива.

Тест

Данные

Результат

n=5

A=(-3, 5, -2, 4, 0)

A(2) = 5

Исполнение алгоритма

i

Проверка условия

Первый положительный элемент

L

(номер первого положительного)

1

A(1)>0 (ложь)

-3>0

2

A(2)>0 (истина)

5>0

А(2)=5

2

Блок-схема алгоритма

Начало

Ввод n

i=1,n

Ввод Ai

i=1

Ai<=0 ; i<=n

i=i+1

i

Конец

программа

1 Способ (с помощью оператора цикла for...Next)

CLS

INPUT "введи размер массива " ; n

DIM A(n)

PRINT "введи массив"

'Цикл по элементам массива

FOR i = 1 TO n

'Ввод элементов массива0

INPUT A(i)

NEXT i

FOR i = 1 TO n

'Поиск первого положительного элемента

IF A(i) > 0 THEN L = i : EXIT FOR

NEXT i

IF L = 0 THEN

PRINT "положительных элементов нет "

ELSE

PRINT "номер первого положительного элемента =" ; L

PRINT "его значение =" ; A(L)

END IF

ЕND

2 Способ (с помощью оператора цикла while...Wend)

CLS

INPUT "введи размер массива " ; n

DIM A(n)

PRINT "введи массив"

'Цикл по элементам массива

FOR i = 1 TO n

'Ввод элементов массива

INPUT A(i)

NEXT i

'Присваивание начального значения счетчика цикла

i=1

'Поиск первого положительного элемента

WHILE A(i)<=0 OR i < = n

i = i + 1

WEND

IF I = n + 1 THEN

PRINT "положительных элементов нет "

ELSE

PRINT "номер первого положительного элемента =" ; i

PRINT "его значение =" ; A(i)

END IF

END

пример 8

Дан массив чисел. Найти номер нулевого элемента после первого четного числа в массиве.

программа

CLS

INPUT "введи размер массива " ; n

DIM A(n)

PRINT "введи массив"

FOR i = 1 TO n

INPUT A(i)

NEXT i

'Поиск позиции первого четного элемента

FOR i = 1 TO n

IF A(i) MOD 2 = 0 THEN L = i : EXIT FOR

NEXT i

'Поиск номера первого нулевого элемента после первого четного элемента

FOR i = L+1 TO n

IF A(i) = 0 THEN C = i

NEXT i

IF C<>0 THEN

PRINT "номер нулевого элемента =" ; C

ELSE

PRINT "нулевых элементов после первого четного нет"

END IF

END

2.6. Задачи для дополнительного решения

  1. Известно, что в массиве имеются элементы, равные 5. Определить номер первого из них.

  2. Известно, что в массиве имеются нулевые элементы. Напечатать все элементы, кроме первого из них.

Задача 3*. Дан массив Х12,...Хn, где n<=40. Вычислить: Y = X1 + X1*X2+ X1*X2*X3 + ... + X1*X2*...Xm, где m - либо номер первого отрицательного элемента массива Х, либо число n, если в массиве нет отрицательных элементов.

  1. Дан массив чисел А, состоящий из 15 элементов. Найти максимальное значение – max и минимальное – min. Определить первый отрицательный элемент до min и после min.

  2. Задана последовательность А, состоящий из 12 элементов. Записать +1 вместо максимального элемента и -1 вместо минимального до первого нулевого элемента.

  3. Дан массив вещественных чисел. Выяснить верно, ли, что максимальный элемент превышает минимальный не более чем на 25 до первого нулевого элемента?

  4. Дан одномерный массив А, состоящий из 15 элементов. Подсчитать сумму четных элементов до первого отрицательного элемента.

  5. Все элементы с четными номерами в одномерном массиве удвоить, а остальные - уменьшить на 1 после первого нулевого элемента.

  6. Дан массив чисел А. Ко всем отрицательным элементам прибавить элемент с номером n1, из всех нулевых вычесть число В до первого четного элемента. Положительные элементы оставить без изменения.

Задача 10*. Дан массив А. Подсчитать количество положительных элементов до первого четного элемента и определить максимальный элемент после первого четного.

  1. Дан массив чисел А. Определить новый массив В того же размера:

если Ai > 0, то Вi = Ai * k,

иначе Вi = Ai / k,

где k - номер первого ненулевого элемента

  1. Дан массив А. Создать новый массив В:

Bi = max, если Ai - четный;

Вi = min, если Ai - кратный 3

Вi = K в противном случае,

где max- максимальный элемент, min - минимальный элемент, K -номер первого нулевого элемента.

  1. Дан одномерный массив. Подсчитать количество и сумму тех чисел, которые принадлежат интервалу [A,B] до первого нулевого элемента.

Задача 14*. Дан одномерный массив А. Создать новый массив В по правилу:

Bi = K1 * Ai , если Ai - четное

Bi = K2 * Ai, если Ai - нечетное,

где К1 - номер первого положительного элемента, К2 - номер первого отрицательного элемента.

  1. Дан одномерный массив. Ко всем отрицательным элементам до первого нулевого элемента прибавить элемент с номером m1 , к остальным - элемент с номером m2.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]