Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.95/20: Рейтинг темы: голосов - 20, средняя оценка - 4.95
sashqa93
0 / 0 / 0
Регистрация: 17.12.2011
Сообщений: 14
1

сложение по модулю 2(проблема с массивом bool)

29.04.2012, 17:38. Просмотров 3658. Ответов 10
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream.h>
#include <math.h>
#include <conio.h>
using namespace std;
int main(){ 
int i;
bool m[100];
bool k[100];
bool e[100];
cout<<"press any kode:\n";
for(i=0;i<=100;i++){
cin>>m[i];} 
cout<<"press any key:\n";
for(i=0;i<=100;i++){
cin>>k[i]; }
e[i]=m[i] ^ k[i];
cout<<"shifr:\n"<<e[i];
m[i]=e[i] ^ k[i];
cout<<"kode:\n"<<m[i];
getch();
return 0;
}
второй массив для кода не могу прописать сразу вылетает.сразу вылетает.программа шифрует и дефишрует сообщение с нулями и еденицами
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.04.2012, 17:38
Ответы с готовыми решениями:

Сложение по модулю (2^32) -1)
Добрый вечер! Подскажите как реализовать сложение по модулю ((2^32) -1). Есть...

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

Сложение по модулю 2
Лёгкий шок, внезапно во второй массив результатом побитового сложения по модулю...

Сложение по модулю 2
Здраствуйте! Подскажите пожалуйста,Есть два массива, нужно сложить их по модулю...

Как выполнить сложение по модулю 2^64+13
Всем привет, есть два 64 битовых числа, как можно сделать сложение по модулю...

10
amfisat
67 / 67 / 36
Регистрация: 16.06.2009
Сообщений: 240
29.04.2012, 17:56 2
C++
1
e[i]=m[i] ^ k[i];
Это выражение - вне цикла. После выхода из последнего цикла i=101, т.е. e[101] = m[101] ^ k[101]; - наверняка это не то, что нужно )))
0
sashqa93
0 / 0 / 0
Регистрация: 17.12.2011
Сообщений: 14
29.04.2012, 18:10  [ТС] 3
да проблема даже в том, что я не могу прописать второй массив для ключа.первый прописываю 01011 а второй тоже надо прописать с нулями и единицами но прога вылетает
0
amfisat
67 / 67 / 36
Регистрация: 16.06.2009
Сообщений: 240
29.04.2012, 21:02 4
Я про это и говорю.
C++
1
2
3
4
5
6
for(i=0;i<=100;i++)
{  //начало цикла
cin>>k[i]; 
 } //конец цикла
//здесь уже переменная i = 101.
e[i]=m[i] ^ k[i];
0
sashqa93
0 / 0 / 0
Регистрация: 17.12.2011
Сообщений: 14
29.04.2012, 21:16  [ТС] 5
так вот я не знаю как исправить ее, чтобы работала.нужно чтобы на выходе не 101 было а в память массива то что я пропишу
0
grizlik78
29.04.2012, 21:20
  #6

Не по теме:

Лично у меня исключение в мозгу возникает всякий раз при попытке прочитать текст программы. Стоило, всё-таки, аккуратно расставить отступы и скобки, для начала.

0
Venzo
125 / 123 / 16
Регистрация: 03.07.2011
Сообщений: 354
29.04.2012, 21:29 7
у вас массив из 100 элементов, а в цикле выходит 101 итерация.
замените
C++
1
2
3
4
5
for(i=0;i<=100;i++)
на 
for(i=0;i<100;i++)
или на 
for(i=0;i<=99;i++)
да и судя по всему, вы хотели написать это:
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
#include <iostream.h>
#include <math.h>
#include <conio.h>
 
using namespace std;
 
int main()
{ 
    int i;
    bool m[100];
    bool k[100];
    bool e[100];
    cout<<"press any kode:\n";
    for(i=0;i<100;i++)
    {
        cin>>m[i];
    } 
    cout<<"press any key:\n";
    for(i=0;i<100;i++)
    {
        cin>>k[i]; 
        e[i]=m[i] ^ k[i];
        cout<<"shifr:\n"<<e[i];
        m[i]=e[i] ^ k[i];
        cout<<"kode:\n"<<m[i];
    }
    getch();
    return 0;
}
0
sashqa93
0 / 0 / 0
Регистрация: 17.12.2011
Сообщений: 14
29.04.2012, 21:56  [ТС] 8
все равно не работает.key тоже вводить надо
0
Venzo
125 / 123 / 16
Регистрация: 03.07.2011
Сообщений: 354
29.04.2012, 22:10 9
http://s1.ipicture.ru/uploads/20120429/FvWWtUOH.jpg
все работает
0
sashqa93
0 / 0 / 0
Регистрация: 17.12.2011
Сообщений: 14
29.04.2012, 22:16  [ТС] 10
так то работает но не совсем как надо в шифре.код вводится одна цифра а нужно например так же как и сам код 00011 и ключ такой же длины
0
Venzo
125 / 123 / 16
Регистрация: 03.07.2011
Сообщений: 354
29.04.2012, 22:52 11
как-то вы непонятно излагаете свои мысли)
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
int main()
{
 
    int i;
    bool m[5];
    bool k[5];
    bool e[5];
    cout<<"press any kode:\n";
    for(int i = 0; i < 5; i++)
    {
        cin >> m[i];
    }
 
    cout<<"press any key:\n";
    for(i = 0; i < 5; i++)
    {
        cin >> k[i];
        e[i] = m[i] ^ k[i];
        m[i] = e[i] ^ k[i];
    }
 
    cout<<"shifr: ";
    for(i = 0; i < 5; i++)
    {
        cout << e[i];
    }
 
    cout<<"\nkode: ";
    for(i = 0; i < 5; i++)
    {
        cout << m[i];
    }
    getch();
    return 0;
}
0
29.04.2012, 22:52
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.04.2012, 22:52

Сложение по модулю 2 и разбиение массива на 8
Два одномерных массива по 48 бит сложить по модулю два и разбить на 8 частей...

ошибка в функции сложение по модулю два
Доброго времени суток, форумчане! в функции perv() закралась ошибка. мне нужно...

не работает bool xor(bool a, bool b)
Учусь по &quot;Базовому курсу&quot; Герберта Шилда #include &lt;iostream&gt; bool xor(bool...


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

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

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