Решение задач блока ExamBegin 21-30
Решение задач из задачника по программированию М. Э. Абрамяна. Задачи из блока ExamBegin: «ЕГЭ по информатике: базовые алгоритмы».
Задача ExamBegin21
На вход подаются три числа: целое число N (> 1) и вещественные числа A и D — соответственно первый член и знаменатель геометрической прогрессии (каждое число вводится с новой строки). Сформировать и вывести массив размера N, содержащий N первых членов данной прогрессии: A, A·D, A·D2, A·D3, … . Каждое число выводить на новой строке.

uses PT4Exam;
const
R = 100;
var
m: array[1..R] of real;
n, i: integer;
a, d: real;
begin
Task('ExamBegin21');
Read(n, a, d);
for i := 1 to n do
begin
m[i] := a;
Writeln(m[i]:4:2);
a := a * d;
end;
end.
Pascaluses PT4Exam;
var
n, i: integer;
a, d: real;
begin
Task('ExamBegin21');
Read(n, a, d);
for i := 1 to n do
begin
Writeln(a:4:2);
a := a * d;
end;
end.
PascalЗадача ExamBegin22
На вход подается целое число N (> 2). Сформировать и вывести целочисленный массив размера N, содержащий N первых элементов последовательности чисел Фибоначчи FK:
F1 = 1, F2 = 1, FK = FK−2 + FK−1, K = 3, 4, … .
Все числа выводить в одной строке, для каждого числа отводить 4 экранные позиции.

uses PT4Exam;
const
R = 100;
var
m: array[1..R] of integer;
a, i: integer;
begin
Task('ExamBegin22');
Read(a);
m[1] := 1; m[2] := 1;
for i := 3 to a do
m[i] := m[i - 1] + m[i - 2];
for i := 1 to a do
Write(m[i]:4);
end.
PascalЗадача ExamBegin23
На вход подаются три целых числа: N (> 2), A и B (все числа расположены в одной строке). Сформировать и вывести целочисленный массив размера N, первый элемент которого равен A, второй равен B, а каждый последующий элемент равен сумме всех предыдущих. Каждое число выводить на новой строке.

uses PT4Exam;
const
R = 100;
var
m: array[1..R] of integer;
n, a, b, i, j: integer;
begin
Task('ExamBegin23');
Read(n, a, b);
m[1] := a; m[2] := b;
for i := 3 to n do
for j := 1 to i - 1 do
m[i] := m[i] + m[j];
for i := 1 to n do
Writeln(m[i]);
end.
PascalЗадача ExamBegin24
На вход подаются два целых положительных числа M и N (каждое число вводится с новой строки). Сформировать и вывести двумерный целочисленный массив размера M × N, у которого все элементы I-й строки имеют значение 10·I (I = 1, …, M). Каждую строку элементов массива выводить на новой экранной строке, для каждого числа отводить 6 экранных позиций.

uses PT4Exam;
const
R = 100;
S = 100;
var
a:array[1..R,1..S] of integer;
m,n,i,j:integer;
begin
Task('ExamBegin24');
Read(m, n);
for i:=1 to m do begin
for j:=1 to n do begin
a[i,j]:=i*10;
Write(a[i,j]:6);
end;
Writeln;
end;
end.
PascalЗадача ExamBegin25
На вход подаются два целых положительных числа M и N (числа располагаются в одной строке). Сформировать и вывести двумерный целочисленный массив размера M × N, у которого все элементы J-го столбца имеют значение 5·J (J = 1, …, N). Каждую строку элементов массива выводить на новой экранной строке, для каждого числа отводить 6 экранных позиций.

uses PT4Exam;
const
R = 100;
S = 100;
var
a: array[1..R, 1..S] of integer;
m, n, i, j: integer;
begin
Task('ExamBegin25');
Read(m, n);
for i := 1 to m do
begin
for j := 1 to n do
begin
a[i, j] := j * 5;
Write(a[i, j]:6);
end;
Writeln;
end;
end.
PascalЗадача ExamBegin26
На вход в первой строке подаются два целых положительных числа M и N, а во второй строке — набор из M вещественных чисел. Сформировать и вывести двумерный вещественный массив размера M × N, у которого в каждом столбце содержатся все числа из исходного набора (в том же порядке). Каждую строку элементов массива выводить на новой экранной строке, для каждого числа отводить 7 экранных позиций.

