Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
0 / 0 / 1
Регистрация: 14.03.2013
Сообщений: 150

Дайте комментарии к коду

17.03.2013, 11:35. Показов 968. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Кто в теме, дайте комментарии к коду

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
#include <vcl.h>
#include <string.h>
#include <stdio.h>
#pragma hdrstop
 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
unsigned long Regist = 1;
char *filenameIn; / имя открываемого файла
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{}
//---------------------------------------------------------------------------
void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
if (OpenDialog1->Execute())
        {Memo1->Lines->LoadFromFile(OpenDialog1->FileName);
        Button1->Enabled=true;
        }
else
        {ShowMessage("Ошибка при открытии файла!");
        Button1->Enabled=false;
        }}
//---------------------------------------------------------------------------
void __fastcall TForm1::BitBtn2Click(TObject *Sender)
{
if (SaveDialog1->Execute())
        {Memo2->Text="";
        Button1->Enabled=true;
        }
else
        {ShowMessage("Ошибка при открытии файла!");
        Button1->Enabled=false;
        }}
//---------------------------------------------------------------------------
int RSLOS (TMemo *Memo3)
{
 
int i=0;
unsigned long uL = StrToInt (Memo3->Lines->Strings[i]);
for (int i=0;i<Memo3->Lines->Count-1;i++)
        {uL^=(Regist>>StrToInt(Memo3->Lines->Strings[i]));
        }
uL&=0x00000001;
uL<<=StrToInt(Memo3->Lines->Strings[0]);
uL|=(Regist>>1);
Regist = uL;
return Regist &0x00000001;
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
unsigned char ch;
FILE *INfile, *OUTfile;
filenameIn=OpenDialog1->FileName.c_str();
char *filenameOut=SaveDialog1->FileName.c_str();
        INfile=fopen(filenameIn, "rb");
        OUTfile=fopen(filenameOut, "wb");
Regist=StrToInt(Edit1->Text);
 
unsigned char byte = 0;
while (!feof(INfile))
{
        if (fread(&ch,sizeof(unsigned char),1,INfile))
        {
                for(int i = 0; i < 8; i++)
                {
                        byte |= (unsigned char)RSLOS(Memo3);
                        byte <<= 1;
                }
                byte ^= ch;
                int count=fwrite(&byte,sizeof(unsigned char),1,OUTfile);
                }
}
fclose(INfile);
fclose(OUTfile);}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Memo2->Lines->LoadFromFile(OpenDialog2->FileName);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
Memo2->Lines->LoadFromFile(OpenDialog2->FileName);}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.03.2013, 11:35
Ответы с готовыми решениями:

Дайте совет по данному коду
Здравствуйте я хочу настроить поиск по базе данных на Access. Я попытался написать следующий код но он работает не корректно а именно он не...

Комментарии к коду
Доброго времени суток ув. программисты :) Нужны подробные комментарии к каждой строке кода. char res; ...

Нужны комментарии к коду
//--------------------------------------------------------------------------- #include &lt;vcl.h&gt; #pragma hdrstop #include...

9
16 / 16 / 9
Регистрация: 16.03.2012
Сообщений: 437
17.03.2013, 15:23
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
#include <vcl.h>
#include <string.h>
#include <stdio.h>
#pragma hdrstop
 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
unsigned long Regist = 1;
char *filenameIn; // имя открываемого файла
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{}
//---------------------------------------------------------------------------
void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
if (OpenDialog1->Execute())                                               // Функция запуска открытия 
        {Memo1->Lines->LoadFromFile(OpenDialog1->FileName); // Загружаем из файла
        Button1->Enabled=true;                                            // Включить кнопку
        }
else
        {ShowMessage("Ошибка при открытии файла!"); 
        Button1->Enabled=false;                                          // Выключить кнопку
        }} 
//---------------------------------------------------------------------------
void __fastcall TForm1::BitBtn2Click(TObject *Sender)
{
if (SaveDialog1->Execute())                         // Функция запуска сохранения 
        {Memo2->Text="";                             // Список Memo очищаем
        Button1->Enabled=true;                      // Показываем кнопку
        }
else
        {ShowMessage("Ошибка при открытии файла!");
        Button1->Enabled=false;                     // Выключить кнопку
        }}
//---------------------------------------------------------------------------
int RSLOS (TMemo *Memo3)
{
 
int i=0;
unsigned long uL = StrToInt (Memo3->Lines->Strings[i]);
for (int i=0;i<Memo3->Lines->Count-1;i++)
        {uL^=(Regist>>StrToInt(Memo3->Lines->Strings[i]));
        }
uL&=0x00000001;
uL<<=StrToInt(Memo3->Lines->Strings[0]);               // Запись в роле Memo
uL|=(Regist>>1);
Regist = uL;
return Regist &0x00000001;                                    // возвращаем Regist &0x00000001
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
unsigned char ch;
FILE *INfile, *OUTfile;                                           // Указатели на файл для записи и чтения 
filenameIn=OpenDialog1->FileName.c_str();               // Файл для записи
char *filenameOut=SaveDialog1->FileName.c_str();    // Файл для чтения
        INfile=fopen(filenameIn, "rb");                         // Открытие файла с названием  "rb" 
        OUTfile=fopen(filenameOut, "wb");                   // Чтение файла с названием  "wb"
Regist=StrToInt(Edit1->Text);                                // Записываем какие-то значения в Edit1
 
unsigned char byte = 0;
while (!feof(INfile))                                              // Если не конец файла
{
        if (fread(&ch,sizeof(unsigned char),1,INfile))    // Если не конец файла
        {
                for(int i = 0; i < 8; i++)                       // Если не конец файла
                {
                        byte |= (unsigned char)RSLOS(Memo3);    
                        byte <<= 1;
                }
                byte ^= ch;
                int count=fwrite(&byte,sizeof(unsigned char),1,OUTfile);   // Запись в файл результатов
                }
}
fclose(INfile);            // Закрытие в файле
fclose(OUTfile);}       // Закрытие вне файла
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Memo2->Lines->LoadFromFile(OpenDialog2->FileName);   // Загрузка из файла
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)       
{
Memo2->Lines->LoadFromFile(OpenDialog2->FileName);}     // Загрузка из файла

Что смог, то и прокоментировал
1
 Аватар для kzru_hunter
1124 / 795 / 101
Регистрация: 01.02.2011
Сообщений: 1,887
Записей в блоге: 1
17.03.2013, 15:31
Цитата Сообщение от SlashX6 Посмотреть сообщение
FILE *INfile, *OUTfile; // Указатели на файл для записи и чтения
filenameIn=OpenDialog1->FileName.c_str(); // Файл для записи
char *filenameOut=SaveDialog1->FileName.c_str(); // Файл для чтения
INfile=fopen(filenameIn, "rb"); // Открытие файла с названием "rb"
OUTfile=fopen(filenameOut, "wb"); // Чтение файла с названием "wb"
Regist=StrToInt(Edit1->Text); // Записываем какие-то значения в Edit1
неправильно
1
0 / 0 / 1
Регистрация: 14.03.2013
Сообщений: 150
17.03.2013, 15:41  [ТС]
SlashX6, спасибо за помощь.

kzru_hunter, а как будет правильно?

Добавлено через 3 минуты
К сведению. Это программа реализует потоковое шифрование с РСЛОС.
Я в программировании на С++ не силен, в теории полностью разобрался по данному вопросу, но как реализовать на практике не знаю, не знаю правильно работает эта программа или нет.
0
0 / 0 / 1
Регистрация: 14.03.2013
Сообщений: 150
17.03.2013, 15:45  [ТС]
Выше код программы потокового шифрования на основе РСЛОС.
Отводная последовательность РСЛОС задается полиномом x^24*+*x^4*+*x^3*+*x*+*1.
Кто может исправьте работу программы, если алгоритм работает не корректно и напишите комментарии к программе. Очень признателен.
Теорию по данной теме добавляю во вложение

Задание:
Разработать программу – генератор псевдослучайной последовательности бит для шифрования и расшифровывания текста при помощи шифра гаммирования. Программа должны обеспечивать:
задание режима работы (генерация гаммы с записью ее в файл/шифрование), имени входного файла, имени результирующего файла;
ввод параметров генератора с клавиатуры;
генерирование последовательности длиной 20000 бит с записью ее в файл
шифрование информации, находящейся в текстовом файле, с записью результата в другой файл.Зашифровать и расшифровать файл, с использованием разработанной программы.
- это для того, чтобы было понятно что программа реализует.
Вложения
Тип файла: docx теория.docx (97.2 Кб, 6 просмотров)
0
 Аватар для kzru_hunter
1124 / 795 / 101
Регистрация: 01.02.2011
Сообщений: 1,887
Записей в блоге: 1
17.03.2013, 16:03
litbit
Попробуйте тут вопрос с программой решить: https://www.cyberforum.ru/order-program/
Там мало берут.

Добавлено через 6 минут
исправил комментарии:
Цитата Сообщение от kzru_hunter Посмотреть сообщение
FILE *INfile, *OUTfile; // Указатели на файл чтения и записи соответственно
filenameIn=OpenDialog1->FileName.c_str(); // путь к файлу для чтения
char *filenameOut=SaveDialog1->FileName.c_str(); // путь к файлу для записи
INfile=fopen(filenameIn, "rb"); // открытие файла в режимах "rb" (r - чтение, b - указывает, что файл бинарный)
OUTfile=fopen(filenameOut, "wb"); // открытие файла в режимах "wb" (w - запись, b - указывает, что файл бинарный)
Regist=StrToInt(Edit1->Text); // запись числа из Edit1 в переменную Regist
2
0 / 0 / 1
Регистрация: 14.03.2013
Сообщений: 150
17.03.2013, 16:31  [ТС]
kzru_hunter, в том разделе пишут программы по серьезнее. А эта по лабораторной.
И уже практически готовая. Возможно немного криво работает, но не факт, вроде правильно работает.

Мне хотя бы коменты к коду
а то не во всем могу разобраться в коде
0
 Аватар для kzru_hunter
1124 / 795 / 101
Регистрация: 01.02.2011
Сообщений: 1,887
Записей в блоге: 1
17.03.2013, 16:53
В этом разделе не разбираются с программами, а только решают вопросы по языку, билдеру, алгоритмам, атомарным или интересным задачам.
Делите вашу программу на неделимые части и задавайте вопросы по каждой такой части, если вдруг не сможете разобраться по ним и найти решение на форуме или в интернете
0
0 / 0 / 1
Регистрация: 14.03.2013
Сообщений: 150
17.03.2013, 17:12  [ТС]
kzru_hunter, из кода я не пойму следующее:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
unsigned long Regist = 1; // что обозначает эта переменная
int RSLOS (TMemo *Memo3) // что обозначает эта переменная, не понятна часть которая в скобках, для чего там указывается мемо.
// не понятен этот блок кода
unsigned long uL = StrToInt (Memo3->Lines->Strings[i]);
for (int i=0;i<Memo3->Lines->Count-1;i++)
        {uL^=(Regist>>StrToInt(Memo3->Lines->Strings[i]));
        }
uL&=0x00000001;
// следующее тоже
uL|=(Regist>>1);
// и не понятно, что происходит в следующем блоке
unsigned char byte = 0;
while (!feof(INfile))                                              
{
        if (fread(&ch,sizeof(unsigned char),1,INfile))    
        {
                for(int i = 0; i < 8; i++)                     
                {
                        byte |= (unsigned char)RSLOS(Memo3);    
                        byte <<= 1;
                }
                byte ^= ch;
Я бы постарался разобраться сам по подробнее, но к сожалению мало времени (((
Если можете прокомментируйте эти части кода. Я постараюсь разобраться правильно ли работает программа, так как в теории полностью понимаю как происходит потоковое шифрование на основе РСЛОС.
0
 Аватар для kzru_hunter
1124 / 795 / 101
Регистрация: 01.02.2011
Сообщений: 1,887
Записей в блоге: 1
17.03.2013, 17:34
Цитата Сообщение от litbit Посмотреть сообщение
int RSLOS (TMemo *Memo3) // что обозначает эта переменная, не понятна часть которая в скобках, для чего там указывается мемо
обычно это делается, чтобы функция заносила информацию в Memo

Цитата Сообщение от litbit Посмотреть сообщение
unsigned long Regist = 1; // что обозначает эта переменная
сам не знаю, запутанный код и без комментариев

По остальным моментам Вам нужно прочитать про "Операторы C++", "Типы C++", "Циклы C++", "Ветвления C++", описание функций StrToInt, feof, fread,
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
17.03.2013, 17:34
Помогаю со студенческими работами здесь

Нужны комментарии к коду
#include &lt;vcl.h&gt; //загрузка стандартной библиотеки С++ Билдер #include &lt;math.h&gt; //Заголовочный файл стандартной библиотеки языка...

Нужны комментарии к коду
Обьясните вот этот код кому не лень: void __fastcall TForm1::Button1Click(TObject *Sender) { String s = RichEdit1-&gt;Text; int...

Комментарии по коду нейронной сети
Доброго времени суток. Задали задание по нейронным сетям, сам в программировании довольно плохо шарю, тем более в теме нейронных сетей. ...

Нужны комментарии к коду
Есть рабочий код, нужно помочь написать коментарии к коду, к основным функциям что за что отвечает и какая что делает. Помогите пожалуйста...

Дайте комментарии к коду
unit UnitMainForm; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs,...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru