По следам форума

Кондратьева В. М.

ссылка на страницу форума

По следам одного интернет – форума

Форум – это уникальное изобретение человечества, которое позволяет не только в режиме реального времени обсуждать некую тему, факт или событие, но и взглянуть на свои высказывания, срок давности которым например 2 – 3 года, при условии, что сам форум еще функционирует. Кардинальным отличием форумов от всех остальных клиентов для общения в сети является полезность. Ведь форум имеет узко – специализированную направленность и обычно одну тему для обсуждения.

Для чего нужен форум?

  • Форум, это в в первую очередь уведомитель. Что происходит? Какие мероприятия запланированы?

  • Форум позволяет обсуждать последовательно, спокойно, любые организационные или новаторские предложения. Всегда можно перечитать предыдущие сообщения.

  • Участие в жизни. Понимается не только совет, каждый, даже не капля в системе, каждый и есть главная часть системы.

  • У вас интересные мысли? Вы заметили страшный недочет? У вас накопились проблемы, или вы хотите организованной помощи? Форум - вот куда нужно.

  • Развивается база знаний. Новичку, да и умудренному опытом будет интересно почитать статьи. Вы опытный? У вас за плечами горы знаний? Вы можете поделиться этим - написав статьи, обучающие чему либо.

  • Форум - это в конце концов весело и интересно. Ведь есть разделы, посвященные просто беседам на любую тему, есть творческие разделы с творчеством.

  • Форум вспомогательное средство - проявить себя, узнать других.

Форум учителей информатики г Комсомольска – на - Амуре по теме: «Преподавание информатики в контексте проблемных для учащихся вопросов ЕГЭ» состоялся с 14 по 18 марта 2011 года. Проект был совместный, с удивительным человеком, Поляковым Константином Юрьевичем, д.т.н., профессором СПбГМТУ, и одновременно учителем информатики 163 средней школы Центрального района Санкт-Петербурга, который отвечал на все вопросы учителей, возникающие в процессе работы. Посмотрим что получилось?

1. Информация

Копытова Светлана Алексеевна учитель информатики и ИКТ МОУ СОШ №32

Этому разделу посвящены следующие задания ЕГЭ:

  • А2 – Кодирование текстовой информации. Кодировка ASCII. Основные кодировки кириллицы.

  • А5 – Кодирование и декодирование информации

  • А12 и В1 – Вычисление информационного объёма сообщения

  • В6 – определение скорости передачи информации при заданной пропускной способности канала

Сюда же я бы отнесла и А14 – Кодирование и обработка графической информации (там тоже затрагивается измерение графической информации). Но составители вопросов ЕГЭ вынесли его почему-то в отдельный раздел «Форматы графических и звуковых объектов»)

Подготовку к ЕГЭ начинаем именно с раздела «Информация и её кодирование» и рассматриваем его 3-4 астрономических часа. Затем при изучении других разделов возвращаемся к этим вопросам вновь и вновь, задавая учащимся кроме вновь разобранных задач других разделов ещё задачи данного раздела.

Для успешного выполнения заданий данного раздела учащиеся должны знать:

  • Таблицу степеней двойки

  • Единицы измерения информации и переход от одних единиц измерения к другим. Для большей наглядности не мешало бы представить этот переход в виде схемы

  • Формулу Хартли: pi=N, где N – количество равновероятных событий; это может быть: количество символов в используемом алфавите (мощность алфавита); количество цветов, используемой цветовой палитры и т.п. i – длина последовательности (или количество разрядов); это может быть информационный вес каждого символа (т.е. количество бит, содержащихся в каждом символе); p – количество возможных вариантов

Первое занятие посвящено теоретическим выкладкам. Затем рассматриваю типы задач, относящиеся к данному разделу (демонстрация презентации) Затем рассматриваю тему «Вычисление информационного объёма сообщения» (на основе презентации Полякова, посвящённой этому вопросу). Тему «Кодирование и декодирование информации» я рассматриваю после систем счисления, т.к. там необходимо умение быстро ориентироваться в переводе чисел из одних систем счисления в другие

Рассмотрим одну из задач, вызывающих затруднение при выполнении:

ЗАДАЧА :

В некоторой стране автомобильный номер длиной 6 символов составляют из заглавных букв (задействовано 12 различных букв) и десятичных цифр в любом порядке.Каждый такой номер в компьютерной программе записывается минимально возможным и одинаковым целым количеством байт (при этом используют посимвольное кодирование и все символы кодируются одинаковым и минимально возможным количеством бит). Определите объем памяти, отводимый этой программой для записи 32 номеров 1) 128 байт 2) 96 байт 3) 64 байта 4) 32 байта

ОТВЕТ:

12 букв+10 цифр=22 (мощность) далее вес символа =5 Длина номера 6 умножаем на 5=30 бит (целое число байт 4 поэтому 4 байта умножаем на 32 номера =128 байт

ОТВЕТ 1

2. Системы счисления

Сенькина Татьяна Семёновна учитель информатики и ИКТ МОУ СОШ №1

Системы счисления и двоичное представление информации в памяти компьютера

Для успешного решения задач нужно знать:

Ø алгоритмы перевода чисел между 10-й, 2-й, 8-й и 16-й системами счисления

Ø отрицательные целые числа хранятся в памяти компьютера в дополнительном двоичном коде

Ø для перевода отрицательного числа –а в дополнительный двоичный код нужно:

• перевести число а–1 в двоичную систему счисления

• выполнить инверсию битов: заменить все нули на единицы, а единицы – на нули

Также при решении задач этого раздела полезно помнить, что в двоичной системе:

Ø четные числа оканчиваются на 0, нечетные – на 1

Ø числа, которые делятся на 4, оканчиваются на 00, и т.д., числа, которые делятся на 2k, оканчиваются на k нулей

Ø если число N принадлежит интервалу 2k-1 £ N < 2k, в его двоичной записи будет всего k цифр, например, для числа 125:

26 = 64 £ 125 < 128 = 27, 125 = 11111012 (7 цифр)

Ø числа вида 2k записываются в двоичной системе как единица и k нулей, например:

16 = 24 = 100002

Ø числа вида 2k-1 записываются в двоичной системе k единиц, например:

15 = 24-1 = 11112

Ø если известна двоичная запись числа N, то двоичную запись числа 2·N можно легко получить, приписав в конец ноль, например:

15 = 11112, 30 = 111102, 60 = 1111002, 120 = 11110002

Пример 1. Дано: а=D716 и b=3318. Какое из чисел с, записанных в двоичной системе счисления, удовлетворяет неравенству a < c < b?

1) 110110012 2) 110111002 3) 110101112 4) 110110002

Решение (через 8-ю систему):

Ø переводим в восьмеричную систему границы промежутка:

а = D716 = 110101112 = 011 010 1112 = 3278 b = 3318

Ø переводим в восьмеричную систему все ответы:

110110012 = 3318 , 110111002= 3348,

110101112 = 3278 , 110110002= 3308

Ø в восьмеричной системе между числами 3278 и 3318 может быть только 3308, таким образом, верный ответ – 4

Важно:

Ø наиболее сложные вычисления – при переводе всех чисел в десятичную систему, можно легко ошибиться

Ø сравнивать числа в двоичной системе сложно, также легко ошибиться

Ø при переводе в 16-ю систему нужно помнить двоичную запись чисел A, B, C, D, E, F, в ней легко ошибиться

Ø в этой задаче наиболее простой вариант – использовать восьмеричную систему, нужно просто запомнить двоичные записи чисел от 0 до 7 и аккуратно все сделать

Пример 2. Для хранения целого числа со знаком используется 1 байт. Сколько единиц содержит внутреннее представление числа -78?

1) 3 2) 4 3) 5 4) 6

Решение:

Ø Вычитаем 1 из числа 78 и полученное число 77 переводим в двоичную систему счисления: 7710 = 10011012

Ø по условию число занимает в памяти 1 байт = 8 бит, поэтому нужно представить число с помощью 8 разрядов, добавляем впереди один ноль: 7710 = 010011012

Ø делаем инверсию битов: 101100102

Ø получено число -78 в дополнительном двоичном коде, в нём четыре единицы, таким образом, верный ответ – 2 .

Важно: этот прием позволяет избежать добавления единицы в конце (легче вычесть в десятичной системе, чем добавить в двоичной).

Арифметические операции в 2-й, 8-й и 16-й системах счисления

Для успешного решения задач нужно знать:

Ø алгоритмы перевода чисел между 10-й, 2-й, 8-й и 16-й системами счисления

Ø алгоритмы выполнения арифметических операций (сложения, вычитания, умножения) в этих системах счисления

Пример 3. Чему равна сумма чисел х=438 и у=5616 ?

1) 1218 2) 1718 3) 6916 4) 10000012

Решение (через 8-ю систему):

Ø х = 438, у = 5616 = 10101102 = 1268

Ø складываем:

438

+1268

1718

Ø видим, что такой ответ есть – ответ 2 .

Важно:

Ø есть несколько способов решения, «каждый выбирает для себя»

Ø при переводе всех чисел в десятичную систему можно легко ошибиться, однако складывать в десятичной системе проще и привычнее

Ø работая в двоичной системе также легко ошибиться, например, «потерять» цифру или перепутать цифры местами при списывании; сложение в двоичной системе также не совсем безобидно

Ø видимо, наиболее простой вариант в данной задаче – использовать восьмеричную систему, нужно просто запомнить двоичные записи чисел от 0 до 7 и аккуратно все сделать

Ø при сложении в восьмеричной системе нужно помнить, что перенос в следующий разряд происходит тогда, когда сумма больше или равна 8, а не 10.

Ø для того чтобы выбрать систему счисления, в которой будет удобнее работать, можно посмотреть, в каких системах даны исходные данные и ответы, и выбрать ту, которая чаще всего встречается (обычно в ней легче считать)

Ø никто не будет спрашивать, как вы считали, важно получить верный результат

Ø возможно, если в задании будет вычитание или умножение, вычисления будет проще сделать в десятичной системе счисления

Кодирование чисел. Системы счисления

Для успешного решения задач нужно знать:

Ø принципы кодирования чисел в позиционных системах счисления

Ø чтобы перевести число, например, 12345N из системы счисления с основанием N в десятичную систему, нужно умножить значение каждой цифры на N в степени, равной её разряду

Ø последняя цифра записи числа в системе счисления с основанием N – это остаток от деления этого числа на N

Ø две последние цифры – это остаток от деления на N2, и т.д.

Пример 4. Укажите через запятую в порядке возрастания все десятичные числа, не превосходящие 25, запись которых в системе счисления с основанием четыре оканчивается на 11?

Решение:

Ø переведем 25 в четверичную систему счисления: 25 = 1214, все интересующие нас числа не больше этого значения

Ø из этих чисел выделим только те, которые заканчиваются на 11, таких чисел всего два: это 114 = 5 и 1114 = 21

Ø ответ: 5, 21

Пример 5. Укажите через запятую в порядке возрастания все основания систем счисления, в которых запись числа 23 оканчивается на 2.

Общий подход:

Ø в этой задаче неизвестно основание системы счисления, обозначим его через N

Ø поскольку последняя цифра числа – 2, основание должно быть больше 2, то есть N > 2

Ø вспомним алгоритм перевода числа из десятичной системы в систему с основанием N, из него следует, что младшая цифра результата – это остаток от деления исходного числа на N

Решение:

Ø нужно найти все целые числа N>2, для которых остаток от деления 23 на N равен 2:

23 = k×N+2, где k – целое неотрицательное число (0, 1, 2, …)

Ø из формулы получаем 21 = k×N, задача сводится к тому, чтобы найти все делители числа 21, большие 2

Ø ответ: 3, 7, 21

Важно: нужно учесть, что основание системы счисления должно быть больше любой цифры числа, поэтому делитель N=1 не подходит (должно быть N>2); числа нужно записывать в ответе в порядке возрастания

Пример 6. Укажите через запятую в порядке возрастания все основания систем счисления, в которых запись числа 31 оканчивается на 11.

Решение:

Ø нужно найти все целые числа N>1, для которых

31 = k×N2+N+1, где k – целое неотрицательное число (0, 1, 2, …)

Ø из формулы получаем k×N2+N = N×(k×N+1) = 30, т.е. N является делителем числа 30

Ø выпишем все делители 30, большие 1: 2, 3, 5, 6, 10, 15, 30

Ø проверим, для каких из этих чисел k будет целым числом, подставив в

Ø формулу

Ø ответ: 2, 3, 5, 30

3 Логика

Нестеренко Евгения Валерьевна учитель информатики и ИКТ МОУ СОШ № 32

Тема: Построение таблиц истинности логических выражений.

Символом F обозначено одно из указанных ниже логических выражений от трех аргументов: X, Y, Z. Дан фрагмент таблицы истинности выражения F:

Какое выражение соответствует F?

1) ¬X Ù ¬Y Ù ¬Z 2) X Ù Y Ù Z 3) X Ú Y Ú Z 4) ¬X Ú ¬Y Ú ¬Z

Решение (основной вариант): нужно для каждой строчки подставить заданные значения X, Y и Z во все функции, заданные в ответах, и сравнить результаты с соответствующими значениями F для этих данных

Решение (вариант 2): часто правильный ответ – это самая простая функция, удовлетворяющая частичной таблице истинности, то есть, имеющая единственный нуль или единственную единицу в полной таблице истинности. Используется СКНФ или СДНФ.

Тема: Преобразование логических выражений. Формулы де Моргана.

Укажите, какое логическое выражение равносильно выражению A Ù ¬(¬B Ú C).

1) ¬A Ú ¬B Ú ¬C 2) A Ú ¬B Ú ¬C 3) A Ù B Ù ¬C 4) A Ù ¬B Ù C

Фактически это задание на применение законов де Моргана и закона двойного отрицания:

¬ (A Ù B) = ¬ A Ú ¬ B ¬ (A Ú B) = ¬ A Ù ¬ B ¬ (¬A) = A.

Можно использовать таблицы истинности.

Тема: Основные понятия математической логики.

1. Для какого из указанных значений X истинно высказывание ¬((X > 2)→(X > 3))?

1) 1 2) 2 3) 3 4) 4

Решение (прямая подстановка):

Ответ – 3.

2. Для какого имени истинно высказывание:

(Первая буква согласная → Вторая буква согласная) Ù Последняя буква гласная?

1) КСЕНИЯ 2) МАКСИМ 3) СТЕПАН 4) МАРИЯ

Решение: Составить формулу (A → B) Ù C = 1, определить ее истинность при разных значениях переменной (прямая подстановка или таблица истинности).

Ответ – КСЕНИЯ.

Тема: Решение логических задач.

Методы решения задач:

ü метод рассуждений

ü табличный метод

ü метод рассуждений с таблицами

ü преобразование логических выражений

ü метод графов

ü метод подбора

Тема: Преобразование логических выражений.

1. Каково наибольшее целое положительное число X, при котором истинно высказывание:

(X·(X + 3) > X·X + 7) (X·(X + 2) ≤ X·X + 11).

Решение: метод математических рассуждений и преобразований.

(X·X + 3·X > X·X + 7) (X·X + 2·X ≤ X·X + 11)

(3·X > 7) → (2·X ≤ 11)

(X ≥ 3) → (X ≤ 5)

(X < 3) или (X ≤ 5)

X ≤ 5, X = 5

Ответ –5.

2. Сколько различных решений имеет уравнение ((K Ú L) (L Ù M Ù N)) = 0

