Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
Татьяна Стексов
0 / 0 / 0
Регистрация: 24.11.2012
Сообщений: 15
#1

Числовая прямая - C++

24.11.2012, 21:55. Просмотров 1247. Ответов 0
Метки нет (Все метки)

На числовой прямой будем рассматривать только точки с целой координатой (в дальнейшем будем называть их целыми точками). Рассмотрим некоторое количество числовых промежутков, начало и конец которых являются целыми точками (предполагается, что начало и конец промежутка также входят в промежуток). С множествами чисел разрешается выполнять операции объединения, пересечения и разности:
Множество точек A+B содержит целые точки, которые принадлежат множеству A или множеству B (операция объединения).
Множество точек A*B содержит целые точки, которые принадлежат одновременно и множеству A, и множеству B (операция пересечения).
Множество точек A-B содержит целые точки, которые принадлежат множеству A, но не принадлежат множеству B (операция разности множеств).

Задано выражение, содержащее перечисленные операции. В выражении сначала выполняются операции пересечения, после этого операции сложения и вычитания (при этом операции сложения и вычитания имеют одинаковый приоритет). Для изменения порядка выполнения действий можно использовать круглые скобки.

Требуется определить множество точек (набор непересекающихся промежутков), являющееся значением заданного выражения для данных промежутков.

Вход: файл input.txt, содержащий несколько строк с описанием промежутков в следующем формате:
имя начало конец
После описания промежутков (не более 26) в последней строке файла input.txt следует выражение, содержащие имена промежутков (только из описанного выше набора), знаки операций над промежутками (+, – и *) и круглые скобки. Прочих символов (в том числе пробелов и других разделителей) выражение не содержит.

Ограничения:в описании каждого отрезка: имя – заглавная буква латинского алфавита (имя промежутка), начало и конец – целые числа от -2000000000 до 2000000000 (соответственно, начало и конец промежутка); длина выражения не превосходит 250.

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

Дополнительные ограничения: расстояние между соседними промежутками в выходном файле (разность между правым концом одного промежутка и левым концом другого) должно быть строго больше 1. Иначе говоря, смежные промежутки (те, между которыми нет целых точек) «сливаются» в один.

input.txt output.txt
A 1 5
B 3 7
A-B 1 2

Пример 2: input.txt output.txt
D -5 10
K -4 5
R -7 2
D-K*R -5 -5
3 10

Пример 3: input.txt output.txt
W -10 -5
X 0 10
Y -7 5
Z 7 12
(W+X)*(Y+Z) -7 -5
0 5
7 10
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.11.2012, 21:55
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Числовая прямая (C++):

Числовая прямая, разбитая на отрезки - C++
Пусть числовая прямая разбита на произвольные отрезки точками а1,а2,...,аN. Выяснить, к какому отрезку относится точка Х. Язык с++...

Числовая прямая. Какому из отрезков принадлежит данная точка x? - C++
числовая прямая разбита на произвольные отрезки а1, а2, ..., аn. Выясните, какому из отрезков принадлежит данная точка x. Добавлено...

Числовая прямая разбита на отрезки точками A1 - An. Какому из отрезков принадлежит заданная точка X? - C++
Пусть числовая прямая разбита на произвольные отрезки точками a1, a2, …, an. Выясните, какому из отрезков принадлежит данная точка х. ...

Структуры (Создайте структуру Прямая с элементами x1, y1, x2, y2 – координаты двух точек, через которые проходит прямая) - C++
Создайте структуру Прямая с элементами x1, y1, x2, y2 – координаты двух точек, через которые проходит прямая. Для К заданных прямых вывести...

Числовая последовательность. - C++
1. Вводится последовательность, 0-конец последовательности. Подсчитать, сколько в ней отрицательных цисел, и найти сумму положительных...

Числовая последовательность на C++ - C++
Вводится последовательность из N положительных целых чисел. Найти наименьшее число среди четных элементов последовательности. ...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.11.2012, 21:55
Привет! Вот еще темы с ответами:

Числовая последовательность - C++
Добрый вечер, форумчане! Суть такова, что необходимо подсчитать количество чисел, которые являются квадратами некоторого натурального числа...

Числовая последовательность 2n! - C++
Написать программу или хотя бы алгоритм, которая для n=0,1,2... вычисляет максимальный элемент и его номер и выводит на экран

Числовая последовательность - C++
Здравствуйте, можете помочь с этим заданием ? Первую часть, я вроде сделала. #include <iostream.h> #include <conio.h> #include...

числовая последовательность - C++
Помогите пожалуйста хотя бы с первым заданием, потом может сам дотукаю плизззз!!!!!! Условия задания 1: Найти среднее арифметическое...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru