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

как сделать эти задачи? - C++

Восстановить пароль Регистрация
 
osipov93
3 / 3 / 0
Регистрация: 17.10.2011
Сообщений: 131
22.12.2011, 00:43     как сделать эти задачи? #1
Лабораторная 4.
Задание: Напишите программу перевода чисел (длиной 8 бит) из одной системы счисления в другую.

-Перевод из системы по основанию 2 в систему по основанию 10;
Указание: программа должна выдавать сообщение если вводимое число не в 2-ой системе. И программа должна переводить дробную часть. те после запятой


Лабораторная 5.
Задание: Напишите программу выполнения арифметических операций в разных системах счисления.
-Числа по основанию 8 и 4. Выполнить операцию умножения.

Добавлено через 5 часов 22 минуты
лабораторную 4 сделал. нужно сделать 5-ую
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
hoot
 Аватар для hoot
100 / 21 / 3
Регистрация: 10.11.2010
Сообщений: 193
22.12.2011, 00:49     как сделать эти задачи? #2
Скинь код 4 лабы. Люди будут искать, твой код поможет.
osipov93
3 / 3 / 0
Регистрация: 17.10.2011
Сообщений: 131
22.12.2011, 00:59  [ТС]     как сделать эти задачи? #3
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
using namespace std;
int main(){
 string str;
 int k=0;
 double ch=0;
 cin>>str;
 int n = str.size();
 for (int i=0; i<n; i++){
        if(str[i] != '1' && str[i] != '0' && str[i] != ',' && str[i] != '.') {
                cout << "Chislo vvedeno neverno" << endl;
                system("pause");
                return 0;
        }
        if ((str[i]==',') || (str[i]=='.')) {
                k=i;
        }
 }
 if (k==0) k=n;
 for (int i=0; i<n; i++){
        if ((str[i]!=',') && (str[i]!='.')){
                k=k-1;
        }
        if (str[i]=='1'){
                ch = ch+(1*pow(2,(double)k));
        }
 }
 cout<<endl<<ch<<endl;
 system("pause");
 return 0;
}
помогите пожалуйста со второй
-=ЮрА=-
Заблокирован
Автор FAQ
22.12.2011, 15:01     как сделать эти задачи? #4
Код ниже складывает и умножает в 8-ной и 16-ной системах
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
using namespace std;
 
int main()
{
    int a,b;
    cout<<"Enter dec value a : ";cin>>a; 
    cout<<"Enter dec value b : ";cin>>b; 
    cout<<"OCT a + b\n";
    cout<<oct<<a + b<<endl;
    cout<<"HEX a + b\n";
    cout<<hex<<a + b<<endl;
    cout<<"OCT a * b\n";
    cout<<oct<<a * b<<endl;
    cout<<"HEX a * b\n";
    cout<<hex<<a * b<<endl;
    system("pause");
    return 0;
}
Миниатюры
как сделать эти задачи?  
osipov93
3 / 3 / 0
Регистрация: 17.10.2011
Сообщений: 131
22.12.2011, 15:17  [ТС]     как сделать эти задачи? #5
нужно умножить числа по основанию 8 и 4 в ответе должно быть число по основанию 4.
diagon
Higher
 Аватар для diagon
1920 / 1186 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
22.12.2011, 15:54     как сделать эти задачи? #6
Если не заморачиваться с длинкой, то как-то так

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
37
38
39
40
41
42
43
44
45
46
47
#include <iostream>
#include <string>
 
long long intpow( int a, int b )
{
    
    if ( b == 0 )
        return 1;
    
    long long c = a;
    
    while ( --b > 0 )
        c *= a;
        
    return c;   
}
 
 
long long x_to_dec( const std::string &a, int radix ) 
{
    long long res = 0;
    
    for (int i = a.length() - 1, k = 0; i >= 0; --i, ++k)
    {
        res += (a[i] - '0') * intpow(radix, k);
    }
    
    return res;
}
 
std::string dec_to_x( long long a, int radix ) //radix не больше 10
{
    std::string res;
    
    while ( a != 0 )
    {
        res.push_back( a % radix + '0' );
        a /= radix;
    }
    
    return std::string( res.rbegin(), res.rend() );
}
 
int main()
{
    std::cout << dec_to_x(  x_to_dec("123", 4) * x_to_dec("123", 8), 4 );
}
osipov93
3 / 3 / 0
Регистрация: 17.10.2011
Сообщений: 131
22.12.2011, 16:31  [ТС]     как сделать эти задачи? #7
программа открывается и сразу закрывается
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.12.2011, 16:33     как сделать эти задачи?
Еще ссылки по теме:

C++ Как перегрузить ++А и А++ и сделать эти перегрузки разными операциями?
C++ Не могу осилить эти задачи

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

Или воспользуйтесь поиском по форуму:
diagon
Higher
 Аватар для diagon
1920 / 1186 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
22.12.2011, 16:33     как сделать эти задачи? #8
http://www.cyberforum.ru/cpp-beginners/thread10807.html
Yandex
Объявления
22.12.2011, 16:33     как сделать эти задачи?
Ответ Создать тему
Опции темы

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