Консультация № 185537
04.03.2012, 13:40
0.00 руб.
0 4 1
Здравствуйте, уважаемые эксперты! Повторно прошу вас ответить на следующий вопрос:
Текстовый файл содержит пары чисел. Каждая пара на новой строке, между двумя числами в строке один или несколько пробелов. Программа по очереди читает пары и выполняет деление с остатком в 10-чной системе счисления. В случае возникновения ошибочной ситуации выдается соответствующее сообшение
Пример
-----
in.txt
57 6
18 2
121 7
-5 75
4.5 2
12 0
68

-----
out.txt
57/6 = 9(3)
18/2 = 9
121/7 = 17(2)
-5/75 -5 отрицательное
4.5/2 4.5 дробное
12/0 деление на 0
68/ отсутствует делитель

Спасибо.

Обсуждение

давно
Академик
320937
2216
04.03.2012, 13:42
общий
Добрый день, дамы и господа! Не стесняйтесь: ответы, алгоритмы, идеи..
давно
Академик
320937
2216
08.03.2012, 08:18
общий
Уважаемые эксперты! Напоминаю, что все задачи в разделе - в рамках учебной программы. Срок сдачи - 11 марта
давно
Академик
320937
2216
08.03.2012, 11:38
общий
Спасибо, Антон, что откликнулся. Эксперты посмотрят, и можно выкладывать в ответ.
Неизвестный
11.03.2012, 10:00
общий
это ответ
Здравствуйте, lamed!

Код:

/**
* Выполнил: Тимохин Антон. группа: к36п. 03.03.2012 | 17:50
* ------------------------------------------------------------------
* Текстовый файл содержит пары чисел. Каждая пара на новой строке, между двумя числами в строке один или несколько пробелов. Программа по очереди читает пары и выполняет деление с остатком в 10-чной системе счисления. В случае возникновения ошибочной ситуации выдается соответствующее сообшение
* Пример
* -----
* in.txt
* 57 6
* 18 2
* 121 7
* -5 75
* 12 0
*
* -----
* out.txt
* 57/6 = 9(3)
* 18/2 = 9
* 121/7 = 17(2)
* -5/75 -5 отрицательное
* 12/0 деление на 0
* -----------------------------------------------------------
*/
#include <iostream>
#include <cstdlib>
#include <fstream>

using namespace std;

int main()
{

system("chcp 1251 > nul");

ifstream in("Data.txt");
///Solution - решение
ofstream out("Solution.txt");

float one, two;
///OPEN FILE - открытие файла, берем данные первое число(one) и второе число(two).
while ( in >> one >> two)
{

///OUT - вывод
out << one << '/' << two;
if (two==0)
out << " деление на 0" << endl;
else if (one<0)
out << ' ' << one << " отрицательное число" << endl;
else if (two<0)
out << ' ' << two << " отрицательное число" << endl;
else
{
int dd=one / two; // определяет ответ (в дальнейшем)
int dd2=dd*two;
int ostatok=one - dd2; // определяет остаток
if (ostatok!=0)
out << " = " << dd << '(' << ostatok << ')' << endl;
else
out << " = " << dd << endl;
}
}

cout << "Ответ в папке программы!" << endl;
system("pause");

return 0;
}


Вот программа, она обрабатывает всё, кроме некоторых чисел: 4.5 2 (4.5/2 4.5 дробное) и 68 (68/ отсутствует делитель).
5
Спасибо, Антон!
Форма ответа