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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 19, средняя оценка - 4.79
sashqa93
0 / 0 / 0
Регистрация: 17.12.2011
Сообщений: 14
#1

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

29.04.2012, 17:38. Просмотров 2910. Ответов 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;
}
второй массив для кода не могу прописать сразу вылетает.сразу вылетает.программа шифрует и дефишрует сообщение с нулями и еденицами
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.04.2012, 17:38
Здравствуйте! Я подобрал для вас темы с ответами на вопрос сложение по модулю 2(проблема с массивом bool) (C++):

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

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

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

Сложение по модулю 2 - C++
Здраствуйте! Подскажите пожалуйста,Есть два массива, нужно сложить их по модулю 2, не могу придумать как. #include &quot;stdafx.h&quot; ...

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

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

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

Не по теме:

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

Venzo
125 / 123 / 4
Регистрация: 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;
}
sashqa93
0 / 0 / 0
Регистрация: 17.12.2011
Сообщений: 14
29.04.2012, 21:56  [ТС] #8
все равно не работает.key тоже вводить надо
Venzo
125 / 123 / 4
Регистрация: 03.07.2011
Сообщений: 354
29.04.2012, 22:10 #9
http://s1.ipicture.ru/uploads/20120429/FvWWtUOH.jpg
все работает
sashqa93
0 / 0 / 0
Регистрация: 17.12.2011
Сообщений: 14
29.04.2012, 22:16  [ТС] #10
так то работает но не совсем как надо в шифре.код вводится одна цифра а нужно например так же как и сам код 00011 и ключ такой же длины
Venzo
125 / 123 / 4
Регистрация: 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;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.04.2012, 22:52
Привет! Вот еще темы с ответами:

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

не работает bool xor(bool a, bool b) - C++
Учусь по &quot;Базовому курсу&quot; Герберта Шилда #include &lt;iostream&gt; bool xor(bool a, bool d); int main() { bool p, q; cout...

Проблема с массивом - C++
Здравствуйте. Задача: умножение матрицы на число. Проблема: корректно выводятся только 2, 5, 6, 7, 8 и 9 элементы массива. Причем...

проблема с массивом - C++
#include &lt;iostream&gt; #include &lt;stdlib.h&gt; #include &lt;time.h&gt; using namespace std; int main(){ const int n = 3; ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
29.04.2012, 22:52
Ответ Создать тему
Опции темы

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