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

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

Войти
Регистрация
Восстановить пароль
 
мраз13
0 / 0 / 0
Регистрация: 19.12.2013
Сообщений: 1
#1

Удалить две последние столбцы (то есть убрать нули) С++ - C++

23.12.2013, 02:54. Просмотров 509. Ответов 0
Метки нет (Все метки)

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
// 1.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include <iostream>
#include <cmath>
#include <iomanip>
 
using namespace std;
 
int get_power (int a) //возврат степени двойки числа
{
    return ceil(log10(double(a))/log10(double(2)));
}
 
int del_mod2 (int a, int b) //возврат остатка от деления по модулю 2 числа а на б
{   
     
     while (get_power(a) >= get_power(b)) 
     {
           int b2 = b;
           while (get_power(b2) != get_power(a))
                 b2 *=2;
           a = a ^ b2; 
     }          
     return a;
}    
bool* inttobool(int a) //Преобразование числа из десятичной системы в двоичную
{
    bool * mass;
    mass=new bool;
    for(int l=7;l>=0;l--)
    {
        if(a%2)
            mass[l]=1;
        else mass[l]=0;
        a=a/2;
    }
    return mass;
}
 
int booltoint(bool *a) //Преобразование числа из двоичной системы в десятичную
{
    int b=0;
    for(double l=7;l>=0;l--)
        if(a[int(l)])b=b+pow(2,7-l);
    return b;
}
 
void show(int a) //вывод числа в двоичном виде
{
    for(int i=1;i<=7;i++)
        cout<<inttobool(a)[i];
    cout<<endl;
}
 
bool* sum(int a,int b)
{
    bool* ba=new bool; ba=inttobool(a);
    bool* bb=new bool; bb=inttobool(b);
    bool* bc=new bool;
    for(int i=0;i<=7;i++)
    {
        if((ba[i]==1)&&(bb[i]==1))bc[i]=0;
        if((ba[i]==0)&&(bb[i]==0))bc[i]=0;
        if((ba[i]==1)&&(bb[i]==0))bc[i]=1;
        if((ba[i]==0)&&(bb[i]==1))bc[i]=1;
    }
    return bc;
}
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(0, "russian");
    int a=10, m=9;
int err_q[7]={0,0,0,0,0,0,0},
    err_s[7]={0,0,0,0,0,0,0},
    err_d_mass[7]={0,0,0,0,0,0,0};
    int err_d=0;
 
    cout<<"---------------------КОДИРОВАНИЕ---------------------\n";
    cout<<setw(40)<<"Информационный вектор: ";
    show(a);
    a*=8;
    cout<<setw(40)<<"Сдвинутый информационный вектор: ";
    show(a);
    a=a+del_mod2(a,m);
    cout<<setw(40)<<"Передаваемая информация: ";
    show(a);
    cout<<endl<<"--------------------ДЕКОДИРОВАНИЕ--------------------";    
    for(int e=1;e<128;e++)
    {
        int temp_a=a;
        int rem=1;
        int N=0;
 
        for (int j = 1; j < 128; j *= 2) 
            if((e & j) != 0)
                N ++;
        temp_a=booltoint(sum(temp_a,e));
        rem=del_mod2(temp_a,m);
        if(rem!=0)
            err_d_mass[N-1]++;
    err_q[N - 1] ++;
    }
                                                                                                                                                                                                                                                    //for(int i=1;i<14;i++)err_d_mass[i]++;
    cout<<endl<<"-------------ДЕКОДИРОВАНИЕ ПРОШЛО УСПЕШНО------------"<<endl;
    cout<<"------------------СТАТИСТИКА-------------------------\n";
    cout<<"|Кратность|Количество|Кол-во обнаруж.|Коэф. обнаруж.|\n";//Коэф
    cout<<"|  ошибки |  ошибок  |     ошибок    |   ошибок, %  |\n";//корректировки
    cout<<"|---------+----------+---------------+--------------|\n";
    for(int i=0;i<7;i++)
        cout<<'|'<<setw(9)<<i+1<<'|'<<setw(10)<<err_q[i]<<'|'<<setw(15)<<err_d_mass[i]<<'|'<<setw(14)<<err_d_mass[i]*100/err_q[i]<<'|'
        <<setw(12)<<err_s[i]<<'|'<<setw(13)<<err_s[i]*100/err_q[i]<<'|';
    cout<<"-----------------------------------------------------"<<endl;
        
    system("pause");
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.12.2013, 02:54
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Удалить две последние столбцы (то есть убрать нули) С++ (C++):

Как убрать последние две цифры после запятой? - C++
Как убрать последние две цифры после запятой? остаток от деления? на с++

Удалить из каждого слова исходной строки две последние буквы - C++
Пожалуйста помогите, дана строка символов. Удалить из каждого слова исходной строки две последние буквы

Удалить столбцы символьной матрицы, в которых есть буква "А" - C++
И удалить все столбцы в которых есть буква &quot;А&quot;

Матрицы: удалить из матрицы столбцы, в которых есть равные элементы - C++
1.Необходимо удалить из матрицы столбцы, в которых есть равные элементы: для матрицы: 1 2 3 4 5 3 7 9 8 должно получаться: 1 2 ...

Упорядочить столбцы матрицы так, чтобы их последние элементы образовывали убывающую последовательность - C++
Написать в с++ Дана матрица размера MxN . Упорядочить ее столбцы так, чтобы их последние элементы образовывали убывающую...

Как убрать нули - C++
Есть массив, вывожу задом-наперед, так как не знаю сколько именно чисел введет пользователь - делаю его заведома больше чем надо, там где...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.12.2013, 02:54
Привет! Вот еще темы с ответами:

Убрать из текста нули - C++
Доброе утро, прошу помощи с работой над текстом. Дан текстовый файл, в котором нужно из всех чисел убрать начальные нули кроме последнего...

получить матрицу Б в которой отсутствуют все столбцы и строки, содержащие нули - C++
Добрый день. Помогите пожалуйста с задачей по с++. Нужно из матрицы А (любой величины) получить матрицу Б в которой отсутствуют все...

Убрать нули после запятой - C++
Ребят помоги убрать ноли после запятой. Если введу 0,3000000000000000000000000000000000000000 то он пишет что больше 16 символов, а нужно...

Как убрать лишние нули? - C++
Как убрать лишние нули? void Gaus::outPut_AB() { for (int i = 0; i &lt; n; i++) { printf(&quot;\t&quot;); for (int j = 0; j &lt; n; j++)...


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

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

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