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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
Mr. Pyatachok
8 / 8 / 0
Регистрация: 30.06.2011
Сообщений: 250
#1

Поэлементно сложить два массива - C++

19.07.2012, 18:49. Просмотров 1196. Ответов 2
Метки нет (Все метки)

Всем привет, сижу делаю задание:
суть такова:
надо поэлементно сложить 2 массива, но при этом массивы вводятся в виде unsigned char
необходимо из первого введенного массива, перекинуть значения в класс Hex, где значения массива вводятся в шестнадцатеричной системе исчисления в числовой вид
необходимо из первого введенного массива, перекинуть значения в класс Money, где значения массива надо привести в числовой вид
при этом сложение полученных массивов должно быть написано с помощюь переопределения виртуальной функции
вот накидал быдлокод, помогите реализовать задачу
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
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
#include <iostream.h>
#include <conio.h>
 
class Array
{
        public:
    static const int limit=10;
    unsigned char massiv[limit];
    int znachenie,kol;
        public:
    Array();
    Array(int kol,int znachenie);
    ~Array(){};
 
    virtual void Summa(Array a,Array b);
    friend class Hex;
    friend class Money;
};
 
class Hex: public Array
{
    unsigned char hex[100];
    unsigned int dec;
        public:
    int CharToDec();
    int HexToDec();
    virtual int Summa(Hex a,Hex b);
    friend class Array;
    friend class Money;
};
 
class Money: public Array
{
    unsigned char money[100];
    unsigned int dec;
        public:
    int CharToDec();
    virtual int Summa(Money a,Money b);
    friend class Hex;
    friend class Array;
};
 
 
 
Array::Array(int kol,int znachenie)
{
    for (int i=0; i<((kol>limit)?limit:kol); i++)
        massiv[i]=znachenie;
}
 
Array::Array()
{
    for(int i=0;i<limit;i++)
        massiv[i]=0;
}
 
void Array::Summa(Array a,Array b)
{
    Array c;
    for (int i=0; i<((kol>limit)?limit:kol); i++)
    {
        c.massiv[i]=a.massiv[i]+b.massiv[i];
        cout<<c.massiv[i];
    }
}
//--------------------------------------------------------------------//
int Hex::HexToDec()
{
    int v;     //вес разряда шестнадцатеричного числа
    int err;   //err==1 - в строке недопустимый символ
    int i;
    err=0;
    strupr(hex); //преобразование введенной строке к верхнему регистру
    dec=0;
    v=1; //вес младшего разряда шестнадцатеричного числа
    for (i = strlen(hex)-1; i>=0; i--)
    {
        if (hex[i]>='0' && hex[i]<='9')
        dec+=v*(hex[i]-48);
        else if (hex[i]>='A' && hex[i]<='F')
            dec+=v*(hex[i]-55);
             else  //недопустимый символ
             {
                err=1;
                break;
             }
             v*=16;
    }
    if(!err)
    {
        printf("Shestnadchaterichnomu chislu %s",hex);
        printf(" sootvetstvuet desyatichnoe %u\n",dec);
    }
    else
    {
       printf("Stroka %s ne yavlyaetsya ",hex);
       printf("shestnadchaterichnum chislom\n");
    }
    return dec;
}
 
int Hex::CharToDec()
{
    dec=atoi(hex);
    return dec;
}
//-----------------------------------------------------------------//
int Hex::Summa(Hex a,Hex b)
{
    return a.HexToDec()+b.HexToDec();
}
 
int Money::CharToDec()
{
    dec=atoi(money);
    return dec;
}
 
int Money::Summa(Money a,Money b)
{
    return a.CharToDec()+b.CharToDec();
}
 
 
 
 
int main()
{
    Array array;
    Hex hex;
    Money money;
    cout<<"Vvedte kol: ";
    cin>>array.kol;
    for (int i=0; i<array.kol; i++)
    {
        cout<<"Insert #"<<i<<" of massiv ";
        cin>>array.massiv[i];
        hex.HexToDec();
    }
 
 
    getch();
    return 0;
}
заранее всем спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.07.2012, 18:49
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Поэлементно сложить два массива (C++):

Сложить два массива поэлементно - C++
Необходимо базовый класс Array: массив и поле для хранения количества элементов массива... реализовать перегрузку оператора и поэлементное...

Сложить поэлементно два массива - C++
Помогите пожалуйста, в чем ошибка. Некорректно складывает, в итоге получается неправильный ответ #include &lt;iostream&gt; using namespace...

Сложить поэлементно два массива I и J. Результат в массиве I - C++
Помогите пожалуйста написать программу: Сложить поэлементно два массива I(10) и J(10). Результат в массиве I. Очень нужно! Заранее...

Найти среднее арифметическое элементов массива, сравнить два массива поэлементно - C++
#include &lt;iostream&gt; #include &lt;math.h&gt; #include &lt;conio.h&gt; using namespace std; void main() { float x, y, SA; int K, KOL,...

Поэлементно суммировать два заданных массива - C++
Подскажите пожалуйста как решить задачу: Дано два массива 1-10, нужно чтобы первый цифр первого массива суммировался с первый цифром...

Сравнить поэлементно два одномерных массива, и через if определить, равны эти элементы или нет - C++
Люди помогите пожалуйста Нужно сравнить по элементам два одномерных массива и через if определить равны эти элементы или нет. If...

2
Fooly
19.07.2012, 19:00
  #2

Не по теме:

А что такое unsigned char? Его используют и для чисел, чтобы отрицательных не было?

0
PreFX
25 / 20 / 1
Регистрация: 14.07.2012
Сообщений: 176
19.07.2012, 19:33 #3
Цитата Сообщение от Fooly Посмотреть сообщение

Не по теме:

А что такое unsigned char? Его используют и для чисел, чтобы отрицательных не было?

Иногда - да. Всё-таки меньше всего места занимает (хотя кого это сейчас волнует?). А вот для неотрицательных пойдут также unsigned int и unsigned long.

Добавлено через 16 минут
Mr. Pyatachok, если я не ошибаюсь, то число в шестнадцатеричном виде можно вывести так:
C++
1
cout << hex << number;
, где number - число. Если компилятор будет ругаться, подключи заголовочный файл iomanip.h (сам я точно не помню, надо или не надо).
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.07.2012, 19:33
Привет! Вот еще темы с ответами:

Сложить два двумерных массива - C++
Как сложить два двумерных массива???Вот ф-ии для ввода двух массивов и геттеры для них. Надо ф-ию чтобы сложить и умножить их!!!СРОЧНО!!! ...

Как сложить два массива - C++
Как сложить два массива и присвоит ответь третьему массиву int m={5,6,7}; int n={2,3,8}; in p;

Сложить два упорядоченных массива в один - C++
даны два упорядоченных по возростанию массива А(m) и B(n) получить из них путем слияния упорядоченный массив С. до этого дела с visual...

Как сложить два случайных числа из массива? - C++
Как сложить два случайных числа из массива с++


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

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

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