2005Человек2005
31.12.2020 03:35

Реализуйте в классе binary перегрузку четырёх операций: операция сложенияоперация вычитанияоперация умноженияоперация делениякаждая операция принимает на вход двоичное число и выдаёт ответ в виде двоичного числа. операция деления производит деление нацело.напишите программу, которая принимает на вход два бинарных числа, находит их сумму, разность, произведение и отношение и выводит их на экран в виде двоичных чисел.class  binary  {protected:       int  data[32];       // цифры двоичного числаpublic:     binary();             // конструктор по умолчанию    binary(int  value);   // конструктор, получающий двоичное число из десятичного    binary(char  *s);     // конструктор, получающий двоичное число из строки, содержащей двоичное число      void  show();         // вывод двоичного числа на экран      int  to_int();       // перевод двоичного числа в десятичное}; binary: : binary() {      for  (int  i =  0; i <   32; ++i)        data[i] =  0; }binary: : binary(int  value) {      for  (int i =  0; i <   32; ++i)        data[i] =  0;       int  t =  31;       while  (value) {        data[t--] = value % 2;         value /= 2;     }}binary: : binary(char  *s) {      int  size = strlen(s)-1;       for  (int  i =  0; i <   32; ++i)        data[i] =  0;       for  (int  i =  31; size > =  0; --size)        data[i--] = s[size] -  '0'; }void  binary: : show() {      int  i =  0;       while  (i <   32  & & ! data[i]) ++i;       if  (i ==  32) {          cout  < <   0;           return;     }      for  (; i <   32; ++i)          cout  < < data[i]; }int    binary: : to_int() {      int  pow =  1, res =  0;       for  (int  i = 31; i > =  0; --i) {        res += data[i] * pow;         pow *=  2;     }      return  res; }​

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
287888
14.04.2020 13:27
В C++
#include <iostream>
#include <iomanip>
#include <ctime>
int main()
{
    using namespace std;

    const int N = 5;
    const int M = 6;

    int A[N][M];

    //Как-нибудь заполняем массив
    srand(time(0));
    for (int i = 0; i < N; ++i)
        for (int j = 0; j < M; ++j)
            A[i][j] = rand() % (N * M) + 1;
    for (int i = 0; i < N; ++i)
    {
        for (int j = 0; j < M; ++j)
            cout << setw(4) << A[i][j];
        cout << endl;
    }

   
    //Подсчитываем сумму всех элементов массива
    int sum = 0;

    for (int i = 0; i < N; ++i)
        for (int j = 0; j < M; ++j)
            sum += A[i][j];

    //Вычитаем из полученной суммы повторяющиеся элементы
    for (int i = 0; i < N; ++i)
        for (int j = 0; j < M; ++j)
        {
            bool flag = false;
            for (int i1 = 0; i1 < N; ++i1)
            {
                for (int j1 = 0; j1 < M; ++j1)
                    if (!(i == i1 && j == j1))
                        if (A[i][j] == A[i1][j1])
                        {
                            sum -= A[i][j];
                            flag = true;
                            break;
                        }
                if (flag)
                    break;
            }
        }

    cout << "Sum of different: " << sum << endl;

    return 0;
}
0,0(0 оценок)
Ответ:
agnesa9890
22.04.2023 19:36
В C++
#include <iostream>
#include <iomanip>
#include <ctime>
int main()
{
    using namespace std;

    const int N = 5;
    const int M = 5;

    //Создаём массив и как-нибудь заполняем
    int A[N][M];
    srand(time(0));
    for (int i = 0; i < N; ++i)
        for (int j = 0; j < M; ++j)
            A[i][j] = rand() % (N * M) + 1;
   
    //Выводим его на экран
    for (int i = 0; i < N; ++i)
    {
        for (int j = 0; j < M; ++j)
            cout << setw(4) << A[i][j];
        cout << endl;
    }

    //Меняем местами 2ю и 3ю строки
    int temp = 0;
    for (int j = 0; j < M; ++j)
    {
        temp = A[1][j];
        A[1][j] = A[2][j];
        A[2][j] = temp;
    }

    //Выводим полученный массив на экран
    cout << "\n\n";
    for (int i = 0; i < N; ++i)
    {
        for (int j = 0; j < M; ++j)
            cout << setw(4) << A[i][j];
        cout << endl;
    }

    return 0;
}
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота