C / C++ 0

Bu dərsimizdə C++ proqram dilini yeni öyrənənlər üçün maraqlı bir təcrübə proqramı hazırlamışam. İlk öncə qeyd edim ki, bu təcrübə proqramını həyata keçirmək üçün sizlərə müasir dövrün ən güclü və ən zəngin proqram yaradıcısı olan Borland C++Builder konstruktoru (proqramı) lazım olacaq.Bu proqramı əldə etmək üçün internet saytlarını gəzə bilərsiniz.Yəqin ki, bir çoxlarınız bu proqramla tanış deyilsiniz.Buna görə də işə başlamadan öncə mən sizləri bu konstrukrorun interfeysi ilə tanış etmək istəyirəm.

Bütün proqramlar, məhz kompyuter oyunları, xidməti proqramlar, windows əməliyyat sistemi, internet proqramları və digər bütün proqramlar bir və yaxud bir neçə proqramlama dilində yazılmışdır.proqramlar proqram konstruktorları tərəfindən yazılır. Konstruktorlar özləri də bir proqramdır ki, konstruktorçu mühəndislər tərəfindən hazırlanır. Bu proqram konstruktorundan biridə Borland C++ Builder-di ki, bu kitabda bu konstruktordan istifadə olunacaq. proqram dillərindən biri olan C++(C proqram dilinin təkmilləşdirilmiş forması) proqramlama dili də bu konstruktor tərəfindən yazılır.

proqramlama dili imkan verir ki, müxtəlif köməkçi simvolların və təyin edilmiş sözlərin (açar) köməyi ilə alqoritmlər yazasan.Açar sözlərdən istifadə edərək (onlar operator və komandalar adlanır) , proqramçı tələb olunan tapşırığı həll etmək üçün kompyuterin nə etməli olduğunu təyin edir

Kompilyator nədir ?

Giriş mətni tərtib edildikdən sonra, ( bu hər hansı bir mətn redaktorunda da yazıla bilər, məhz bunun üçün xüsusi mətn redaktorları da var, kompilyatorun daxilində)mətnin özü formal olaraq alqoritm hesablaması aparır. Onun özü proqram sayılmır.Məsələ burasındadır ki, proçessor yalnız ikili kod icra edə bilər.Buna çox sadə maşın kodu deyilir.Mətni ikili koda çevirmək üçün xüsusi proqram olan translyatordan istifadə olunur.Hesablama sistemində iki sinif translyator mövcuddur . Bunlar interpretator və kompilyatorlardır. İnterpreator sinxronn tərcüməçi kimi işləyir. O, giriş mətnini sətr bə sətr yoxlayır sonra maşın dilinə çevirir və istifadə üşün göndərir.Əgər hər bir şey qaydasında olarsa interpretator növbəti sətrə keçir.Kompilyator isə ədəbi tərcüməçi kimi işləyir.Öncə o, bütün mətnə baxır, bütün təkrarlanmış yerləri tapır ( o bunları iki dəfə çevirmir) diqqətlə çevirmə strategiyasın hazırlayır , ən effektli analogiyaları seçir və ancaq bundan sonra bütün giriş mətnini bütövlüklə çevirərək yeni sənəd tərtib edir ki, buna obyekt kodu deyilir.Obyekt koduna yekun proqram kimi də baxmaq olar , baxmayaraq tam deyil.Əgər mətndə hər hansı bir səhv varsa kompilyator xəbərdarlıq edir və yalnız proqramçı tərəfindən düzəliş aparılandan sonra işinə davam edir.

Vizual proqramlama nədir ? 

RAD-sistem— proqramın qurulması üçün sürətli hazırlama sistemi.Müxtəlif hazır idarəetmə elementləri, düymələr, çeviricilər, işarələr, pəncərələr və bir çox windows obyektləri ki, mausun oxunun bir tıqqıltısı ilə formanın üzərinə sürüşdürülür və avtomatik olaraq proqram kodu yaranır.Bütün bunlar gələcək proqramın interfeys görünüşünü nizamlayır.Bundan sonra proqramçıya yalnız bu komponentlərin kodunu redaktə eləmək qalır.Təbii ki, bütün bu proçeslər bizim kitaba əsasən Borland C ++ Builder 5-ə aparılır.

Borland C++ Builder

Yuxarıda sadalanan bütün keyfiyyətlər Borland firmasının məhsulu olan Builder C ++-də cəmlənmişdir.Aşağıdakı şəkildə Builder C++-un interfeysi təsvir olunub

Şəki l. İDE-nin əsas komponentlər proqramın üzərində olan “ vizual qurucu “ pəncərəsini maus vasitəsi ilə bir az yana sürüşdürsək, onun arxasında proqramın redaktə pəncərəsini görərik.

Şəkil 2. redaktə pəncərəsi

Redaktə pəncərəsi öz növbəsində, iki hissədən ibarətdir:

  • Siniflərə baxma paneli ( Class Explorer );
  • proqram mətninin redaktə paneli.

Ənənəvi olaraq bütün proqramlama dili sistem interfeysi ingilis dilindədir. Belə ki, siz əsl proqramçı olmaq istəyirsinizsə hökmən ingilis dilində yazılmış texniki mətnləri oxumağı və yazmağı öyrənməlisiniz.

Borland C++ Builderin əsas komponentləri

C++ Builderin əsas pəncərəsi
Əsas pəncərənin tərkibinə daxildir:

  • Başlıq sətri;
  • Menyu sətri;
  • Tez-tez laım olan komanda düymələrinin yerləşdiyi alətlər paneli:

  • sizin hazırladığınız proqramın interfeysini qurmaq üçün hazır idarəetmə elementləri naborundan istifadə etmək üçün komponentlər palitrası mövcuddur.Hər bir komponent palitrada öz şərti işarəsi ilə təsvir olunmuşdur:

Komponentlər paneli on dörd paneldən ibarətdir və hər bir komponentlər dəsti istifadə təyinatına ğörə qruplara bölünmüşdür.Hər bir qrupun öz istifadə təyinatına görə adlandırılmişdır.

Aşağıda komponentlər qruplarının adları verilmişdir :

 

  • Standart ­­­­- Windowsun standart idarəetmə elementləri;
  • Additional – Windowsun əlavə qeyristandart idarəetmə elementləri ;
  • Win32 – Windows 9x idarəetmə elementləri;
  • System – sistem obyektləri (taymer, mahnı oxuducu və digərləri);
  • İnternet – internetlə işləmək üçün bütün qoşmalar;
  • Data Access – məlumatlar bazası ilə rabitə əlaqəsinin təşkili komponentləri;
  • Data Controls – məlumatlar bazası ilə işləmək üçün idarəetmə elementləri;
  • ADO – bu gün ən öncül Windows – texnalogiyası Microsoft ActiveX Data Object (ADO) komponentləri;
  • İnterBase – İnprise şirkətinin təqdim etdiyi SUBD İnterBase ilə işləmək üçün komponentlər;
  • Midas – bir neçə kompyuterdə işləmək qabiliyyəti olan proqram tərtibatçısı komponentləri;
  • İnternetExpress və İnternet –internet proqramlarının sürətli tərtibatçı komponentləri;
  • FasNet – internetə yönəlmiş əsas şəbəkə protokollarını dəstəkləyən komponentlər;
  • Decision Cube – məlumatların analiz sistemi komponentləri;
  • Qreport – müxtəlif hesabatların tərtibi üçün komponentlər;
  • Dialogs – Windowsun standart dialoq pəncərəsi;
  • Win 3.1 – Windows 3.1 idarəetmə elementləri;
  • Samples – system daxili komponent nümunələri;
  • ActiveX – ActiveX komponentləri ;
  • Server – offis proqramlarını idarə etmək üçün komponentlər naboru.

Iş formunun vizual qurucusu 

Forma nədir ?

Şəkil 3 İş Formu

Forma – bu bir Windows pəncərəsi olub, özündə müxtəlif idarəetmə elementləri (knopka,menyu,dəyişdirici açarlar,siyahılar,daxil etmə elementləri və.s) birləşdirir.Tərtib olunmuş proqram komplektləş- dirilib işə salındıqda forma adi Windows pəncərəsinə dönərək onun üçün təyin olunmuş bütün tapşırıqları yerinə yetirir.

Form komponentlərindən tutmuş proqramı idarəetmə element- lərinə kimi

Komponentlər mausun köməyi ilə palitradan seçilib formun üzərinə sürüşdürülür və orada ona istənilən ölçü vermək olar.

Komponent – bu sizin formanın qeyri konkrekt idarəetmə elementirir. Komponent palitrası idarəetmə elementlərinin ictimailəşdirilmiş surətidir.Məsələn Button adlı komponent ictimailəşdirilmiş surətdə tam imkanlı komanda knopkasıdır.Komponentlər yalnız proqramçı tərəfindən kodlaşdırıldıqdan və proqram komplyator tərəfindən yığılıb tam istifadəyə verildikdən sonra fəallaşır.

Baş və əlavə formalar

Hələlik ekranda yalnız baş forma olur. O bizim proyektləşdirəcəyimiz proqramın baş pəncərəsini təqlid edir.Hər bir formada komponentlər palitrasından istənilən obyekti yerləşdirmək olar.
proqramda əlavə olunacaq formların sayı məhdud deyil.Əlavə formalar köməkçi məlumatların ötürülməsi və proqramın tənzımlənməsi üçün idarəetmə elementlərinin yerləşdirilməsi üçün istifadə olunur.Məsələn mətn redaktoru olan Word – ün menyu punktunu formasını yarım saatdan da az bir vaxtda tərtib edə bilərik, amma bu punktu kodlaşdırmaq yetəri qədər mürəkkəbdir.

Obyektlər inspektoru ( Object İnspektor )

Obyektlər inspektoru – hazırlama ortamının ən vacib hissəsidir. O obyektlərin xüsusiyyət tapşırıqlarını və müxtəlif hadisələrin reaksiyalarını təyin etmək üçün təyin edilmişdir.

Obyektlərin xüsusiyyətləri

Obyektlərin xüsusiyyətləri – onların xarakterini yəni, məsələn knopkanın ölçüləri, pəncərələrin adları, siyahı üçün çevirmə zolağının olub – olmamasını, şriftlərin stil və rənglərini, şəkil üçün faylın adı və.s.
Hər bir obyekt çoxlu sayda xüsusiyyəti var, obyektlərin bir çoxunun xüsusiyyətləri bir – birinə bənzəyir, digərlərinki isə kəskin fərqlənir.

Beləliklə gəlin “Şəklə baxma proqramı”-nın proyektini tərtib edək.
Bu proqramda C++builderin komponentləri olan Label, Button, ListBox, İmage və OpenDialog komponentlərindən istifadə edilmişdir.

Gəlin bu proqramda istifadə olunan komponentlərin iş prinsipi ilə daha ətraflı tanış olaq.

Label – Çox sadə bir komponentdir. Siçanın oxunu Standart komponentlər palitrasında olan Label komponentinin üzərinə gətirib sol düyməsini bir dəfə tıqqıldadıb seçilən komponenti aktivləşdirdikdən sonra , siçanın oxunu Formun üzərinə gətirərək yenədə sol düyməsini bir dəfə tıqqıldadırıq. Nəticədə şəkildə göründüyü kimi Label komponenti Formun üzərində özünə xas olan formanı alır.

Siçanın oxunu Form üzərində olan komponentin kiçik qara kvadratlarşndan birinin üzərinə gətirib (kvadratın seçimi bu komponentə verəcəyiniz şəkildən asılıdır) sol düyməsini sıxıb saxlayaraq istədiyiniz istiqamətə uzada və ya qısalda bilərsiniz.Komponentə yeni forma vermək üçün siçanın oxunu kvadratın üzərinə gətirərkən hər iki tərəfində ox olan istiqamət verici işarə peyda olacaq .Və yaxud siçanın oxunu komponentin üzərinə gətirib sol düyməni sıxıb buraxmadan komponentin yerini dəyişə bilərsiniz.

Bu komponent vasitəsi ilə siz form üzərində komponentin hüdudları daxilində yazılar nümayiş etdirə bilərsiniz.

Yazıları isə obyektlər inspektorunun Caption bölməsinə aid olan mətn redaktoru hissəsində yaza bilərsiniz.

AutoSize – komponentin ölçüləri:
true – avtomatik; false – poqrammçının təyin etdiyi kimi;

Font – Yazı şrifti:
size – şriftin ölçüsü; Style – şriftin forması.

Button hamınızın çox gözəl tanıdığı proqram knopkası.Standart komponentlər palitrasına daxildir.

OpenDialog komponenti Dialog komponentlər palitrasının komponentidir.Bu komponenti Form üzərində istədiyiniz yerə yerləşdirin, çünki bu komponent proqram hazır olduqdan sonra görsənmiyəcək.Bu komponent vasitəsi ilə Button və ListBox komponentlərinə göstərişlər veriləcək.

ListBox Standart komponentlər palitrasının komponentidir.Bu komponent vasitəsi ilə nümayiş etdirilən şəkillərin adlar siyahısı əks etdiriləcək. Bu komponentə şəkil 5-də sağ tərəf Button knopkasının üstündəki kimi forma verin.

Şəkil 4 ListBox – adlar siyahısı

Şəkil 5 Şəkil nümayiş proqramının görünüşü

İmage Additional komponentlər palitrasının komponenti.İş formasında şəkilləri nümayiş etdirmək üçün istifadə olunur.

Bizə lazım olan komponentlərin iş prinsipi ilə tanış olduq. Sizə məsləhət görürəm ki, yetəri qədər təcrübə qazanmadan heç bir komponentin adını (Name) dəyişməyin.Xarici görünüş adlarını isə Caption bölməsində istədiyiniz kimi dəyişə bilərsiniz.

C++Builder proqramını işə salırıq. Menyu pəncərəsindən File / New Application seçirik. Yeni Form açılır. Bizə lazım olan komponentləri şəkıl 5-dəki kimi iş Formunda yerləşdiririk. Yaxşısı budur ki, hazırlayacağımız proqramı öncədən yaddaşa verək. Menyu pəncərəsindən File / Save All seçirik. Yeni pəncərə açılır və biz burada proqramımızı saxlamaq üçün yer seçib cpp faylımızı PictureShow.cpp, proyektimizi isə PicShow.bpr adlandırıb ok basırıq.

Əgər diqqət yetirsəniz görərsiniz ki, PictureShow.cpp faylının əvvəlində bu proqramın interfeys komponentlərinin və onların fəaliyyət dairələrinin tərkib faylı olan PictureShow.h adlı fayl fayl yaradılmışdır (bu avtomatik olaraq kompilyator tərəfindən yaradılır). Siçanın kursorunu bu faylın üzərinə gətirib Ctrl F6 basın , fayl redaktə üçün istifadəyə hazır olacaq. Siçanın köməkliyi ilə istər PictureShow.cpp, istər PictureShow.h istərsədə İş Formuna keçid ala bilərsiniz.

İş Formu üzərində olan Label komponentini aktivləşdirin (üzərindən yalnız bir dəfə tıqqıldadın). Obyektlər inspektorunda bu komponentin Caption bölməsinə istədiyiniz mətni əlavə edin. Mən “Fayl JEPG” yazmışam. Çünki bu proqramda yalnız Jpeg fayllarına baxa bilərik.

Ardınca isə aşağıda göstərdiyim qaydada PictureShow.cpp faylını redaktə edin.

//---------------------------------------------------------------------------

#include
#pragma hdrstop

#include " PictureShow.h "
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
#include // bunu əlavə edin
AnsiString aPath; // bunu əlavə edin
TSearchRec aSearchRec; // bunu əlavə edin
//---------------------------------------------------------------------------

void__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{

if ( FindFirst(aPath+ "*.jpg", faAnyFile, aSearchRec) == 0)
{
ListBox1->Items->Add(aSearchRec.Name);
while ( FindNext(aSearchRec) == 0 )
{
ListBox1->Items->Add(aSearchRec.Name);
}

ListBox1->ItemIndex = 0;
Label1->Caption = ListBox1->Items->Strings[0];
Image1->Picture->LoadFromFile(aPath + ListBox1->Items->Strings[0]);
}
}
//---------------------------------------------------------------------------

// İş Formu üzərində olan ListBox komponentinin üzərindən iki dəfə tıqqıldadırıq.
Redaktə pəncərəsində ( void __fastcall TForm1::ListBox1 Click (TObject *Sender) ) başlığı peyda olur.
Fiqurlu skobların daxilinə aşağıdakı kodları əlavə edirik :

void __fastcall TForm1::ListBox1Click(TObject *Sender)
{
int n = ListBox1->ItemIndex;
Label1->Caption = ListBox1->Items->Strings[n];
Image1->Picture->LoadFromFile(aPath + ListBox1->Items->Strings[n]);

}
//---------------------------------------------------------------------------

İş Formu üzərində olan Button komponentinin üzərindən iki dəfə tıqqıldadırıq.
Bu komponentin üzərindəki yazını Caption bölməsində SECİM sözü ilə əvəz edə bilərsiniz.

void __fastcall TForm1::Button1Click(TObject *Sender)
{
if ( OpenDialog1->Execute() )
{

ListBox1->Clear();

aPath = ExtractFilePath(OpenDialog1->FileName);
Form1->Caption = "Form1" + aPath;
if ( FindFirst(aPath+ "*.jpg", faAnyFile, aSearchRec) == 0)
{
ListBox1->Items->Add(aSearchRec.Name);
while ( FindNext(aSearchRec) == 0 )
{
ListBox1->Items->Add(aSearchRec.Name);
}

int n = ListBox1->Items->
IndexOf(ExtractFileName(OpenDialog1->FileName));
ListBox1->ItemIndex = n;
Label1->Caption = ListBox1->Items->Strings[n];
Image1->Picture->LoadFromFile(aPath + ListBox1->Items->Strings[n]);
}

}

}
//---------------------------------------------------------------------------

Aşağıda PictureShow.h faylının görünüşü təsvir olunub:

//---------------------------------------------------------------------------

#ifndef PictureShow.h
#define PictureShow.h
//---------------------------------------------------------------------------
#include
#include
#include
#include #include
#include
#include
#include
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published: // IDE-managed Components
TListBox *ListBox1;
TLabel *Label1;
TButton *Button1;
TOpenDialog *OpenDialog1;
TImage *Image1;

void __fastcall ListBox1Click(TObject *Sender);
void __fastcall BitBtn1Click(TObject *Sender);
private: // User declarations
public: // User declarations
__fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif

Bununlada yazdığımız proqramım sonuna gəldik. Son etapda bir daha yazılan kodları nəzərdən keçirin və səhvlikləri aradan qaldırın . Sonra isə

komanda düymələrinin yerləşdiyi alətlər panelində mövcud olan yaşıl rəngdə ücbucaq düyməni və yaxud F9 klavişini basaraq proqramı test edin. Əgər heç bir səhvə yol verməmisinzsə şəkil 5-dəki kimi işlək proqram forması peyda olacaq.

Secim düyməsini basın və açılan pəncərədən kompyuterinizdə olan istənilən Jepg faylını seçin. ListBox siyahısı vasitəsi ilə faylları dəyişin.

Müəllif: Rəsul Nəcəfov / Resurs: www.azgraf.net

Orfoqrafik Səhv tapdınız? Səhv yazılmış sözü seçin və Ctrl + Enter düymələrini basın. Dilimizi daha düzgün yazaq.
Orphus system
loading...

Digər yazılar

Реставрація ванни у Тернополі Dimhelp: реставрація ванн Тернопіль Тернопіль ванна реставрація

Şərh forması