Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
8 / 8 / 1
Регистрация: 30.06.2011
Сообщений: 250
1

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

19.07.2012, 18:49. Просмотров 1825. Ответов 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.07.2012, 18:49
Ответы с готовыми решениями:

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

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

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

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

2
Fooly
19.07.2012, 19:00
  #2

Не по теме:

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

0
26 / 21 / 2
Регистрация: 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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.07.2012, 19:33

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

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

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

Сложить два двумерных массива
Как сложить два двумерных массива???Вот ф-ии для ввода двух массивов и геттеры для них. Надо ф-ию...

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


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

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

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