Блог учителя Информатики

Комментарии отключены

 Решение задач блока ExamBegin 41-50

Решение задач из задачника по программированию М. Э. Абрамяна. Задачи из блока ExamBegin: «ЕГЭ по информатике: базовые алгоритмы».

Задача ExamBegin41

На вход в первой строке подается целое положительное число N, а во второй строке — массив из N целых чисел. Найти количество чисел, которые встречаются в массиве более двух раз.

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

Задача ExamBegin42

На вход в первой строке подается целое положительное число N, а во второй строке — массив из N целых чисел. Найти сумму четных элементов массива. Если четные элементы отсутствуют, то вывести 0.

uses PT4Exam;
 
const
  R = 100;
 
var
  m: array[1..R] of integer;
  n, i, sum: integer;
 
begin
  Task('ExamBegin42');
  sum := 0;
  Readln(n);
  for i := 1 to n do
  begin
    Read(m[i]);
    if m[i] mod 2 = 0 then sum := sum + m[i];
  end;
  Write(sum);
end.
Pascal

Задача ExamBegin43

На вход в первой строке подается целое положительное число N, а во второй строке — массив из N вещественных чисел. Найти произведение положительных элементов массива. Если положительные элементы отсутствуют, то вывести 1.

uses PT4Exam;
 
const
  R = 100;
 
var
  m: array[1..R] of real;
  n, i: integer;
  p: real;
 
begin
  Task('ExamBegin43');
  p := 1;
  Readln(n);
  for i := 1 to n do
  begin
    Read(m[i]);
    if m[i] > 0 then p := p * m[i];
  end;
  Write(p:4:2);
end.
Pascal

Задача ExamBegin44

На вход в первой строке подается целое положительное число N, а во второй строке — массив из N вещественных чисел. Найти среднее арифметическое всех элементов массива, абсолютное значение которых (т. е. их модуль) меньше 10. Если требуемые элементы отсутствуют, то вывести текст «NO».

uses PT4Exam;
 
const
  R = 100;
 
var
  m: array[1..R] of real;
  n, i, k: integer;
  sum: real;
 
begin
  Task('ExamBegin44');
  k := 0; sum := 0;
  Readln(n);
  for i := 1 to n do
  begin
    Read(m[i]);
    if abs(m[i]) < 10 then begin
      sum := sum + m[i];
      k := k + 1;
    end;
  end;
  if k = 0 then Write('NO')
  else Write(sum / k:4:2);
end.
Pascal

Задача ExamBegin45

На вход в первой строке подается целое положительное число N, а во второй строке — массив из N вещественных чисел. Найти минимальный и максимальный элементы массива и вывести их в указанном порядке (каждый элемент выводить на новой строке и снабжать комментарием «MIN=» или «MAX=»).

uses PT4Exam;
 
const
  R = 100;
 
var
  m: array[1..R] of real;
  n, i: integer;
  min, max: real;
 
begin
  Task('ExamBegin45');
  Readln(n);
  for i := 1 to n do
  begin
    Read(m[i]);
    if i = 1 then begin
      min := m[i];
      max := m[i];
    end;
    if m[i] < min then min := m[i];
    if m[i] > max then max := m[i];
  end;
  Writeln('MIN=', min:4:2);
  Writeln('MAX=', max:4:2);
end.
Pascal

Задача ExamBegin46

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

uses PT4Exam;
 
const
  R = 100;
 
var
  m: array[1..R] of integer;
  n, i, max: integer;
 
begin
  Task('ExamBegin46');
  Readln(n);
  for i := 1 to n do
  begin
    Read(m[i]);
    if i = 1 then max := m[i];
    if m[i] > max then max := m[i];
  end;
  i := 1;
  while m[i] <> max do
    i := i + 1;
  Write(i);
end.
Pascal

Задача ExamBegin47

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

uses PT4Exam;
 
const
  R = 100;
 
var
  m: array[1..R] of integer;
  n, i, min, k: integer;
 
begin
  Task('ExamBegin47');
  Readln(n);
  for i := 1 to n do
  begin
    Read(m[i]);
    if i = 1 then min := m[i];
    if m[i] < min then min := m[i];
    if m[i] = min then k := i;
  end;
  Write(k);
end.
Pascal

Задача ExamBegin48

На вход в первой строке подается целое положительное число N, а во второй строке — массив из N вещественных чисел. Найти максимальный отрицательный элемент массива. Если отрицательных элементов в массиве нет, то вывести текст «NO».

uses PT4Exam;
 
const
  R = 100;
 
var
  m: array[1..R] of real;
  n, i: integer;
  max: real;
  k: boolean;
 
begin
  Task('ExamBegin48');
  k := false;
  Readln(n);
  for i := 1 to n do
  begin
    Read(m[i]);
    if i = 1 then max := m[i];
    if (m[i] > max) and (m[i] < 0) then max := m[i];
    if m[i] < 0 then k := true;
  end;
  if k = false then Write('NO')
  else Write(max:4:2);
end.
Pascal

Задача ExamBegin49

На вход в первой строке подается целое положительное число N, а во второй строке — массив из N целых чисел. Найти минимальный четный элемент массива. Если четных элементов в массиве нет, то вывести текст «NO».

uses PT4Exam;
 
const
  R = 100;
 
var
  m: array[1..R] of integer;
  n, i, min: integer;
  k: boolean;
 
begin
  Task('ExamBegin49');
  k := false;
  Readln(n);
  for i := 1 to n do
  begin
    Read(m[i]);
    if i = 1 then min := m[i];
    if (m[i] < min) and (m[i] mod 2 = 0) then min := m[i];
    if m[i] mod 2 = 0 then k := true;
  end;
  if k = false then Write('NO')
  else Write(min);
end.
Pascal

Задача ExamBegin50

На вход в первой строке подаются два вещественных числа A и B (A < B), во второй строке — целое положительное число N, а в третьей строке — массив из N вещественных чисел. Среди элементов массива, принадлежащих интервалу (AB), найти минимальный и максимальный и вывести их в указанном порядке (каждое число выводить на новой строке и снабжать комментарием «MIN=» или «MAX=»). Если массив не содержит элементов, лежащих в интервале (AB), то вывести текст «NO».

uses PT4Exam;
 
const
  R = 100;
 
var
  m: array[1..R] of real;
  a, b, max, min: real;
  n, i: integer;
  k: boolean;
 
begin
  Task('ExamBegin50');
  Readln(a, b);
  Read(n);
  max := a; min := b; k := false;
  for i := 1 to n do
  begin
    Read(m[i]);
    if (m[i] > a) and (m[i] < b) then begin
      k := true;
      if m[i] > max then max := m[i];
      if m[i] < min then min := m[i];
    end;
  end;
  if k = false then Writeln('NO')
  else begin
    WriteLn('MIN=', min:4:2);
    WriteLn('MAX=', max:4:2);
  end;
end.
Pascal

Поделиться:
Вам также может понравится
Решение экзамена первой волны ОГЭ по Информатике | Часть 1
Решение пробника ОГЭ по Информатике | Вариант 24
Решение пробника ОГЭ по Информатике | Вариант 17
Округление чисел в Python