Сайт для подготовки к ЕГЭ: kpolyakov.narod.ru Презентация будет выложена на сайте elschool11.ru ученикам – информатика –Подготовка к ЕГЭ (внизу странички)

Презентация:



Advertisements
Похожие презентации
ЕГЭ 2012 Информатика и ИКТ Консультация 3. Пример.
Advertisements

Умение прочесть фрагмент программы на языке программирования и исправить допущенные ошибки С1, время – 30 мин, П, 3 балла.
З АДАНИЕ С1 ( ЗАПОЛНЕНИЕ ТАБЛИЦЫ, ДОРАБОТКА ПРОГРАММЫ ) ЕГЭ 11 класс.
Разбор задач ЕГЭ 2013 (А3, В8 и С1) Лисин Алексей Анатольевич, учитель информатики и ИКТ, МБОУ «Лицей 124»
Решение С 1 Золотарева Е.В.. Требовалось написать программу, которая вводит с клавиатуры натуральное число N, не превышающее 10 9, и выводит сумму чётных.
Учитель информатики МБОУ СОШ 39 Краснодарского края Красноармейского района Очекурова Е. А. Поиск ошибок в программе. Решение заданий типа С 1.
Задачи на пересечение областей (C1): «на стыке алгебры и логики» Д.Ю. Усенков, О.Б. Богомолова.
ЕГЭ 2012 Информатика и ИКТ Консультация 4ЕГЭ 2012 Информатика и ИКТ Консультация 4.
Программирование Задания В2, В5. Оператор присваивания в языке программирования Задание В2 – базовый уровень, время – 2 мин.
ЕГЭ 2011 Информатика и ИКТ Консультация 3 18 марта.
Найдите ошибки: 1. if a = b then begin c:=1 else c:=0; 2. if a = b then c:=1; end else c:=0; 3. if a = b then c:=1; d:=1; else x:=1; Исправлено if a =
ЕГЭ информатика Алгоритмизация и программирование Консультация 3.
Решение задач С1, С2 и С3 Золотарева Е.В.. С1. Требовалось написать программу, которая вводит с клавиатуры натуральное число N, не превышающее 10 9, и.
ЕДИННЫЙ ГОСУДАРСТВЕННЫЙ ЭКЗАМЕН Часть С демо-варианта 2009.
Анализ программы с подпрограммами В14 Повышенный уровень, время – 6 мин.
Апрель - май 2011 г. Выполнил : Шамов Сергей Ученик 11 б класса МОУ ФСОШ 2 « с углубленным изучение отдельных предметов » Апрель - май 2011 г. Задания.
1.7 Языки программирования Типы данных Основные конструкции языка программирования. Система программирования Основные этапы разработки.
Решение заданий ЕГЭ и ГИА по информатике «Программирование» 2013 г. Составила учитель информатики Лопушанская Н. М. МБОУ «Лицей 21», г. Петропаловск-Камчатский.
Результаты проведения ГИА и ЕГЭ по информатике Ульяновск, 2012.
Разбор заданий ЕГЭ Типичные задания С1. Содержание Задача С1 варианта 1 и другие типичные задачиС1 варианта 1 другие типичные задачи Задача С1 варианта.
Транксрипт:

Сайт для подготовки к ЕГЭ: kpolyakov.narod.ru Презентация будет выложена на сайте elschool11.ru ученикам – информатика –Подготовка к ЕГЭ (внизу странички)

Требовалось написать программу, при выполнении которой с клавиатуры считываются координаты точки на плоскости (x, y – действительные числа) и определяется принадлежность этой точки заданной заштрихованной области (включая границы). Программист торопился и написал программу неправильно. БейсикПаскаль INPUT x, y IF y>=x THEN IF y>=0 THEN IF y=x then if y>=0 then if y

Последовательно выполните следующее. 1. Перерисуйте и заполните таблицу, которая показывает, как работает программа при аргументах, принадлежащих различным областям (A, B, C, D, E, F, G, H). Точки, лежащие на границах областей, отдельно не рассматривать. В столбцах условий укажите "да", если условие выполнится, "нет" если условие не выполнится, "" (прочерк), если условие не будет проверяться, «не изв.», если программа ведет себя по-разному для разных значений, принадлежащих данной области. В столбце "Программа выведет" укажите, что программа выведет на экран. Если программа ничего не выводит, напишите "" (прочерк). Если для разных значений, принадлежащих области, будут выведены разные тексты, напишите «не изв». В последнем столбце укажите "да" или "нет". ОбластьУсл. 1 y>=x Усл. 2 y>=0 Усл. 3 y

2. Укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы. (Это можно сделать несколькими способами, поэтому можно указать любой способ доработки исходной программы). Указания по оцениванию: В задаче требовалось выполнить 3 действия: 1.Заполнить таблицу (допускается ошибка НЕ БОЛЕЕ чем в 1 строке) 2.Исправить ошибочное использование оператора IF 3.Исправить ошибку, связанную с неправильным выбором набора условий

x, y y>=x ДаНет y>=0 ДаНет y=x THEN IF y>=0 THEN IF y=x then if y>=0 then if y

ОбластьУсл. 1 y>=x (выше линии) Усл. 2 y>=0 (выше оси у) Усл. 3 y=x ДаНет y>=0 ДаНет y

x, y y>=x ДаНет y>=0 ДаНет y=x THEN IF y>=0 THEN IF y=x then if y>=0 then if y

