PascalABC.net и ЕГЭ
На этой странице рассмотрим применение я.п. 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));