Характеристика задания повышенного уровня сложности С1

Содержание

Слайд 2

Задача . Требовалось написать программу, при выполнении которой с клавиатуры считываются координаты

Задача . Требовалось написать программу, при выполнении которой с клавиатуры считываются координаты
точки на плоскости (x,y –действительные числа) и определяется принадлежность этой точки заданной закрашенной области (включая границы). Область ограничена гиперболой xy = 1 и прямыми x = 2 и 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.
Последовательно выполните следующее:
Приведите пример таких чисел x, y, при которых программа неверно решает поставленную задачу.
Укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы. (Это можно сделать несколькими способами, достаточно указать любой способ доработки исходной программы).

Слайд 3

Рассмотрим примеры

В данной задаче закрашенную область ограничивают три прямые линии: горизонтальная

Рассмотрим примеры В данной задаче закрашенную область ограничивают три прямые линии: горизонтальная
(ось ox ), вертикальная(ось oy ), наклонная(y=1/2х-1)
Получаем условие:

(x>=0) and (y<=0) and (y>=0.5*x-1)

Слайд 4

(y<=2-x*x) and (y>=0)

а)

б)

(y>=x*x-2) and (y<=0)

(y =0) а) б) (y>=x*x-2) and (y

Слайд 5

x*x+y*y<=1

(x*x+y*y<=1) and (x>=0)

(x*x+y*y<=1) and (x>=0)
and (y<=0)

(x*x+y*y>=4) and (x<=2)
and (y>=0) and

x*x+y*y (x*x+y*y =0) (x*x+y*y =0) and (y (x*x+y*y>=4) and (x and (y>=0)
(y<=x)

в)

г)

д)

е)

Слайд 6

ж)

з)

и)

к)

(x*x+y*y>=4) and (x>=-2)
and (y>=0) and (y<=-x)

(x*x+y*y>=4) and (x>=-2)
and (x<=0)

ж) з) и) к) (x*x+y*y>=4) and (x>=-2) and (y>=0) and (y (x*x+y*y>=4)
and (y>=0) and (y<=2)

(x*y>=1) and (x>=-2) and (x<0) and (y>=-2) and (y<0)

(x*y<=-1) and (x>=-2) and
(x<0) and (y>0) and (y<=2)

Слайд 7

(x*x+y*y<=1) and ((y>=x) or (x<=0))

Использование оператора or («ИЛИ»)

(x*x+y*y =x) or (x Использование оператора or («ИЛИ»)

Слайд 8

а)

б)

в)

г)

(x*x+y*y<=1) and
((y>=-x) or (y<=x))

(y<=2-x*x) and
((y>=x) or (y>=0))

(y>=x*x-2) and
((y<=x)

а) б) в) г) (x*x+y*y ((y>=-x) or (y (y ((y>=x) or (y>=0))
or (y<=-x))

(x*x+y*y<=1) and
((x<=0) or (y>=0))

Слайд 9

д)

(x*x+y*y<=1) and
((x>=0) or (y>=0))

д) (x*x+y*y ((x>=0) or (y>=0))

Слайд 10

Периодические функции

(y>=0) and (y<=0.5) and (y<=sin(x)) and (x>=0) and (x<=pi)

а)

б)

(x>=-pi/2)

Периодические функции (y>=0) and (y =0) and (x а) б) (x>=-pi/2) and
and (y>=-1) and (y>=x-1) and (y<=sin(x))

Слайд 11

в)

г)

(y>=0) and (y<=1) and (x>=0) and
(x<=3.14) and ((y<=sin(x))or (x>=1.57))

(y>=0) and (y<=1)

в) г) (y>=0) and (y =0) and (x =1.57)) (y>=0) and (y =0) and (x
and (x>=0) and (x<=3.14) and ((y<=sin(x))or (x<=1.57))

Слайд 12

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

Задача 1. Требовалось написать программу, при выполнении которой с клавиатуры считываются координаты
точки на плоскости (x,y –действительные числа) и определяется принадлежность этой точки заданной закрашенной области (включая границы). Область ограничена гиперболой xy = 1 и прямыми x = 2 и 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.
Последовательно выполните следующее:
Приведите пример таких чисел x, y, при которых программа неверно решает поставленную задачу.
Укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы. (Это можно сделать несколькими способами, достаточно указать любой способ доработки исходной программы).

Слайд 13

Решение:
x=0, y=0 (Любая пара (x,y), для которой выполняется: xy<1 или x>2 или

Решение: x=0, y=0 (Любая пара (x,y), для которой выполняется: xy 2 или
(xy≥1 и x<0 и y<0)
2) Возможная доработка :
var x,y: real;
begin
readln(x,у);
if (x*y>=1) and (x>0) and (x<=2) and (y>0) and (y<=2)
then
write('принадлежит')
else
write('не принадлежит')
end.

Слайд 14

Задача 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.

Последовательно

Задача 2. var x,y: real; begin readln(x,у); if x*y if x if
выполните следующее:
1) Приведите пример таких чисел x, y, при которых программа неверно
решает поставленную задачу.
2) Укажите, как нужно доработать программу, чтобы не было случаев ее
неправильной работы. (Это можно сделать несколькими способами,
достаточно указать любой способ доработки исходной программы).
Имя файла: Характеристика-задания-повышенного-уровня-сложности-С1.pptx
Количество просмотров: 144
Количество скачиваний: 0