Суббота, 18.05.2024, 21:15
Главная Регистрация RSS
Приветствую Вас, Гость
Меню сайта
Категории раздела
Форма входа
ДРУЗЬЯ САЙТА

Вызвать мастера в Красноярске

8 983 207 5474

8 902 918 9334

8 933 332 3164

---------------------------------

Запчасти бытткхники

  • Велес т.2935600
  • СЦ Близнецов т.2296595
  • Вираж
  • Красраб 110 т.2589503
  • Комплекстур Щорса30 т.2606797
  • Радиодетали

  • Якорный 9 т.2688317
  • Воронова 16 т.2202990
  • Красраб 125а т.2456544
  • Профи т.2702737
  • Дайте две т.+79237713323
  • Электрика

  • Электро +
  • Планета электрика
  • ЗАКЛАДКИ
    Поиск
    Статистика

    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0
    Главная » Статьи » C++ Builder » Простые примеры

    Как создать класс в C++ Builder XE; сортировка пузырьком
     
    После запуска программы сразу нажмите кнопки сортировка и вы 
    узнаете что находится в массивах сразу после их создания
     
    Заголовочный файл 
    Простые классы можно описать здесь удобно при изучении классов 
    Описывайте свой класс выше описания класса формы что бы ваш класс
    можно было использовать в классе формы а в обще класс лучше поместить в 
    отдельный модуль 
    //---------------------------------------------------------------------------
     
    #ifndef Unit1H
    #define Unit1H
    //---------------------------------------------------------------------------
    #include <System.Classes.hpp>
    #include <Vcl.Controls.hpp>
    #include <Vcl.StdCtrls.hpp>
    #include <Vcl.Forms.hpp>
    #include <Vcl.ExtCtrls.hpp>
    //---------------------------------------------------------------------------
    const int mar_size=100;//Глобальная именованная константа
    //-----------------------------------------------------------------------
    //
    class TMyClass
    {
    public:
    //static const int mar_size=100;//Статическая именованная константа
    static int size;//Статическая переменная
    int max;
    int min;
    int mar[mar_size];
    void SearchMin();
    void SearchMax();
    void __fastcall SortBubble();//спецификатор  __fastcall не обязателен но желателен
    void Randomys(int maxs);
    };
    //------------------------------------------
    int TMyClass::size=10;//инициализация статической переменной
    //--------------------------------------------
    class TForm1 : public TForm
    {
    __published: // IDE-managed Components
    TEdit *Edit1;
    TButton *Button1;
    TEdit *Edit2;
    TEdit *Edit3;
    TButton *Button2;
    TButton *Button3;
    TEdit *Edit4;
    TButton *Button4;
    TBevel *Bevel1;
    TLabel *Label1;
    TBevel *Bevel2;
    TEdit *Edit5;
    TButton *Button5;
    TEdit *Edit6;
    TEdit *Edit7;
    TEdit *Edit8;
    TButton *Button6;
    TButton *Button7;
    TButton *Button8;
    TLabel *Label2;
    TButton *Button9;
    TButton *Button10;
    void __fastcall Button1Click(TObject *Sender);
    void __fastcall Button2Click(TObject *Sender);
    void __fastcall Button3Click(TObject *Sender);
    void __fastcall Button4Click(TObject *Sender);
    void __fastcall FormCreate(TObject *Sender);
    void __fastcall FormDestroy(TObject *Sender);
    void __fastcall Button5Click(TObject *Sender);
    void __fastcall Button6Click(TObject *Sender);
    void __fastcall Button7Click(TObject *Sender);
    void __fastcall Button8Click(TObject *Sender);
    void __fastcall Button9Click(TObject *Sender);
    void __fastcall Button10Click(TObject *Sender);
    private: // User declarations
    public: // User declarations
    TMyClass my;//Создаем объект класса TMyClass будет создан в программном стеке
    TMyClass *ty;//Создаем указатель на объект класса TMyClass ему будет присвоен
                                 //адрес при создании объекта оператором NEW
    __fastcall TForm1(TComponent* Owner);
    };
    //---------------------------------------------------------------------------
    extern PACKAGE TForm1 *Form1;
    //---------------------------------------------------------------------------
    #endif
    ///////////////////////////////////////////////////////////////////////////////////////////
    //////////////////////////////////////////////////////////////////////////////////////////
     
    Файл реализации 
    Здесь реализуем методы вашего класса а также
    конструкторы и деструкторы у нас нет
    можно инициализировать статические переменные объявленные в классе
    //---------------------------------------------------------------------------
     
    #include <vcl.h>
    #pragma hdrstop
     
    #include "Unit1.h"
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm1 *Form1;
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------
    //int TMyClass::size=10;//инициализация статической переменной можно здесь
    //---------------------------------------------------------------
    void TMyClass::SearchMin()
    {
    int t=mar[0];
    for (int i=1;i<size;i++)
    {
      if (mar[i]<t) t=mar[i];
    }
    min=t;
    }
    //----------------------------------------------------------------------------
    void TMyClass::SearchMax()
    {
    int t=mar[0];
    for (int i=1;i<size;i++)
    {
      if (mar[i]>t) t=mar[i];
    }
    max=t;
    }
    //------------------------------------------------------------------------------
    void TMyClass::Randomys(int maxs)
    {
    for (int i=0;i<size;i++) mar[i]= random(maxs);
    }
    //------Сортировка пузыриком------------------------------------------------
     
    void __fastcall TMyClass::SortBubble()
    {
        int t;
       for (int j=0; j<size; j++) {
    for (int i=1; i<size; i++) {
    if (mar[i] < mar[i-1])
             {
    t=mar[i];
    mar[i]=mar[i-1];
    mar[i-1]=t;
    }
    }
    }
     
    }
    /////////////////////////////////////////////////////////////////////////////////
    /////////////////////////////////////////////////////////////////////////////////
    /////////////////////////////////////////////////////////////////////////////////
    //--------------------------------------------------------------------------------
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    Edit1->Text="";
    my.Randomys(67);
    for (int i=0;i<my.size;i++)  {
    Edit1->Text= Edit1->Text + IntToStr( my.mar[i] )+",";
    }
    }
    //---------------------------------------------------------------------------
     
    void __fastcall TForm1::Button2Click(TObject *Sender)
    {
    my.SearchMin();
    Edit2->Text= IntToStr(my.min);
    }
    //---------------------------------------------------------------------------
     
    void __fastcall TForm1::Button3Click(TObject *Sender)
    {
    my.SearchMax();
    Edit3->Text= IntToStr(my.max );
    }
    //---------------------------------------------------------------------------
     
    void __fastcall TForm1::Button4Click(TObject *Sender)
    {
    Edit4->Text="";
    my.SortBubble();
    for (int i=0;i<my.size;i++)  {
    Edit4->Text= Edit4->Text + IntToStr( my.mar[i] )+",";
    }
    }
    //---------------------------------------------------------------------------
     
     
    void __fastcall TForm1::FormCreate(TObject *Sender)
    {
     ty = new TMyClass;//Указателю присваиваем адрес выделенной под объект памяти
                                  //объект создается в куче
    }
    //---------------------------------------------------------------------------
     
    void __fastcall TForm1::FormDestroy(TObject *Sender)
    {
    delete ty;//освобождаем память от объекта вернее вернем память системе
    ty = 0;//не плохо бы и обнулить
    }
    //---------------------------------------------------------------------------
     
    void __fastcall TForm1::Button5Click(TObject *Sender)
    {
    Edit5->Text="";
    ty->Randomys(67);
    for (int i=0;i<ty->size;i++)  {
    Edit5->Text= Edit5->Text + IntToStr( ty->mar[i] )+",";
    }
    }
    //---------------------------------------------------------------------------
     
    void __fastcall TForm1::Button6Click(TObject *Sender)
    {
    ty->SearchMin();
    Edit6->Text= IntToStr(ty->min);
    }
    //---------------------------------------------------------------------------
     
    void __fastcall TForm1::Button7Click(TObject *Sender)
    {
    ty->SearchMax();
    Edit7->Text= IntToStr(ty->max );
    }
    //---------------------------------------------------------------------------
     
    void __fastcall TForm1::Button8Click(TObject *Sender)
    {
    Edit8->Text="";
    ty->SortBubble();
    for (int i=0;i<ty->size;i++)  {
    Edit8->Text= Edit8->Text + IntToStr( ty->mar[i] )+",";
    }
    }
    //---------------------------------------------------------------------------
     
    void __fastcall TForm1::Button9Click(TObject *Sender)
    {
    int a=20;
    if (a < mar_size ) { ty->size=20; } // mar_size доступна и здесь проверка выхода за 
                                                         //приделы массива
    }
    //---------------------------------------------------------------------------
     
    void __fastcall TForm1::Button10Click(TObject *Sender)
    {
     my.size=5;//size статическая переменная видна из всех объектов вашего класса
    //можно использовать для изменения какого то свойства во всех объектах одновременно
    //для всех объектов создается одна статическая переменная   ty->size она же
    }
    //---------------------------------------------------------------------------
     
     
     
     
    =============================================
     
     
    Категория: Простые примеры | Добавил: doka (15.06.2013)
    Просмотров: 6597 | Рейтинг: 0.0/0
    Добавлять комментарии могут только зарегистрированные пользователи.
    [ Регистрация | Вход ]