Решение задач. День четырнадцатый. Series11-20


series11-20

Приветствуем читателей нашего сайта! Сегодня мы продолжим решать задачи из блока Series, а именно задачи Series11-20.

Series11-20

Series11. Даны целые числа K, N и набор из N целых чисел. Если в наборе имеются числа, меньшие K, то вывести True; в противном случае вывести False.

Program series11;
var
  i, k, n, a: integer;
  prov: boolean; 
 
begin
  write('N = '); 
  readln(N);
  write('K = '); 
  readln(K); 
  prov := false;
  writeln('Введите ', N, ' целых чисел:'); 
  for i := 1 to N do 
  begin
    readln(a);
    if a < k then prov := true;
  end;  
  writeln(prov); 
end.

Series12. Дан набор ненулевых целых чисел; признак его завершения — число 0. Вывести количество чисел в наборе.

Program series12;
var
  a, count: integer;
 
begin
  repeat 
    write('Введите целое число: ');
    readln(a);
    inc(count)
  until a = 0;
  dec(count);
  write('Количество чисел в наборе: ', count);
end.

Series13. Дан набор ненулевых целых чисел; признак его завершения — число 0. Вывести сумму всех положительных четных чисел из данного набора. Если требуемые числа в наборе отсутствуют, то вывести 0.

Program series13;
var
  a, summ: integer;
 
begin
  repeat 
    write('Введите целое число: ');
    readln(a);
    if (a>0) and (not odd(a)) then inc(summ, a);
  until a = 0;
  write('Сумма всех положительных четных чисел: ', summ);
end.

Series14. Дано целое число K и набор ненулевых целых чисел; признак его завершения — число 0. Вывести количество чисел в наборе, меньших K.

Program series14;
var
  a, count, k: integer;
 
begin
  write('K = ');
  readln(K);
  repeat 
    write('Введите целое число: ');
    readln(a);
    if (a<>0) and (a<k) then inc(count);
  until a = 0;
  write('Количество чисел, меньших K: ', count);
end.

Series15°. Дано целое число K и набор ненулевых целых чисел; признак его завершения — число 0. Вывести номер первого числа в наборе, большего K. Если таких чисел нет, то вывести 0.

Program series15;
var
  a, id, k, count: integer;
 
begin
  write('K = ');
  readln(K);
  repeat 
    write('Введите целое число: ');
    readln(a);
    inc(count);
    if (a>k) and (id=0) then begin {присваиваем id новое значение только в том случае, если предыдущее его значение равняется нулю}
      id := count;
    end;
  until a = 0;
  write('Номер первого числа, большего K: ', id);
end.

Series16°. Дано целое число K и набор ненулевых целых чисел; признак его завершения — число 0. Вывести номер последнего числа в наборе, большего K. Если таких чисел нет, то вывести 0.

Program series16;
var
  a, id, k, count: integer;
 
begin
  write('K = ');
  readln(K);
  repeat 
    write('Введите целое число: ');
    readln(a);
    inc(count);
    if a>k then begin
      id := count;
    end;
  until a = 0;
  write('Номер последнего числа, большего K: ', id);
end.

Series17°. Дано вещественное число B, целое число N и набор из N вещественных чисел, упорядоченных по возрастанию. Вывести элементы набора вместе с числом B, сохраняя упорядоченность выводимых чисел.

Program series17;
var
  n, i: integer;
  a, b: real;
  prov: boolean;
  
begin
  prov := false;
  write('N = ');
  readln(N);
  write('B = ');
  readln(B);
  write('Введите последовательность чисел: ');
  for i := 1 to n do
    begin
      read(a);
      if (a>b) and (prov = false) then 
        begin 
          write (b, ' ');
          prov := true;
        end;
      write(a, ' '); 
    end;  
  if prov = false then write(b)
end.

Series18. Дано целое число N и набор из N целых чисел, упорядоченный по возрастанию. Данный набор может содержать одинаковые элементы. Вывести в том же порядке все различные элементы данного набора.

Program series18;
var
  n, i, a, b: integer;
  
begin
  write('N = ');
  readln(N);
  write('Введите последовательность чисел: ');
  for i := 1 to n do
    begin
      read(a);
      if a<>b then write (a, ' ');
      b := a; 
    end;  
end.

Series19°. Дано целое число N (> 1) и набор из N целых чисел. Вывести те элементы в наборе, которые меньше своего левого соседа, и количество K таких элементов.

Program series19;
var
  n, i, a, b, k: integer;
  
begin
  write('N = ');
  readln(N);
  write('Введите последовательность чисел: ');
  for i := 1 to n do
    begin
      read(a);
      if a

Series20. Дано целое число N (> 1) и набор из N целых чисел. Вывести те элементы в наборе, которые меньше своего правого соседа, и количество K таких элементов.
Помимо необходимого сравнения вводимого числа с предыдущим, добавляем условие i>1, т.к. при первой итерации цикла значение правого соседнего элемента еще попросту неизвестно.

Program series20;
var
  n, i, a, b, k: integer;
  
begin
  write('N = ');
  readln(N);
  write('Введите последовательность чисел: ');
  for i := 1 to n do
    begin
      read(a);
      if (a>b) and (i>1) then begin
        write(b, ' ');
        inc(k);
      end;
      b := a; 
    end;
  writeln;
  write('K = ', k);  
end.

На сегодня все! Если у вас возникли вопросы, не стесняйтесь, задавайте их в комментариях. И не забывайте кликать по кнопочкам.

  1. Простите, если ошибаюсь, но, кажется, в 17 задаче не учтен вариант, когда В больше всех чисел набора. Наверное надо добавить после цикла печать В если prov=false.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *