Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Else write('не принадлежит')




Сканер 200

Принтер 250

принтер | сканер 450

поскольку последнее число равно сумме двух предыдущих, можно сразу же придти к выводу, что в этом сегменте сети нет сайтов, на которых ключевыми словами являются одновременно принтер и сканер:

принтер & сканер 0

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

достаточно просто сложить числа, соответствующие запросам принтер & монитор и
сканер & монитор

3) таким образом, правильный ответ: 40 + 50 = 90.

Возможные проблемы: · обратите внимание, что в условии была лишняя информация: мы нигде не использовали количество сайтов в данном сегменте Интернета (1000) и количество сайтов с ключевым словом монитор (450) · не всегда удается «раскрутить» задачу в уме, здесь это несложно благодаря «удачному» условию

Еще пример задания:

В таблице приведены запросы и количество страниц, которые нашел поисковый сервер по этим запросам в некотором сегменте Интернета:

Запрос Количество страниц (тыс.)
пирожное & выпечка  
пирожное  
выпечка  

Сколько страниц (в тысячах) будет найдено по запросу

пирожное | выпечка

Решение (вариант 1, решение системы уравнений):

1) эта задача – упрощенная версия предыдущей, поскольку здесь используются только две области (вместо трёх): «пирожное» (обозначим ее через П) и «выпечка» (В)

2) нарисуем эти области виде диаграммы (кругов Эйлера); при их пересечении образовались три подобласти, обозначенные числами 1, 2 и 3;

3) количество сайтов, удовлетворяющих запросу в области i, будем обозначать через Ni

4) составляем уравнения, которые определяют запросы, заданные в условии:

пирожное & выпечка N2 = 3200

пирожное N1 + N2 = 8700

выпечка N2 + N3 = 7500

5) подставляя значение N2 из первого уравнения в остальные, получаем

N1 = 8700 - N2 = 8700 – 3200 = 5500

N3 = 7500 - N2 = 7500 – 3200 = 4300

6) количество сайтов по запросу пирожное | выпечка равно

N1 + N2 + N3 = 5500 + 3200 + 4300 = 13000

7) таким образом, ответ – 13000.

Решение (вариант 2, рассуждения по диаграмме):

1) как и в первом способе, построим диаграмму Эйлера-Венна:

2) несложно сообразить, что число сайтов в интересующей нас области равно

N1 + N2 + N3 = (N1 + N2) + (N3 + N2) – N2

3) поскольку нам известно, что по условию

N1 + N2 = 8700

N3 + N2 = 7500

N2 = 3200

сразу получаем

N1 + N2 + N3 = 8700 + 7500 - 3200 = 13000

4) таким образом, ответ – 13000.

Еще пример задания:

В таблице приведены запросы и количество страниц, которые нашел поисковый сервер по этим запросам в некотором сегменте Интернета:

  Запрос Количество страниц (тыс.)
  мезозой    
  кроманьонец    
  неандерталец    
  мезозой | кроманьонец    
  мезозой | неандерталец    
  неандерталец & (мезозой | кроманьонец)    

Сколько страниц (в тысячах) будет найдено по запросу

кроманьонец & (мезозой | неандерталец)

Решение (круги Эйлера):

1) обозначим области «мезозой», «кроманьонец» и «неандерталец» буквами М, К и Н; пронумеруем подобласти, получившиеся в результате пересечений кругов (см. рисунок справа)

2) через i обозначим количество сайтов в области с номером i

3) нас интересует результат запроса

кроманьонец & (мезозой | неандерталец)

то есть N­2 + N5 + N6(зеленая область на рисунке)

4) из первых двух запросов следует, что

N1 + N2 + N4 + N5 = 50 (мезозой)

N2 + N3 + N5 + N6 = 60 (кроманьонец)

5) складывая левые и правые части уравнений, получаем

(1) N1 + 2·N2 + N3 + N4 + 2·N5 + N6 = 110

6) в то же время из запроса 4 получаем

(2) N1 + N2 + N3 + N4 + N5 + N6 = 80 (мезозой | кроманьонец)

7) вычитая из уравнения (1) уравнение (2), отдельно левые и правые части, получаем

N2 + N5 = 30 (мезозой & кроманьонец)

вспомним, что наша цель – определить N­2 + N5 + N6, поэтому остается найти N6

8) из запросов 1 и 3 следует, что

N1 + N2 + N4 + N5 = 50 (мезозой)

N4 + N5 + N6 + N7 = 70 (неандерталец)

9) складывая левые и правые части уравнений, получаем

(3) N1 + N2 + 2·N4 + 2·N5 + N6 + N7 = 120

10) в то же время из запроса 5 получаем

(4) N1 + N2 + N4 + N5 + N6 + N7 = 100 (мезозой | неандерталец)

11) вычитая из уравнения (3) уравнение (4), отдельно левые и правые части, получаем

(5) N4 + N5 = 20 (мезозой & неандерталец)

12) теперь проанализируем запрос 6:

неандерталец & (мезозой | кроманьонец)

(6) N4 + N5 + N­6 = 20

13) вычитая из уравнения (6) уравнение (5) получаем N6 = 0, поэтому

N2 + N5 + N6 = N2 + N5 = 30

14) таким образом, ответ – 30.

Пример задания:

Требовалось написать программу, которая вводит с клавиатуры координаты точки на плоскости ( x, y – действительные числа) и определяет принадлежность точки заштрихованной области, включая ее границы. Программист торопился и написал программу неправильно. Вот она:

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.

Последовательно выполните следующее: 1) Приведите пример таких чисел x, y, при которых программа неверно решает поставленную задачу. 2) Укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы. (Это можно сделать несколькими способами, поэтому можно указать любой способ доработки исходной программы).

Решение:

1) сначала лучше отложить в сторону программу и попытаться написать условие, которым должны отвечать точки, попавшие в выделенную область

2) заштрихованная область ограничена по координате , она находится

· справа от оси , что равносильно условию (с учетом границы здесь и далее получаем нестрогие неравенства)

· слева от первого максимума функции ; из математики мы знаем, что эта функция достигает максимума при , поэтому получаем второе условие

3) заштрихованная область ограничена с двух сторон по координате : она находится

· ниже линии , откуда следует третье условие

· выше линии , что дает четвертое условие

4) итак, точка находится в заданной области, если все эти четыре условия выполняются одновременно; можно предположить, что в программе нужно использовать четыре вложенных условных оператора или один условный оператор, в котором четыре простых условия (отношения , , и ) связаны с помощью логической операции and («И», одновременное выполнение всех условий)

5) теперь смотрим на программу: здесь три (а не четыре!) вложенных условных оператора с простыми отношениями, поэтому явно какое-то условие не учтено; легко найти, что «забыли» условие

6) оператор write('принадлежит') помещен внутрь всех трех условных операторов, то есть, он выполнится тогда, когда три (а не четыре!) условия истинны;

7) отметим на рисунке область, где выполняются все нужные условия, кроме (красная зона);

8) для всех точек, которые находятся в «красной» зоне программа выдаст сообщение «принадлежит», хотя в самом деле эти точки не принадлежит заданной области; одна из таких точек имеет координаты

9) теперь выясним, когда программа выдает сообщение «не принадлежит»

if y <= 1 then

if x >= 0 then

if y >= sin(x) then

Write('принадлежит')

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...