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

Помоги написать программу для сложение чисел в 15ричной системе счисления - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Предусмотреть в программе просмотр бинарного файла и выполнить его обработку http://www.cyberforum.ru/cpp-beginners/thread412996.html
Имеется информация о телевизорах на складе: наименование, фирма изготовитель, стоимость, размер экрана, количество на складе. Для описания информации о телевизорах на складе в про-грамме необходимо...
C++ Подпрограмма умножения 2 матриц #include<iostream.h> const int N=20;const int M=25; double m,l,n; void d(double x,double y,double z) void main () { int i,j; for(i=0;i<N;i++) for(j=0;j<M;j++) { c=0; http://www.cyberforum.ru/cpp-beginners/thread412995.html
C++ С++ классы. не могу создать производный клас нормально.
помогите плиз. у меня задания вариант 19 Задание 1. Создать класс «Дата». Данные класса - день, месяц и год. Создать конструктор произвольной даты, конструктор по умолчанию и копирования,...
C++ Перевод из pascal в С++
Program lab; var i,j,im,jm:integer; A:array of real; C:array of real; k,m,s:real; A_1:array of real; Begin For i:=1 to 5 do For j:=1 to 5 do begin write ('A=');
C++ Циклический алгоритм http://www.cyberforum.ru/cpp-beginners/thread412972.html
очень прошу помогите написать программу
C++ нужно переделать код (из Файлы текстовые (FILE*) в Файлы текстовые (потоки)) вот задание для программы: 6. Задан текстовый файл input.txt. Требуется определить строки этого файла, содержащие максимальную по длине подстроку, состоящую из одинаковых символов латинского... подробнее

Показать сообщение отдельно
Van
Сообщений: n/a

Помоги написать программу для сложение чисел в 15ричной системе счисления - C++

21.12.2011, 19:50. Просмотров 587. Ответов 0
Метки (Все метки)

Я только начал заниматься Си++ и не могу написать программу для сложение и вычитания чисел в пятнацатиричной системе, пробовал написать и вот, что получилось, мож кто подскажет, что нужно исправить или нужно её заново уже другим способом саписать???

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
48
49
50
51
52
53
54
55
#include "stdafx.h"
#include <iostream>
#include <math.h>
#include <stdio.h>
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{   int p,n,i,y,u,r;
    
  int h[15];
  int v[15];
  int m[16];
   int a,b,c,d,e;
   int h[]={0,1,2,3,4,5,6,7,8,9,a,b,c,d,e};
   int v[]={0,1,2,3,4,5,6,7,8,9,a,b,c,d,e};
   cout<<"A";
   cin>>h[u];
   cout<<"B";
   cin>>v[r];
     
     {
         {
   if((h[u]+v[r])>=e)
      {p=1;
          m[n]=h[u]+v[r]+p;
      
      }
      else 
          p=0;
          m[n]=h[u]+v[r];
                     
     
         }
      {
   if((h[u]-v[r])>=-e)
      {p=-1;
          m[n]=h[u]+v[r]+p;
      
      }
      else 
          p=0;
          m[n]=h[u]-v[r];
      }
      
   char znak;
         
   switch (znak)
    { 
    case '+':y=m[n];break;
    case '-':y=h[u]-v[r];break;
    default:cout<<"neverno vveli znak";
         }  
   cout<<"y"<<y;
    return 0;
}
Добавлено через 22 часа 5 минут
Написал программку иначе
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
#include "stdafx.h"
#include <iostream>;
#include <math.h>;
using namespace std;
int ma[11];
int mb[11];
int a,b,c,d,e,f,g,h,j,k,l,m,n,o,p,q,r,s,t,v,w,x,y,z,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,by,bu,bv;
int i,u;
int *um;
int razl(int a, int n)
{
int b;
b=fmod(a,10.*n);
return b;
}
int pm (int c, int d, int e, int f,int g, int h,int i,int j,int k,int l, int bc, int bd, int be,int bf,int bg,int bh,int bi,int bj,int bk,int bl, int t) 
{
int x,y,z,u,w;
int ma[11]={0,c,d,e,f,g,h,i,j,k,l};
int mb[11]={0,bc,bd,be,bf,bg,bh,bi,bj,bk,bl};
int mc[11];
z=0.;
 
 
if (t==0.) {
for (int i=10; i>0; i--)
{
if(ma[i]>0 || mb[i]>0)
{
if(mc[i]>10)
{
mc[i+1]++;
mc[i]-=10;
}
}
}
}
if (t==1.) {
for (int i=10.; i>0.; i--)
{
if(ma[i]>0. || mb[i]>0)
{
if(mb[i]>ma[i])
{
ma[i-1]--;
ma[i]+=10;
mc[i]=ma[i]-mb[i];
}else
{
mc[i]=ma[i]-mb[i];
}
}
}
}
for(int i=10.; i>0.; i--)
{
if(i==10)
{
z+=mc[i];
}else{
z+=mc[i]*pow(10.,10-i);
}
}
return mc[10];
}
int _tmain(int argc, _TCHAR* argv[])
{
cout<<"Vvedite dva chisla"<<'\n';
cin>>a;
cin>>b;
n=1;
for (int i=10; i>0; i--)
{
if(i==10)
{
c=fmod(a,10.);
}else
{
c=(fmod(a,pow(10.,(10.-(i-1))))-ma[i])/pow(10,(10.-i));
}
ma[i]=c;
}
for (int i=10; i>0; i--)
{
if(i==10)
{
c=fmod(b,10.);
}else{
c=(fmod(b,pow(10.,(10.-(i-1.))))-mb[i])/pow(10,(10.-i));
}
mb[i]=c;
}
cout<<"Vvedite nomer operacii"<<'\n';
cin>>t;
if(t==0. || t==1.){
cout<<pm(ma[1],ma[2],ma[3],ma[4],ma[5],ma[6],ma[7],ma[8],ma[9],ma[10],mb[1],mb[2],mb[3],mb[4],mb[5],mb[6],mb[7],mb[8],mb[9],mb[10],t)<<'\n';
}else if(t==2)
{
cout<<"vvedite nomer chisla"<<'\n';
cin>>v;
cout<<"vvedite nomer cifry"<<'\n';
cin>>u;
if(v==1.){
if(u>0. && u<11.){
int *um=&ma[u];
cout<<*um;
}else{
cout<<"chislo ne popadaet v dopystimie znachenija"<<'\n';
}
}else if(v==2.){
if(u>0. && u<11.){
int *um=&mb[u];
cout<<*um;
}else{
cout<<"chislo ne popadaet v dopystimie znachenija"<<'\n';
}
}
}else
{
cout<<"znachenie t ne popudaet v dopustimie predely"<<'\n';
 
}
cout<<pm(0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,1,0)<<'\n';
cout<<'\n';
//cout<<(fmod(a,pow(10.,(10.-(9.-1.))))-ma[10])/pow(10,(10.-9.));
system("pause");
return 0;
}
 Комментарий модератора 
Используйте теги форматирования кода!
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru