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

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

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

Решение С1 по информатике - поиск ошибок в программе со сложным условием

Выберите документ из архива для просмотра:

Выбранный для просмотра документ inf_ege_c1.pptx

библиотека
материалов
Вернуться
в программе осуществлен ввод лишних данных; ошибка в операторе условия (> вм...
входные данные – числовые выражения и задание содержит три вопроса: определит...
Задача№1. Тре­бо­ва­лось на­пи­сать про­грам­му, при вы­пол­не­нии ко­то­рой...
Пе­ре­ри­суй­те и за­пол­ни­те таб­ли­цу, ко­то­рая по­ка­зы­ва­ет, как ра­б...
Эле­мен­ты от­ве­та: Показать график Об­ласть Усло­вие 1 (y
Воз­мож­ная до­ра­бот­ка (Пас­каль, раз­би­е­ние об­ла­сти на две части пря­м...
Задача №2. Тре­бо­ва­лось на­пи­сать про­грам­му, ко­то­рая ре­ша­ет урав­не­...
По­яс­не­ние a = 1, b = −1, x = 0. Зна­че­ние x может быть не ука­за­но. Зна­...
Задача№3 Тре­бо­ва­лось на­пи­сать про­грам­му, при вы­пол­не­нии ко­то­рой с...
При про­вер­ке ра­бо­ты про­грам­ма вы­пол­ня­лась по шагам для не­ко­то­рых...
По­яс­не­ние 2. Для на­пи­са­ния пра­виль­ной про­грам­мы не­об­хо­ди­мо раз­...
Задача№4 Тре­бо­ва­лось на­пи­сать про­грам­му, при вы­пол­не­нии ко­то­рой с...
Про­грам­ма вы­ве­дет число 2. Про­грам­ма ра­бо­та­ет верно для всех чисел,...
16 1

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

№ слайда 1 Вернуться
Описание слайда:

Вернуться

№ слайда 2 в программе осуществлен ввод лишних данных; ошибка в операторе условия (> вм
Описание слайда:

в программе осуществлен ввод лишних данных; ошибка в операторе условия (> вместо <, + вместо -) или в условии выхода из области; несоответствие количества «скобок» в условии (while и if, ошибка до или после else); возможно строки в программе поменяны местами (или строка удалена) ВОЗМОЖНЫЕ ВАРИАНТЫ ОШИБОК:

№ слайда 3 входные данные – числовые выражения и задание содержит три вопроса: определит
Описание слайда:

входные данные – числовые выражения и задание содержит три вопроса: определить при каких входных данных программа работает неверно (вопрос для всех классов заданий С1); определить лишнюю часть представленной программы; исправить предложенную программу. входные данные – числовые выражения, но вопросов два (т.е. в исходной части программы две ошибки); входные данные – числовые, вопросов два, оба касаются исправления программы, но второй вопрос сформулирован довольно жёстко (требует не содержать логических функций и т.д.) входные данные – строковые переменные, а в остальном соответствует первому классу заданий С1. Классификация заданий С1

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

Задача№1. Тре­бо­ва­лось на­пи­сать про­грам­му, при вы­пол­не­нии ко­то­рой с кла­ви­а­ту­ры счи­ты­ва­ют­ся ко­ор­ди­на­ты точки на плос­ко­сти (x, y — дей­стви­тель­ные числа) и опре­де­ля­ет­ся при­над­леж­ность этой точки за­дан­ной за­штри­хо­ван­ной об­ла­сти (вклю­чая гра­ни­цы). Про­грам­мист то­ро­пил­ся и на­пи­сал про­грам­му не­пра­виль­но. ПРО­ГРАМ­МАНА ПАС­КА­ЛЕ ПРО­ГРАМ­МА НА БЕЙ­СИ­КЕ ПРО­ГРАМ­МА НА СИ var x,y: real;begin readln(x,y); if y<=x then if y<=─x then if y>=x*x─2 then write('при­над­ле­жит') else write('не при­над­ле­жит') end. INPUT x, yIF y<=x THEN IF y<=-x THEN IF y>=x*x-2 THEN PRINT "при­над­ле­жит" ELSE PRINT "не при­над­ле­жит" ENDIF ENDIF ENDIF END void main(void){float x,y; scanf("%f %f",&x,&y); if (y<=x) if (y<=-x) if (y>=x*x-2) printf("при­над­ле­жит"); else printf("не при­над­ле­жит"); } ПРО­ГРАМ­МАНА ПАС­КА­ЛЕ var x,y: real;begin readln(x,y); if y<=x then if y<=─x then if y>=x*x─2 then write('при­над­ле­жит') else write('не при­над­ле­жит') end.

№ слайда 5 Пе­ре­ри­суй­те и за­пол­ни­те таб­ли­цу, ко­то­рая по­ка­зы­ва­ет, как ра­б
Описание слайда:

Пе­ре­ри­суй­те и за­пол­ни­те таб­ли­цу, ко­то­рая по­ка­зы­ва­ет, как ра­бо­та­ет про­грам­ма при ар­гу­мен­тах, при­над­ле­жа­щих раз­лич­ным об­ла­стям (A, B, C, D, E, F, G и H). Точки, ле­жа­щие на гра­ни­цах об­ла­стей, от­дель­но не рас­смат­ри­вать. В столб­цах усло­вий ука­жи­те "да", если усло­вие вы­пол­нит­ся, "нет", если усло­вие не вы­пол­нит­ся, "—" (про­черк), если усло­вие не будет про­ве­рять­ся, "не изв.", если про­грам­ма ведет себя по-раз­но­му для раз­ных зна­че­ний, при­над­ле­жа­щих дан­ной об­ла­сти. В столб­це "Про­грам­ма вы­ве­дет" ука­жи­те, что про­грам­ма вы­ве­дет на экран. Если про­грам­ма ни­че­го не вы­во­дит, на­пи­ши­те "—" (про­черк). Если для раз­ных зна­че­ний, при­над­ле­жа­щих об­ла­сти, будут вы­ве­де­ны раз­ные тек­сты, на­пи­ши­те "не изв". В по­след­нем столб­це ука­жи­те "да" или "нет". Ука­жи­те, как нужно до­ра­бо­тать про­грам­му, чтобы не было слу­ча­ев ее не­пра­виль­ной ра­бо­ты. (Это можно сде­лать не­сколь­ки­ми спо­со­ба­ми, до­ста­точ­но ука­зать любой спо­соб до­ра­бот­ки ис­ход­ной про­грам­мы.) По­сле­до­ва­тель­но вы­пол­ни­те сле­ду­ю­щее:

№ слайда 6 Эле­мен­ты от­ве­та: Показать график Об­ласть Усло­вие 1 (y
Описание слайда:

Эле­мен­ты от­ве­та: Показать график Об­ласть Усло­вие 1 (y<=x) Усло­вие 2 (y<=-x) Усло­вие 3 (y>=x*x-2) Про­грам­ма вы­ве­дет Об­ласть об­ра­ба­ты­ва­ет­сяверно A нет — — — нет В нет — — — нет С нет — — — нет D да да да при­над­ле­жит да Е да нет — — нет F да нет — — нет G да да нет не при­над­ле­жит да

№ слайда 7 Воз­мож­ная до­ра­бот­ка (Пас­каль, раз­би­е­ние об­ла­сти на две части пря­м
Описание слайда:

Воз­мож­ная до­ра­бот­ка (Пас­каль, раз­би­е­ние об­ла­сти на две части пря­мой x = 0): if ((y>=x*x─2) and (y<=x) and (x>=0)) or ((x<=0) and (y<=-x)) then write('при­над­ле­жит') else write('не при­над­ле­жит') Ва­ри­ан­тов до­ра­бот­ки может быть до­ста­точ­но много, но обыч­но пра­виль­ное опи­са­ние за­штри­хо­ван­ных об­ла­стей в них пред­став­ля­ет собой или объ­еди­не­ние двух (или более) воз­мож­но пе­ре­се­ка­ю­щих­ся об­ла­стей, или ис­клю­че­ние одной об­ла­сти из дру­гой.  При раз­де­ле­нии об­ла­сти вдоль какой-либо линии точки, ко­то­рые лежат на этой линии внут­ри об­ла­сти, могут быть при­чис­ле­ны к одной части, к дру­гой или к обеим (то есть, на­при­мер, в при­ве­ден­ном ре­ше­нии на языке Пас­каль одно из усло­вий (x >= 0) или (x <= 0) может быть стро­гим).

№ слайда 8 Задача №2. Тре­бо­ва­лось на­пи­сать про­грам­му, ко­то­рая ре­ша­ет урав­не­
Описание слайда:

Задача №2. Тре­бо­ва­лось на­пи­сать про­грам­му, ко­то­рая ре­ша­ет урав­не­ние «a |x| = 6» от­но­си­тель­но х для любых чисел а и b, вве­ден­ных с кла­ви­а­ту­ры. Все числа счи­та­ют­ся дей­стви­тель­ны­ми. Про­грам­мист то­ро­пил­ся и на­пи­сал про­грам­му не­пра­виль­но. По­сле­до­ва­тель­но вы­пол­ни­те три за­да­ния: При­ве­ди­те при­мер таких чисел a, b, x, при ко­то­рых про­грам­ма не­вер­но ре­ша­ет по­став­лен­ную за­да­чу. Ука­жи­те, какая часть про­грам­мы яв­ля­ет­ся лиш­ней. Ука­жи­те, как нужно до­ра­бо­тать про­грам­му, чтобы не было слу­ча­ев ее не­пра­виль­ной ра­бо­ты. (Это можно сде­лать не­сколь­ки­ми спо­со­ба­ми, по­это­му можно ука­зать любой спо­соб до­ра­бот­ки ис­ход­ной про­грам­мы). ПРО­ГРАМ­МА НА ПАС­КА­ЛЕ vara,b,x:real;begin readln(a,b,x); if a = 0 then if b = 0 then write ('любоечисло') else write ('нетре­ше­ний') else if b = 0 then write('x = 0') else write('x =',b/a,'илиx =',-b/a); end.

№ слайда 9 По­яс­не­ние a = 1, b = −1, x = 0. Зна­че­ние x может быть не ука­за­но. Зна­
Описание слайда:

По­яс­не­ние a = 1, b = −1, x = 0. Зна­че­ние x может быть не ука­за­но. Зна­че­ния а и b могут быть лю­бы­ми не­ну­ле­вы­ми чис­ла­ми с раз­ны­ми зна­ка­ми. Ошиб­ка про­грам­ми­ста со­сто­ит в том, что про­грам­ма ра­бо­та­ет не­пра­виль­но при любых не­ну­ле­вых а и Ь, име­ю­щих раз­ные знаки.   Лиш­няя часть: не нужно вво­дить х с кла­ви­а­ту­ры; верно: readln(a, Ь).   Воз­мож­ная до­ра­бот­ка: readln(а, b); if а = 0 then if b = 0 then write('любое число') else write('нет ре­ше­ний') else if b/а > 0 then write('х =', Ь/а, ' или х =', -Ь/а) else if b = 0 then write('х =0') else write('нет ре­ше­ний');

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

Задача№3 Тре­бо­ва­лось на­пи­сать про­грам­му, при вы­пол­не­нии ко­то­рой с кла­ви­а­ту­ры счи­ты­ва­ют­ся ко­ор­ди­на­ты точки на плос­ко­сти (x, y — дей­стви­тель­ные числа) и опре­де­ля­ет­ся при­над­леж­ность этой точки за­дан­ной за­кра­шен­ной об­ла­сти (вклю­чая гра­ни­цы). Уче­ник на­пи­сал такую про­грам­му: ПАС­КАЛЬ var x, y: real; beginreadln(x,у); ifу >= 1-хthen begin ifу <= 2-2*x*x then write(1при­над­ле­жит') end else ifу >=x*x-5 then write('при­над­ле­жит') else write('не при­над­ле­жит') end.

№ слайда 11 При про­вер­ке ра­бо­ты про­грам­ма вы­пол­ня­лась по шагам для не­ко­то­рых
Описание слайда:

При про­вер­ке ра­бо­ты про­грам­ма вы­пол­ня­лась по шагам для не­ко­то­рых кон­троль­ных зна­че­ний х и у, при этом был за­пол­нен про­то­кол те­сти­ро­ва­ния. В ре­зуль­та­те не­ак­ку­рат­но­го об­ра­ще­ния про­то­кол был ис­пор­чен, ча­стич­но со­хра­ни­лись толь­ко че­ты­ре стро­ки: По­сле­до­ва­тель­но вы­пол­ни­те сле­ду­ю­щее. Вос­ста­но­ви­те уце­лев­шие стро­ки про­то­ко­ла, за­пол­нив все клет­ки таб­ли­цы. Там, где со­дер­жа­ние вос­ста­нав­ли­ва­ет­ся не­од­но­знач­но, за­пи­ши­те любое воз­мож­ное зна­че­ние. На­при­мер, если для не­сколь­ких об­ла­стей по­лу­ча­ет­ся оди­на­ко­вая стро­ка таб­ли­цы, ука­жи­те в графе «Об­ласть» любую из этих об­ла­стей. 2. Ука­жи­те, как нужно до­ра­бо­тать про­грам­му, чтобы не было слу­ча­ев её не­пра­виль­ной ра­бо­ты. Об­ласть Усло­вие1 (у >=x+1) Усло­вие 2 (y <=2−2*x*x) Усло­вие 3 (y >= x*x−5) Вывод Верно — принадлежит нет не принадлежит да — да

№ слайда 12 По­яс­не­ние 2. Для на­пи­са­ния пра­виль­ной про­грам­мы не­об­хо­ди­мо раз­
Описание слайда:

По­яс­не­ние 2. Для на­пи­са­ния пра­виль­ной про­грам­мы не­об­хо­ди­мо раз­де­лить тре­бу­е­мую об­ласть на части и опи­сать каж­дую из них. На­при­мер, можно вы­де­лить об­ла­сти FGLM, HN и QR. При этом по­лу­ча­ет­ся такой фраг­мент про­грам­мы (при­мер на Пас­ка­ле):   if (y<=1-x) and (y>=x*x-5) and (x*y<=0) or (y<=2-2*x*x) and (y>=0) then write('при­над­ле­жит') else write('не при­над­ле­жит') 1. График Об­ласть Усло­вие1 (у >=x+1) Усло­вие 2 (y <=2−2*x*x) Усло­вие 3 (y >= x*x−5) Вывод Верно BCDNP да нет — — нет KDL нет — да при­над­ле­жит нет AHQR нет — нет не принадлежит да G да да — при­над­ле­жит да

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

Задача№4 Тре­бо­ва­лось на­пи­сать про­грам­му, при вы­пол­не­нии ко­то­рой с кла­ви­а­ту­ры счи­ты­ва­ет­ся на­ту­раль­ное число N, не пре­вос­хо­дя­щее 109, и вы­во­дит­ся ко­ли­че­ство цифр этого числа. Про­грам­мист то­ро­пил­ся и на­пи­сал про­грам­му не­пра­виль­но. По­сле­до­ва­тель­но вы­пол­ни­те сле­ду­ю­щее.   1. На­пи­ши­те, что вы­ве­дет эта про­грам­ма при вводе числа 584.   3. Ука­жи­те одно число для ко­то­ро­го эта про­грам­ма будет ра­бо­тать верно.   2. Най­ди­те все ошиб­ки в этой про­грам­ме (их может быть одна или не­сколь­ко). Ука­жи­те все стро­ки (одну или более), со­дер­жа­щие ошиб­ки, и для каж­дой такой стро­ки при­ве­ди­те пра­виль­ный ва­ри­ант. Об­ра­ти­те вни­ма­ние, что тре­бу­ет­ся найти ошиб­ки в име­ю­щей­ся про­грам­ме, а не на­пи­сать свою, воз­мож­но, ис­поль­зу­ю­щую дру­гой ал­го­ритм ре­ше­ния. Ис­прав­ле­ние ошиб­ки долж­но за­тра­ги­вать толь­ко стро­ку, в ко­то­рой на­хо­дит­ся ошиб­ка.

№ слайда 14 Про­грам­ма вы­ве­дет число 2. Про­грам­ма ра­бо­та­ет верно для всех чисел,
Описание слайда:

Про­грам­ма вы­ве­дет число 2. Про­грам­ма ра­бо­та­ет верно для всех чисел, на­чи­на­ю­щих­ся на 9. в том числе для числа 9. [До­ста­точ­но ука­зать любое такое число.] В ка­че­стве от­ве­та для осталь­ных чисел про­грам­ма выдаёт число на 1 мень­шее, чем нужно. Воз­мож­ные (не все) ва­ри­ан­ты ис­прав­ле­ния для языка Пас­каль: 1) ис­прав­ле­ние усло­вия про­дол­же­ния цикла на while (N >= 1) do или while (N > 0) do. При этом за­ме­на на while (N >= 0) do кор­рект­ной не яв­ля­ет­ся. 2) ис­прав­ле­ние ини­ци­а­ли­за­ции на sum := 1, а усло­вие про­дол­же­ния цикла на while (N > 9) do или while (N >= 10) do. По­яс­не­ние

№ слайда 15
Описание слайда:

№ слайда 16
Описание слайда:

Краткое описание документа:

В данной презентации рассмотрены варианты решений задач типа С1 по информатике. Показана их условная класификация. Приведены воможные ошибки при поиске ответа. Тезисы Часть С состоит из четырех заданий. Для выполнения заданий этой части необходимо написать развернутый ответ в произвольной форме. Задание С1 относится к повышенному уровню сложности. Задания этого типа проверяют знание программирования с использованием условного оператора и различных его разновидностей, они требуют от учащихся внимания («найти лишнюю часть», «добавить недостающую часть»), простейших знаний языков программирования и логических функций.
Автор
Дата добавления 08.05.2014
Раздел Информатика
Подраздел Презентации
Просмотров701
Номер материала 98143050732
Получить свидетельство о публикации

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

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

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

Похожие материалы

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