Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1] 2  Все   Вниз
  Печать  
Автор Тема: Помогите отладить  (Прочитано 33420 раз)
0 Пользователей и 1 Гость смотрят эту тему.
CrazyBanja
Интересующийся

ua
Offline Offline

« : 12-05-2010 15:46 » 

Написал прогу. Реализация шифратора. Таблицу замен не может определить. Что делать? Я не могу понять в чем проблема.

 byte Tab_Z[8][16] =
 {
  0x0,0x1,0x2,0x3,0x4,0x5,0x6,0x7,0x8,0x9,0xA,0xB,0xC,0xD,0xE,0xF,
  0x0,0x1,0x2,0x3,0x4,0x5,0x6,0x7,0x8,0x9,0xA,0xB,0xC,0xD,0xE,0xF,
  0x0,0x1,0x2,0x3,0x4,0x5,0x6,0x7,0x8,0x9,0xA,0xB,0xC,0xD,0xE,0xF,
  0x0,0x1,0x2,0x3,0x4,0x5,0x6,0x7,0x8,0x9,0xA,0xB,0xC,0xD,0xE,0xF,
  0x0,0x1,0x2,0x3,0x4,0x5,0x6,0x7,0x8,0x9,0xA,0xB,0xC,0xD,0xE,0xF,
  0x0,0x1,0x2,0x3,0x4,0x5,0x6,0x7,0x8,0x9,0xA,0xB,0xC,0xD,0xE,0xF,
  0x0,0x1,0x2,0x3,0x4,0x5,0x6,0x7,0x8,0x9,0xA,0xB,0xC,0xD,0xE,0xF,
  0x0,0x1,0x2,0x3,0x4,0x5,0x6,0x7,0x8,0x9,0xA,0xB,0xC,0xD,0xE,0xF
 };
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #1 : 12-05-2010 15:49 » 

а так
Код:
	byte Tab_Z[8][16]=
{
{0x0,0x1,0x2,0x3,0x4,0x5,0x6,0x7,0x8,0x9,0xA,0xB,0xC,0xD,0xE,0xF},
{0x0,0x1,0x2,0x3,0x4,0x5,0x6,0x7,0x8,0x9,0xA,0xB,0xC,0xD,0xE,0xF},
{0x0,0x1,0x2,0x3,0x4,0x5,0x6,0x7,0x8,0x9,0xA,0xB,0xC,0xD,0xE,0xF},
{0x0,0x1,0x2,0x3,0x4,0x5,0x6,0x7,0x8,0x9,0xA,0xB,0xC,0xD,0xE,0xF},
{0x0,0x1,0x2,0x3,0x4,0x5,0x6,0x7,0x8,0x9,0xA,0xB,0xC,0xD,0xE,0xF},
{0x0,0x1,0x2,0x3,0x4,0x5,0x6,0x7,0x8,0x9,0xA,0xB,0xC,0xD,0xE,0xF},
{0x0,0x1,0x2,0x3,0x4,0x5,0x6,0x7,0x8,0x9,0xA,0xB,0xC,0xD,0xE,0xF},
{0x0,0x1,0x2,0x3,0x4,0x5,0x6,0x7,0x8,0x9,0xA,0xB,0xC,0xD,0xE,0xF},
};
Записан

CrazyBanja
Интересующийся

ua
Offline Offline

« Ответ #2 : 12-05-2010 15:51 » 

Дело в byte. Ругается. Пишеь что неопределенный идентификатор
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #3 : 12-05-2010 15:54 » 

BYTE или unsigned char

книжки читать надо по C++ Улыбаюсь
Записан

CrazyBanja
Интересующийся

ua
Offline Offline

« Ответ #4 : 12-05-2010 16:08 » 

А почему это ругаеться?
Код:
for (int q=0; q<4; q++) *((Tab_Z *)&N+q) = 0x00;
« Последнее редактирование: 13-05-2010 16:07 от RXL » Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #5 : 12-05-2010 16:13 » 

ругается, потому что это чушь какая-то

скомпилировать то можно: а какой тип у N ?

но сдаётся мне, что это всё неправильно и неудобно Улыбаюсь

Что ты хочешь в этой строчке сделать ?
Записан

CrazyBanja
Интересующийся