I область: y =x II область: y =0 и х>=0 Точка попадет в закрашенную область, если она попадет в I область ИЛИ во II область: IF ((y =x )) OR ((y =0) and (х>=0)) then write('принадлежит') else write('не принадлежит'); Можно преобразовать выражение, используя законы алгебры логики: IF (y =x ) or (y>=0) and (х>=0)) then write('принадлежит') else write('не принадлежит'); БЭЙСИК: IF (y =x ) OR (y =0 AND х>=0) THEN PRINT "принадлежит" ELSE PRINT "не принадлежит ENDIF I

Требовалось написать программу, при выполнении которой с клавиатуры считываются координаты точки на плоскости (x, y – действительные числа) и определяется принадлежность этой точки заданной заштрихованной области (включая границы). Программист торопился и написал программу неправильно. БейсикПаскаль INPUT x, y IF x*x+y*y

x*x+y* y

Обл аст ь Усл. 1 x*x+y *y

I II I область (внутри круга и слева от оси): x*x+y*y=0)) then write('принадлежит') else write('не принадлежит'); II способ: Точка попадет в закрашенную область, если она попадет внутрь круга, НО НЕ в область D: IF (x*x+y*y 0))) then write('принадлежит') else write('не принадлежит'); Можно преобразовать выражение, используя законы алгебры логики: IF (x*x+y*y =0) and (х>=0)) then write('принадлежит') else write('не принадлежит'); БЭЙСИК: IF x*x+y*y =0 and х>=0)) THEN PRINT "принадлежит" ELSE PRINT "не принадлежит» ENDIF

(повышенный уровень, рекомендуемое время – 6 мин)

В14. Определите, какое число будет напечатано в результате выполнения следующего алгоритма: Var a,b,t,M,R :integer; Function F(x:integer):integer; begin F:=4*(x-1)*(x-3); end; BEGIN a:=-20; b:=20; M:=a; R:=F(a); for t:=a to b do begin if (F(t)0, то ветви параболы направлены вверх, точка экстремума является точкой минимума. если коэффициент а

Var a,b,t,M,R :integer; Function F(x:integer):integer; begin F:=4*(x-1)*(x-3); end; BEGIN a:=-20; b:=20; M:=a; R:=F(a); for t:=a to b do begin if (F(t)

Определите, какое число будет напечатано в результате выполнения следующего алгоритма: Var a,b,t,M,R :integer; Function F(x:integer):integer; begin F:=x*x + 4*x + 8; end; BEGIN a:=-10; b:=10; M:=a; R:=F(a); for t:=a to b do begin if (F(t)> R)then begin M:=t; R:=F(t); end; write(R); END. 1) рассуждая так же, как и в предыдущем примере, можно показать, что программа ищет наибольшее значение функции F(t) на интервале от a до b 2) заметим, что выводится не абсцисса, а именно это найденное наибольшее значение функции: write(R); 3) график заданной функции – это парабола, ветви которой направлены вверх, то есть она имеет точку минимума, но не точку максимума 4) поэтому нужно проверить значения функции на концах отрезка и выбрать из них наибольшее 5) при t= -10 получаем F(t)=68 6) при t=10 получаем F(t)=148 7) таким образом, ответ: 148.

Определите, какое число будет напечатано в результате выполнения следующего алгоритма: Var a,b,t,M,R :integer; Function F(x:integer):integer; begin F:=4*(x-1)*(x-3); end; BEGIN a:=-20; b:=0; M:=a; R:=F(a); for t:=a to b do begin if (F(t)

(повышенный уровень, рекомендуемое время – 6 мин)

Ниже записана программа. Получив на вход число, эта программа печатает два числа, L и M. Укажите наибольшее из таких чисел, при вводе которых алгоритм печатает сначала 3, а потом 7. var x, L, M: integer; begin readln(x); L:=0; M:=0; while x > 0 do begin L:=L+1; if M < (x mod 10) then begin M:=x mod 10; end; x:= x div 10; end; writeln(L); write(M); end. для решения задачи необходимо понять, что делает эта программа. Если это не видно сразу, можно выполнить ручную прокрутку для какого-то простого числа, например, для числа 251:

операторусловиеxLM readln(x);251?? L:=0; M:=0;00 while x > 0 do…251 > 0? да L:=L+1;1 if M

Можно догадаться, что в результате работы программы в переменной L окажется число цифр числа, а в переменной M – наибольшая цифра, но это предположение нужно постараться доказать Нужно помнить, что для целого числа остаток от деления на 10 (x mod 10) – это последняя цифра в десятичной записи числа, а целочисленное деление (x div 10) отсекает последнюю цифру, то есть из 123 получается 12 Рассмотрим цикл, число шагов которого зависит от изменения переменной x: while x > 0 do begin... x:= x div 10; { отсечение последней цифры } end; Видно, что на каждом шаге от десятичной записи x отсекается последняя цифра до тех пор, пока все цифры не будут отсечены, то есть x не станет равно 0; поэтому цикл выполняется только раз, сколько цифр в десятичной записи введенного числа на каждом шаге цикла переменная L увеличивается на 1: L:=L+1; других операторов, меняющих значение L, в программе нет; поэтому после завершения цикла в переменной L находится количество цифр

Переменная M сначала равна 0. Оператор, в котором она меняется, выглядит так: if M < (x mod 10) then begin M:=x mod 10; end; учитывая, что x mod 10 – это последняя цифра десятичной записи числа, получается что если последняя цифра числа эта цифра больше, чем значение M, она записывается в переменную M; этот оператор выполняется в цикле, причем выражение x mod 10 по очереди принимает значения всех цифр исходного числа; поэтому после завершения циклам в переменной M окажется наибольшая из всех цифр. По условию задачи нам требуется найти наибольшее трехзначное число со старшей цифрой 7. Это 777. Ответ: 777.