Автор: Пользователь скрыл имя, 11 Февраля 2013 в 11:06, лекция
С++ тілінің базалық жабдықтары. Программа құрылымы. Жиымдар
Қарастырылатын сұрақтар:
1. С++ тілінің базалық жабдықтары
2. Мәліметтер типі
3. Программа құрылымы
4. Айнымалылар мен өрнектер
5. Тармақталу, басқаруды беру операторлары және циклдік операторлар
6. Жиымдар (массивтер)
};
class className2 : public className1
{
// функция-мүшелер
virtual returnType functionName(<параметрлер тізімі>);
};
Экранда фигураларды бейнелейтін программаны жазайық. Фигураның жалпы атрибуттары shape класымен, ал арнайы атрибуттар – арнайы класспен берілген:
class shape { point center;
color col; //...
public: void move(point to)
{ center=to; draw(); }
point where() { return center; }
virtual void draw();
virtual void rotate(int);
//... };
Нақты фигураны білмей, функцияларды анықтағанда (мысалы, move және where, яғни, «қозғау" және «мұндағы"), жай сипаттай беруге болады. Қалған функциялар виртуалды сипатталынады.
Мысалы: class circle:
public shape { int radius;
public: void draw();
void rotatte(int i) {}
//... };
Кіретін файлдарды қолдану
Си++тілінде тиімді шешім қабылданған. Класстарды және функцияларды хабарлауды жеке файлмен беруге болады және ол файлды #include операторының көмегімен басқа файлдардың басына қосуға болады.
Мысалы:
#include "Book.h"
#include операторы Book.h файлының мазмұнын ағымдағы файлда қолдануға мүмкіндік береді. Book.h файлы тақырыптар файлы деп аталады.
Ағымдық класстар
Ағым (поток)- мәліметтерді мәлімет көзінен қабылдағышқа беруге қатысты абстрактілі түсінік. Ағымнан мәліметтерді оқу алу (извлечение), ал ағымға беру орналастыру (помещение) деп аталады. Ағым байттар тізбегі ретінде анықталады және алмастыру жүргізілетін құрылғыдан тәуелсіз. Ағымдағы алмасулар жедел жадының арнайы аймағы – буфер арқылы жүзеге асады. Алмасу бағыты бойынша ағымдарды кіріс, шығыс, екі бағытты (кіріс-шығыс) деп бөлуге болады.
Ағым жұмыс істейтін құрылғының түрі бойынша ағымдарды стандартты, файлдық және қатарлық деп бөлуге болады.
Стандартты ағымдар мәліметтерді пернетақтадан экранға беру үшін, файлдық ағымдар сыртқы мәлімет тасығыштардағы файлдармен мәлімет алмасу үшін, ал қатарлық ағымдар жедел жадыдағы символдар жиымымен жұмыс істеу үшін арналған.
С++ библиотекасы ағымдарды қолдау үшін ios, streambuf екі базалық класс негізінде тұрғызылған класстар иерархиясынан тұрады
Төменде жиі қолданылатын ағымдар класы берілген:
ios – ағымдардың базалық класы
istream – кіріс ағымдардың класы
ostream- шығыс ағымдардың класы
iostream – екібағытты ағымдардың класы
istringstream- кіріс қатарлық ағымдардың класы
ostringstream- шығыс қатарлық ағымдардың класы
stringstream - екібағытты қатарлық ағымдардың класы
ifstream- кіріс файлдық ағымдардың класы
ofstream- шығыс файлдық ағымдардың класы
fstream - екібағытты файлдық ағымдардың класы
<ios>-енгізу/шығару ағымының базалық класы
<iosfwd>-енгізу/шығару жабдықтарын алдын- ала хабарлау
<istream>- енгізу ағымының шаблоны
<ostream>- шығару ағымының шаблоны
<iostream>- стандартты объектілер және енгізу/шығару ағымдарымен операциялар
<fstream> - файлдағы енгізу/шығару ағымдары
<sstream> - қатардағы енгізу/шығару ағымдары
<streambuf>- енгізу/шығару ағымдарын буферизациялау
<iomanip>- манипуляторлар
Үнсіздік келісімі бойынша
шығару форматы программистті
Ағымдық класста мәліметтерді форматтаудың үш тәсілі бар: жалаушалар (флаги), манипуляторлар, форматтау әдістері.
ios класының long типті ×_flags өрісіне біріккен жеке биттер жалаушаны құрайды.
Форматтау жалаушалары:
skipws, left, right, internal, dec, oct, hex, showbase, showpoint, showpos, unitbuf, fixed.
Мәліметтерді форматтау үшін қолданылатын алу және орналастыру операциялар тізбегінен тұратын функцияларды манипуляторлар деп атаймыз.
Аргументтерді көрсетуді талап етпейтін манипуляторларды жай деп , ал аргументтерді көрсетуді талап ететін манипуляторларды параметрлі деп атаймыз.
Манипуляторларды қолдану үшін поограммаға <iomanip. h> тақырыптық файлын қосу керек.
Төменде жай манипуляторлар келтірілген:
dec- енгізу/шығару кезінде ағымға ондық санау жүйесінің жалаушасын орнатады
oct- енгізу/шығару кезінде ағымға сегіздік санау жүйесінің жалаушасын орнатады
hex- енгізу/шығару кезінде
ағымға он алтылық санау
ws- енгізу кезінде ағымға бос орынды символдарды алуды (извлечение) орнатады
endl- шығару кезінде ағымға жаңа қатардың символын қосады
ends- шығару кезінде ағымға нөлдік символды қорады
flush- шығару кезінде буферге жүктейді
Төменде параметрлі манипуляторлар келтірілген:
setbase(int n)- санау жүйесінің негізін береді. (n=8, 10, 16, 0). 0 үнсіздік бойынша негіз болып табылады.
resetiosflags (long)- параметрде биттері орнатылған ағымның жалаушаларын алып тастайды (сбрасывает)
setiosflags (long)- параметрде биті 1-ге тең ағымның жалаушаларын орнатады
setfill (int) – параметр
мәніне тең коды бар символ-
setprecision (int)- нақты санның бөлшек бөлігінің ең үлкен санын орнатады
setw (int)- шығару өрісінің ең үлкен енін орнатады
#include <iostream.h>
#include <iomanip.h>
int main (){
double d[]= {1.234, -12.34567, 123.456789, -1.234, 0.00001};
cout <<setfill(‘.’)<<setprecision(
setiosflags(ios::showpoint|
for(int i=0;i<5;i++)
cout<<setw(12)<<d[i]<<endl;
return 0;}
. толтырғышымен толтырады,
бөлшек бөліктің ұзындығын
8лекция
Borland Builder 6.0 программалау ортасы
Қарастырылатын сұрақтар:
Borland Builder 6.0 программалау ортасы
Borland Builder 6.0 програмалау
ортасының бас терезесінің
Компоненттер палитрасы 29 тақтадан (панель) тұрады, компоненттер қолдану аймағы бойынша топталған.
Standard- Windows-тың стандартты басқару элементтері;
Addiotional- Windows-тың қосымша,
стандартты емес басқару
Data Access- мәліметер базасымен
байланысты ұйымдастыру
Data Controls – МБ жұмыс істеуге арналған басқару элементтері
Dialogs- стандартты сұхбаттар және т.б.
Объектілер инспекторы
Объектілер инспекторы- құру ортасының ең маңызды бөлігі. Ол объектілер қасиетін беру үшін және әр түрлі жағдайларға реакциясын анықтау үшін арналған.
Объектілер инспекторы ағымдағы объектінің кез-келген қасиетін тез және ыңғайлы түрде өзгерте алады. Енгізілген өзгерістер объектінің сырт пішініне әсер етеді.
Объектілер инспекторын тез шақыру үшін F11 пернесін қолданамыз.
Объектілер бұтағында формада құрылған барлық компоненттер бейнеленеді. Ол әрбір компоненттің объектілер инспекторына тез енуді қамтамасыз етеді.
Программа редакторы бас форманың артында жасырылып тұрады. Ағымдағы формадан программа редакторына өту үшін F12 пернесін қолдануға болады. Біз программаны жазбасақ та, терезеде программалық кодтың үлкен көлемі бар. Орта ретінде Borland Builder 6.0 қосымшаларды құрған кезде программалық кодтың біраз бөлігін өзіне алады. Автоматты түрде құрылған кодты өзгертуге болмайды.
Форма- әр түрлі басқару элементтері орналасқан Windows терезесі. Формада басқару элементтері палитрадан қажетті компонентті таңдау жолымен және тышқанмен тасу арқылы орналасады.
Компонент- сіздің программаңыздың құрылыс кірпіші. Компоненттер визуалды және визуалды емес болып бөлінеді.
Standard бетіндегі компоненттер:
StrToFloat, StrToInt.
Button басқару батырмасы
жиі қолданылатын және
Келесі формаға өту үшін программалар редакторында
Form->Show(); оқиғасын жазу керек.
ListBox қатарлар тізімін бейнелейді. Items қатарлар тізімінен тұратын қасиеті Tstrings типіне ие. MultiSelect қасиеті тізімдегі элементтерді көптік таңдауға (множественный выбор) мүмкіндік береді. MultiSelect=false мәнінде тізімнің тек бір элементін таңдауға мүмкіндік бар. Тағы да басқа қасиеттері бар: Sorted, Selected, Selcount, Items, Count, ItemIndex, Columns.
ListBox компонентінің негізгі қасиеттері:
int Columns
Тізім бейнеленетін бағаналар санын анықтайды, егер ол компоненттер терезесіне толығымен сыймаса.
int ItemIndex
Тізімде белгіленген (выделенный) элементтің реттік нөмірін көрсетеді
int Count
Тізімдегі қатар санын анықтайды.
Classes:: TStrings*Items
Тізім қатарының массиві- TStrings класының объектісі.
bool MultiSelect
Бір мезгілде тізімнен бірнеше элементті таңдау мүмкіндігін береді.
int SelCount
Белгіленген элементтер санын көрсетеді.
bool Selected
Индекстелген массив,
тізімде қай элементтердің
bool Sorted
тізімдегі қатарлардың
алфавитті түрде сұрыпталу
ListBox компонентінің негізгі функциялары
Clear//Void Clear (void)
Тізімдегі барлық элементтерді жояды.
SetFocus//Элементке фокус береді және оны белсендетеді.
Add//Тізімге элемент қосады
Delete//Тізімнен элементті жояды
Формада Edit компонентін таңдап аламыз және Text қасиетінің ағымдағы мәнін жоямыз. Одан кейін Button1 батырмасы үшін Caption қасиетін "Добавить" деп өзгертеміз. .
"Добавить“ батырмасының OnClick оқиғаларды өңдегішін қосу үшін формада сол батырмаға екі рет шерту керек. Яғни программа редакторы ашылады.
void __fastcall TForm1::Button1Click(TObject
*Sender)
{
if (!(Edit1->Text == ""))
{
ListBox1->Items->Add(Edit1->
Edit1->Text = "" ;
}
}
Қосымшаны компиляцияға жіберу үшін Run менюінен Run пуктін таңдаймыз немесе F9 пернесін бассақ та болады. Ашылған дайын қосымшада өріске жаңа мәліметтер жазамыз және оны Добавить батырмасының көмегімен тізімге енгіземіз.
Удалить батырмасы үшін:
void __fastcall TForm1::Button2Click(TObject
*Sender)
{
if (!(ListBox1->ItemIndex ==-1))
ListBox1->Items->Delete(
}
Выход батырмасы үшін:
Close();
9лекция
Standard, Additional, System беттеріндегі компоненттерге шолу
RadioButton компоненті Standard бетінде орналасқан.
Ол бір-бірімен
байланысқан индикаторлар
CheckBox индикаторы қандай
да бір опцияның қосылу/
MainMenu компоненті Standard бетінде орналасқан. Ол визуалды емес компонентке жатады. Формада меню қатарын құру үшін арналған. Негізгі қасиеті- Items. Ол меню конструкторының көмегімен толтырылады.
Memo - Edit –тің басқа
формасы. Үлкен мәтіндермен
Memo компоненті- редактрлеудің көпқатарлы терезесі. Edit компонентінен ерекшелігі: қатарлар жиынын енгізуге болады.
Компоненттің негізгі қасиеттері:
Align//enum TAlign (alNone, alTop, alBottom, alLeft, alRight, alClient, alCustom )
Контейнердегі компонентті теңестіру тәсілін анықтайды.
Alignment//enum TAlignment
Мәтінді теңестіруді басқарады: taLeftJustify-сол жаққа, taRightJustify -оң жаққа, taCenter- ортасына. Үнсіздік келісімі бойынша сол жаққа теңестіріледі.
Font//Шрифт атрибуттарын анықтайды.
Lines//Мәтін қатарлары
MaxLength//Символдардың ең үлкен санын көрсетеді.
Modified//Компонентте
PopupMenu//Компонентпен
ReadOnly//Мәтіннің өзгеруін білдіреді.
SelLenght//Мәтінде
SelStart//Мәтінде бірінші белгіленген символ позициясын көрсетеді.
SelText//Терезеде белгіленген
Негізгі функциялары
Clear //void Clear(void)
Терезеден мәтінді жояды
ClearSelection//void ClearSelection(void)
Терезеден белгіленген (выделенный) мәтінді жояды
ClearUndo//void ClearUndo(void)
Редактрлеудің қайтару (отмена) командаларын буферден тазалайды
CopyToClipboard//void CopyToClipboard(void)
Белгіленген фрагментті көшіреді
CutToClipboard//void CutToClipboard
(void)Белгіленген фрагментті қияды
PasteFromClipboard//void PasteFromClipboard(void)
Мәтінді буферден керекті орынға қояды
SelectAll//void SelectAll(void)
Мәтінді толығымен белгілейді
Undo//void Undo(void)
Барлық өзгерістерді қайтарады
2. Dialogs бетіндегі файлды ашу, сақтау, шрифт диалогтарымен жұмыс істеу
OpenPictureDialog, SavePictureDialog компоненттері файлдарды ашу, сақтау үшін шақырылады. Негізгі функциясы – Execute.
Сохранить как.. Командасын орындау үшін:
SaveDialog1->FileName=Fname;
if (SaveDialog1->Execute () )
{Fname=OpenDialog1->FileName;
RichEdit1->Lines->SaveToFile(
}
FontDialog компонентінің де негізгі функциясы- Execute.
Scrollbar – жылжыту жолағы (полоса прокрутки), редактрлеу объектілерінде автоматты түрде пайда болады.
GroupBox визуалды мақсаттар үшін және Windows-тың формасындағы компоненттер (TAB батырмасын басқанда) бойынша орын ауыстыру тәртібін көрсету үшін қолданылады.
RadioGroup GroupBox сияқты қолданылады, яғни RadioButton объектілерін топотау үшін.