uses PT4Exam;
const
R = 100;
S = 100;
var
a: array[1..R, 1..S] of real;
m, n, i, j: integer;
k: real;
begin
Task('ExamBegin26');
Readln(m, n);
for i := 1 to m do
begin
Read(k);
for j := 1 to n do
begin
a[i, j] := k;
Write(a[i, j]:7:2);
end;
Writeln;
end;
end.
PascalЗадача ExamBegin27
На вход в первой строке подаются два целых положительных числа M и N, а во второй строке — набор из N вещественных чисел. Сформировать и вывести двумерный вещественный массив размера M × N, у которого в каждой строке содержатся все числа из исходного набора (в том же порядке). Каждую строку элементов массива выводить на новой экранной строке, для каждого числа отводить 7 экранных позиций.

uses PT4Exam;
const
R = 100;
S = 100;
var
a: array[1..R, 1..S] of real;
m, n, i, j: integer;
k: real;
begin
Task('ExamBegin27');
Readln(m, n);
for i := 1 to n do
begin
Read(k);
for j := 1 to m do
a[j, i] := k;
end;
for i := 1 to m do
begin
for j := 1 to n do
Write(a[i, j]:7:2);
Writeln;
end;
end.
PascalЗадача ExamBegin28
На вход в первой строке подаются два целых положительных числа M и N, во второй строке — вещественное число D, а в третьей строке — набор из M вещественных чисел. Сформировать и вывести двумерный вещественный массив размера M × N, у которого первый столбец совпадает с исходным набором чисел, а элементы каждого следующего столбца равны сумме соответствующего элемента предыдущего столбца и числа D (в результате каждая строка массива будет содержать элементы арифметической прогрессии). Каждую строку элементов массива выводить на новой экранной строке, для каждого числа отводить 7 экранных позиций.

uses PT4Exam;
const
R = 100;
S = 100;
var
a: array[1..R, 1..S] of real;
m, n, i, j: integer;
k: real;
begin
Task('ExamBegin28');
Read(m, n, k);
for i := 1 to m do
begin
Read(a[i, 1]);
for j := 1 to n do
begin
if j > 1 then a[i, j] := a[i, j - 1] + k;
Write(a[i, j]:7:2);
end;
Writeln;
end;
end.
PascalЗадача ExamBegin29
На вход в первой строке подаются два целых положительных числа M и N и вещественное число D, а во второй строке — набор из N вещественных чисел. Сформировать и вывести двумерный вещественный массив размера M × N, у которого первая строка совпадает с исходным набором чисел, а элементы каждой следующей строки равны соответствующему элементу предыдущей строки, умноженному на D (в результате каждый столбец массива будет содержать элементы геометрической прогрессии). Каждую строку элементов массива выводить на новой экранной строке, для каждого числа отводить 8 экранных позиций.

uses PT4Exam;
const
R = 100;
S = 100;
var
a: array[1..R, 1..S] of real;
m, n, i, j: integer;
d: real;
begin
Task('ExamBegin29');
Readln(m, n, d);
for i := 1 to m do
begin
for j := 1 to n do
begin
if i < 2 then Read(a[i, j])
else a[i, j] := a[i - 1, j] * d;
Write(a[i, j]:8:2);
end;
Writeln;
end;
end.
PascalЗадача ExamBegin30
На вход в первой строке подается целое число A, во второй строке — целое положительное число N, а в третьей строке — массив из N целых чисел. Определить, содержит ли массив элемент со значением A. Если содержит, то вывести текст «YES», если не содержит, то вывести «NO».

uses PT4Exam;
const
R = 100;
var
m: array[1..R] of integer;
a, n, i: integer;
k: boolean;
begin
Task('ExamBegin30');
k := false;
Read(a, n);
for i := 1 to n do
begin
Read(m[i]);
if m[i] = a then k := true;
end;
if k = true then Write('YES')
else Write('NO')
end.
Pascal