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

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

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

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

Поле first – целое число, целая часть числа, записанного в восьмеричной системе счисления; поле second – положительное целое число, дробная часть числа, записанного в восьмеричной системе счисле-ния. Реализовать метод add8( ) – сложение чисел в восьмеричной системе.
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.05.2015, 04:23
Ответы с готовыми решениями:

Сложение в восьмеричной системе
Доброго времени суток. Нужно написать калькулятор сложения чисел в системе счисления с основанием...

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

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

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

25
1 / 1 / 2
Регистрация: 09.04.2015
Сообщений: 16
05.06.2015, 18:18 2
Сижу над такой же задачей...
Вы не из ТУСУРа случайно?
0
42 / 40 / 47
Регистрация: 13.05.2015
Сообщений: 222
05.06.2015, 19:06 3
Вот вам небольшая наработка. Осталось только перевести числа из 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
Модератор
Эксперт по электронике
8495 / 6321 / 855
Регистрация: 14.02.2011
Сообщений: 21,914
05.06.2015, 19:11 4
Цитата Сообщение от Mamoruhiko Посмотреть сообщение
Вот вам небольшая наработка. Осталось только перевести числа из 10-ой в 8-ую и реализовать метод сложения.
зачем????
Цитата Сообщение от Mamoruhiko Посмотреть сообщение
И рекурсивная функция, выводящая значение числа, записанного в десятичной системе, в восьмеричной.
C++
1
printf("%d %o %x",a,a,a);
выведет число a в десятичной восьмеричной и шеснадцетиричной системе

Добавлено через 1 минуту
Цитата Сообщение от Mamoruhiko Посмотреть сообщение
в восьмеричной.
Цитата Сообщение от Mamoruhiko Посмотреть сообщение
convert(128,2)
оригинально
0
42 / 40 / 47
Регистрация: 13.05.2015
Сообщений: 222
05.06.2015, 19:15 5
Цитата Сообщение от ValeryS Посмотреть сообщение
оригинально
Меня раскусили
0
1 / 1 / 2
Регистрация: 09.04.2015
Сообщений: 16
05.06.2015, 20:01 6
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
42 / 40 / 47
Регистрация: 13.05.2015
Сообщений: 222
05.06.2015, 20:27 7
Цитата Сообщение от brine38 Посмотреть сообщение
0_0 не ожидал ответа... Благодарю!
Вот только не пойму, как работает эта строка
Это рекурсия
Эта рекурсивная функция не записывает значение числа в восьмеричной системе исчисления, а всего лишь выводит его по цифрам.
Цитата Сообщение от brine38 Посмотреть сообщение
Сумму-то можно реализовать, а вот умножение... Мне умножение надо. Без понятия, как это сделать.
Есть только одна идея: перевести числа в 8-ую и умножение реализовывать поразрядно, например 345(в8-ой)*765(в8-ой) сделать поэтапно: proizvedenie=345*5+345*60+345*700.
P.S. А можно ли создать свой тип данных восьмеричный?!
У меня есть идея, не знаю насколько она бредовая. Можно произвести умножение в десятичной системе, а потом просто перевести результат в восьмеричную и вывести на экран.

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

Добавлено через 2 минуты
ValeryS, верное замечание, пардоньте
0
20 / 27 / 1
Регистрация: 14.03.2015
Сообщений: 792
05.06.2015, 20:47 10
brine38, Вы знаете в Томске хорошего репетитора по С++?
0
42 / 40 / 47
Регистрация: 13.05.2015
Сообщений: 222
05.06.2015, 21:30 11
gogaloh, зачем Вам репетитор? Есть Интернет.
1
1 / 1 / 2
Регистрация: 09.04.2015
Сообщений: 16
06.06.2015, 05:32 12
gogaloh, Нет, не знаю.
Mamoruhiko,
Цитата Сообщение от Mamoruhiko Посмотреть сообщение
Я бы смог реализовать Ваше ТЗ полностью, если бы знал как перевести или хотя бы вывести дробную часть числа (то бишь число типа double) из 10-ой системы в 8-ую. Однако решений пока найти не могу
То есть можно реализовать произведение в восьмеричной системе напрямую, без произведения в десятичной?
А можно ли создать свой тип данных восьмеричный? - Среди присутствующих никто не знает\ не умеет?
0
43 / 43 / 12
Регистрация: 06.10.2014
Сообщений: 135
06.06.2015, 08:56 13
Цитата Сообщение от 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
Модератор
Эксперт по электронике
8495 / 6321 / 855
Регистрация: 14.02.2011
Сообщений: 21,914
06.06.2015, 09:31 14
Цитата Сообщение от ViktorB Посмотреть сообщение
Было бы 12, то и система счисления была бы другой.
она кстати была
отголоски её аналоговые часы, да и все эти дюймовые системы основаны на "дюжине"
компьютер считает в двоичной системе, которую проще переводить в восьмеричную, чем в десятичную, бей по 3 бита и все
Цитата Сообщение от brine38 Посмотреть сообщение
Среди присутствующих никто не знает\ не умеет?
вместо того чтобы плакаться здесь уже две недели прочитал бы системы счисления и с чем их едят
выложил бы свои наработки, а то ждешь чтобы за тебя написали
Mamoruhiko, скинул код вывода на дисплей
Цитата Сообщение от Mamoruhiko Посмотреть сообщение
void convert
код не идеальный но вполне рабочий, правда он там оставил маленькую "засаду", чтобы втупую не списывали
пост №3, сможешь найти?

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

Не по теме:

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

0
ValeryS
06.06.2015, 09:41
  #16

Не по теме:

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

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

Проблема решена: сегодня преподаватель (ТУСУР) сказал, что не нужно реализовывать все действия непосредственно в указанной системе счисления (8-ной), достаточно создать класс с методами перевода из одной системы в другую. В данном случае два метода: для целой и для дробной частей числа - с этим я справлюсь.
Если попадётся информация о работе с другими система счисления - с удовольствием изучу на досуге.
0
Модератор
Эксперт по электронике
8495 / 6321 / 855
Регистрация: 14.02.2011
Сообщений: 21,914
06.06.2015, 10:18 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 19

Не по теме:

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

0
42 / 40 / 47
Регистрация: 13.05.2015
Сообщений: 222
06.06.2015, 21:44 20
Соль вся в том, что в восьмеричной системе счисления нужно представить дробную часть числа. Целочисленные-то значения без проблем можно выводить С-яшными функциями, с этим никто и не спорил.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.06.2015, 21:44

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

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

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

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

Перевод чисел в двоичную систему счисления, сложение чисел в двоичной системе
Задание 7 Задания к работе 1. Перевести данное число из десятичной системы счисления в двоичную,...

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


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

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

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