Главная
Поиск
Карта сайта
Форум
Все страницы
Главное меню
Главная
Стандартный C++
Borland C++ 3.1
Borland C++ Builder
Учебник C++
Скачать программы
Гостевая
Форум
Учебник по созданию игр
Авторизация
Логин
Пароль
Запомнить меня
Забыли пароль?
Забыли логин?
Счетчики
Обмен ссылками
Блог программиста
Главная
Форум
Последние сообщения
Форум
Список форумов
Последние сообщения
Добро пожаловать Гость
[Зарегистрироваться]
Войти
Тема :Настройка пианино и фортепиано в Харь..
23-11-2010 20:42:11
dyalex
Hello, world!
Онлайн с
: 17-05-2010 10:37:57
Сообщения
: 4
Среда обитания
:
0
Форум :
Реклама
Тема :
Настройка пианино и фортепиано в Харькове
Тема :
Настройка пианино и фортепиано в Харькове
Если вам нужно настроить
пианино
или
фортепиано в Харькове
, то обращайтесь к нам. Наш настройщик настроит качественно от самых низких, до самых высоких нот.
IP сохранен
Тема :о сайте..
11-11-2010 22:59:31
prom
Hello, world!
Онлайн с
: 11-11-2010 19:44:38
Сообщения
: 1
Среда обитания
:
0
Форум :
Обсуждение сайта
Тема :
о сайте
имхо:
1. материалы по С++ 3.1 совсем уж не к чему, ну ещё по ВСВ6 понятно, что изучена досконально и к ней куча плагинов. По последней причине многие и не собираются переходить на ХЕ.
2. капчу при регистрации попроще сделать, зачем такая длинная - неудобно.
3. длина некоторых страниц очень большая. Оптимальный вариант - на одну прокрутку пальцем колеса мыши, что не входит перенести на следующую страницу.
4. по дизайну хорошо, гланое, что ненавязчивый, не отвлекает от контента.
Ну и в целом, удачи автору!
IP сохранен
Тема :Как найти много примеров написаных на ..
28-10-2010 23:31:34
Rudick
Hello, world!
Онлайн с
: 28-10-2010 18:58:32
Сообщения
: 1
Среда обитания
:
0
Форум :
Общие вопросы по программированию
Тема :
Как найти много примеров написаных на С++ про класы,конструкторы??????????????
Тема :
Как найти много примеров написаных на С++ про класы,конструкторы??????????????
Примеры типа : Разработать класс окружность с возможностю изображения обьекта на екранею.Переместить его в другую позицыю.
IP сохранен
Последний раз редактировалось: 28-10-2010 23:31:34 Автор Rudick т.к.
Тема :Re:Помогите с программой..
25-10-2010 17:16:45
Bane
Hello, world!
Онлайн с
: 24-10-2010 11:48:15
Сообщения
: 2
Среда обитания
:
0
Форум :
Общие вопросы по программированию
Тема :
Помогите с программой
блягодарю))
теперь всё работает,хотя сделано не очень чётко,но я поправлю.
большое спасибо
IP сохранен
Тема :Re:Помогите с программой..
25-10-2010 13:45:13
Captain
int main()
Онлайн с
: 28-03-2009 11:37:34
Сообщения
: 39
Среда обитания
:
0
Форум :
Общие вопросы по программированию
Тема :
Помогите с программой
Ну вот мое видение функции Answer, которая возвращает 0, если N-й (нумерация идет с 0) гном говорит "зеленая", 1 если "красная" (допустим, что все гномы хранятся в одном числе - 1й в младшем разряде):
Code:
int Answer(int Gnomes, int N) { if (N == 0) return 1; int num = 0; int degree = 1; //Степень двойки, т.е. числа 00000001, 00000010, 00000100 и т.д. for (int i = 1; i < N - 1; i++) { if (Gnomes & degree == 0) num++; degree <<= 1; } if (num % 2) //Если уж совсем ударяться в битовые операции, то можно if (num & 1) return 0; return 1; }
Т.е. в результате сдвига числа degree мы постоянно получаем число с единицей в единственном разряде (сначала в младшем, потом во втором, третьем и т.д.), с помощью оператора & проверяем, есть ли в числе Gnomes в этом разряде 1 (нам нужен 0, поэтому сравниваем результат с нулем), если да, то увеличиваем счетчик. Ну и потом смотрим его четность.
IP сохранен
Последний раз редактировалось: 25-10-2010 13:45:13 Автор Captain т.к.
Тема :Re:Вычисления в ВС++ 3.1..
25-10-2010 13:14:01
Captain
int main()
Онлайн с
: 28-03-2009 11:37:34
Сообщения
: 39
Среда обитания
:
0
Форум :
Общие вопросы по программированию
Тема :
Вычисления в ВС++ 3.1
На самом деле погрешность будет всегда, хоть это будет float, хоть double. Просто у double погрешность меньше, т.к. выше точность, поэтому, видимо, так удачно округлилось.
В вашем случае, думаю, можно написать свою функцию округления до ближайшего целого. К примеру, такую:
Code:
int Round(double x) //Округление до ближайшего целого { if (x - floor(x) < 0.5) return floor(x); //Округление с недостатком return ceil(x); //Округление с избытком }
А в серьезных математических пакетах проблемы с точностью, насколько я знаю, решают рядом способов, в числе которых длинная арифметика и создание типа "рациональная дробь" с определением для него всех необходимых операций.
IP сохранен
Тема :Помогите с программой..
24-10-2010 16:03:00
Bane
Hello, world!
Онлайн с
: 24-10-2010 11:48:15
Сообщения
: 2
Среда обитания
:
0
Форум :
Общие вопросы по программированию
Тема :
Помогите с программой
Привет. Мне надо сдавать зачёт по программе. Я понял как её писать написал,но есть где-то ошибка,которую никак не могу найти.
Условия задачи выглядят так: в комнате сидят 16 гномов. Последний видит всех гномов,которые сидят перед ним. Следующий видит всех кроме последнего и т.д.. На гномах шапки двух цветов. К каждому гному подходит человек и спрашивает какого цвета на этом гноме шапка. Если гном отвечает правильно то ему дают доллар. Как должны сговориться гному,чтобы получить максимальное количество денег.
Надо представить люое число как двоичный код. 1-красная шапка.0-зелёная. Последний гном смотрит на чётность количества нулей перед ним если чётное то он 1.нечётное-0.
каждый следующий делает также.
не могли бы помочь с написанием. писал в Borland C++
IP сохранен
Последний раз редактировалось: 24-10-2010 16:03:00 Автор Bane т.к.
Тема :Вычисления в ВС++ 3.1..
21-10-2010 23:49:22
sergik_n
Hello, world!
Онлайн с
: 21-10-2010 19:16:24
Сообщения
: 1
Среда обитания
:
0
Форум :
Общие вопросы по программированию
Тема :
Вычисления в ВС++ 3.1
Здравствуйте!
Имеется фрагмент программы в котором вычисляется количество
проходов цикла от x0 до x1 с шагом dx:
#include
#include
void main()
{
float x0, x1, dx;
int n;
x0=-2.;
x1=2.;
dx=0.2;
n=floor(fabs((x1-x0)/dx));
printf ("n=%d\n",n);
}
При данных значениях должны получить 4/0,2 = 20.
Но из-за представления 0,2 в двоичной системе получаем погрешность
вычислений и результатом (в Borland C++ 3.1) будет 19!
Проблему решает описание переменных как double,
но интересно как такие вычисления (с погрешностями) решать правильно.
Оффтоп: я не смог зарегистрироваться со стартовой странички форума,
а только с главной странички ))
IP сохранен
Тема :Односвязный и двухсвязный списки..
20-10-2010 04:40:44
Neo
Hello, world!
Онлайн с
: 20-10-2010 00:32:03
Сообщения
: 1
Среда обитания
:
0
Форум :
Проблемы и обсуждение программ
Тема :
Односвязный и двухсвязный списки
Сформировать список,в котором сохраняется информация об ассортименте продовольственных товаров в коммерческих магазинах:наименование магазина,наименование товара,количество этого товара.Подобрать магазин ,в котором продается требуемый товар в количестве,не менее заданного.
Будьте добры ,помогите пжлст!!!Очень нужно..Надежда на Вас!!
IP сохранен
Тема :Re:Перемножение матриц..
13-10-2010 15:49:02
arseniiv
Hello, world!
Онлайн с
: 08-10-2010 21:37:59
Сообщения
: 1
Среда обитания
:
0
Форум :
Проблемы и обсуждение программ
Тема :
Перемножение матриц
А конкретнее? Они не помещаются в памяти?
IP сохранен
Тема :Re:ошибка в уроке..
14-09-2010 01:23:45
Captain
int main()
Онлайн с
: 28-03-2009 11:37:34
Сообщения
: 39
Среда обитания
:
0
Форум :
Обсуждение сайта
Тема :
ошибка в уроке
Спасибо за замечание! Действительно, вместо "симметричной" (как собирался) случайно назвал матрицу "диагональной". Исправил.
IP сохранен
Тема :ошибка в уроке..
03-09-2010 00:22:05
rrrFer
Hello, world!
Онлайн с
: 18-06-2010 19:14:04
Сообщения
: 15
Среда обитания
:
0
Форум :
Обсуждение сайта
Тема :
ошибка в уроке
в уроке по циклам:
Code:
for(int i = 0; i < max; i++) for(int j = i; j < max; j++) if (a[i][j] != a[j][i]) { //Матрица не диагональна }
что такое диагональная матрица:
http://ru.wikipedia.org/wiki/
Диагональная_матрица
Т.е. условие которое вы проверяете не то что бы недостаточно, оно и ненужно вообще
IP сохранен
Тема :Разрыв соединения с интернетом..
18-07-2010 21:16:53
rudolf
char
Онлайн с
: 24-02-2010 11:03:24
Сообщения
: 31
Среда обитания
:
0
Форум :
Проблемы и обсуждение программ
Тема :
Разрыв соединения с интернетом
Я написал программу, которая подсчитывает интернет-трафик (количество входящих и исходящих байт). Вся проблема в том, что она (моя программа)считает трафик (хотя правильнее сказать "получает статистику подключения")только на момент запуска, то есть я запускаю программу, она получает статистику и все. А надо, что бы программа получала статистику только перед выходом из интернета.
Как мне отследить отключение от интернета и запустить свою функцию, по подсчету трафика.
Если есть идеи, а еще лучше - знаете как помочь - подскажите\помогите.
Если надо - могу скинуть код программы (той части, которая получает статистику)
IP сохранен
Тема :Re:мнение о сайте..
02-06-2010 01:26:27
0nua
Hello, world!
Онлайн с
: 29-05-2010 00:31:39
Сообщения
: 1
Среда обитания
:
0
Форум :
Обсуждение сайта
Тема :
мнение о сайте
Спасибо за сайт))) Реально помог разобраться в изучении языка, всё очень понятно и просто изложено, особенно радуют примеры, которые можно скачать, посмотреть, улучшить и тд.
В общем, всё очень здорово, лучше пока не находил
IP сохранен
Тема :Re:Односвязный список-реализация стека..
31-05-2010 02:28:55
Lingray
Hello, world!
Онлайн с
: 30-05-2010 22:25:07
Сообщения
: 1
Среда обитания
:
0
Форум :
Улучшение программ
Тема :
Односвязный список-реализация стека
Code:
void delrepeat(STACK *A, int N) { STACK *node; // STACK *A; node *temp; do { tmp = A->element; A = (*A).next; while (N!=1) { tmp1=A->element; A = (*A).next; N--; if (tmp==tmp1) { printf("sovpal udalyaem\n"); A* temp = node; node = node -> next; delete temp; //node=node->next } } }while (A!=NULL);
помогите удалить повторяющиеся элементы в стеке
IP сохранен
Тема :Языки программирования высокого и низ..
20-05-2010 04:40:56
dyalex
Hello, world!
Онлайн с
: 17-05-2010 10:37:57
Сообщения
: 4
Среда обитания
:
0
Форум :
Реклама
Тема :
Языки программирования высокого и низкого уровня
Тема :
Языки программирования высокого и низкого уровня
Языки программирования высокого и низкого уровня
- есть уроки, статьи, тексты программ и результаты работы.
IP сохранен
Тема :Re:Реализация хеш-функции MD5..
15-05-2010 04:38:17
rudolf
char
Онлайн с
: 24-02-2010 11:03:24
Сообщения
: 31
Среда обитания
:
0
Форум :
Общие вопросы по программированию
Тема :
Реализация хеш-функции MD5
Вот исходник моей программы.
Captain, пожалуйста, гляньте, что тут не так.
Прикрепленные файлы
hash.zip [898 KB]
::
IP сохранен
Последний раз редактировалось: 15-05-2010 04:38:17 Автор rudolf т.к.
Тема :Re:Реализация хеш-функции MD5..
15-05-2010 04:36:09
rudolf
char
Онлайн с
: 24-02-2010 11:03:24
Сообщения
: 31
Среда обитания
:
0
Форум :
Общие вопросы по программированию
Тема :
Реализация хеш-функции MD5
Unit1.cpp
Code:
//--------------------------------------------------------------------------- #include <vcl.h> #include <math.h> #pragma hdrstop #include "Unit1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- String GetHash(String inStr) { int length=inStr.Length(); int rests=length%64; int size=0; if(rests < 56) { size=length-rests+56+8; } else { size=length+64-rests+56+8; } unsigned char *inChar=new unsigned char[size]; for(int i=0;i<length;i++) { inChar[i]=inStr[i+1]; } inChar[length]=128; for(int i=length+1;i<size;i++) { inChar[i]=0; } //Step2 unsigned long lengthBit=(unsigned long)length*8; unsigned char bits[8]; for(int i=0;i<8;i++) { bits[i]=(lengthBit >> i*8) & 0xFF; inChar[size-8+i]=bits[i]; } //Step3 __int64 A=0x67452301, B=0xefcdab89, C=0x98badcfe, D=0x10325476; int T[64]; for(int i=0;i<64;i++) { T[i]=pow(2,32)*fabs(sin(i)); } __int32 X[16]; for(int i=0;i<16;i++) { X[i]=inChar[i]|inChar[i+1]<<8|inChar[i+2]<<16|inChar[i+3]<<24; } //Step4 __int64 AA,BB,CC,DD; AA=A; BB=B; CC=C; DD=D; //Раунд1: A=B + ((A + F(B,C,D) + X[0] + T[0]) << 7); D=A + ((D + F(A,B,C) + X[1] + T[1]) << 12); C=D + ((C + F(D,A,B) + X[2] + T[2]) << 17); B=C + ((B + F(C,D,A) + X[3] + T[3]) << 22); A=B + ((A + F(B,C,D) + X[4] + T[4]) << 7); D=A + ((D + F(A,B,C) + X[5] + T[5]) << 12); C=D + ((C + F(D,A,B) + X[6] + T[6]) << 17); B=C + ((B + F(C,D,A) + X[7] + T[7]) << 22); A=B + ((A + F(B,C,D) + X[8] + T[8]) << 7); D=A + ((D + F(A,B,C) + X[9] + T[9]) << 12); C=D + ((C + F(D,A,B) + X[10] + T[10]) << 17); B=C + ((B + F(C,D,A) + X[11] + T[11]) << 22); A=B + ((A + F(B,C,D) + X[12] + T[12]) << 7); D=A + ((D + F(A,B,C) + X[13] + T[13]) << 12); C=D + ((C + F(D,A,B) + X[14] + T[14]) << 17); B=C + ((B + F(C,D,A) + X[15] + T[15]) << 22); //Раунд2 A=B + ((A + G(B,C,D) + X[1] + T[16]) << 5); D=A + ((D + G(A,B,C) + X[6] + T[17]) << 9); C=D + ((C + G(D,A,B) + X[11] + T[18]) << 14); B=C + ((B + G(C,D,A) + X[0] + T[19]) << 20); A=B + ((A + G(B,C,D) + X[5] + T[20]) << 5); D=A + ((D + G(A,B,C) + X[10] + T[21]) << 9); C=D + ((C + G(D,A,B) + X[15] + T[22]) << 14); B=C + ((B + G(C,D,A) + X[4] + T[23]) << 20); A=B + ((A + G(B,C,D) + X[9] + T[24]) << 5); D=A + ((D + G(A,B,C) + X[14] + T[25]) << 9); C=D + ((C + G(D,A,B) + X[3] + T[26]) << 14); B=C + ((B + G(C,D,A) + X[8] + T[27]) << 20); A=B + ((A + G(B,C,D) + X[13] + T[28]) << 5); D=A + ((D + G(A,B,C) + X[2] + T[29]) << 9); C=D + ((C + G(D,A,B) + X[7] + T[30]) << 14); B=C + ((B + G(C,D,A) + X[12] + T[31]) << 20); //Раунд3 A=B + ((A + H(B,C,D) + X[5] + T[32]) << 4); D=A + ((D + H(A,B,C) + X[8] + T[33]) << 11); C=D + ((C + H(D,A,B) + X[11] + T[34]) << 16); B=C + ((B + H(C,D,A) + X[14] + T[35]) << 23); A=B + ((A + H(B,C,D) + X[1] + T[36]) << 4); D=A + ((D + H(A,B,C) + X[4] + T[37]) << 11); C=D + ((C + H(D,A,B) + X[7] + T[38]) << 16); B=C + ((B + H(C,D,A) + X[10] + T[39]) << 23); A=B + ((A + H(B,C,D) + X[13] + T[40]) << 4); D=A + ((D + H(A,B,C) + X[0] + T[41]) << 11); C=D + ((C + H(D,A,B) + X[3] + T[42]) << 16); B=C + ((B + H(C,D,A) + X[6] + T[43]) << 23); A=B + ((A + H(B,C,D) + X[9] + T[44]) << 4); D=A + ((D + H(A,B,C) + X[12] + T[45]) << 11); C=D + ((C + H(D,A,B) + X[15] + T[46]) << 16); B=C + ((B + H(C,D,A) + X[2] + T[47]) << 23); //Раунд4 A=B + ((A + H(B,C,D) + X[0] + T[48]) << 6); D=A + ((D + H(A,B,C) + X[7] + T[49]) << 10); C=D + ((C + H(D,A,B) + X[14] + T[50]) << 15); B=C + ((B + H(C,D,A) + X[5] + T[51]) << 21); A=B + ((A + H(B,C,D) + X[12] + T[52]) << 6); D=A + ((D + H(A,B,C) + X[3] + T[53]) << 10); C=D + ((C + H(D,A,B) + X[10] + T[54]) << 15); B=C + ((B + H(C,D,A) + X[1] + T[55]) << 21); A=B + ((A + H(B,C,D) + X[8] + T[56]) << 6); D=A + ((D + H(A,B,C) + X[15] + T[57]) << 10); C=D + ((C + H(D,A,B) + X[6] + T[58]) << 15); B=C + ((B + H(C,D,A) + X[13] + T[59]) << 21); A=B + ((A + H(B,C,D) + X[4] + T[60]) << 6); D=A + ((D + H(A,B,C) + X[11] + T[61]) << 10); C=D + ((C + H(D,A,B) + X[2] + T[62]) << 15); B=C + ((B + H(C,D,A) + X[9] + T[63]) << 21); A=AA + A; B=BB + B; C=CC + C; D=DD + D; //Step5 String out; out+=IntToHex(A,0)+IntToHex(B,0)+IntToHex(C,0)+IntToHex(D,0); return out; } //---------------------------------------------------------- __int64 F(__int64 X,__int64 Y,__int64 Z) { return ((X & Y) | (~ X & Z)); } __int64 G(__int64 X,__int64 Y,__int64 Z) { return ((X & Z) | (Y & ~ Z)); } __int64 H(__int64 X,__int64 Y,__int64 Z) { return (X ^ Y ^ Z); } __int64 I(__int64 X,__int64 Y,__int64 Z) { return (Y ^ (X | ~ Z)); } void __fastcall TForm1::Button1Click(TObject *Sender) { ShowMessage(GetHash(Edit1->Text)); Button1->Caption=IntToStr(GetHash(Edit1->Text).Length()); } //---------------------------------------------------------------------------
IP сохранен
Тема :Реализация хеш-функции MD5..
15-05-2010 04:39:07
rudolf
char
Онлайн с
: 24-02-2010 11:03:24
Сообщения
: 31
Среда обитания
:
0
Форум :
Общие вопросы по программированию
Тема :
Реализация хеш-функции MD5
Пытаюсь реализовать хеш-функцию MD5 по алгоритму, приведенному в болтшинстве источников.
Написал хеш функцию, но она не работает, т.е. работает, но не правильно(выдает неверный хеш-код).
Алгоритм можно глянуть на википедии:
http://ru.wikipedia.org/wiki/MD5
и в прекрепленном файле.
вот мой код:
Unit1.h
Code:
//--------------------------------------------------------------------------- #ifndef Unit1H #define Unit1H //--------------------------------------------------------------------------- #include #include #include #include //--------------------------------------------------------------------------- class TForm1 : public TForm { __published: // IDE-managed Components TEdit *Edit1; TButton *Button1; void __fastcall Button1Click(TObject *Sender); private: // User declarations public: // User declarations __fastcall TForm1(TComponent* Owner); }; String GetHash(String inStr); __int64 F(__int64 X,__int64 Y,__int64 Z); __int64 G(__int64 X,__int64 Y,__int64 Z); __int64 H(__int64 X,__int64 Y,__int64 Z); __int64 I(__int64 X,__int64 Y,__int64 Z); //--------------------------------------------------------------------------- extern PACKAGE TForm1 *Form1; //--------------------------------------------------------------------------- #endif
Прикрепленные файлы
md5.zip [549 KB]
::
IP сохранен
Последний раз редактировалось: 15-05-2010 04:39:07 Автор rudolf т.к.
Тема :Re:Бинарное дерево поиска..
15-05-2010 04:22:38
rudolf
char
Онлайн с
: 24-02-2010 11:03:24
Сообщения
: 31
Среда обитания
:
0
Форум :
Общие вопросы по программированию
Тема :
Бинарное дерево поиска
.
IP сохранен
Последний раз редактировалось: 15-05-2010 04:22:38 Автор rudolf т.к.
Страница #
5
10
15
20
25
30
50
100
Все
«
Первая
Предыдущая
1
2
3
4
5
6
7
Следующая
Последняя
»
Powered by
ccBoard