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

ошибка в функции сложение по модулю два - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Хэш функция http://www.cyberforum.ru/cpp-beginners/thread193923.html
Нашел хэш функцию в нете,помогите разабратся че она делает unsigned HashData(char * DATA, int Length) { unsigned hash = 0; while (Length--) { hash =hash+ (*(char*)DATA++); }
C++ Подскажите кто может и найдите ошибки в программе)) #include <stdio.h> #include <conio.h> #define ROWS 3 #define COLS 3 void Changenrow(int, int , int, int; void dobaviti(int&, int ; void main(){ unsigned key; do { clrscr(); http://www.cyberforum.ru/cpp-beginners/thread193917.html
C++ Алгоритм Евклида
Привет всем. Задача такова, надо написать программу на С++ для поиска Самого Малого Кратного (СМК) по алгоритму Евклида. Дано три числа: a, b, c найти их самое малое кратное. Просьба, чтобы вверху програмы было не #include <isotream.h> a #include <stdio.h> тоесть чтобы програма была на самом минимальном уровне програмирования. Заранее спасибо.
C++ Работа с файлами
Задача по информатике: В файле input.txt задано арифметическое выражение состоящее из цифр, букв, скобок и знаков арифметических операций. Но вирус удалил из данного файла некоторые скобки, стоящие в начале и в конце выражения.Написать программу, выводящую в файл output.txt исправленное выражениею Максимальная длина исходной строки не более 100 символов. например: input.txt =...
C++ Сортировка матрцы http://www.cyberforum.ru/cpp-beginners/thread193898.html
Расположить столбцы в порядке убывания по первому элементу. Объясните алгоритм работы пожалуйста.
C++ программа для построения блок схем может у кого нибудь есть прога в которую загружаешь код программы и она выводит уже блок схему алгоритма? подробнее

Показать сообщение отдельно
IrishaIrinaChe
 Аватар для IrishaIrinaChe
28 / 28 / 1
Регистрация: 23.09.2010
Сообщений: 200
19.11.2010, 18:58     ошибка в функции сложение по модулю два
Доброго времени суток, форумчане!
в функции perv() закралась ошибка. мне нужно сложить по модулю два первую строку массива "а" с ключом key. однако, программа доходит до этого этапа и выдаёт окошко с ошибкой(что-то там с volation).
Помогите исправить ошибку пожалуйста!

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
121
122
123
124
125
126
127
//---------------------------------------------------------------------------
 
#include <vcl.h>
 
#pragma hdrstop
#include <stdio.h>
#include<iostream.h>
#include<windows.h>
#include <dos.h>
#include <conio.h>
#include<math.h>
//---------------------------------------------------------------------------
#pragma package(smart_init)
 
#include<fstream.h>
#include<string.h>
 
const int block=6;  //кодирование блоками по 8 символов
const int Al=26;  //длина алфавита
char s[Al]={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
int cod[Al][block]={0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,1,1,0,0,
 0,0,1,1,1,0,0,1,0,0,0,0,0,1,0,0,1,0,0,1,0,1,0,0,0,1,0,1,1,0,0,1,1,0,0,0,0,1,1,0,1,0,0,1,1,1,0,0,0,1,1,
 1,1,0,1,0,0,0,0,0,1,0,0,0,1,0,1,0,0,1,0,0,1,0,0,1,1,0,1,0,1,0,0,0,1,0,1,0,1,0,1,0,1,1,0,0,1,0,1,1,1,0,
 1,1,0,0,0,0,1,1,0,0,1};
int **a;       //двоичное представление входящего сообщения. его не трогаем
int **arr;        //запасной массив
int key[block]={0,0,0,1,1,0};  //ключ
 
char bufRus[256];
 
char* Rus(const char* text) {
      CharToOem(text, bufRus);
      return bufRus;
      }
 
void perv() //операции для первого блока. сумма по модулю два с ключом
{
  int j;
 
  for(j=0;j<block;j++)
   arr[0][j]=pow(a[0][j],key[j]);    //получили первый блок
  for(j=0;j<block;j++)
   cout<<arr[0][j];
}
 
int main()
{
 cout << Rus("Привет ,Лопух!")<< endl;
 int i=100,j=0;
 cout<<"GOGOGOGO!!!\n" ;
 getch();
/* char *buf=new char[i];      //декларация массива для чтение строк в файле
 FILE *ifin;           //открытие файла для чтения
 ifin=fopen("C:\\Code.txt","r");
 if(!ifin)
 {          //если попытка не удалась
    puts("Ne mogu otkrut fail Code");
    getch();
    return 1;
 }
*/
 char *buf2=new char[i];      //декларация массива для чтение строк в файле
 FILE *ifin2;           //открытие файла для чтения
 ifin2=fopen("C:\\Out.txt","r");
 if(!ifin2)
 {              //если попытка не удалась
    puts("Ne mogu otkrut fail Out");
    getch();
    return 1;
 }
 
 i=0;
 while(!(feof(ifin2)))     //посчитали количество символов в файле с исходящим сообщением
 {
  fscanf(ifin2,"%c",&buf2[i]);   //считали символ входного сообщения
  i++;
 }
 cout<<"\nk="<<i<<"\n";
 int k=i-1;   //не считаем символ конца
 int **a=new int *[k];
 int **arr=new int *[k];
 for(i=0;i<k;i++)
 {
  a[i]=new int[block]; //переходный массив: строка-код буквы сообщения
  arr[i]=new int[block]; //запасной массив. все изменения храним в нём
 }
 i=0;
 int y;
 fseek(ifin2,0,SEEK_SET);    //указатель в начало файла
 fscanf(ifin2,"%c",&buf2[i]);  //счиатли первый символ
 while(!(feof(ifin2)))
 {
  cout<<buf2[i];    //буква сообщения
  for(j=0;j<Al;j++) //перебираем алфавит
   if(buf2[i]==s[j])
   {
    for(y=0;y<block;y++)
    {
      a[i][y]=cod[j][y];  //записываем код символа в переходный массив
      cout<<a[i][y];
    }
    cout<<".";
   }
  i++;
  fscanf(ifin2,"%c",&buf2[i]); //считали следующий символ входного сообщения
 }
 
 cout<<"\n";
 for(i=0;i<k;i++)
 {
  for(j=0;j<block;j++)
  cout<<a[i][j];
//  arr[i][j]=a[i][j];
 // cout<<".";
 }
 
 perv();
 
 getch();
// delete[]buf;
// fclose(ifin);
 delete[]buf2;
 delete[]a;
 delete[]arr;
 fclose(ifin2);
 return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 01:07. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru