Форум программистов, компьютерный форум CyberForum.ru

Только операции и функции для работы с символами, строками и целыми числами - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 5.00
vinternete
2 / 3 / 1
Регистрация: 02.11.2010
Сообщений: 129
17.02.2011, 18:41     Только операции и функции для работы с символами, строками и целыми числами #1
Пусть ЭВМ не умеет работать с вещественными числами, а имеет только операции и функции для работы с символами, строками и целыми числами.
Реализовать функции для:
а) ввода;
б) вывода;
в) сложения;
г) вычитания;
д) умножения.
вещественных чисел. (Числа вводятся как строки, разделяются на целую и дробную части, и над ними, как над целыми числами, с учетом межразрядных переносов, выполняются операции.))

Суть задачи ясна, и как делать в принципе тоже, но мне не понятно как сделать ввод чисел, т.к. вещественные комп "не знает", а без вещественных надо целую часть и дробную вводить отдельно, и над этими частями проводить действия, а если
Целая\дробная часть
...0\5
+
...0\5
=
...0\10
а надо
=
...1\0
как их объеденить?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.02.2011, 18:41     Только операции и функции для работы с символами, строками и целыми числами
Посмотрите здесь:

Функции библиотеки для работы со строками и символами Вариант 18 Павловской C++
C++ Работа с символами, строками и целыми числами
Функции библиотеки для работы со строками и символами. С++ C++
Создать класс Hex для работы с беззнаковыми целыми шестнадцатеричными числами C++
Текстовые файлы. Функции библиотеки для работы со строками и символами C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Байт
 Аватар для Байт
13941 / 8772 / 1220
Регистрация: 24.12.2010
Сообщений: 15,872
17.02.2011, 23:18     Только операции и функции для работы с символами, строками и целыми числами #2
vinternete, можно представить действительное число, как массив из 2-х целых чисел, или как структуру из тех же 2-х целых, или как класс с 2-мя целыми полями данных....

Добавлено через 1 минуту
Написать функцию сложения и т.д или перегрузить операции
vinternete
2 / 3 / 1
Регистрация: 02.11.2010
Сообщений: 129
20.02.2011, 19:10  [ТС]     Только операции и функции для работы с символами, строками и целыми числами #3
думал, что простая задача, но начал писать и наткнулся на множество непонятностей. Если у кого есть возможность написать эту задачку хотя бы с парой функций (+ и *) а я по примеру допишу.
vinternete
2 / 3 / 1
Регистрация: 02.11.2010
Сообщений: 129
20.02.2011, 19:38  [ТС]     Только операции и функции для работы с символами, строками и целыми числами #4
Пусть ЭВМ не умеет работать с вещественными числами, а имеет только операции и функции для работы с символами, строками и целыми числами.
Реализовать функции для:
а) ввода;
б) вывода;
в) сложения;
г) вычитания;
д) умножения.
вещественных чисел. (Числа вводятся как строки, разделяются на целую и дробную части, и над ними, как над целыми числами, с учетом межразрядных переносов, выполняются операции.))
Если кто может помочь с задачей помогите, т.к. не могу даже представить как её сделать, буду очень благодарен.
Байт
 Аватар для Байт
13941 / 8772 / 1220
Регистрация: 24.12.2010
Сообщений: 15,872
20.02.2011, 19:57     Только операции и функции для работы с символами, строками и целыми числами #5
Мне больше нравятся функции...
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
typedef { int c, d; } Dec;
Dec Add(Dec a, Dec b)
{ Dec r; int la, lb, pw, x;
   r.c = a.c + b.c;
   la = 0;
   x = a.d;
   while (x!=0) { la++; x /=10; } // Подсчет кол-ва цифр
   lb = 0;
   x = b.d;
   while (x!=0) { lb++; x /=10; } // Подсчет кол-ва цифр
   if (la < lb) while(la<lb) { a.d *= 10; la++; } // Выравнивание кол-ва цифр
   else  while(lb<la) { b.d *= 10; lb++ }
   x = r.d = a.d + b.d;
   pw = 1;
   for(i=0; i<la; i++) pw *= 10;
   if (x / pw) > 0)  { r.c++; r.d %= pw; }
   return r;
}
Как-то так. Моделируем работу школьника 3-го класса. Теперь понятно, что школьникам приходится несладко
vinternete
2 / 3 / 1
Регистрация: 02.11.2010
Сообщений: 129
24.02.2011, 17:01  [ТС]     Только операции и функции для работы с символами, строками и целыми числами #6
Числа вводятся как строки, разделяются на целую и дробную части, и над ними, как над целыми числами, с учетом межразрядных переносов, выполняются операции.))
как это осуществить? число вводится так
строка: 123(./,)456
получаем:
c1=123
d1=456
строка2: 345(,/.)0321
c2= 345
d2=0321 ???????
или я чего то недопонимаю?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.03.2011, 12:15     Только операции и функции для работы с символами, строками и целыми числами
Еще ссылки по теме:

C++ Создать односвязный список на основе вектора для работы с целыми числами
Функции библиотеки для работы со строками и символами C++
C++ Матрицы с символами и числами. Простейшие операции

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

Или воспользуйтесь поиском по форуму:
Байт
 Аватар для Байт
13941 / 8772 / 1220
Регистрация: 24.12.2010
Сообщений: 15,872
07.03.2011, 12:15     Только операции и функции для работы с символами, строками и целыми числами #7
Ты прав. Это я недоучел. Придется хранить действительное число в виде трех целых чисел.
Третье указывает кол-во знаков после запятой или кол-во лидирующих нулей в дробной части.
Соответственно и алгоритм несколько усложняется и у нас еще больше оснований пожалеть третьеклассника и изумиться - а как же это ему удается?
Yandex
Объявления
07.03.2011, 12:15     Только операции и функции для работы с символами, строками и целыми числами
Ответ Создать тему
Опции темы

Текущее время: 05:43. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru