Приветствуем читателей нашего сайта! Сегодня мы продолжим решать задачи из блока 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».