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

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

 Решение задач блока ExamBegin 1-10

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

Задача ExamBegin1

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

uses PT4Exam;
 
var
  a, b: integer;
 
begin
  Task('ExamBegin1');
  Read(a, b);
  if a > b then Write(a, ' ', b)
  else Write(b, ' ', a);
end.
Pascal

Задача ExamBegin2

На вход подаются три вещественных числа; числа расположены в одной строке. Вывести вначале минимальное, а затем максимальное из них. Каждое число должно выводиться на новой строке и снабжаться комментарием: «MIN=» для минимального, «MAX=» для максимального.

uses PT4Exam;
var
  a,b,c,max,min: real;
begin
  Task('ExamBegin2');
  Read(a,b,c);
  if (a>b) and (a>c) then begin
    max:=a;
    if b>c then min:=c
    else min:=b;
  end;
  if (b>a) and (b>c) then begin
    max:=b;
    if a>c then min:=c
    else min:=a;
  end;
  if (c>a) and (c>b) then begin
    max:=c;
    if a>b then min:=b
    else min:=a;
  end;
  WriteLn('MIN=',min:4:2);
  WriteLn('MAX=',max:4:2);
end.
Pascal
uses PT4Exam;
 
var
  x, max, min: real;
  i: integer;
 
begin
  Task('ExamBegin2');
  min := maxreal;
  max := -maxreal;
  for i := 1 to 3 do
  begin
    read(x);
    if x > max then max := x;
    if x < min then min := x;
  end;
  WriteLn('MIN=', min:4:2);
  WriteLn('MAX=', max:4:2);
end.
Pascal

Задача ExamBegin3

На вход подаются четыре целых числа; каждое число вводится с новой строки. Вывести минимальное из них.

uses PT4Exam;
 
var
  i, a, min: integer;
 
begin
  Task('ExamBegin3');
  min := 32768;
  for i := 1 to 4 do
  begin
    Read(a);
    if a < min then min := a;
  end;
  Write(min);
end.
Pascal

Задача ExamBegin4

На вход подаются три целых числа — коэффициенты ABC квадратного уравнения A·x2 + B·x + C = 0 (A не равно 0). Каждое число вводится с новой строки. Найти корни данного уравнения. Корни вычисляются как вещественные числа. Если имеются два различных корня, то вначале выводить меньший, а затем больший (каждый на новой строке). Если корней нет, то вывести текст «NO».

uses PT4Exam;
 
var
  a, b, c: integer;
  d, x, x1, x2: real;
 
begin
  Task('ExamBegin4');
  Read(a, b, c);
  d := sqr(b) - 4 * a * c;
  if d < 0 then Write('NO')
  else begin
    if d = 0 then begin
      x := -(b / (2 * a));
      WriteLn(x:4:2);
    end
    else begin
      x1 := -(b + sqrt(d)) / (2 * a);
      x2 := -(b - sqrt(d)) / (2 * a);
      if x1 > x2 then begin
        WriteLn(x2:4:2);
        WriteLn(x1:4:2);
      end
      else begin
        WriteLn(x1:4:2);
        WriteLn(x2:4:2);
      end;
    end;
  end;
end.
Pascal

Задача ExamBegin5

На вход подаются два целых положительных числа; каждое число вводится с новой строки. Найти их наибольший общий делитель (НОД), используя алгоритм Евклида:НОД(AB) = НОД(BA mod B), если B ≠ 0; НОД(A, 0) = A, где «mod» обозначает операцию взятия остатка от деления.

uses PT4Exam;
 
var
  a, b: integer;
 
begin
  Task('ExamBegin5');
  Read(a, b);
  while a <> b do
  begin
    if a > b then a := a - b
    else b := b - a;
  end;
  Write(a);
end.
Pascal

Задача ExamBegin6

На вход подаются два целых положительных числа; числа расположены в одной строке. Найти их наименьшее общее кратное (НОК), используя формулу НОК(AB) = A·(B/НОД(AB)), где НОД(AB) — наибольший общий делитель, а символ «/» обозначает операцию деления нацело. НОД находить с помощью алгоритма Евклида (см. задание ExamBegin5).

uses PT4Exam;
 
var
  a, b, nod: integer;
 
begin
  Task('ExamBegin6');
  Read(a, b);
  nod := a * b;
  while a <> b do
  begin
    if a > b then a := a - b
    else b := b - a;
  end;
  Write(nod div a);
end.
Pascal

Задача ExamBegin7

На вход подаются два целых положительных числа: A и D (2 ≤ D ≤ 9); числа расположены в одной строке. Вывести строку, изображающую запись числа A в системе счисления с основанием D (полученная строка не должна содержать незначащих нулей).

uses PT4Exam;
 
var
  a, b, rem, num, k: integer;
 
begin
  Task('ExamBegin7');
  Read(a, b);
  num := 0; k := 1;
  while a > 0 do
  begin
    rem := a mod b;
    a := a div b;
    num := num + rem * k;
    k := k * 10;
  end;
  Write(num);
end.
Pascal

Задача ExamBegin8

На вход в первой строке подается целое число D (2 ≤ D ≤ 9), а во второй строке — текст, изображающий запись целого положительного числа A в системе счисления с основанием D. Вывести число A в десятичной системе счисления.

uses PT4Exam;
 
var
  a, num, k, m: integer;
  b: string;
 
begin
  Task('ExamBegin8');
  Readln(a);
  Readln(b);
  num := 0; m := 1;
  while length(b) > 0 do
  begin
    k := StrToInt(Copy(b, length(b), 1));
    Delete(b, length(b), 1);
    num := num + k * m;
    m := m * a;
  end;
  Write(num);
end.
Pascal

Задача ExamBegin9

На вход подается целое положительное число. Если оно является степенью числа 2, то вывести текст «YES», иначе вывести «NO».

uses PT4Exam;
 
var
  a, x: integer;
  num: boolean;
 
begin
  Task('ExamBegin9');
  ReadLn(a);
  x := 1; num := false;
  while x <= a do
  begin
    x := x * 2;
    if (x = a) or (a = 1) then num := true;
  end;
  if num = true then Write('YES')
  else Write('NO');
end.
Pascal

Задача ExamBegin10

На вход подаются два целых положительных числа A и K; каждое число располагается на новой строке. Если число A является степенью числа K, т. е. A = KN, то вывести показатель этой степени N, иначе вывести текст «NO».

uses PT4Exam;
 
var
  a, k, x, n: integer;
  z: boolean;
 
begin
  Task('ExamBegin10');
  Read(a, k);
  x := 1; n := 0; z := false;
  while x < a do
  begin
    x := x * k;
    n := n + 1;
    if x = a then z := true;
  end;
  if (z = true) or (a = 1) then write(n)
  else write('NO');
end.
Pascal

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