«Подготовка к ОГЭ и ЕГЭ или PascalABC.NET vs Python »
Коваленко Ольга Владимировна
Учитель информатики
МБОУ «СШ №1» г.Норильск
Задания ОГЭ позиционные системы счисления
ОГЭ_Задание №10_Статград_Вариант ИН2190203
Среди приведённых ниже трёх чисел, записанных в десятичной системе счисления, найдите число, в двоичной записи которого наименьшее количество нулей. В ответе запишите количество нулей в двоичной записи этого числа. 46, 48, 55
PascalABC.NET
##
Python
print (min(bin(46).count('0'),bin(48)
uses school;
print (min(bin(46).CountOf('0'), bin(48).CountOf('0'),
.count('0'),bin(55).count('0')))
bin(55).CountOf('0')));
Ответ: 1 (верно)
Ответ: 2 (неверно)
?
Задания ОГЭ позиционные системы счисления
ОГЭ_ Задание №10_ Статград_Вариант ИН2190203
Среди приведённых ниже трёх чисел, записанных в десятичной системе счисления, найдите число, в двоичной записи которого наименьшее количество нулей. В ответе запишите количество нулей в двоичной записи этого числа. 46, 48, 55
PascalABC.NET
## #
Python
uses school;
Вариант 1.
min(bin(46).CountOf('0'), bin(48).CountOf('0'),
print (min(bin(46).count('0'),bin(48)
bin(55).CountOf('0')) .pr ;
.count('0'),bin(55).count('0')) -1 )
(Вариант с использованием модулей SF (короткие функции) ### и модуля Uses School)
Вариант 2.
print(min(bin(46)[2:].count('0'), bin(48)[2:].count('0'), bin(55)[2:].count('0')))
Ответ: 1
Ответ: 1
!!! Строка, полученная при переводе из 10СС в 2 СС имеет префикс «0B».
Поэтому при подсчете количества «0» получается число с учетом префикса!
(на один «0» больше)
Задания ОГЭ позиционные системы счисления
ОГЭ_Задание №10_Статград_Вариант ИН2190103
Переведите двоичное число 1001111 в десятичную систему счисления.
.
PascalABC.NET
##
Python
print(int('1001111',2))
uses school;
print(Dec('1001111',2));
Ответ: 79
Ответ: 79
Задания ЕГЭ логика
ЕГЭ_Задание №2_сайт К. Полякова_№ 199_Е. Джобс
Логическая функция F задаётся выражением
( x ( y ¬ z ) w ) ( x → ¬ y z ).
На рисунке приведён частично заполненный фрагмент таблицы истинности функции F , содержащий неповторяющиеся строки. Определите, какому столбцу таблицы истинности функции F соответствует каждая из переменных x , y , z , w .
В ответе напишите буквы x , y , z, w в том порядке, в котором идут соответствующие им столбцы. Буквы в ответе пишите подряд, никаких разделителей между буквами ставить не нужно.
?
?
1
1
?
1
?
1
F
1
1
1
1
1
Задания ЕГЭ логика
ЕГЭ_Задание №2_сайт К. Полякова_№ 199_Е. Джобс
( x ( y ¬ z ) w ) ( x → ¬ y z ).
PascalABC.NET
Python
var x,y,w,z: boolean;
begin
print('x y w z') for x in range(2): for y in range(2): for z in range(2): for w in range(2): if((x and (y or not z) and w) == (x
Результат:
println ('x y w z');
for x:=false to true do
x y w z
1 0 0 0
for y:=false to true do
for w:=false to true do
1 1 0 0
1 1 0 1
for z:=false to true do
if((x and (y or not z) and w) = (x
then println (ord(x),ord (y),ord(w),ord(z));
end.
Результат:
x y w z
1 0 0 0
1 1 0 0
1 1 0 1
Задания ЕГЭ логика
ЕГЭ_Задание №2_сайт К. Полякова_№ 199_Е. Джобс
( x ( y ¬ z ) w ) ( x → ¬ y z ).
PascalABC.NET (используя модуль Uses School)
###
uses school;
var tt:=TrueTable((x,y,w,z)-(x and (y or not z) and w)=(xnot y and z));
print (' x y w z F');
TrueTablePrint (tt,1);
Результат:
x y w z F a b c d F
---------
1 0 0 0 1
1 1 0 0 1
1 1 0 1 1
Задания ЕГЭ
ЕГЭ_Задание №12
Исполнитель Редактор получает на вход строку цифр и преобразовывает её. Редактор может выполнять две команды, в обеих командах v и w обозначают цепочки цифр. заменить (v, w) нашлось (v) Дана программа для исполнителя Редактор:
НАЧАЛО
ПОКА нашлось (333) ИЛИ нашлось (555)
ЕСЛИ нашлось (555) ТО заменить (555, 3)
ИНАЧЕ заменить (333, 5)
КОНЕЦ ЕСЛИ
КОНЕЦ ПОКА
КОНЕЦ
Какая строка получится в результате применения приведённой выше программы к строке, состоящей из 62 идущих подряд цифр 5? В ответе запишите полученную строку.
PascalABC.NET
##
Python
s = "5"*62 while "333" in s or "555" in s: if "555" in s: s = s.replace("555", "3", 1) else: s = s.replace("333", "5", 1) print(s)
var s := '5'*62;
while s.contains('333') or s.contains('555') do
begin
if s.contains('555') then
s:=s.replace('555', '3', 1)
Результат: 5355
else
s:=s.replace('333', '5', 1);
end ;
print(s)
Результат: 5355
Задания ЕГЭ позиционные системы счисления
ЕГЭ_сайт К. Полякова_Задание №14_задача 254 (Е. Джобс)
Значение арифметического выражения 43∙7 103 – 21∙7 57 + 98 записали в системе счисления с основанием 7. Найдите сумму цифр получившегося числа и запишите её в ответе в десятичной системе счисления.
PascalABC.NET
###
Python
def sd7(n):
uses school;
var x:=(43*7BI**103-21*7BI**57+98).ToBase(7);
s=0
print(x.CountOf('1')+2*x.CountOf('2')+3*x.CountOf('3')+4*x.CountOf('4')+5*x.CountOf('5')+6*x.CountOf('6'));
while n!=0:
Ответ: 276
s+=n%7
n=n//7
return s
print(sd7(43*7**103-21*7**57+98))
Ответ: 276
Задания ЕГЭ делители
ЕГЭ_Задание 25_Решу ЕГЭ № 33527
Найдите все натуральные числа, принадлежащие отрезку [101000000;102000000], у которых ровно три различных чётных делителя. В ответе перечислите найденные числа в порядке возрастания.
PascalABC.NET
(используя модуль school и лямбда-выражения)
##
uses school;
(101000000..102000000) // возврати все числа из диапазона
.Where(n - Divisors(n).Count(x - x.IsEven) = 3) ) // оставь те, у которых 3 четных делителя
.Print;
Ответ: 101075762; 101417282; 101588258; 101645282
Задания ЕГЭ делители
ЕГЭ_Задание 25_Статград_Вариант ИН2010103
Назовём нетривиальным делителем натурального числа его делитель, не равный единице и самому числу. Например, у числа 6 есть два нетривиальных делителя: 2 и 3. Найдите все натуральные числа, принадлежащие отрезку [123456789; 223456789] и имеющие ровно три нетривиальных делителя. Для каждого найденного числа запишите в ответе его наибольший нетривиальный делитель. Ответы расположите в порядке возрастания.
PascalABC.NET
(используя модуль school и лямбда-выражения)
##
uses school;
(123489567..223456789) // возврати все числа из диапазона
.Where(x - trunc(sqrt(x)) = sqrt(x)) // оставь те, корень из которых – целое число
.Select(x - divisors(x)) //получи из отобранных x все его делители
.Where(L -L.count = 5) // оставь те, у которых 5 делителей, включая «1» и само число
.foreach(L - print(L[3])); для тех, что остались, выведи 3 делитель (корень из числа)
Ответ: 1225043; 1295029; 1442897
Рекомендуемые ресурсы:
- Александр Осипов. Учебник «PascalABC.NET: выбор школьника».
- Решу ОГЭ, Решу ЕГЭ https:// inf-ege.sdamgia.ru/ , https:// inf-oge.sdamgia.ru/
- Демонстрационная версия станции КЕГЭ https://kompege.ru/
- Каналы YouTube и сообщества VK:
- Алексей Богданов (Alex Danov) (+ курс по LINQ)
https://www.youtube.com/channel/UCxAZM_7sunA166ycxTj0Etw
- Семен Овчинников (Дневник эксперта ЕГЭ)
https://www.youtube.com/c/% D0%94%D0%9D%D0%95%D0%92%D0%9D%D0%98%D0%9A%D0%AD%D0%9A%D0%A1%D0%9F%D0%95%D0%A0%D0%A2%D0%90%D0%95%D0%93%D0%AD/featured
- Информатик БУ
https://www.youtube.com/c/% D0%98%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%91%D0%A3/about
- Евгений Джобс
https://www.youtube.com/c/EvgenijJobs/about