Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.58/40: Рейтинг темы: голосов - 40, средняя оценка - 4.58
0 / 0 / 0
Регистрация: 19.03.2015
Сообщений: 11

Простые Классы (сложение чисел в восьмеричной системе)

20.05.2015, 04:23. Показов 7905. Ответов 25
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Разработать класс, содержащий два члена (назовем их first, second), и следующие методы:
– ввод с клавиатуры Read;
– вывод на экран Display;
– метод, указанный в задании.

Поле first – целое число, целая часть числа, записанного в восьмеричной системе счисления; поле second – положительное целое число, дробная часть числа, записанного в восьмеричной системе счисле-ния. Реализовать метод add8( ) – сложение чисел в восьмеричной системе.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.05.2015, 04:23
Ответы с готовыми решениями:

Сложение в восьмеричной системе
Доброго времени суток. Нужно написать калькулятор сложения чисел в системе счисления с основанием 8. Запрещено использовать операцию +,...

Сложение чисел в восьмеричной системе
Есть задание: сложить два числа в восьмеричной системе. Число передавать в виде списка, где каждая цифра числа - элемент списка. В голове...

Вычитание 2-х чисел в восьмеричной системе счисления
Помогите, пожалуйста, написать программу на С(С++): а)Вычитание 2-х чисел в восьмеричной системе счисления б) Запрограммировать перевод...

25
1 / 1 / 2
Регистрация: 09.04.2015
Сообщений: 16
05.06.2015, 18:18
Сижу над такой же задачей...
Вы не из ТУСУРа случайно?
0
 Аватар для Mamoruhiko
45 / 42 / 48
Регистрация: 13.05.2015
Сообщений: 222
05.06.2015, 19:06
Вот вам небольшая наработка. Осталось только перевести числа из 10-ой в 8-ую и реализовать метод сложения.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include "stdafx.h"
#include <locale>
#include <iostream>
#include <math.h>
using namespace std;
 
class Octal{
public:
    void Read();
    double add8();
private:
    double first;
    double second;
    double number;
    void Display();
};
 
void Octal::Read(){
    setlocale(LC_ALL, ".1251");
    cout << "Введите число в десятичной системе исчисления: ";
    cin >> number;
    second = modf(number, &first);
    Display();
}
 
void Octal::Display(){
    cout << first << "." << second << endl;
}
 
int main(int)
{
    Octal num_1, num_2;
    num_1.Read();
    num_2.Read();
    return 0
}
И рекурсивная функция, выводящая значение числа, записанного в десятичной системе, в восьмеричной.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include "stdafx.h"
#include <iostream>
using namespace std;
 
void convert(const int source, int scile)
{
    if(source)
    {
        convert(source/scile,scile);
        printf("%d",source%scile);
    }
}
int main()
{
    convert(128,2);
}
1
Модератор
Эксперт по электронике
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,871
05.06.2015, 19:11
Цитата Сообщение от Mamoruhiko Посмотреть сообщение
Вот вам небольшая наработка. Осталось только перевести числа из 10-ой в 8-ую и реализовать метод сложения.
зачем????
Цитата Сообщение от Mamoruhiko Посмотреть сообщение
И рекурсивная функция, выводящая значение числа, записанного в десятичной системе, в восьмеричной.
C++
1
printf("%d %o %x",a,a,a);
выведет число a в десятичной восьмеричной и шеснадцетиричной системе

Добавлено через 1 минуту
Цитата Сообщение от Mamoruhiko Посмотреть сообщение
в восьмеричной.
Цитата Сообщение от Mamoruhiko Посмотреть сообщение
convert(128,2)
оригинально
0
 Аватар для Mamoruhiko
45 / 42 / 48
Регистрация: 13.05.2015
Сообщений: 222
05.06.2015, 19:15
Цитата Сообщение от ValeryS Посмотреть сообщение
оригинально
Меня раскусили
0
1 / 1 / 2
Регистрация: 09.04.2015
Сообщений: 16
05.06.2015, 20:01
0_0 не ожидал ответа... Благодарю!
Вот только не пойму, как работает эта строка
C++
1
convert(source/scile,scile)
из функции:
C++
1
2
3
4
5
6
7
8
9
10
11
12
void convert(const int source, int scile)
{
    if(source)
    {
        convert(source/scile,scile);
        printf("%d",source%scile);
    }
}
int main()
{
    convert(128,2);
}
Сумму-то можно реализовать, а вот умножение... Мне умножение надо. Без понятия, как это сделать.
Есть только одна идея: перевести числа в 8-ую и умножение реализовывать поразрядно, например 345(в8-ой)*765(в8-ой) сделать поэтапно: proizvedenie=345*5+345*60+345*700.
P.S. А можно ли создать свой тип данных восьмеричный?!
0
 Аватар для Mamoruhiko
