Решение задач блока ExamBegin 31-40
Решение задач из задачника по программированию М. Э. Абрамяна. Задачи из блока ExamBegin: «ЕГЭ по информатике: базовые алгоритмы».
Задача ExamBegin31
На вход в первой строке подается целое число A, во второй строке — целое положительное число N, а в третьей строке — массив из N целых чисел. Найти номер первого элемента массива со значением A (элементы нумеруются от 1). Если требуемые элементы в массиве отсутствуют, то вывести 0.

uses PT4Exam;
const
R = 100;
var
m: array[1..R] of integer;
a, n, i, k: integer;
l: boolean;
begin
Task('ExamBegin31');
k := 0; l := false;
Read(a, n);
for i := 1 to n do
begin
Read(m[i]);
if l = false then
if m[i] = a then begin
l := true;
k := i;
end;
end;
Write(k);
end.
PascalЗадача ExamBegin32
На вход в первой строке подается целое число A, во второй строке — целое положительное число N, а в третьей строке — массив из N целых чисел. Найти номер последнего элемента массива со значением A (элементы нумеруются от 1). Если требуемые элементы в массиве отсутствуют, то вывести 0.

uses PT4Exam;
const
R = 100;
var
m: array[1..R] of integer;
a, n, i, k: integer;
begin
Task('ExamBegin32');
k := 0;
Readln(a);
Readln(n);
for i := 1 to n do
begin
Read(m[i]);
if m[i] = a then k := i;
end;
Write(k);
end.
PascalЗадача ExamBegin33
На вход в первой строке подается целое положительное число N, а во второй строке — массив из N целых чисел. Определить, содержит ли массив четные числа. Если содержит, то вывести текст «YES», если не содержит, то вывести «NO».

uses PT4Exam;
const
R = 100;
var
m: array[1..R] of integer;
n, i, k: integer;
begin
Task('ExamBegin33');
k := 0;
Readln(n);
for i := 1 to n do
begin
Read(m[i]);
if m[i] mod 2 = 0 then k := k + 1;
end;
if k > 0 then Write('YES')
else Write('NO');
end.
PascalЗадача ExamBegin34
На вход в первой строке подается целое положительное число N, а во второй строке — массив из N целых чисел. Найти количество нечетных чисел в массиве. Если нечетных чисел нет, то вывести 0.

uses PT4Exam;
const
R = 100;
var
m: array[1..R] of integer;
n, i, k: integer;
begin
Task('ExamBegin34');
k := 0;
Readln(n);
for i := 1 to n do
begin
Read(m[i]);
if abs(m[i]) mod 2 = 1 then k := k + 1;
end;
Write(k);
end.
PascalЗадача ExamBegin35
На вход в первой строке подается целое положительное число N, а во второй строке — массив из N вещественных чисел. Если все элементы массива являются положительными, то вывести текст «YES», иначе вывести «NO».

uses PT4Exam;
const
R = 100;
var
m: array[1..R] of real;
n, i, k: integer;
begin
Task('ExamBegin35');
k := 0;
Readln(n);
for i := 1 to n do
begin
Read(m[i]);
if m[i] < 0 then k := k + 1;
end;
if k > 0 then Write('NO')
else Write('YES');
end.
PascalЗадача ExamBegin36
На вход в первой строке подается целое положительное число N, а во второй строке — массив из N целых чисел. Если положительных чисел в массиве больше, чем отрицательных, то вывести символ «+», если отрицательных чисел больше, чем положительных, то вывести «−», если количество положительных чисел равно количеству отрицательных, то вывести «=».

uses PT4Exam;
const
R = 100;
var
m: array[1..R] of real;
n, i, pos, neg: integer;
begin
Task('ExamBegin36');
pos := 0; neg := 0;
Readln(n);
for i := 1 to n do
begin
Read(m[i]);
if m[i] > 0 then pos := pos + 1;
if m[i] < 0 then neg := neg + 1;
end;
if pos = neg then Write('=')
else
if pos > neg then Write('+')
else Write('-');
end.
PascalЗадача ExamBegin37
На вход в первой строке подается целое положительное число N, а во второй строке — массив из N вещественных чисел. Если элементы массива упорядочены по возрастанию, то вывести текст «YES», иначе вывести «NO».

uses PT4Exam;
const
R = 100;
var
m: array[1..R] of real;
n, i: integer;
k: boolean;
begin
Task('ExamBegin37');
k := true;
Readln(n);
Read(m[1]);
for i := 2 to n do
begin
Read(m[i]);
if m[i] < m[i - 1] then k := false;
end;
if k = false then Write('NO')
else Write('YES');
end.
PascalЗадача ExamBegin38
На вход в первой строке подается целое положительное число N, а во второй строке — массив из N вещественных чисел. Если элементы массива упорядочены по убыванию, то вывести 0, иначе вывести номер первого элемента, нарушающего закономерность (элементы нумеруются от 1).

uses PT4Exam;
const
R = 100;
var
m: array[1..R] of real;
n, i, h: integer;
k: boolean;
begin
Task('ExamBegin38');
k := false; h := 0;
Readln(n);
Read(m[1]);
for i := 2 to n do
begin
Read(m[i]);
if m[i] > m[i - 1] then begin
if k = false then h := i;
k := true;
end;
end;
Write(h);
end.
PascalЗадача ExamBegin39
На вход в первой строке подается целое положительное число N, а во второй строке — массив из N вещественных чисел. Если элементы массива упорядочены по возрастанию или по убыванию, то вывести текст «YES», иначе вывести «NO».

uses PT4Exam;
const
R = 100;
var
m: array[1..R] of real;
n, i: integer;
k, l: boolean;
begin
Task('ExamBegin39');
k := true; l := true;
Readln(n);
Read(m[1]);
for i := 2 to n do
begin
Read(m[i]);
if m[i] < m[i - 1] then k := false
else l := false;
end;
if (k = true) or (l = true) then Write('YES')
else Write('NO');
end.
PascalЗадача ExamBegin40
На вход в первой строке подается целое положительное число N, а во второй строке — массив из N целых чисел. Найти количество чисел, которые встречаются в массиве ровно один раз.

uses PT4Exam;
const
R = 100;
var
m: array[1..R] of integer;
n, i, j, h: integer;
k: boolean;
begin
Task('ExamBegin40');
h := 0;
Readln(n);
for i := 1 to n do
Read(m[i]);
for i := 1 to n do
begin
k := true;
for j := 1 to n do
if (m[i] = m[j]) and (i <> j) then k := false;
if k = true then h := h + 1;
end;
Write(h);
end.
Pascal