Задача 2. Дан массив целых чисел. Найти количество тех элементов, значения которых положительны и не превосходят заданного натурального числа А. (Презентация)
Введем обозначения: n – количество элементов в массиве; X – имя массива; i – индекс элемента массива; X i – i -й элемент массива 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.