Добавить материал и получить бесплатное свидетельство о публикации в СМИ
Эл. №ФС77-60625 от 20.01.2015
Свидетельство о публикации

Автоматическая выдача свидетельства о публикации в официальном СМИ сразу после добавления материала на сайт - Бесплатно

Добавить свой материал

За каждый опубликованный материал Вы получите бесплатное свидетельство о публикации от проекта «Инфоурок»

(Свидетельство о регистрации СМИ: Эл №ФС77-60625 от 20.01.2015)

Инфоурок / Информатика / Презентации / Решаем С1 по информатике ЕГЭ
ВНИМАНИЮ ВСЕХ УЧИТЕЛЕЙ: согласно Федеральному закону № 313-ФЗ все педагоги должны пройти обучение навыкам оказания первой помощи.

Дистанционный курс "Оказание первой помощи детям и взрослым" от проекта "Инфоурок" даёт Вам возможность привести свои знания в соответствие с требованиями закона и получить удостоверение о повышении квалификации установленного образца (180 часов). Начало обучения новой группы: 28 июня.

Подать заявку на курс
  • Информатика

Решаем С1 по информатике ЕГЭ

библиотека
материалов
Тема: Исправление ошибок в простой программе с условными операторами ЕГЭ, С1...
Ветвление – это выбор одного из двух возможных вариантов действий в зависимос...
Одна команда ветвления может находиться внутри другой, например, так: На этой...
Задача 1: Требовалось написать программу, которая вводит с клавиатуры координ...
1. Условие y>=x истинно выше прямой y=x, то есть в областях A, B, E, F Начнем...
да да да да нет нет нет 2.Условие y>=0 истинно выше прямой y=0, то есть в об...
да да да да нет нет нет 3. Третье условие выполняется для областей «внутри»...
да да да да нет нет нет 4.Как следует из текста программы, она выведет что-т...
var x,y: real; begin readln(x,y); if (y =x) or (y>=0)) then write('принадлежи...
Задачи для тренировки
Вспомни! Запись вида a mod b означает остаток от деления a на b Запись вида a...
Задача 1 Требовалось написать программу, которая вводит с клавиатуры координа...
Задача 2 Требовалось написать программу, при выполнении которой с клавиатуры...
Требовалось написать программу, при выполнении которой с клавиатуры считывае...
Требовалось написать программу, при выполнении которой с клавиатуры считывают...
15 1

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


Выберите специальность, которую Вы хотите получить:

Обучение проходит дистанционно на сайте проекта "Инфоурок".
По итогам обучения слушателям выдаются печатные дипломы установленного образца.

ПЕРЕЙТИ В КАТАЛОГ КУРСОВ

Описание презентации по отдельным слайдам:

№ слайда 1 Тема: Исправление ошибок в простой программе с условными операторами ЕГЭ, С1
Описание слайда:

Тема: Исправление ошибок в простой программе с условными операторами ЕГЭ, С1 Морозова О.Г.

№ слайда 2 Ветвление – это выбор одного из двух возможных вариантов действий в зависимос
Описание слайда:

Ветвление – это выбор одного из двух возможных вариантов действий в зависимости от того, выполняется ли некоторое условие. В неполной форме условного оператора блок-2 пустой (отсутствует); Если условие, записанное внутри ромба, истинно (ответ «да» на вопрос «a=b?»), выполняются все команды, входящие в блок-1 (ветка «да»), иначе (если условие ложно) выполняются все команды в блоке-2 (ветка «нет») if a = b then begin { блок-1 } end else begin { блок-2 } end; if a = b then begin { блок-1 } end; a = b? нет да полная форма ветвления блок-1 блок-2 Рисунок 1 a = b? нет да неполная форма ветвления блок-1 Рисунок 2

№ слайда 3 Одна команда ветвления может находиться внутри другой, например, так: На этой
Описание слайда:

Одна команда ветвления может находиться внутри другой, например, так: На этой схеме блок-10 выполняется, когда a=b; блок-11 – когда a=b=c, блок-12 – когда a=b, но ac и, наконец, блок-2 – когда ab. Если блок-12 будет пустой (отсутствует), внутреннее ветвление имеет неполную форму; аналогично, если блок-2 пустой, то внешнее ветвление имеет неполную форму a = b? нет да блок-10 блок-2 a = c? да блок-11 блок-12 нет Рисунок 3

№ слайда 4 Задача 1: Требовалось написать программу, которая вводит с клавиатуры координ
Описание слайда:

Задача 1: Требовалось написать программу, которая вводит с клавиатуры координаты точки на плоскости (x, y – действительные числа) и определяет принадлежность точки заштрихованной области, включая ее границы. Программист торопился и написал программу неправильно. Вот она: var x,y: real; begin readln(x,y); if y>=x then if y>=0 then if y<=2-x*x then write('принадлежит') else write('не принадлежит') End. Последовательно выполните следующее: 1. Перерисуйте и заполните таблицу, которая показывает, как работает программа при аргументах, принадлежащих различным областям (A, B, C, D, E, F и G). Точки, лежащие на границах областей, отдельно не рассматривать. В столбцах условий укажите "да", если условие выполнится, "нет" если условие не выполнится, "—" (прочерк), если условие не будет проверяться, «не изв.», если программа ведет себя по-разному для разных значений, принадлежащих данной области. В столбце "Программа выведет" укажите, что программа выведет на экран. Если программа ничего не выводит, напишите "—" (прочерк). Если для разных значений, принадлежащих области, будут выведены разные тексты, напишите «не изв». В последнем столбце укажите "да" или "нет". 2. Укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы. (Это можно сделать несколькими способами, поэтому можно указать любой способ доработки исходной программы) .

№ слайда 5 1. Условие y&gt;=x истинно выше прямой y=x, то есть в областях A, B, E, F Начнем
Описание слайда:

1. Условие y>=x истинно выше прямой y=x, то есть в областях A, B, E, F Начнем заполнять таблицу, выписывая истинность каждого из трёх условий. да да да да нет нет нет Область y>=x? y>=0? y<=2-x*x? вывод верно? A B C D E F G

№ слайда 6 да да да да нет нет нет 2.Условие y&gt;=0 истинно выше прямой y=0, то есть в об
Описание слайда:

да да да да нет нет нет 2.Условие y>=0 истинно выше прямой y=0, то есть в областях A, E, G, однако это условие проверяется только тогда, когда первое условие, y>=x, истинно; поэтому для всех областей, где первое условие неверно (это области C, D, G), сразу в столбце второго условия ставим прочерк (условие не будет проверяться) да да нет нет -- -- -- Область y>=x? y>=0? y<=2-x*x? вывод верно? A B C D E F G

№ слайда 7 да да да да нет нет нет 3. Третье условие выполняется для областей «внутри»
Описание слайда:

да да да да нет нет нет 3. Третье условие выполняется для областей «внутри» параболы, то есть для E, F, G, D; однако оно проверяется только тогда, когда первые два истинны (для А и Е), в остальных строках ставим прочерк: да да нет нет -- -- -- нет да -- -- -- -- -- Область y>=x? y>=0? y<=2-x*x? вывод верно? A B C D E F G

№ слайда 8 да да да да нет нет нет 4.Как следует из текста программы, она выведет что-т
Описание слайда:

да да да да нет нет нет 4.Как следует из текста программы, она выведет что-то на экран только в том случае, когда выполняются первые два условия и программа выходит на третье: для области А будет выведено «не принадлежит», для области Е – «принадлежит», именно в этих двух случаях программа работает правильно, в остальных – нет: да да нет нет -- -- -- нет да -- -- -- -- -- не принадлежит принадлежит -- -- -- -- -- да нет нет нет да нет нет Область y>=x? y>=0? y<=2-x*x? вывод верно? A B C D E F G

№ слайда 9 var x,y: real; begin readln(x,y); if (y =x) or (y&gt;=0)) then write(&#039;принадлежи
Описание слайда:

var x,y: real; begin readln(x,y); if (y <=2-x*x) and ((y>=x) or (y>=0)) then write('принадлежит') else write('не принадлежит') end. Для того, чтобы доработать программу, проще всего составить одно сложное условие, описывающее всю заштрихованную область В данном случае удобно представить данную область в виде объединения областей, первая из которых включает области E+G, а вторая – области E+F область E+G соответствует условию (y>=0) and (y <=2-x*x) область E+F соответствует условию (y>=x) and (y <=2-x*x) объединение областей выполняется с помощью операции ИЛИ (or), так что полное условие принимает вид (y>=0) and (y <=2-x*x) or (y>=x) and (y <=2-x*x) поскольку операция И (and) имеет более высокий приоритет, чем ИЛИ (or), порядок выполнения операций тут правильный; в случае сомнений можно поставить дополнительные скобки: ((y>=0) and (y <=2-x*x)) or ((y>=x) and (y <=2-x*x)) поскольку в обоих условиях есть условие y <=2-x*x, запись можно немного сократить: (y <=2-x*x) and ((y>=x) or (y>=0)) Доработанная программа выглядит так:

№ слайда 10 Задачи для тренировки
Описание слайда:

Задачи для тренировки

№ слайда 11 Вспомни! Запись вида a mod b означает остаток от деления a на b Запись вида a
Описание слайда:

Вспомни! Запись вида a mod b означает остаток от деления a на b Запись вида a := b + 2*c + 3; означает «вычислить значения выражения справа от знака присваивания := и записать результат в переменную a»; при этом значения других переменных (кроме a) не изменяются Для многократного выполнения одинаковых операций используют циклы: цикл с переменной выполняется N раз, в этом примере переменная i принимает последовательно все значения от 1 до N с шагом 1: for i:=1 to N do begin { что-то делаем } end; цикл с условием выполняется до тех пор, пока условие в заголовке цикла не нарушится: while { условие } do begin { что-то делаем } end;

№ слайда 12 Задача 1 Требовалось написать программу, которая вводит с клавиатуры координа
Описание слайда:

Задача 1 Требовалось написать программу, которая вводит с клавиатуры координаты точки на плоскости (x, y – действительные числа) и определяет принадлежность точки заштрихованной области, включая ее границы. Программист торопился и написал программу неправильно. Вот она: var x, y: real; begin readln(x, y); if y <= x*x then if x-y >= -2 then if x+y <= 2 then write('принадлежит') else write('не принадлежит'); End. Ответ: Для исправления этих ошибок нужно добавить условие y >= 0 и объединить все 4 условия с помощью операции И (в паскале – and) в одно сложное условие в одном условном операторе: var x, y: real; begin readln(x, y); if (y <= x*x) and (y <= x+2) and (y <= 2-x) and (y >=0) then write('принадлежит') else write('не принадлежит'); End. Последовательно выполните следующее: Приведите пример таких чисел x, y, при которых программа неверно решает поставленную задачу. Укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы. (Это можно сделать несколькими способами, поэтому можно указать любой способ доработки исходной программы).

№ слайда 13 Задача 2 Требовалось написать программу, при выполнении которой с клавиатуры
Описание слайда:

Задача 2 Требовалось написать программу, при выполнении которой с клавиатуры считывается натуральное число N, не превосходящее 109, и выводится минимальную цифру этого числа. Программист торопился и написал программу неправильно: var N: longint; digit, min_digit: integer; begin readln(N); min_digit := 0; while N > 0 do begin digit := N mod 10; if digit > min_digit then min_digit := digit; N := N div 10; end; writeln(min_digit); end. ОТВЕТ 1) При вводе числа 532 программа выводит 5. 2) Ошибка 1: начальное значение переменной min_digit строка: min_digit := 0; исправление: min_digit := 9; (любое значение, большее или равное 9) Ошибка 2: условие изменения переменной min_digit строка: if digit > min_digit then исправление: if digit < min_digit then Последовательно выполните следующее: Определите, что выведет программа при вводе числа 532. Найдите все ошибки в этой программе (их может быть одна или несколько). Для каждой ошибки: Выпишите строку, в которой сделана ошибка; Укажите, как надо исправить ошибку - приведите правильный вариант строки. Обратите внимание, что требуется найти ошибки в имеющейся программе, а не написать свою, возможно, имеющую другой алгоритм решения. Исправление ошибки должно затрагивать только строку, в которой находится ошибка.