45 / 42 / 48
Регистрация: 13.05.2015
Сообщений: 222
05.06.2015, 20:27
Цитата Сообщение от brine38 Посмотреть сообщение
0_0 не ожидал ответа... Благодарю!
Вот только не пойму, как работает эта строка
Это рекурсия
Эта рекурсивная функция не записывает значение числа в восьмеричной системе исчисления, а всего лишь выводит его по цифрам.
Цитата Сообщение от brine38 Посмотреть сообщение
Сумму-то можно реализовать, а вот умножение... Мне умножение надо. Без понятия, как это сделать.
Есть только одна идея: перевести числа в 8-ую и умножение реализовывать поразрядно, например 345(в8-ой)*765(в8-ой) сделать поэтапно: proizvedenie=345*5+345*60+345*700.
P.S. А можно ли создать свой тип данных восьмеричный?!
У меня есть идея, не знаю насколько она бредовая. Можно произвести умножение в десятичной системе, а потом просто перевести результат в восьмеричную и вывести на экран.

Добавлено через 12 минут
Я бы смог реализовать Ваше ТЗ полностью, если бы знал как перевести или хотя бы вывести дробную часть числа (то бишь число типа double) из 10-ой системы в 8-ую. Однако решений пока найти не могу
1
Модератор
Эксперт по электронике
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,871
05.06.2015, 20:40
Mamoruhiko,
не подскажешь какими числами оперирует компьютер?
откуда там десятичные то взялись?
том более в double
https://ru.wikipedia.org/wiki/IEEE_754-2008
https://ru.wikipedia.org/wiki/... й_точности
0
 Аватар для Mamoruhiko
45 / 42 / 48
Регистрация: 13.05.2015
Сообщений: 222
05.06.2015, 20:43
Ваш преподаватель определенно знает толк в извращениях

Добавлено через 2 минуты
ValeryS, верное замечание, пардоньте
0
-80 / 27 / 1
Регистрация: 14.03.2015
Сообщений: 811
05.06.2015, 20:47
brine38, Вы знаете в Томске хорошего репетитора по С++?
0
 Аватар для Mamoruhiko
45 / 42 / 48
Регистрация: 13.05.2015
Сообщений: 222
05.06.2015, 21:30
gogaloh, зачем Вам репетитор? Есть Интернет.
1
1 / 1 / 2
Регистрация: 09.04.2015
Сообщений: 16
06.06.2015, 05:32
gogaloh, Нет, не знаю.
Mamoruhiko,
Цитата Сообщение от Mamoruhiko Посмотреть сообщение
Я бы смог реализовать Ваше ТЗ полностью, если бы знал как перевести или хотя бы вывести дробную часть числа (то бишь число типа double) из 10-ой системы в 8-ую. Однако решений пока найти не могу
То есть можно реализовать произведение в восьмеричной системе напрямую, без произведения в десятичной?
А можно ли создать свой тип данных восьмеричный? - Среди присутствующих никто не знает\ не умеет?
0
43 / 43 / 12
Регистрация: 06.10.2014
Сообщений: 135
06.06.2015, 08:56
Цитата Сообщение от Mamoruhiko Посмотреть сообщение
Я бы смог реализовать Ваше ТЗ полностью, если бы знал как перевести или хотя бы вывести дробную часть числа (то бишь число типа double) из 10-ой системы в 8-ую. Однако решений пока найти не могу
А зачем переводить из 10-й в 8-ю сист. счисления? Правила арифметики теже самые, только цифр меньше. Соответственно, 8(dec) = 10(oct), 9(dec) = 11(oct) и т.д. Что сложного сложить 77.77(oct) + 12.34(oct) = 112.33(oct). Вычитанее не сложнее.
Цитата Сообщение от brine38 Посмотреть сообщение
То есть можно реализовать произведение в восьмеричной системе напрямую, без произведения в десятичной?
Конечно можно. Десятичная система счисления получила наибольшее распространение благодаря тому, что у человека 10 пальцев на руках. Было бы 12, то и система счисления была бы другой. И вы бы воспринимали ее точно так же как десятичную.
Цитата Сообщение от brine38 Посмотреть сообщение
А можно ли создать свой тип данных восьмеричный? - Среди присутствующих никто не знает\ не умеет?
Конечно можно. Знают и умеют.
1
Модератор
Эксперт по электронике
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,871
06.06.2015, 09:31
Цитата Сообщение от ViktorB Посмотреть сообщение
Было бы 12, то и система счисления была бы другой.
она кстати была
отголоски её аналоговые часы, да и все эти дюймовые системы основаны на "дюжине"
компьютер считает в двоичной системе, которую проще переводить в восьмеричную, чем в десятичную, бей по 3 бита и все
Цитата Сообщение от brine38 Посмотреть сообщение
Среди присутствующих никто не знает\ не умеет?
вместо того чтобы плакаться здесь уже две недели прочитал бы системы счисления и с чем их едят
выложил бы свои наработки, а то ждешь чтобы за тебя написали
Mamoruhiko, скинул код вывода на дисплей
Цитата Сообщение от Mamoruhiko Посмотреть сообщение
void convert
код не идеальный но вполне рабочий, правда он там оставил маленькую "засаду", чтобы втупую не списывали
пост №3, сможешь найти?

Добавлено через 1 минуту
Цитата Сообщение от brine38 Посмотреть сообщение
То есть можно реализовать произведение в восьмеричной системе напрямую,
Цитата Сообщение от creonis Посмотреть сообщение
Реализовать метод add8( ) – сложение чисел в восьмеричной системе.
плюрализм мнений, в отдельно взятой голове?
1
06.06.2015, 09:38

Не по теме:

Цитата Сообщение от ValeryS Посмотреть сообщение
То есть можно реализовать произведение в восьмеричной системе напрямую,
Возможно у него вариант другой

0
06.06.2015, 09:41

Не по теме:

Цитата Сообщение от ViktorB Посмотреть сообщение
Возможно у него вариант другой
Пардон, не заметил что авторы разные :cry:
снимаю свое предположение:(

0
1 / 1 / 2
Регистрация: 09.04.2015
Сообщений: 16
06.06.2015, 10:12
ValeryS,
Спасибо за внимание. Да, действительно, варианты разные.
Честно я не люблю готовый код: я люблю сам копаться, разбираться.
Но когда приходит ступор (голова перестаёт работать или найти ничего не могу), либо не могу разобраться, начинаю спрашивать у народа.

Проблема решена: сегодня преподаватель (ТУСУР) сказал, что не нужно реализовывать все действия непосредственно в указанной системе счисления (8-ной), достаточно создать класс с методами перевода из одной системы в другую. В данном случае два метода: для целой и для дробной частей числа - с этим я справлюсь.
Если попадётся информация о работе с другими система счисления - с удовольствием изучу на досуге.
0
Модератор
Эксперт по электронике
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,871
06.06.2015, 10:18
Цитата Сообщение от brine38 Посмотреть сообщение
достаточно создать класс с методами перевода из одной системы в другую.
нафига козе боян
C++
1
2
3
int i;
scanf("%o",&i);// вводит в восмеричной
printf("%o",i); // выводит в восмеричной
для cin cout тоже что то подобное есть, oct по моему, но точно сказать не могу
Си, а равно и плюсы, может работать,без лишних напрягов, с тремя системами счисления восьмеричной, десятичной, и шестнадцатеричной
0
43 / 43 / 12
Регистрация: 06.10.2014
Сообщений: 135
06.06.2015, 16:38

Не по теме:

Цитата Сообщение от brine38 Посмотреть сообщение
Проблема решена: сегодня преподаватель (ТУСУР) сказал, что не нужно реализовывать все действия непосредственно в указанной системе счисления (8-ной), достаточно создать класс с методами перевода из одной системы в другую.
Цените, он вас от армии спасает в наше не спокойное время, а вы за контрольную жмотитесь заплатить.

0
 Аватар для Mamoruhiko
45 / 42 / 48
Регистрация: 13.05.2015
Сообщений: 222
06.06.2015, 21:44
Соль вся в том, что в восьмеричной системе счисления нужно представить дробную часть числа. Целочисленные-то значения без проблем можно выводить С-яшными функциями, с этим никто и не спорил.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.06.2015, 21:44
Помогаю со студенческими работами здесь

Деление чисел в восьмеричной системе счисления
Ребята, кто разбирается , help me! Разделите 22 в восьмеричной системе счисления на 15 в восьмеричной системе счисления. Напишите полное...

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

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

Найдите количество счастливых чисел записанных в восьмеричной системе счисления
Назовём натуральное число N (10000 (8 система счисления) ≤ N ≤ 77777 (8 система счисления)) счастливым, если суммы двух первых и двух...

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


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
BOINC: 22 года — и всё ещё работает
Programma_Boinc 12.03.2026
BOINC: 22 года — и всё ещё работает Дэвид Андерсон написал ретроспективу. Кратко: в 2001 году он ушёл из United Devices, где был CTO, и за несколько месяцев написал ядро BOINC — клиент, сервер,. . .
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru