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

Разработка двоичного калькулятора (небольшие недочеты) - C++

Восстановить пароль Регистрация
 
dmitriu098
0 / 0 / 0
Регистрация: 16.04.2013
Сообщений: 17
26.04.2014, 02:59     Разработка двоичного калькулятора (небольшие недочеты) #1
Добрый вечер форумчане! Прошу помощи в описании некоторой части кода. Исходное задание: Необходимо создать двоичный калькулятор, выполняющий ("+","-", "*", "/"). Калькулятор в рабочем состоянии. (в поля вводим изначальные значения (в двоичном виде)
C++ (Qt)
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
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
int dvh1();
int dvh02();
int dvh2(int d);
 
int main(int argc, char** argv) {
int elem1, elem2;
int c, d, dd, a, b;
while (c != 0)
{
cout<<"Dobro pogalovat!\n";
cout<<"1 - Slogenie\n";
cout<<"2 - Vichetanie\n";
cout<<"3 - Delenie\n";
cout<<"4 - Ymnogenie\n";
cout<<"0 - Vihod\n";
cin >> c;
switch (c)//выбор действия
{
case 1://сложение
{
elem1 = dvh1();
elem2 = dvh02();
d=elem1+elem2 ;
dvh2(d);
cout << endl;
}
break;
case 2://вычитание
{
elem1 = dvh1();
elem2 = dvh02();
d=elem1-elem2;
dvh2(d);
cout << endl;
}
break;
case 3://деление
{
elem1 = dvh1();
elem2 = dvh02();
d=elem1/elem2;
dvh2(d);
cout << endl;
}
break;
case 4://умножение
{
elem1 = dvh1();
elem2 = dvh02();
 
d=elem1*elem2;
dvh2(d);
cout << endl;
}
break;
}
}
return 0;
}
int dvh1()//описание первого двоичного числа
{
int y=0, a=0,i,count=0,j,as,sa;
char str[50];//максимальная разрядность числа
cout<<"Vvedite pervoe dvoichnoe chislo:\n";
cin>>str;//вводим первое число
for (i=0; str[i]!='\0'; i++)
{
if (str[i]!=' ')
{
count++;//значение увеличивается
}
}
int mas[count];//позиции разрядов в числе
char popo;
for (i=0; i<count; i++)//счетчик увеличивается, пока не достигнет последнего элемента в числе
{
popo=str[i];
switch (popo)//цифры из множества (0;1)
{
case '0': {mas[i]=0;} break; 
case '1': {mas[i]=1;} break;
}
}
for (i=0; i<count; i++)
{
sa=((count-i)-1);
a=a+(mas[i]*(pow(2,sa)));
}
return a;
}
int dvh02()//описание второго двоичного числа
{
int y=0, b=0,i,count=0,j,as,sa;
char str[50];
cout<<"Vvedite vtoroe dvoichnoe chislo:\n";
cin>>str;
for (i=0; str[i]!='\0'; i++)
{
if (str[i]!=' ')
{
count++;
}
}
int mas[count];//позиции разрядов в числе(порядковый номер)
char popo;
for (i=0; i<count; i++)//счетчик увеличивается, пока не достигнет последнего элемента в числе
{
popo=str[i];
switch (popo)//цифры из множества (0;1)
{
case '0': {mas[i]=0;} break;
case '1': {mas[i]=1;} break;
}
}
for (i=0; i<count; i++)//счетчик увеличивается, пока не достигнет последнего элемента в числе
{
sa=((count-i)-1);
b=b+(mas[i]*(pow(2,sa)));
}
return b;
}
int dvh2(int d)//выполнение преобразований над вводимыми значениями
{
int i=0, b=0, dd=0,bb=0;
dd = d;
bb = d;
for (i=0; ; i++)
{
b++;
d=d/2;
if (d<2)
{
break;
}
}
b=b+1;//количество разрядов двоичного числа
int cel[b],ost[b],dvoich[b];
int trans = 0;
for (i=0; i<b; i++)
{
cel[i]=bb/2;
ost[i]=cel[i];
bb=bb/2;
cel[i]=dd-(cel[i]*2);
dd=ost[i];
dvoich[(b-1)-i]=cel[i];
}
for (i=0; i<b; i++)
{
cout<< dvoich[i];
}
return dvoich[i];
}
Буду благодарен за описание, спасибо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.04.2014, 02:59     Разработка двоичного калькулятора (небольшие недочеты)
Посмотрите здесь:

C++ Исправить недочеты в программе (лаба №4)
C++ Конструктор копирования, найти недочеты в программном коде
C++ Выполнил задачу. Укажите на недочеты
C++ Открытие файла, найти недочеты в коде
C++ Замена слов в цикле. Найти недочеты в коде
Разность множеств: найти недочеты в коде C++
Составить программу для двоичного калькулятора на реальном железе C++
Проверьте решение на ошибки и недочеты C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Komi
 Аватар для Komi
6 / 6 / 2
Регистрация: 10.08.2012
Сообщений: 82
26.04.2014, 04:29     Разработка двоичного калькулятора (небольшие недочеты) #2
Времени сейчас нет на чтение всей этой саги, но могу направить на идею:

создай конвертер из бинарного в десятиричную, выполняй функции на десятиричной, и конвертируй опять в бинарное.
Yandex
Объявления
26.04.2014, 04:29     Разработка двоичного калькулятора (небольшие недочеты)
Ответ Создать тему
Опции темы

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