№ слайда 14 Требовалось написать программу, при выполнении которой с клавиатуры считывае
Описание слайда:

Требовалось написать программу, при выполнении которой с клавиатуры считывается координата точки на прямой (х – действительное число) и определяется принадлежность этой точки одному из выделенных отрезков В и D (включая границы). Программист торопился и написал программу неправильно. var x: real; begin readln(x) ; if x>l then if x>=7 then if x>13 then write('не принадлежит') else write('принадлежит') End. Задача 3 Последовательно выполните следующее. 1. Перерисуйте и заполните таблицу, которая показывает, как работает программа при аргументах, принадлежащих различным областям (А, В, С, D и Е). Границы (точки -5, 1, 7 и 13) принадлежат заштрихованным областям. В столбцах условий укажите «да», если условие выполнится, «нет», если условие не выполнится, «—» (прочерк), если условие не будет проверяться, «не изв.», если программа ведет себя по-разному для разных значений, принадлежащих данной области. В столбце «Программа выведет» укажите, что программа выведет на экран. Если программа ничего не выводит, напишите «—» (прочерк). Если для разных значений, принадлежащих области, будут выведены разные тексты, напишите «не изв.». В последнем столбце укажите «Да» или «Нет». 2. Укажите, как нужно доработать программу, чтобы не было случаев её неправильной работы. (Это можно сделать несколькими способами, достаточно указать любой способ доработки исходной программы.) Последовательно выполните следующее. 1. Перерисуйте и заполните таблицу, которая показывает, как работает программа при аргументах, принадлежащих различным областям (А, В, С, D и Е). Границы (точки -5, 1, 7 и 13) принадлежат заштрихованным областям. В столбцах условий укажите «да», если условие выполнится, «нет», если условие не выполнится, «—» (прочерк), если условие не будет проверяться, «не изв.», если программа ведет себя по-разному для разных значений, принадлежащих данной области. В столбце «Программа выведет» укажите, что программа выведет на экран. Если программа ничего не выводит, напишите «—» (прочерк). Если для разных значений, принадлежащих области, будут выведены разные тексты, напишите «не изв.». В последнем столбце укажите «Да» или «Нет». 2. Укажите, как нужно доработать программу, чтобы не было случаев её неправильной работы. (Это можно сделать несколькими способами, достаточно указать любой способ доработки исходной программы.) Ответ: if (-5 <= x) and (x <= 1) or (7 <= x) and (x <= 13) then write('принадлежит') else write('не принадлежит'); Область Условие 1 (x>1) Условие 2 (х>=7) Условие 3 (х>13) Программа выведет Область обрабатывается верно А В С D Е Область Условие 1 (x>1) Условие 2 (х>=7) Условие 3 (х>13) Программа выведет Область обрабатывается верно А нет – – – нет В нет – – – нет С да нет – – нет D да да нет принадлежит да Е да да да не принадлежит да