ua
Offline Offline

« Ответ #6 : 12-05-2010 16:21 » 

Код:
Хочу записать в накопитель. char N[4]
[code/]
for (int q=0; q<4; q++) *((Tab_Z *)&N+q) = 0x00;
  if ((sh1+sh)<filesize(f_begin))
  {
   fread (N,sh,1,f_begin);
   sh1+=sh;
  }
  else
  {
   sh=filesize(f_begin)-sh1;
   fread (N,sh,1,f_begin);
   flag=1;
  }
  n1 = *((unsigned long *)&N);
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #7 : 12-05-2010 16:22 » 

покажи определение Tab_Z
Записан

CrazyBanja
Интересующийся

ua
Offline Offline

« Ответ #8 : 12-05-2010 16:24 » 

Это таблица подстановки верхняя
Код:
byte Tab_Z[8][16]=
{
{0x0,0x1,0x2,0x3,0x4,0x5,0x6,0x7,0x8,0x9,0xA,0xB,0xC,0xD,0xE,0xF},
{0x0,0x1,0x2,0x3,0x4,0x5,0x6,0x7,0x8,0x9,0xA,0xB,0xC,0xD,0xE,0xF},
{0x0,0x1,0x2,0x3,0x4,0x5,0x6,0x7,0x8,0x9,0xA,0xB,0xC,0xD,0xE,0xF},
{0x0,0x1,0x2,0x3,0x4,0x5,0x6,0x7,0x8,0x9,0xA,0xB,0xC,0xD,0xE,0xF},
{0x0,0x1,0x2,0x3,0x4,0x5,0x6,0x7,0x8,0x9,0xA,0xB,0xC,0xD,0xE,0xF},
{0x0,0x1,0x2,0x3,0x4,0x5,0x6,0x7,0x8,0x9,0xA,0xB,0xC,0xD,0xE,0xF},
{0x0,0x1,0x2,0x3,0x4,0x5,0x6,0x7,0x8,0x9,0xA,0xB,0xC,0xD,0xE,0xF},
{0x0,0x1,0x2,0x3,0x4,0x5,0x6,0x7,0x8,0x9,0xA,0xB,0xC,0xD,0xE,0xF},
};
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #9 : 12-05-2010 16:29 » 

блин, срочно читать что-нибудь вроде "C++ для начинающих"!

Tab_Z - это идентификатор, а ты его используешь как тип для приведения, я даже смысл понять не могу

строка
for (int q=0; q<4; q++) *((Tab_Z *)&N+q) = 0x00;
по твоему мнению что должна сделать ?
Записан

CrazyBanja
Интересующийся

ua
Offline Offline

« Ответ #10 : 12-05-2010 16:41 » 

Просто byte там ругался, вот я и поставил Tab_Z. Бездумно. Она должна записать в накопитель 4 байта. 4 блока = 4 байта
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #11 : 12-05-2010 16:43 » 

Бездумно
таких не берут в космонавты

попробуй копировать при помощи memmove
Записан

RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #12 : 12-05-2010 16:44 » 

CrazyBanja, не слышишь совсем...
Сформулируй словесно, что должна выполнять эта строка.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
CrazyBanja
Интересующийся

ua
Offline Offline

« Ответ #13 : 12-05-2010 16:50 » 

Береться блок из потока и записываеться в накопитель. Побитно!
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #14 : 12-05-2010 16:51 » 

CrazyBanja, хорошо. Только это общие слова - для составления алгоритма не достаточно.

Что у тебя хранится в N?
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #15 : 12-05-2010 16:54 » 

ага, тогда начнём с самого начала: что делает программа ?


а под
for (int q=0; q<4; q++) *((Tab_Z *)&N+q) = 0x00;

скорее всего понимается
memset(N,0,sizeof(N));
Записан

CrazyBanja
Интересующийся

ua
Offline Offline

« Ответ #16 : 12-05-2010 16:56 » 

Прога реализует шифратор по нашему ГОСТу. Там храниться кусок текста (потока)
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #17 : 12-05-2010 16:59 » 

CrazyBanja, ГОСТов дофига и больше - без номера это ничего не значит.

Где хранится? Какого текста? Какого потока?
Ничего не понятно...
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
CrazyBanja
Интересующийся

ua
Offline Offline

« Ответ #18 : 12-05-2010 17:05 » 

Шифратор на основе ГОСТ 28147-89. Берет файл, шифрует его методом простой замены и на выходе получает другой файл.только зашифрованый
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #19 : 12-05-2010 17:08 » 

Хорошо, это понятно. Рассказывай дальше.

Для информации: ГОСТ 28147-89
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
CrazyBanja
Интересующийся

ua
Offline Offline

« Ответ #20 : 12-05-2010 17:13 » 

С помощья нета и хелпа слепил прогу. Вот пытаюсь ее теперь запустить. Не сильно меняя код, убрал все ошибки. Вроде правильно. Осталась малость... У меня тут еще такая чипуха осталась...
Код:
 // вывод результата в файл
  char sym_rez;
  for (int q=0; q<=3; q++)
  {
   sym_rez = *((unsigned char *)&n1+q);
   fprintf(f_end, "%c", sym_rez);
  }
  for (int q=0; q<=3; q++)
  {
   sym_rez = *((unsigned char *)&n2+q);
   fprintf(f_end, "%c", sym_rez);
  }
 }
 fclose (f_begin);
 fclose (f_end);
Записан
CrazyBanja
Интересующийся

ua
Offline Offline

« Ответ #21 : 12-05-2010 17:15 » 

ГОСТ я знаю хорошо. А вот с програмированием не сложилось. А на диплом надо прожить. Вот и стараюсь что-то вспомнить
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #22 : 12-05-2010 17:52 » 

CrazyBanja, прежде всего, не торопись писать код - это последняя стадия реализации. Сперва опиши алгоритм словесно по шагам. Только после того, как сможешь таки вот образом его прогнать, только после этого пиши код.
Кстати, то, что я вишу выше - какая-то каша, в которой и разбираться не хочется. Не понимаю, почему ты не используешь индексы.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Sla
Модератор

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #23 : 12-05-2010 18:37 » 

ГОСТ я знаю хорошо. А вот с програмированием не сложилось. А на диплом надо прожить. Вот и стараюсь что-то вспомнить
Пипец. Если программирование нужно пережить на дипломе, то никто не будет читать текст программы. Пиши что хочешь. Конечно, если в рецензенты я не попаду Улыбаюсь
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #24 : 12-05-2010 19:07 » 

Слав, не попадешь: судя по IP - он из Нижнего Новгорода.

Интересная логика: нужно один раз за время учебы - значит не нужно изучать. А ведь таких предметов пруд пруди.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
CrazyBanja
Интересующийся

ua
Offline Offline

« Ответ #25 : 12-05-2010 19:10 » 

Ребят, в том то и дело что програмирование мне понадобилось только на дипломе. Поэтому и такой програмист прогресирующий. Написать что-то нормальное тяжеловато и долговато будет. А этот код нашел в нете. Вроде что-то похоже, хотя и коряво, даже я вижу. Вот и стараюсь код подогнать, точнее хоть бы запустить...


Ой ребятки, я больше любил анализ, защиту, документацию. А програмирование нормально никогда и не преподавалось. И скажу точно никто из Вас мне рецензентом не попадеться)))
« Последнее редактирование: 13-05-2010 16:06 от RXL » Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #26 : 12-05-2010 19:42 » 

CrazyBanja, интереса делать за тебя нам никакого нет. Помочь разобраться - это еще может быть интересным.

Попробуй все-таки почитать самоучители по C или C++ (в твоем случае не суть важно). Например здесь можно найти: https://club.shelek.ru/viewfiles.php?id=16
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
CrazyBanja
Интересующийся

ua
Offline Offline

« Ответ #27 : 12-05-2010 19:45 » 

Спасибо, но передомной их 2.
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #28 : 12-05-2010 19:47 » 

CrazyBanja, почитай о массивах и доступе к элементам.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
CrazyBanja
Интересующийся

ua
Offline Offline

« Ответ #29 : 12-05-2010 20:39 » 

Почитал. Ничего нового. Практики просто не хватает. Кстате, прогу запустил. Даже обрадывался, жаль только работает неправильно((
Записан
Страниц: [1] 2  Все   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines