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

таблица индетификаторов методом цепочек - C++

Восстановить пароль Регистрация
 
snapper
0 / 0 / 0
Регистрация: 14.12.2010
Сообщений: 4
22.12.2010, 01:00     таблица индетификаторов методом цепочек #1
Прошу, пожалуйста прокомментируйте функции...
Код
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "string.h";
#include "iomanip.h";
#include "Unit1.h"
#include "time.h";
int **r;
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::N1Click(TObject *Sender)
{
        if(!OpenDialog1->Execute())
        {
                return;
        }
        Memo1->Lines->Clear();
        Memo1->Lines->LoadFromFile(OpenDialog1->FileName);
        Edit1->Enabled=false;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N7Click(TObject *Sender)
{
        char c[64];
        int i,j,n;
        randomize();
        n=Memo1->Lines->Count;
        r=new int *[n];
        for(i=0;i<n;i++)
        {
                r[i]=new int [2];
                r[i][1]=0;
        }
        for(i=0;i<n;i++)
        {
                strcpy(c,Memo1->Lines->Strings[i].c_str());
                j=0;
                while(c[j]!='\0')
                {
                        j++;
                }
                r[i][0]=(int)c[0] + (int) c[j-1];
                for(j=0;j<i;j++)
                {
                        if(r[i][0]==r[j][0])
                        {
                                while(r[j][1]!=0)
                                {
                                        r[i][0]=r[j][1];
                                        for(int z=0;z<i;z++)
                                        {
                                                if(r[i][0]==r[z][0])
                                                {
                                                        j=z;
                                                        break;
                                                }
                                        }
                                }
                                r[i][0]-=rand() % 200;
                                r[j][1]=r[i][0];
                        }
                }
        }
        for(i=0;i<n;i++)
        {
                Memo2->Lines->Add((AnsiString) r[i][0] +" -> "+ r[i][1]);
        }
        Edit1->Enabled=true;
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Btn1Click(TObject *Sender)
{
        int i,j;
        Memo3->Clear();
        for(i=0;i<Memo1->Lines->Count;i++)
        {
                if((int)Edit1->Text.c_str()[0]+(int)Edit1->Text.c_str()[Edit1->Text.Length()-1]==r[i][0])
                {
                        while(r[i][1]!=0)
                        {
                                if(Edit1->Text==Memo1->Lines->Strings[i])
                                {
                                        Memo3->Lines->Add((AnsiString)"Ôóíêöèÿ íàéäåíà â " + (i+1) + " ñòðîêå è èìååò ÕÝØ ôóíêöèþ " + r[i][0]);
                                        return;
                                }
                                else
                                {
                                        for(j=0;r[j][0]!=r[i][1];j++);
                                        i=j;
                                }
                        }
                        if(Edit1->Text==Memo1->Lines->Strings[i])
                        {
                                Memo3->Lines->Add((AnsiString)"Ôóíêöèÿ íàéäåíà â " + (i+1) + " ñòðîêå è èìååò ÕÝØ ôóíêöèþ " + r[i][0]);
                                return;
                        }
                        else
                        {
                                Memo3->Lines->Add((AnsiString)"Îøèáêà!!! Ôóíêöèÿ íå íàéäåíà!!!");
                        }
                }
        }
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Edit1Change(TObject *Sender)
{
        Btn1->Enabled=false;
        if(Edit1->Text.Length()>1)
        {
                Btn1->Enabled=true;
        }
}
//---------------------------------------------------------------------------

void __fastcall TForm1::N3Click(TObject *Sender)
{
        Form1->Close();        
}
//---------------------------------------------------------------------------
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.12.2010, 01:00     таблица индетификаторов методом цепочек
Посмотрите здесь:

Таблица лексем и таблица идентификаторов C++
Решить нелинейное уравнение методом хорд и методом простой итерации C++
C++ Хэш-таблица. Метод цепочек. C++
C++ Вывести все возможные комбинации цепочек в матрице смежности
C++ Хеш таблица с функцией (метод цепочек)
Таблица умножения методом Монте-Карло C++
C++ Хэширование метод цепочек
Хэш - таблица методом цепочек C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 23:02. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru