Требовалось написать программу, при выполнении которой с клавиатуры считываются координаты точки на плоскости (x, y – действительные числа) и определяется принадлежность этой точки заданной закрашенной области (включая границы). Программист торопился и написал программу неправильно.
| Паскаль | Бейсик |
|---|---|
var x,y: real; begin readln(x,y); if y<=x+1 then if y>=x*x-1 then write('принадлежит') else write('не принадлежит') end. | INPUT x, y IF y<=x+1 THEN IF y>=x*x-1 THEN PRINT "принадлежит" ELSE PRINT "не принадлежит" ENDIF ENDIF END |
| Си++ | Алгоритмический язык |
#include <iostream> using namespace std; int main(){ float x,у; cin >> x >> y; if (y<=x+1) if (y>=x*x-1) cout << "принадлежит"; else cout << "не принадлежит"; } | алг нач вещ х,у ввод х,у если y<=x+1 то если y>=x*x-1 то вывод 'принадлежит' иначе вывод 'не принадлежит' все все кон |
| Python | |
x = float(input()) y = float(input()) if y<=x+1: if y>=x*x-1: print("принадлежит") else: print("не принадлежит") | |
Последовательно выполните следующее. 
1. Заполните таблицу, которая показывает, как работает программа при аргументах, принадлежащих различным областям (A, B, C, D, E, F, G и H). Точки, лежащие на границах областей, отдельно не рассматривать.
В столбцах условий укажите "да", если условие выполнится, "нет" если условие не выполнится, "—" (прочерк), если условие не будет проверяться, «не изв.», если программа ведет себя по-разному для разных значений, принадлежащих данной области. В столбце "Программа выведет" укажите, что программа выведет на экран. Если программа ничего не выводит, напишите "—" (прочерк). Если для разных значений, принадлежащих области, будут выведены разные тексты, напишите «не изв». В последнем столбце укажите "да" или "нет".
2. Укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы.
| Область | Условие 1 (y<=x+1) | Условие 2 (y>=x*x-1) | Программа выведет | Область обрабатывается верно |
| A | ||||
| В | ||||
| С | ||||
| D | ||||
| Е | ||||
| F | ||||
| G | ||||
| Н |

