Нахождение количества элементов, удовлетворяющих заданному условию

Задача 2. Дан массив целых чисел. Найти количество тех элементов, значения которых положительны и не превосходят заданного натурального числа А. (Презентация)

Введем обозначения: n – количество элементов в массиве; X – имя массива; i – индекс элемента массива; X ii -й элемент массива X; А – заданное число; k – количество элементов, значения которых положительны и не превосходят заданного числа А.

Входные данные: n, X, A.

Выходные данные: k.

Вводим с клавиатуры значение числа А. Количество элементов, значения которых положительны и не превосходят заданного числа А, вначале полагаем равным нулю, то есть k:=0. Если очередной элемент массива положителен и не превосходят заданного числа A, то количество таких элементов нужно увеличить на единицу, то есть k:=k + 1. Таким образом, обрабатываются все элементы массива.

При решении этой задачи можно использовать любой из видов циклов. Рассмотрим несколько вариантов решения задачи.

Первый способ. Для решения используется цикл с параметром:

Program Primer2_1;

Var X: Array [1..20] Of Integer;

i, n, k, A: Integer;

Begin

Write (‘n=’); Readln (n);

For i:=1 To n Do Readln (X[i]); {ввод массива}

Write (‘A=’); Readln (A); k:= 0;

Fo r i:=1 To n Do {обработка массива}

If (X[i] >0) and (X[i] <= A) Then k:=k + 1;

Writeln (‘k=’, k);

Readln

End.

Второй способ. Для решения используется цикл с постусловием:

Program Primer2_2;

Var X: Array [1..20] Of Integer;

i, n, k, A: Integer;

Begin

Write (‘n=’); Readln (n); i:=1;

Repeat

Read (X[i]); i:= i + 1

Until i > n;

Write (‘A=’); Readln (A); k:= 0; i:=1;

Repeat

If (X[i] >0) and (X[i] <= A) Then

k:=k + 1; i:= i + 1

Until I > n;

Writeln (‘k=’, k);

Readln

End.

Нахождение номеров элементов, обладающих заданным свойством

Задача 3. Найти номера четных элементов, стоящих на нечетных местах. (Презентация)

Введем обозначения: n – количество элементов в массиве; X – имя массива; i – индекс элемента массива; Xi – i-й элемент массива Х.

Входные данные: n, X.

Выходные данные: i.

Необходимо просмотреть весь массив. Если просматриваемый элемент является четным, а его порядковый номер – нечетный, то вывести его номер. При решении этой задачи можно использовать любой из видов циклов.

Составим программу с помощью цикла с параметром:

Program Primer3_1;

Var X: Array [1..20] Of Integer;

i, n: Integer;

Begin

Write (‘n=’); Readln (n);

For i:=1 To n Do Readln (X[i]); {ввод массива}

Fo r i:=1 To n Do {обработка массива}

If (X[i] mod 2 = 0) and (i mod 2<>0) Then Write (i:5);

Readln

End.

Задача 4. Найти номер последнего отрицательного элемента массива.

Введем обозначения: n – количество элементов в массиве; А – имя массива; i – индекс элемента массива; Ai – i-й элемент массива A; m – номер последнего отрицательного элемента массива.

Входные данные: n, A.

Выходные данные: m.

Последний отрицательный элемент массива – это первый отрицательный элемент, который встретится при просмотре массива с конца. Если очередной элемент не является отрицательным, то нужно уменьшать значение текущего индекса (i:=i-1), пока он не станет меньше номера первого элемента или не будет найден отрицательный элемент. Переменная m получает значение i (номер отрицательного элемента), т.е. m:= i. Если в массиве нет отрицательного элемента, то значение переменной m остается равным нулю.

Program Primer3_2;

Const n=10;

Var A: Array [1..n] Of Integer;

i, m: Integer;

Begin

For i:=1 To n Do Readln (A[i]); {ввод массива}

m:= 0; i:=n;

While (i >= 1) and (A[i] >=0) Do i:=i-1; m:=i;

Writeln (‘m=’, m);

Readln

End.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: