Здавалка
Главная | Обратная связь

Задача 1. Приведение к стандартному виду (250 баллов).

Дроби обыкновенные, смешанные и не только они...

 

Как известно, в подавляющем большинстве языков программирования нет таких типов данных, как «обыкновенная дробь» и «смешанная дробь». Действительно, такие дроби почти не используются в жизни и вытеснены десятичными дробями.

Мы решили устранить этот недостаток, и предлагаем вам написать программы для действий с обыкновенными и cмешанными дробями.

Надеемся, что эта тема вам хорошо знакома из курса математики. На что хочется обратить внимание участников?

1. Если не можете решить задачу полностью, найдите посильные вам частные случаи, и попробуйте их сделать. В этом случае получите хоть сколько-то баллов.

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

 

Внимание!!! Если в условии задачи не оговорено обратное, входные данные при тестировании вводятся гарантированно корректные, то есть не надо делать защиту от некорректных данных! Это сэкономит время.

 

Обозначения

 

В задачах встречаются числа трёх видов: целые числа, правильные обыкновенные дроби и смешанные дроби. Для устранения недоразумений, каждое из них всегда пишется в отдельной строке:

Целое — как обычно.

Правильная обыкновенная дробь — если дробь положительная, то вначале пишется числитель, затем «/», далее знаменатель. Никаких пробелов!!! Если дробь отрицательная, то начинается с «-_» . (Минус и подчёркивание).

Числитель и знаменатель обязательно взаимно простые! Знаменатель обязательно больше числителя.

Вот примеры:

Обозначения Комментарий
5/9 Пять девятых
-_3/28 Минус три двадцать восьмых
-3/8 Неправильное обозначение! После минуса нет подчёркивания.
3/-8 Неправильное обозначение! Знаменатель не может быть отрицательным.
0/55 Неправильное обозначение! Это просто НОЛЬ.
25/35 Неправильное обозначение! Это сократимая дробь.
7/3 Неправильное обозначение! Это неправильная дробь.

 

Смешанная дробь - если смешанная дробь положительная, то вначале пишется целая часть, затем «_», затем числитель, затем «/», далее знаменатель. Никаких пробелов!!! Если смешанная дробь отрицательная, то начинается с «-_» . (Минус и подчёркивание).

Числитель и знаменатель обязательно взаимно простые! Знаменатель обязательно больше числителя.

Вот примеры:

Обозначения Комментарий
2_5/9 Два целых пять девятых
-_3_9/28 Минус три целых девять двадцать восьмых
3_-8/9 Неправильное обозначение! Числитель не может быть отрицательным.
3_8/-9 Неправильное обозначение! Знаменатель не может быть отрицательным.
0_7/55 Неправильное обозначение! Это правильная обыкновенная дробь!
3_0/20 Неправильное обозначение! Это целое число!
4_25/35 Неправильное обозначение! Числитель и знаменатель сократимы!
1_7/3 Неправильное обозначение! Чмслитель больше знаменателя!

 

Задача 1. Приведение к стандартному виду (250 баллов).

 

Нужно сделать программу, которая проверит правильность записи смешанной дроби, и в случае ошибки её исправит. Ошибки могут быть такими:

· Целая часть равна нулю, а значит, это правильная обыкновенная дробь, либо ноль.

· Числитель не меньше знаменателя, и нужно выделить целую часть.

· Числитель и знаменатель имеют общий множитель и надо сократить.

· Числитель равен нулю, а значит, это целое число.

В результате работы программы должна получиться либо правильно записанная смешанная дробь, либо правильная обыкновенная дробь, либо целое число.

Если начальная запись была правильной, то она и должна быть выведена.

Внимательно ознакомьтесь с примерными тестами.

 

Входные данные: в одной строчке три целых положительных числа. Первое отделяется от второго знаком «_», второе от третьего знаком «/». Перед первым числом может стоять «-_». Все 3 числа в пределах 100.

Выходные данные: в зависимости от входных данных, либо одно целое число, либо правильная запись смешанной дроби, либо правильная обыкновенная дробь, записанные по вышеприведённым правилам.

 

Примерные тесты

 

Вход Выход
2_5/9 2_5/9
-_3_9/28 -_3_9/28
5_5/5
-_1_6/2 -4
0_7/3 2_1/3
0_6/3
0_7/55 7/55
3_0/20
4_25/35 4_5/7
1_7/3 3_1/3

 





©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.