Если вы планируете сдавать ЕГЭ по информатике, то наверняка задачи на программирование представляют для вас самую большую проблему. В этой книге доступно даётся пошаговый алгоритм решения 80 первых задач из ExamBegin. С этим сборником задачи на программирование больше не будут вас пугать, и вы сможете получить максимальный балл на экзамене.
Приведённый ознакомительный фрагмент книги ЕГЭ 2021. Информатика. Программирование. Как решать задачи ExamBegin 1-80? предоставлен нашим книжным партнёром — компанией ЛитРес.
Купить и скачать полную версию книги в форматах FB2, ePub, MOBI, TXT, HTML, RTF и других
Условные операторы и циклы
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.
ExamBegin2
На вход подаются три вещественных числа; числа расположены в одной строке. Вывести вначале минимальное, а затем максимальное из них. Каждое число должно выводиться на новой строке и снабжаться комментарием: «MIN=» для минимального, «MAX=» для максимального.
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.
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.
ExamBegin4
На вход подаются три целых числа — коэффициенты A, B, C квадратного уравнения 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.
ExamBegin5
На вход подаются два целых положительных числа; каждое число вводится с новой строки. Найти их наибольший общий делитель (НОД), используя алгоритм Евклида: НОД(A, B) = НОД(B, A 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.
ExamBegin6
На вход подаются два целых положительных числа; числа расположены в одной строке. Найти их наименьшее общее кратное (НОК), используя формулу НОК(A, B) = A·(B/НОД(A, B)), где НОД(A, B) — наибольший общий делитель, а символ «/» обозначает операцию деления нацело. НОД находить с помощью алгоритма Евклида (см. задание 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.
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.
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.
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.
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.
ExamBegin11
На вход подается целое число, большее 1. Вывести наименьший делитель данного числа, больший 1.
uses PT4Exam;
var
a, x: integer;
begin
Task('ExamBegin11');
Read(a);
x:= 2;
while a mod x <> 0 do
x:= x + 1;
Write(x);
end.
ExamBegin12
На вход подается целое число, большее 1. Если оно является простым, т. е. не имеет положительных делителей, кроме 1 и самого себя, то вывести текст «YES», иначе вывести «NO».
uses PT4Exam;
var
a, i, k: integer;
begin
Task('ExamBegin12');
Read(a);
k:= 0;
for i:= 1 to a do
if a mod i = 0 then k:= k + 1;
if k > 2 then Write('NO')
else Write('YES');
end.
ExamBegin13
На вход подается целое число, большее 1. Разложить данное число на простые множители и вывести все множители в порядке возрастания (каждое число выводить на новой строке, среди выводимых чисел могут быть одинаковые).
uses PT4Exam;
var
a, k: integer;
begin
Task('ExamBegin13');
Read(a);
k:= 2;
while a <> 1 do
begin
if a mod k = 0 then begin
Writeln(k);
a:= a div k;
end
else k:= k + 1;
end;
end.
ExamBegin14
На вход в первой строке подается целое положительное число N, а во второй строке — набор из N целых чисел. Вывести сумму всех чисел из исходного набора.
uses PT4Exam;
var
a, n, i, sum: integer;
begin
Task('ExamBegin14');
Read(n);
sum:= 0;
for i:= 1 to n do
begin
read(a);
sum:= sum + a;
end;
Write(sum);
end.
ExamBegin15
На вход в первой строке подается целое положительное число N, а в следующих N строках — набор из N вещественных чисел (по одному числу в строке). Вывести произведение всех чисел из исходного набора.
uses PT4Exam;
var
x, i: integer;
a, p: real;
begin
Task('ExamBegin15');
Read(x);
p:= 1;
for i:= 1 to x do
begin
read(a);
p:= p * a;
end;
Write(p:4:2);
end.
ExamBegin16
На вход подается набор целых чисел, содержащий одно или более ненулевых чисел и завершающийся числом 0; каждое число располагается на новой строке. Вывести сумму всех чисел из исходного набора.
uses PT4Exam;
var
a, sum: integer;
begin
Task('ExamBegin16');
sum:= 0;
ReadLn(a);
while a <> 0 do
begin
sum:= sum + a;
Readln(a);
end;
WriteLn(sum);
end.
ExamBegin17
На вход подается набор вещественных чисел, содержащий одно или более положительных чисел и завершающийся отрицательным числом; каждое число располагается на новой строке. Вывести произведение всех положительных чисел из исходного набора.
uses PT4Exam;
var
a, sum: real;
begin
Task('ExamBegin17');
sum:= 1;
ReadLn(a);
while a > 0 do
begin
sum:= sum * a;
readln(a);
end;
WriteLn(sum:4:2);
end.
ExamBegin18
На вход подается целое положительное число N. Сформировать и вывести целочисленный массив размера N, содержащий N первых положительных нечетных чисел: 1, 3, 5,…. Каждое число выводить на новой строке.
uses PT4Exam;
const
R = 100;
var
m: array[1..R] of integer;
a, k, n: integer;
begin
Task('ExamBegin18');
Read(a);
k:= 1; n:= 0;
while n < a do
begin
if k mod 2 = 1 then begin
m[k]:= k;
n:= n + 1;
Writeln(m[k]);
end;
k:= k + 1;
end;
end.
ExamBegin19
На вход подается целое положительное число N. Сформировать и вывести целочисленный массив размера N, содержащий степени двойки от первой до N-й: 2, 4, 8, 16,…. Выводить все числа в одной строке, для каждого числа отводить 5 экранных позиций.
uses PT4Exam;
const
R = 100;
var
m: array[0..R] of integer;
a, i: integer;
begin
Task('ExamBegin19');
Read(a);
m[0]:= 1;
for i:= 1 to a do
begin
m[i]:= m[i — 1] * 2;
Write(m[i]:5);
end;
end.
Другое решение 19 задачи.
uses PT4Exam;
var
a, i, p: integer;
begin
Task('ExamBegin19');
Read(a);
p:= 1;
for i:= 1 to a do
begin
p:= p * 2;
Write(p:5);
end;
end.
ExamBegin20
На вход подаются три числа: целое число N (> 1) и вещественные числа A и D — соответственно первый член и разность арифметической прогрессии (каждое число вводится с новой строки). Сформировать и вывести массив размера N, содержащий N первых членов данной прогрессии: A, A + D, A + 2·D, A + 3·D,…. Все числа выводить в одной строке, для каждого числа отводить 7 экранных позиций.
uses PT4Exam;
const
R = 100;
var
m: array[1..R] of real;
n, i: integer;
a, d: real;
begin
Task('ExamBegin20');
Read(n, a, d);
for i:= 1 to n do
begin
m[i]:= a;
Write(m[i]:7:2);
a:= a + d;
end;
end.
Другое решение 20 задачи.
uses PT4Exam;
var
n, i: integer;
a, d: real;
begin
Task('ExamBegin20');
Read(n, a, d);
for i:= 1 to n do
begin
Write(a:7:2);
a:= a + d;
end;
end.
Приведённый ознакомительный фрагмент книги ЕГЭ 2021. Информатика. Программирование. Как решать задачи ExamBegin 1-80? предоставлен нашим книжным партнёром — компанией ЛитРес.
Купить и скачать полную версию книги в форматах FB2, ePub, MOBI, TXT, HTML, RTF и других