PascalABC.net и ЕГЭ

На этой странице рассмотрим применение я.п. PascalABC.net  и решение некоторых задач прошлых лет ЕГЭ.

PascalABC.NET – современный диалект языка программирования Паскаль, позволяющий записывать код компактно и понятно, используя современные языковые возможности. Это делает программу яснее и как следствие сокращает число возможных ошибок на ЕГЭ по информатике, связанных с волнением и другими субъективными причинами.

Данный текст ориентирован:


Важно! Здесь не рассматриваются вопросы, связанные с методикой решения задач. А лишь описывается то, как на PascalABC.NET делается запись алгоритмов лучше, сохранив при этом эффективность.

Решение задач № 17 ЕГЭ

Рассматривается множество целых чисел, принадлежащих числовому отрезку [1157; 9931], которые делятся на 2 и не делятся на 3, 7, 8, 11.

Найдите количество таких чисел и 30-е число в этом множестве, если считать их по порядку, с конца (считая, что элементы множества расставлены по возрастанию). В ответе запишите два целых числа: сначала количество, затем 30-е с конца число множества.

Решение с использованием методов Divs и DivsAny.

uses school;

begin

  var sp:=new List<integer>;

  for var n:=1157 to 9931 do

      if n.Divs(2) and not n.DivsAny(3, 7, 8, 11)

        then sp.Add(n);

  var cnt:=sp.Count;

  var k30:=sp[cnt-30];

  println(cnt,k30);

end.

ИЛИ (с использованием последовательностей):

var sp:=(1157..9931).Where(x -> x.Divs(2) and not x.DivsAny(3, 7, 8, 11));

  print(sp.Count,sp.ElementAt(sp.Count - 30));