№ слайда 15 Требовалось написать программу, при выполнении которой с клавиатуры считывают
Описание слайда:

Требовалось написать программу, при выполнении которой с клавиатуры считываются коорди наты точки на плоскости (х, у - действительные числа) и определяется принадлежность этой точки заданной закрашенной области (включая границы). Ученик написал такую программу: var x, y: real; begin readln(x,у); if у >= x*x-6 then begin if x*x + у* у <=16 then write('принадлежит') end else if x >= 0 then write('принадлежит') else write('не принадлежит') end. Задача 4 Последовательно выполните следующее. Восстановите уцелевшие строки протокола, заполнив все клетки таблицы. Там, где содержание восстанавливается неоднозначно, запишите любое возможное значение. Например, если для нескольких областей получается одинаковая строка таблицы, укажите в графе «Область» любую из этих областей. Укажите, как нужно доработать программу, чтобы не было случаев её неправильной работы. (Это можно сделать несколькими способами, достаточно указать любой способ доработки исходной программы.) При проверке работы программа выполнялась по шагам для некоторых контрольных значений х и у, при этом был заполнен протокол тестирования. В результате неаккуратного обращения протокол был испорчен, частично сохранились только четыре строки.  Графы протокола содержат следующую информацию. Область - часть плоскости, которой принадлежит проверяемая точка. (Все возможные области отмечены на рисунке буквами А, В, С, ... S.) Условие 1, Условие2, Условие 3 - результат проверки соответствующего условия (да или нет). Если условие не проверялось, в протокол записывался прочерк. Вывод – сообщение, которое вывела программа. Если программа ничего не вывела, в протокол записывался прочерк. Верно - итоговое заключение (да или нет) о правильности результата работы программы при данных значениях х и у. Ответ: if (y>=x*x-6) and (x*x+y*y<=16) or (y>=x*x-6) and (y=<0) or (x*x+y*y<=16) and (x>=0) then write('принадлежит') else write('не принадлежит'); Область Условие 1 (y >= x*x-6) Условие 2 (x*x+y*y<= 16) Условие 3 (x >=0) Вывод Верно да — принадлежит нет не принадлежит да – да Область Условие 1 (y >= x*x-6) Условие 2 (x*x+y*y<= 16) Условие 3 (x >=0) Вывод Верно 1 B, C, Q, R да нет – — нет 2 D, S нет – да принадлежит нет 3 A, E, K, P нет – нет не принадлежит да 4 F, G, L, M да да – принадлежит да


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


Выберите специальность, которую Вы хотите получить:

Обучение проходит дистанционно на сайте проекта "Инфоурок".
По итогам обучения слушателям выдаются печатные дипломы установленного образца.

ПЕРЕЙТИ В КАТАЛОГ КУРСОВ

Автор
Дата добавления 12.10.2016
Раздел Информатика
Подраздел Презентации
Просмотров251
Номер материала ДБ-256189
Получить свидетельство о публикации
Похожие материалы

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