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

Не работает функция в Виндовс Формс - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Удвоить четные элементы. Натуральные логарифмы минимальных положительных элементов столбцов http://www.cyberforum.ru/cpp-beginners/thread679980.html
Ребят, если поможете буду очень признателен, задание такое: Удвоить четные элементы. Натуральные логарифмы минимальных положительных элементов столбцов. Количество строк - 4, стобцов - 5. Проблема во вложенной картинке, после ответа, куча текста, не понимаю откуда он берется! Логарифм - бог с ним помогите разобраться с тем что есть. Нужно до завтра срочно! // work.cpp : Defines the entry...
C++ Ошибка на компиляторе MinGW при сборке структуры Помогите, пожалуйста, не знаю что делать. Вот такой простенький код struct abc { int a; }; а выдает ошибку и экзешник не собирается http://www.cyberforum.ru/cpp-beginners/thread679978.html
Настройка eclipse C++
Программировать я особо не умею, работал только в MS VS C++ 2010. Там всё просто: скачал, установил, создал проект, создал файл с++, написал код, нажал ф5 и готово. На работе строго запретили студию и заставили использовать эклипс. Скачал его с офф сайта (link), также скачал JRE(link) и MinGW(link). Яву установил по дефолту, а мингв и эклипс -- в одну папку. Дальше открываю эклипс, создаю проект...
Удаление колонки (столбца) из динамического двумерного массива C++
Сколько ни пытался, не смог понять/придумать как удалить столбец. Строка удаляется элементарно, но как это сделать со столбцом? 30 строка. #include <iostream.h> #include <stdio.h> #include <stdlib.h> #include <conio.h> int main() { int n; do {cout << "Array size: "; cin >> n; system("cls");}
C++ cannot convert parameter 1 from http://www.cyberforum.ru/cpp-beginners/thread679950.html
Доброй ночи, вот написал програмку, не пойму почему ругается? Если не ошибаюсь нужно выделить память под массив? Но как это правильно сделать? Если не сложно исправьте ошибку плиз.#include <iostream> #include <vector> #include <iomanip> #include <cstdlib> using namespace std; void dno(int **Matrix,int n,int m) {int Check = 0;int collNumber = 0; cout << "First coll's number with zero...
C++ Вывод в таблицу Существуют ли какие-либо средства в C++ для вывода данных в таблицу? В консоль, либо в файл. Использую MS Visual Studio. подробнее

Показать сообщение отдельно
Crait
0 / 0 / 0
Регистрация: 26.09.2012
Сообщений: 32
25.10.2012, 01:53     Не работает функция в Виндовс Формс
Есть набор функций:
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
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
#include <string>
#include "stdafx.h"
#include <iostream>
#include <fstream>
using namespace std;
typedef unsigned int uint;
uint F(uint X, uint Y, uint Z)
{
return (X & Y) | ((~X) & Z);
}
uint G(uint X, uint Y, uint Z)
{
return (X & Z) | (Y & (~Z));
}
uint H(uint X, uint Y, uint Z)
{
return X ^ Y ^ Z;
}
uint I(uint X, uint Y, uint Z)
{
return Y ^ (X | (~Z));
}
uint RotateLeft(uint value, int shift)
{
return value << shift | value >> (32-shift);
}
 
void MD5_hash(string sIn, int &A,int &B,int &C, int &D)
{
 
int length=sIn.size(); //получаем длину входного сообщения.
int rests=length%64; //остаток от деления на 64байта.
int size = 0; //тут будет храниться размер сообщения после первых 2ух шагов.
 
//Шаг 1.
if(rests < 56) //если остаток от деления на 64 меньше 56
 size=length-rests+56+8; //подгоняем размер так, что бы он был кратен 64(+8 байт для 2ого шага).
else //иначе (если остаток больше 56)
 size=length+64-rests+56+8; //подгоняем размер так, что бы он был кратен 64(+8 байт для 2ого шага).
 
char *cIn=new char[size]; //создаем динамический массив для хранения сообщения, которое далее будет кодироваться
 
for(int i=0;i<length;i++) //первые length элементов сIn
 cIn[i]=sIn[i]; //заполняем символами входного сообщения
 
cIn[length]=0x80; //савим в конец сообщения единичный бит.
 
for(int i=length+1;i<size;i++) //а все остальное
 cIn[i]=0; //заполняем нулями
 
//Шаг 2.
__int64 bitLength=(uint)(length)*8; //длина сообщения в битах.
 
for(int i=0;i<8;i++) //последние 8 байт
 cIn[size-8+i]=(bitLength >> i*8); //заполняем 64-битным представлением длины данных до выравнивания
 
//Шаг 3.
A=0x67452301, //Инициализируем начальные значения регистров.
B=0xefcdab89,
C=0x98badcfe,
D=0x10325476;
uint T[64]; //64-элементная таблица данных (констатнт).
 
for(int i=0;i<63;i++) //всю таблицу констант
 T[i]= pow(2.0,32.0)*fabs(sin(i*1.0)); //заполняем в соответствии с алгоритмом.
 
uint *X=new uint[size/4]; //создаем массив Х, в котором будет 32-разрядное представление сообщения.
 
X=(uint*)(cIn); //загоняем в массив Х сообщение cIn(в данном случае оно само разбиваеться на 32-разрядные слова).
 
//или это можно сделать "вручную" следующим образом:
//for(int i = 0; i <size/4; i++ )
 //X[ i] =(uint)(cIn[ i*4 + 3]<<24) +(uint)(cIn [i*4 + 2]<<16) + (uint)(cIn[i*4 + 1]<<8) + (uint)(cIn [i*4 + 0]);
 
//Шаг 4.
uint AA, BB, CC, DD;
 
for(int i=0;i<size/4;i+=16)
 {
 AA = A;BB = B; CC = C; DD = D;
 
 //раунд 1
 A = B + RotateLeft((A + F(B,C,D) + X[i+ 0] + T[ 1]),  7);
 D = A + RotateLeft((D + F(A,B,C) + X[i+ 1] + T[ 2]), 12);
 C = D + RotateLeft((C + F(D,A,B) + X[i+ 2] + T[ 3]), 17);
 B = C + RotateLeft((B + F(C,D,A) + X[i+ 3] + T[ 4]), 22);
 
 A = B + RotateLeft((A + F(B,C,D) + X[i+ 4] + T[ 5]),  7);
 D = A + RotateLeft((D + F(A,B,C) + X[i+ 5] + T[ 6]), 12);
 C = D + RotateLeft((C + F(D,A,B) + X[i+ 6] + T[ 7]), 17);
 B = C + RotateLeft((B + F(C,D,A) + X[i+ 7] + T[ 8]), 22);
 
 A = B + RotateLeft((A + F(B,C,D) + X[i+ 8] + T[ 9]),  7);
 D = A + RotateLeft((D + F(A,B,C) + X[i+ 9] + T[10]), 12);
 C = D + RotateLeft((C + F(D,A,B) + X[i+10] + T[11]), 17);
 B = C + RotateLeft((B + F(C,D,A) + X[i+11] + T[12]), 22);
 
 A = B + RotateLeft((A + F(B,C,D) + X[i+12] + T[13]),  7);
 D = A + RotateLeft((D + F(A,B,C) + X[i+13] + T[14]), 12);
 C = D + RotateLeft((C + F(D,A,B) + X[i+14] + T[15]), 17);
 B = C + RotateLeft((B + F(C,D,A) + X[i+15] + T[16]), 22);
 
 //раунд 2
 A = B + RotateLeft((A + G(B,C,D) + X[i+ 1] + T[17]),  5);
 D = A + RotateLeft((D + G(A,B,C) + X[i+ 6] + T[18]),  9);
 C = D + RotateLeft((C + G(D,A,B) + X[i+11] + T[19]), 14);
 B = C + RotateLeft((B + G(C,D,A) + X[i+ 0] + T[20]), 20);
 
 A = B + RotateLeft((A + G(B,C,D) + X[i+ 5] + T[21]),  5);
 D = A + RotateLeft((D + G(A,B,C) + X[i+10] + T[22]),  9);
 C = D + RotateLeft((C + G(D,A,B) + X[i+15] + T[23]), 14);
 B = C + RotateLeft((B + G(C,D,A) + X[i+ 4] + T[24]), 20);
 
 A = B + RotateLeft((A + G(B,C,D) + X[i+ 9] + T[25]),  5);
 D = A + RotateLeft((D + G(A,B,C) + X[i+14] + T[26]),  9);
 C = D + RotateLeft((C + G(D,A,B) + X[i+ 3] + T[27]), 14);
 B = C + RotateLeft((B + G(C,D,A) + X[i+ 8] + T[28]), 20);
 
 A = B + RotateLeft((A + G(B,C,D) + X[i+13] + T[29]),  5);
 D = A + RotateLeft((D + G(A,B,C) + X[i+ 2] + T[30]),  9);
 C = D + RotateLeft((C + G(D,A,B) + X[i+ 7] + T[31]), 14);
 B = C + RotateLeft((B + G(C,D,A) + X[i+12] + T[32]), 20);
 
 //раунд 3
 A = B + RotateLeft((A + H(B,C,D) + X[i+ 5] + T[33]),  4);
 D = A + RotateLeft((D + H(A,B,C) + X[i+ 8] + T[34]), 11);
 C = D + RotateLeft((C + H(D,A,B) + X[i+11] + T[35]), 16);
 B = C + RotateLeft((B + H(C,D,A) + X[i+14] + T[36]), 23);
 
 A = B + RotateLeft((A + H(B,C,D) + X[i+ 1] + T[37]),  4);
 D = A + RotateLeft((D + H(A,B,C) + X[i+ 4] + T[38]), 11);
 C = D + RotateLeft((C + H(D,A,B) + X[i+ 7] + T[39]), 16);
 B = C + RotateLeft((B + H(C,D,A) + X[i+10] + T[40]), 23);
 
 A = B + RotateLeft((A + H(B,C,D) + X[i+13] + T[41]),  4);
 D = A + RotateLeft((D + H(A,B,C) + X[i+ 0] + T[42]), 11);
 C = D + RotateLeft((C + H(D,A,B) + X[i+ 3] + T[43]), 16);
 B = C + RotateLeft((B + H(C,D,A) + X[i+ 6] + T[44]), 23);
 
 A = B + RotateLeft((A + H(B,C,D) + X[i+ 9] + T[45]),  4);
 D = A + RotateLeft((D + H(A,B,C) + X[i+12] + T[46]), 11);
 C = D + RotateLeft((C + H(D,A,B) + X[i+15] + T[47]), 16);
 B = C + RotateLeft((B + H(C,D,A) + X[i+ 2] + T[48]), 23);
 
 //раунд 4
 A = B + RotateLeft((A + I(B,C,D) + X[i+ 0] + T[49]),  6);
 D = A + RotateLeft((D + I(A,B,C) + X[i+ 7] + T[50]), 10);
 C = D + RotateLeft((C + I(D,A,B) + X[i+14] + T[51]), 15);
 B = C + RotateLeft((B + I(C,D,A) + X[i+ 5] + T[52]), 21);
 
 A = B + RotateLeft((A + I(B,C,D) + X[i+12] + T[53]),  6);
 D = A + RotateLeft((D + I(A,B,C) + X[i+ 3] + T[54]), 10);
 C = D + RotateLeft((C + I(D,A,B) + X[i+10] + T[55]), 15);
 B = C + RotateLeft((B + I(C,D,A) + X[i+ 1] + T[56]), 21);
 
 A = B + RotateLeft((A + I(B,C,D) + X[i+ 8] + T[57]),  6);
 D = A + RotateLeft((D + I(A,B,C) + X[i+15] + T[58]), 10);
 C = D + RotateLeft((C + I(D,A,B) + X[i+ 6] + T[59]), 15);
 B = C + RotateLeft((B + I(C,D,A) + X[i+13] + T[60]), 21);
 
 A = B + RotateLeft((A + I(B,C,D) + X[i+ 4] + T[61]),  6);
 D = A + RotateLeft((D + I(A,B,C) + X[i+11] + T[62]), 10);
 C = D + RotateLeft((C + I(D,A,B) + X[i+ 2] + T[63]), 15);
 B = C + RotateLeft((B + I(C,D,A) + X[i+ 9] + T[64]), 21);
 
 A = AA + A;
 B = BB + B;
 C = CC + C;
 D = DD + D;
}
unsigned char key[4];
key[0] = A;
key[1] = B;
key[2] = C;
key[3] = D;
 
}
И этот набор нормально работает в консольном приложении, но выдает разный выход на одинаковые входные данные в виндовс форм. В чем может быть дело? Проблема начинается с числа B, число А всегда идет одинаковое. Только с B начинается идти ад и угар непонятно откуда взявшихся чисел.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 16:50. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru