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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Как реализовать? http://www.cyberforum.ru/cpp-beginners/thread626054.html
добрый вечер, прораммисты! Помогите, пожалуйста, советом. Есть таблица в excel, которая содержит информацию о ТО транспорта(водитель, машина, км). Нужно, за 250км до следующего ТО отправить смс-оповещение водителю транспорта. Как это реализовать?
C++ Округлить число Ну начнём))) Во-первых Visual Studio 10(Roudn и Trunc не видно) Во вторых float и cell +-.5 не подоходят так ,как числа могут поподаться как отрицальные так и положительные Допустим если в функцию попадает 1.1 на выходе 1.0, если -1.1 то на выходе -1.0 http://www.cyberforum.ru/cpp-beginners/thread626052.html
C++ Вытащить текст между тегов html
Здравствуйте, форумчане! Нужно вытащить текст между тегами. Из этого: <html> <tag1>Текст 1</tag1> <html> Должно получиться: Текст 1
C++ Ошибка: левый операнд должен быть левосторонним
Имеется задача: печатать числа от 1 до 20, через каждое 5-ое число переходить на новую строку. #include <iostream> #include <locale.h> using namespace std; int main() { setlocale(LC_ALL, "RUS");
C++ Шаблон класса. Ошибка `missing type specifier` http://www.cyberforum.ru/cpp-beginners/thread625979.html
Вот код: template <int value, typename type> class Class { public: type Array; type Metod(type x); };
C++ Алгоритм Евклида для n целых чисел Задача: Составить рекурсивную функцию, реализующую алгоритм Евклида для n целых чисел. Самый главный вопрос: это вообще как? Сколько не гуглил, а алгоритма такого я не нашел. Или нужно алгоритм для двух чисел переделать под несколько? Разъясните, пожалуйста, что-куда, кодом или на пальцах, мне главное понять. подробнее

Показать сообщение отдельно
Mr. Pyatachok
 Аватар для Mr. Pyatachok
8 / 8 / 0
Регистрация: 30.06.2011
Сообщений: 250
19.07.2012, 18:49     Поэлементно сложить два массива
Всем привет, сижу делаю задание:
суть такова:
надо поэлементно сложить 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;
}
заранее всем спасибо
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 10:10. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru