Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.65/37: Рейтинг темы: голосов - 37, средняя оценка - 4.65
0 / 0 / 0
Регистрация: 17.12.2011
Сообщений: 14
1

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

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

Author24 — интернет-сервис помощи студентам
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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.04.2012, 17:38
Ответы с готовыми решениями:

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

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

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

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

10
70 / 70 / 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
0 / 0 / 0
Регистрация: 17.12.2011
Сообщений: 14
29.04.2012, 18:10  [ТС] 3
да проблема даже в том, что я не могу прописать второй массив для ключа.первый прописываю 01011 а второй тоже надо прописать с нулями и единицами но прога вылетает
0
70 / 70 / 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
0 / 0 / 0
Регистрация: 17.12.2011
Сообщений: 14
29.04.2012, 21:16  [ТС] 5
так вот я не знаю как исправить ее, чтобы работала.нужно чтобы на выходе не 101 было а в память массива то что я пропишу
0
grizlik78
29.04.2012, 21:20
  #6

Не по теме:

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

0
127 / 125 / 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
0 / 0 / 0
Регистрация: 17.12.2011
Сообщений: 14
29.04.2012, 21:56  [ТС] 8
все равно не работает.key тоже вводить надо
0
127 / 125 / 16
Регистрация: 03.07.2011
Сообщений: 354
29.04.2012, 22:10 9
http://s1.ipicture.ru/uploads/... WWtUOH.jpg
все работает
0
0 / 0 / 0
Регистрация: 17.12.2011
Сообщений: 14
29.04.2012, 22:16  [ТС] 10
так то работает но не совсем как надо в шифре.код вводится одна цифра а нужно например так же как и сам код 00011 и ключ такой же длины
0
127 / 125 / 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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.04.2012, 22:52
Помогаю со студенческими работами здесь

Проблема с типом данных bool, string
#include &lt;TXLib.h&gt; #include &lt;iostream&gt; using namespace std; ...

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

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

Проблема с типом данных bool, string. 37 строка
#include &lt;TXLib.h&gt; #include &lt;iostream&gt; using namespace std; ...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru