Разбор задач ЕГЭ 2013 (А3, В8 и С1) Лисин Алексей Анатольевич, учитель информатики и ИКТ, МБОУ «Лицей 124»
Задание А3: Дан фрагмент таблицы истинности выражения F. Каким из приведённых ниже выражений может быть F? 1) ¬x1 ^ x2 ^ ¬x3 ^ x4 ^ x5 ^ ¬x6 ^ ¬x7 2) ¬x1 v x2 v ¬x3 v x4 v ¬x5 v ¬x6 v x7 3) x1 ^ ¬x2 ^ x3 ^ ¬x4 ^ x5 ^ x6 ^ ¬x7 4) x1 v ¬x2 v x3 v ¬x4 v ¬x5 v x6 v ¬x7
Задание А3: x1x2x3x4x5x6x7F ) ¬x1 ^ x2 ^ ¬x3 ^ x4 ^ x5 ^ ¬x6 ^ ¬x7 2) ¬x1 v x2 v ¬x3 v x4 v ¬x5 v ¬x6 v x7 3) x1 ^ ¬x2 ^ x3 ^ ¬x4 ^ x5 ^ x6 ^ ¬x7 4) x1 v ¬x2 v x3 v ¬x4 v ¬x5 v x6 v ¬x7 x1x2x3x4x5x6x7F
Задание А3: x1x2x3x4x5x6x7F ) ¬x1 ^ x2 ^ ¬x3 ^ x4 ^ x5 ^ ¬x6 ^ ¬x7 2) ¬x1 v x2 v ¬x3 v x4 v ¬x5 v ¬x6 v x7 3) x1 ^ ¬x2 ^ x3 ^ ¬x4 ^ x5 ^ x6 ^ ¬x7 4) x1 v ¬x2 v x3 v ¬x4 v ¬x5 v x6 v ¬x7 x1x2x3x4x5x6x7F
Задание В2: Ниже на четырёх языках записан алгоритм. Получив на вход число x, этот алгоритм печатает два числа: a и b. Укажите наименьшее из таких чисел x, при вводе которых алгоритм печатает сначала 2, а потом 21. Ответ: ___________________________.
Задание В2: Ниже на четырёх языках записан алгоритм. Получив на вход число x, этот алгоритм печатает два числа: a и b. Укажите наименьшее из таких чисел x, при вводе которых алгоритм печатает сначала 2, а потом 21. Ответ: ___________________________.
Решение: var x, a, b: integer; Begin readln (x); a:=0; b:=1; while x>0 do begin a:=a+1; b:=b*(x mod 10); x:= x div 10; end; writeln(a); write(b); End. В программе отражена работа цикла while ("пока"). Вводится произвольное число x, затем мы анализируем цифры, входящие в это число. При каждом шаге цикла мы делим x на 10. В переменную b записываем младший разряд, в переменной x избавляемся от старшего разряда.
Например: (цикл выполняется первый раз) var x, a, b: integer; Begin readln (x); a:=0; b:=1; while x>0 do begin a:=a+1; b:=b*(x mod 10); x:= x div 10; end; writeln(a); write(b); End. {пусть х=27} { да } {a=1 } {b= 1*(27 mod 10), b=7} {х= 27 div 10, x=2}
var x, a, b: integer; Begin readln (x); a:=0; b:=1; while x>0 do begin a:=a+1; b:=b*(x mod 10); x:= x div 10; end; writeln(a); write(b); End. { 2>0 да } {a=2 } {b= 7*(2 mod 10), b=14} {х= 2 div 10, x=0} Например: (цикл выполняется второй раз) {a= 2 b=14}
Исходное число х=27. В результате выполнения данной программы получили два числа а=2, b=14. а – это кол-во цифр числа х. b – это произведение цифр исходного числа x (т.к. b=14, то 14=2 * 7, 14= 7 * 2, 14= 3 * 4, 14 = 4*3). Поэтому исходное число может быть равно 27, 72, 34 или 43. По условию, число должно быть наименьшим, т.о. первоначальное число равно 27. Разбор задачи:
var x, a, b: integer; Begin readln (x); a:=0; b:=1; while x>0 do begin a:=a+1; b:=b*(x mod 10); x:= x div 10; end; writeln(a); write(b); End. По условию a= 2, b=21
var x, a, b: integer; Begin readln (x); a:=0; b:=1; while x>0 do begin a:=a+1; b:=b*(x mod 10); x:= x div 10; end; writeln(a); write(b); End. Цикл выполняется 2 раза => число двузначное. b это произведение цифр исходного числа, т.е. 21= 3*7 или 7*3. Т.о. исходное число 37 или 73. Минимальное из этих чисел 37. Ответ 37. По условию a= 2, b=21
Задание С1: Требовалось написать программу, при выполнении которой с клавиатуры считывается координата точки на прямой (x – действительное число) и определяется принадлежность этой точки одному из выделенных отрезков В и D (включая границы). Программист торопился и написал программу неправильно.
Задание С1: Требовалось написать программу, при выполнении которой с клавиатуры считывается координата точки на прямой (x – действительное число) и определяется принадлежность этой точки одному из выделенных отрезков В и D (включая границы). Программист торопился и написал программу неправильно.
1. Перерисуйте и заполните таблицу, которая показывает, как работает программа при аргументах, принадлежащих различным областям (A, B, C, D и E). Границы (точки –3, 1, 5 и 9) принадлежат заштрихованным областям (B и D соответственно). Обла сть Условие 1 (x>=-3) Условие 2 (x=1) Программ а выведет Область обрабатывае тся верно А B C D E
var x: real; Begin readln(x); if x>=-3 then if x1 then write (не принадлежит) else write (принадлежит) End.
x>=-3 x1 Не принадлежит принадлеж ит
Разбор задачи: Выбираем число из каждой области (например: А число -4, В число -2, С число 2 …). Проверяем работу программы с каждым из этих чисел. Внимательно заполняем таблицу результатов.
Возьмём число из области «А» (например -4) var x: real; Begin readln(x); if x>=-3 then if x1 then write (не принадлежит) else write (принадлежит) End.
Заполни таблицу: Обла сть Условие 1 (x>=-3) Условие 2 (x=1) Программ а выведет Область обрабатывае тся верно АНет нет B C D E
Возьмём число из области «В» (например -2) var x: real; Begin readln(x); if x>=-3 then if x1 then write (не принадлежит) else write (принадлежит) End.
Заполни таблицу: Обла сть Условие 1 (x>=-3) Условие 2 (x=1) Программ а выведет Область обрабатывае тся верно АНет нет BДа НетПринадлеж ит да C D E
Возьмём число из области «С» (например 2) var x: real; Begin readln(x); if x>=-3 then if x1 then write (не принадлежит) else write (принадлежит) End.
Заполни таблицу: Обла сть Условие 1 (x>=-3) Условие 2 (x=1) Программ а выведет Область обрабатывае тся верно АНет нет BДа НетПринадлеж ит да CДа Не принадлеж ат Да D E
Возьмём число из области «D» (например 8) var x: real; Begin readln(x); if x>=-3 then if x1 then write (не принадлежит) else write (принадлежит) End.
Заполни таблицу: Обла сть Условие 1 (x>=-3) Условие 2 (x=1) Программ а выведет Область обрабатывае тся верно АНет нет BДа НетПринадлеж ит да CДа Не принадлеж ат Да D Не принадлеж ит Нет E
Возьмём число из области «E» (например 10) var x: real; Begin readln(x); if x>=-3 then if x1 then write (не принадлежит) else write (принадлежит) End.
Обла сть Условие 1 (x>=-3) Условие 2 (x=1) Программ а выведет Область обрабатывае тся верно Анет Нет Bда нетпринадлеж ит Да C Не принадлеж ит Да D Не принадлеж ит Нет Eданет нет
2. Исключить случаи неправильной работы программы:
var x: real; Begin readln(x); if (x>=-3) and (x =5) and (x
Вариант 2 if x>=-3 then if x=5 then if x