
Приветствуем читателей нашего сайта! Сегодня мы продолжим решать задачи из блока Series, а именно задачи Series21-28.
Series21-28
Series21°. Дано целое число N (> 1) и набор из N вещественных чисел. Проверить, образует ли данный набор возрастающую последовательность. Если образует, то вывести True, если нет — вывести False.
program series21;
// previous_digit = prev_d
// next_digit = next_d
var
N, i: integer;
prev_d, next_d: real;
increasing: boolean;
begin
write('N = ');
readln(N);
increasing := true;
write('Введите число: ');
readln(prev_d);
for i := 2 to N do
begin
write('Введите число: ');
readln(next_d);
if next_d > prev_d
then
prev_d := next_d
else
increasing := false
end;
write(increasing)
end.
Series22. Дано целое число N (> 1) и набор из N вещественных чисел. Если данный набор образует убывающую последовательность, то вывести 0; в противном случае вывести номер первого числа, нарушающего закономерность.
program series22;
// previous_digit = prev_d
// next_digit = next_d
var
N, i, count: integer;
prev_d, next_d: real;
decreasing, first: boolean;
begin
write('N = ');
readln(N);
decreasing := true;
first := true;
write('Введите число: ');
readln(prev_d);
for i := 2 to N do
begin
write('Введите число: ');
readln(next_d);
if next_d < prev_d
then
prev_d := next_d
else
begin
decreasing := false;
if first then
begin
count := i;
first := false;
end;
end;
end;
if decreasing
then
write(0)
else
write('Номер первого числа, нарушающего закономерность: ', count)
end.
Series23. Дано целое число N (> 2) и набор из N вещественных чисел. Набор называется пилообразным, если каждый его внутренний элемент либо больше, либо меньше обоих своих соседей (т. е. является «зубцом»). Если данный набор является пилообразным, то вывести 0; в противном случае вывести номер первого элемента, не являющегося зубцом.
program series23;
// previous_digit = prev_d
// next_digit = next_d
var
N, i, count: integer;
prev_d, next_d, tooth_d: real;
teeth, first: boolean;
begin
write('N = ');
readln(N);
teeth := true;
first := true;
write('Введите число: ');
readln(prev_d);
write('Введите число: ');
readln(tooth_d);
for i := 3 to N do
begin
write('Введите число: ');
readln(next_d);
if (tooth_d > prev_d) and (tooth_d > next_d) or (tooth_d < next_d ) and (tooth_d < prev_d)
then
begin
prev_d := tooth_d;
tooth_d := next_d;
end
else
begin
teeth := false;
if first then
begin
count := i - 1;
first := false;
end;
end;
end;
if teeth
then
write(0)
else
write('Номер первого числа, нарушающего закономерность: ', count)
end.
Series24. Дано целое число N и набор из N целых чисел, содержащий по крайней мере два нуля. Вывести сумму чисел из данного набора, расположенных между последними двумя нулями (если последние нули идут подряд, то вывести 0).
program Series24;
var
sum, sum_last, N, digit: integer;
begin
write('Введите число N: ');
readln(N);
while N <> 0 do
begin
write('Введите число: ');
readln(digit);
sum := sum + digit;
if digit = 0 then
begin
sum_last := sum;
sum := 0;
end;
Dec(N)
end;
writeln('Cумма чисел, расположенных между последними двумя нулями: ', sum_last);
end.Series25. Дано целое число N и набор из N целых чисел, содержащий по крайней мере два нуля. Вывести сумму чисел из данного набора, расположенных между первым и последним нулем (если первый и последний нули идут подряд, то вывести 0).
program Series25;
var
sum, sum_last, N, digit: integer;
begin
write('N = ');
readln(N);
repeat
write('Введите число: ');
readln(digit);
Dec(N)
until digit = 0;
while N <> 0 do
begin
write('Введите число: ');
readln(digit);
sum := sum + digit;
if digit = 0 then
begin
sum_last := sum_last + sum;
sum := 0;
end;
Dec(N)
end;
writeln('Cумма чисел, расположенных между первым и последним нулями: ', sum_last);
end. Последовательности: вложенные циклы
Series26. Даны целые числа K, N и набор из N вещественных чисел: A1, A2, …, AN. Вывести K-e степени чисел из данного набора:
(A1)K, (A2)K, …, (AN)K.
program Series26;
var
K, N, i, j: integer;
a, a_pow: real;
begin
write('N = ');
readln(N);
write('K = ');
readln(K);
a_pow := 1;
for i := 1 to N do
begin
write('Введите число: ');
readln(a);
for j := 1 to K do a_pow := a_pow * a;
writeln(a, ' в степени ', k, ' равно ', a_pow);
a_pow := 1;
end;
end.
Series27. Дано целое число N и набор из N вещественных чисел: A1, A2, …, AN. Вывести следующие числа:
A1, (A2)2, …, (AN−1)N−1, (AN)N.
program Series27;
var
N, i, j: integer;
a, a_pow: real;
begin
write('N = ');
readln(N);
a_pow := 1;
for i := 1 to N do
begin
write('Введите число: ');
readln(a);
for j := 1 to i do a_pow := a_pow * a;
writeln(a, ' в степени ', i, ' равно ', a_pow);
a_pow := 1;
end;
end.Series28. Дано целое число N и набор из N вещественных чисел: A1, A2, …, AN. Вывести следующие числа:
(A1)N, (A2)N−1, …, (AN−1)2, AN.
program Series28;
var
N, i, j, n_pow: integer;
a, a_pow: real;
begin
write('N = ');
readln(N);
a_pow := 1;
n_pow := N;
for i := 1 to N do
begin
write('Введите число: ');
readln(a);
for j := N downto i do a_pow := a_pow * a;
writeln(a, ' в степени ', n_pow, ' равно ', a_pow);
Dec(n_pow);
a_pow := 1
end
end.На сегодня все! Если у вас возникли вопросы, не стесняйтесь, задавайте их в комментариях. И не забывайте кликать по кнопочкам.
Объясните второе задание, что значит «if first then».
@disqus_bh9tyEj9Ro:disqus «if first then» — это то же самое, что и «if first=true then».