где K, L, M, N – логические переменные? В ответе не нужно перечислять все различные наборы значений K, L, M и N, при которых выполнено данное равенство. В качестве ответа Вам нужно указать количество таких наборов.

Решение: самое простое составление таблицы истинности.

Ответ –10.

4. Алгоритмизация и программирование

Пашин Сергей Васильевич учитель информатики и ИКТ МОУ СОШ № 22

Одним из важных разделов заданий ЕГЭ по информатики является раздел «Алгоритмизация и программирование». Данный раздел включает в себя задачи повышенной сложности, которым необходимо уделять очень много внимания, а также владеть приемами решения этих задач.

На первый взгляд задачи по программированию, особенно из части А, кажутся легко выполнимыми, но, как показывает практика, ученик выбирает неправильный подход к решению, начинает путаться, теряет очень много времени.

Предлагаю рассмотреть несколько вариантов задач по алгоритмизации и программированию и методы их решения.

1. В результате выполнения фрагмента программы

while n < > 0 do begin

write ( 2*(n mod 5 + 3) );

n := n div 10;

end;

на экран выведено число 10614. Какое число хранилось до этого в переменной n?

1) 529 2) 259 3) 952 4) 925

Решение подобных задач необходимо выполнять методом откидывания неверных ответов уже в середине решения, не доводя их до конца, так как заранее известно, что верный вариант ответа всего один.

Также необходимо заметить, что оператор write находится в цикле, следовательно, число 10614, выведенное на экран не является результатом одного вычисления, а это несколько результатов, выведенных без пробела в одну строчку.

Подставляем вместо n 529 и видим, что в результате математических операций получается число 14, а результат начинается на 10, следовательно ни первый вариант, ни второй верными не являются.

Подставляем третий вариант 952 и получаем число 10, видно, что четвертый вариант делится на пять без остатка, следовательно третий вариант является единственным верным.

2. Чему будет равна переменная Р в результате выполнения программы?

P = 1

i = 3

DO WHILE (i <= 9)

P = P * (i div 3)

i = i + 1

LOOP

1) 1 2) 3 3) 9 4) 24

Здесь вычисления производятся шесть раз от i = 3 до i = 9. Видно, что результат целочисленного деления i на 3 трижды будет равен единице, трижды – двум и один раз трем. Учитывая, что первоначальное значение переменной P = 1, необходимо найти произведение ряда P = 1*1*1*1*2*2*2*3 = 24. Если учащиеся будут знакомы с алгоритмом решения данной задачи, то время вычисления займет меньше минуты.

3. Дан фрагмент программы, обрабатывающей двухмерный массив A размера

n×n.

k = 1

for i=1 to n

c = A[i,i]

A[i,i] = A[k,i]

A[k,i] = c

next i

Данная программа меняет местами

1) два столбца в таблице

2) две строки в таблице

3) элементы диагонали и k-ой строки таблицы

4) элементы диагонали и k-го столбца таблицы

Конечно, можно было бы взять произвольный массив n×n и просто рассчитать, но данный способ не гарантирует безошибочного расчета и займет очень много времени.

Предлагаю рассмотреть в данной программе строчку

A[i,i] = A[k,i]

Если идет замена элемента с одинаковыми номерами строки и столбца, значит этот элемент стоит на диагонали, следовательно, первый и второй вариант можно откинуть. Во втором элементе постоянная k находится на месте номера строки, следовательно верным является вариант третий. Обращаю внимание, что никаких вычислений при решении задачи не производилось, что сэкономит немало времени.

4. Значения элементов двух массивов А и В размером 1 х 100 задаются с помощью следующего фрагмента программы:

for i = 1 tо 100

A[i] = 50 – i

next i

for i = 1 tо 100

B[i] = A[i] + 49

next i

Сколько элементов массива В будут иметь отрицательные значения?

1) 1 2) 10 3) 50 4) 100

