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

#Задача №2.

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


Требовалось написать программу, при выполнении которой с клавиатуры считываются координаты точки на плоскости (x, y – действиительные числа) и определяется принадлежность этой точки заданной заштрихованной области (включая границы).
Программист торопился и написал программу неправильно.
Программист торопился и написал программу неправильно.
Последовательно выполните следующее:
1) Приведите пример таких чисел x, y, при которых программа неправильно решает поставленную задачу.
2) Укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы. (Это можно сделать несколькими способами, поэтому можно указать любой правильный способ доработки исходной программы.)
Перейти к решению задачи
ПРОГРАММА НА ПАСКАЛЕ | ПРОГРАММА НА БЕЙСИКЕ | ПРОГРАММА НА СИ |
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, y IF 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("не принадлежит"); } |

#Задача №4.

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

#Задача №5.

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

#Задача №6.

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

#Задача №7.

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

#Задача №8.
Требовалось написать программу, которая решает уравнение «a|x|=b» относительно x для любых чисел a и b, введенных с клавиатуры. Все числа считаются действительными. Программист торопился и написал программу неправильно.
ПРОГРАММА НА ПАСКАЛЕ | ПРОГРАММА НА БЕЙСИКЕ | ПРОГРАММА НА СИ |
var a,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. | INPUT a, b, x IF a = 0 THEN IF b = 0 THEN PRINT "любое число" ELSE PRINT "нет решений" ENDIF ELSE IF b = 0 THEN PRINT "x = 0" ELSE PRINT "x =",b/a, " или x =",-b/a END IF END IF END | void main(void) {float a,b,x; scanf("%f%f%f", &a,&b,&x); if (a==0) if (b==0) printf("любое число"); else printf ("нет решений"); else if (b==0) printf("x = 0"); else printf("x=%f или x=%f", b/a,-b/a); } |
Последовательно выполните три задания:
1) Приведите пример таких чисел a, b, x, при которых программа неверно решает поставленную задачу.
2) Укажите, какая часть программы является лишней.
3) Укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы. (Это можно сделать несколькими способами, поэтому можно указать любой способ доработки исходной программы).

