Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 11 лет назад пользователемochekurova.ru
1 Учитель информатики МБОУ СОШ 39 Краснодарского края Красноармейского района Очекурова Е. А. Поиск ошибок в программе. Решение заданий типа С 1.
2 Решение заданий типа С 1 На языке программирования QBasic Требовалось написать программу, при выполнении которой с клавиатуры считываются координаты точки на плоскости (x, y – действительные числа ) и определяется принадлежность этой точки заданной закрашенной области ( включая границы ). Программист торопился и написал программу неправильно. Input x,y if y=0 then if y>=x*x then print принадлежит else print не принадлежит END IF end Очекурова Е. А. учитель информатики Краснодарский край То есть принадлежит введенная с клавиатуры точка Закрашенной области или нет ?
3 Последовательно выполните следующее. 1. Перерисуйте и заполните таблицу, которая показывает, как работает программа при аргументах, принадлежащих различным областям (A,B, C, D, E, F,G и H). Точки, лежащие на границах областей, отдельно не рассматривать. В столбцах условий укажите " да ", если условие выполнится, " нет " если условие не выполнится, "" ( прочерк ), если условие не будет проверяться, « не изв.», если программа ведет себя по - разному для разных значений, принадлежащих данной области. В столбце " Программа выведет " укажите, что программа выведет на экран. Если программа ничего не выводит, напишите "" ( прочерк ). Если для разных значений, принадлежащих области, будут выведены разные тексты, напишите « не изв ». В последнем столбце укажите " да " или " нет ". 2. Укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы. ( Это можно сделать несколькими способами, достаточно указать любой способ доработки исходной программы.) Очекурова Е. А. Для лучшего усвоения материала постарайтесь выполнять работу по - этапно в тетради.
4 Анализируем программу Очекурова Е. А. Input x,y if y=0 then if y>=x*x then print принадлежит else print не принадлежит END IF end да Х, У y=0 y>=x*x принадлежит Не принадлежит да нет
5 Заполнение таблицы Очекурова Е. А. Областьy=0?y>=x*x?выводверно? A B C D E F G H Заполняем по столбцам отвечая на поставленный вопрос : Соответствует ли область условию ?
6 Заполнение таблицы Очекурова Е. А. Областьy
7 Очекурова Е. А. Облас ть y=0? y>=x* x? вывод верно ? A Да B Нет C Да D E Нет F нет G да H нет Как реагирует программа на вопрос « нет »? Ошибка программиста именно в том что она и не реагирует, значит мы можем поставить прочерки на дальнейшие события Х, У y=0 y>=x* x принадлеж ит Не принадлежит да нет да
8 Заполнение таблицы Очекурова Е. А. Облас ть y=0? y>=x* x? A Да B Нет C Да D E Нет F нет G да H нет Проверка второго условия : У > = 0 всегда выше оси абсцисс Да нет
9 Очекурова Е. А. Обла сть y=0 ? y>x* x? выво д вер но? A Да B Нет --- C Да D E Нет --- F --- G ДаНет -- H нет --- Проверка третьего условия : y>=x*x? Область внутри параболы ? нет Да нет Х, У y =0 принадлежит Не принадлежит да нет y>= x*x да Не принадлежит принадлежит Не принадлежит
10 Очекурова Е. А. Областьy=0?y>=x*x?выводверно? A Даданет Не принадлежит B Нет -- - C Дада принадлежит D Даданет Не принадлежит E Нет --- F нет --- G данет -- H --- Заполняем последний столбец проставляя значения « да », если область обрабатывается верно И значение « нет », если область обрабатывается неправильно Если область не прорабатывается по программе, то тоже нет. Да нет Да нет
11 Укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы. Очекурова Е. А. Для правильной работы программы необходимо назначить условия так, чтобы обрабатывались все области. Удобнее всего реализовать эту задачу записав сложное условие соединенное логическими операторами : « и » - and « или » -or « не » -not
12 Программа на языке программирования QBasic Очекурова Е. А. Input x,y ( вводим переменные х и у ) if and and or and and 0 and Then print принадлежит else print не принадлежит Для правильной работы рекомендую штриховать обрабатываемые области y>=0 y=x*x y= y>=0y
13 Очекурова Е. А. Область С или область D Сложное условие позволяет обработать обе области :
14 Домашняя работа Очекурова Е. А. A A C D E F B FF Область y >= 0x = x*xвыводверно? A B C D E F Input x,y If y >= 0 then if x =x*x then print принадлежит else print не принадлежит END IF end Требовалось написать программу, которая вводит с клавиатуры координаты точки на плоскости (x, y – действительные числа) и определяет принадлежность точки заштрихованной области, включая ее границы. Программист торопился и написал программу неправильно.
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.