Думаю, сразу понятно, что весь массив для подсчета отрицательных элементов мы пересматривать не будем. Первый цикл заполняет массив А и значения его элементов находятся в интервале от 49 до -50. При заполнении второго массива, который зависит от первого очевидно, что элементы с порядковым номером от 1 до 99 будут неотрицательны (А[1] = 49, B [1] = 98; A[99] = -49, B[99] = 0) и лишь последний элемент массива В при A[100] = -50 будет равен B[100] = -1. Следовательно верный первый вариант ответа.

5. Дан фрагмент программы:

for n = 1 tо 5

for m = 1 tо 5

C[n,m] = (m – n)*(m – n)

next m

next n

Сколько элементов массива С будут равны 1?

1) 5 2) 2 3) 8 4) 14

Запишем строчку программы C[n,m] = (m – n)*(m – n) в ином виде:

C[n,m] = (m – n)2

Так как оба цикла запущены от 1 до 5, очевидно, что (m – n)2 = 1 только в следующих случаях:

и наоборот:

Обе эти таблицы представлены мною для наглядности, хотя их можно легко представить в уме. Итак, правильный вариант ответа третий, то есть восемь элементов массива С будут равны единице.

6. В программе описан одномерный целочисленный массив с индексами от 0 до 10. В приведенном ниже фрагменте программы массив сначала заполняется, а потом изменяется:

for i:=0 to 10 do

A[i]:=i;

end;

for i:=0 to 10 do begin

A[10-i]:=A[i];

A[i]:=A[10-i];

end;

Чему будут равны элементы этого массива?

1) 10 9 8 7 6 5 4 3 2 1 0

2) 0 1 2 3 4 5 6 7 8 9 10

3) 10 9 8 7 6 5 6 7 8 9 10

4) 0 1 2 3 4 5 4 3 2 1 0

Здесь опять же применяем метод отбрасывания неверных вариантов. Исходные элементы массива будут соответственно равны: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10

Рассмотрим крайние элементы преобразованного массива: из строки A[10-i]:=A[i]; видно, что при i = 0 A[10] = 0, то есть понятно, что верными могут быть только первый и четвертый варианты. Из следующей строки A[i]:=A[10-i]; определяем A[0] = 0. То есть верным является четвертый вариант.

7. Запишите значение переменной s после выполнения фрагмента алгоритма:

Данный цикл повторяется достаточно большое количества раз для устного подсчета, поэтому необходимо найти алгоритм для более быстрого подсчета s. Видно, что s увеличивается на значение числа n только в тех случаях когда n нечетно, само же n изменяется от 0 до 100. Следовательно, s будет увеличиваться на n только в половине случаев. Таким образом, формируем ряд, сумму которого надо найти:

s = 1 + 3 + 5 + 7 + … + 97 + 99.

Обращаю внимание, что если сложить попарно элементы этого ряда следующим образом:

1 + 99 = 100; 3 + 97 = 100; 5 + 95 = 100 и т. д. Таких пар чисел в этом ряду будет 25, следовательно, s = 100 * 25 = 2500.

(1) A

(2) AAB

(3) AABAABC

(4) AABAABCAABAABCD

Латинский алфавит (для справки): ABCDEFGHIJKLMNOPQRSTUVWXYZ

Запишите шесть символов подряд, стоящие в седьмой строке со 120-го по 125-е место (считая слева направо).

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

Для начала определим количество символов в седьмой строке видно, что в каждой строке их количество удваивается и прибавляется еще один символ.

Определяем: в пятой строке – 31 символ, в шестой – 63, в седьмой – 127.

Известную нам четвертую строку обозначим за Х. Тогда пятая строка будет иметь вид: XXE, шестая строка: XXEXXEF, седьмая – XXEXXEFXXEXXEFG. Видно, что в седьмой строке символ G находится под номером 127. Значит необходимый нам элемент под номером 125 – это символ E. Остальные символы с номерами 120 – 124 это окончание ряда Х. Получаем верный вариант ответа AADCDE.

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

9. (1) A

(2) AAB

(3) AABAABC

(4) AABAABCAABAABCD

Латинский алфавит (для справки): ABCDEFGHIJKLMNOPQRSTUVWXYZ

Запишите шесть символов подряд, стоящие в восьмой строке с 72-го по 77-е место (считая слева направо).

По описанному выше методу, определяем количество символов, находящихся в восьмой строке, их будет 255. Очевидно, что символы, находящиеся с 72 по 77 место будут находиться и в седьмом ряду на тех же позициях. Обозначаем четвертый ряд Х. Учтем, что шестой ряд имеет 63 символа, которые будут находиться и в седьмом ряду а затем шестой ряд будет переписываться заново. Досчитываем элементы с 63 по 72 - это будет А. Затем по порядку доходим до элемента под номером 77. В результате получаем, что элементы, находящиеся в восьмом ряду под номерами с 72 по 77: ABAABC.

Рассмотрим еще один тип задач связанных с рядами.

10. (1) A

(2) BAA

(3) CBAABAA

(4) DCBAABAACBAABAA

Латинский алфавит (для справки): ABCDEFGHIJKLMNOPQRSTUVWXYZ

Сколько в восьмой строке букв, отличных от буквы «B»?

В данном случае ничего за Х обозначать не надо. Здесь нужно заметить, что буква В попадает в ряд, начиная со второй строки и во всех последующих рядах ее количество удваивается. Следовательно, в восьмой строке присутствует 64 буквы В. всего в восьмой строке 255 символов, значит букв, отличных от В будет 255 – 64 = 191.

Рассмотрим задачу, связанную с исправлением и доработкой программы.

var x,y: real;

begin

readln(x,y);

if y <= 1 then

if x >= 0 then

if y >= sin(x) then

write('принадлежит')

else write('не принадлежит')

end.

1) Приведите пример таких чисел x, y, при которых программа неверно решает поставленную задачу. 2) Укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы. (Это можно сделать несколькими способами, поэтому можно указать любой способ доработки исходной программы).

Необходимо заметить, что все подобные задачи, встречающиеся в заданиях ЕГЭ, имеют одну и ту же ошибку. С помощью блока if координаты точки должны быть ограничены с обеих сторон по координате Х и с обеих сторон по координате Y. Ошибка и заключается в том, что в предложенной программе присутствуют не все ограничения.

Рассмотрим данную задачу. По оси Y имеются оба ограничения, а по оси X координаты точки ограничены только слева от заштрихованной области, а справа ограничения нет. Следовательно, отвечая на первый вопрос задания, я задаю координаты ( X = π, Y = 0,5), при которых программа даст утвердительный ответ, но точка с данными координатами в заштрихованной области не лежит.

Для доработки программы вводим еще одно условие, ограничивая координату точки по оси Х справа от заштрихованной области: if x <= π/2 then. Ну и конечно каждый условный блок необходимо в программе закрыть. Текст доработанной программы выглядит так:

var x,y: real;

begin

readln(x,y);

if y <= 1 then

if x >= 0 then

if y >= sin(x) then

if x <= π/2 then

write('принадлежит')

else write('не принадлежит')

end if

end if

end if

end if

end.

В таком виде программа будет давать всегда верные решения, но ее можно оптимизировать, записав рациональнее:

var x,y: real;

begin

readln(x,y);

if y <= 1 and y >= sin(x) and x >= 0 and x <= π/2 then

write('принадлежит')

else write('не принадлежит')

end if

end.

Хочу обратить внимание, что при умении находить правильный способ решения любой из предложенных задач можно сократить время решения до минимума. На некоторые задачи повышенной сложности может уходить меньше минуты. Но не стоит забывать, что выполнение заданий должно проходить с огромной внимательностью, так как одна самая маленькая неточность может свести на нет. Поэтому методику решения как простых так и сложных задач необходимо постоянно нарабатывать, а самую простую и самую сложную вещь можно одолеть только тренировкой.

@akaVeta