Vi fəsil. C++ dilində proqramlaşdırma


Simvolları saxlayan steki reallaşdıran sinfin təyini və istifadəsi



Yüklə 1,02 Mb.
səhifə51/74
tarix04.01.2023
ölçüsü1,02 Mb.
#121980
1   ...   47   48   49   50   51   52   53   54   ...   74
Alqoritmik dillər(C kitab) (10)

6.38.Simvolları saxlayan steki reallaşdıran sinfin təyini və istifadəsi
Sinfin adı stack olsun. Stekin ölçüsünü size-ilə işarə edək. Stekin təpə nöqtəsinin indeksini tos-işarə edək.

init( )-steki inisiallaşdıran funksiyanın adı,
push( )-stekə simvol yerləşdirən funksiyanın adı,
pop( )-stekdən simvolu çıxaran funksiyanın adi olsun.
Tutaq ki, stack tipinə malik S1S2 obyektləri təyin olunmuşdur və S1 obyektindən stekə ‘a’, ‘b’, ‘c’ simvollarını, S2-obyektindən isə ‘x’, ‘y’, ‘z’ simvollarını stekə daxil etmək üçün istifadə olunur. Bu simvolları saxlamaq üçün istifadə olunan steki reallaşdıran proqram aşağıdaki kimi olar:
#include
using namespace std;
#define size 10
//Simvollar üçün stack sinfinin elanı
Class stack {
char stck[size]; //Stek yerləşir
int tos; //stekin təpə nöqtəsinin indeksi
public:
void init( );//Steki inisiallaşdıran funksiya
void push(char ch); //Stekə simvol yerləşdirən funksiya
char pop( );//Stekdən simvol çıxaran funksiya
};
//Stekin inisiallaşdırılması
void Stack :: init( )
{tos=0;
}
//Stekə simvolun yerləşdirilməsi
void stack::push(char ch)
{if (tos==size){
cout<<”Stek doludur”;
return;
}
Stck[tos]=ch;
tos++;
}
//Stekdən simvolun çıxarılması
char stack :: pop( )
{if(tos==0){
cout<<”stek boşdur”;
return 0;//stek boşalan halda sıfır qaytarılır
}
tos--;
return stck[tos++];
}
int main( )
{stack S1, S2;//iki stekin yaradılması
int i;
//Steklərin inisiallaşdırılması
S1.init( );
S2.init( );
S1.push(`a`);
S2.push(`x`);
S1.push(`b`);
S2.push(`y`);
S1.push(`c`);
S2.push(`z`);
for(i=0; i<3; i++)cout<<”S1-in simvolu:”<
for(i=0; i<3; i++)cout<<”S2-nın simvolu:”<
return 0;
}
Bu proqram ekrana aşağıdakiları verir:
S1-in simvolu: c
S1-in simvolu: b
S1-in simvolu: a
S2-in simvolu: z
S2-in simvolu: y
S2-in simvolu: x
Bu proqramda stack sinfində iki qapalı dəyişən yerləşir: Stck tos. Stck-massivində stekdə faktiki olaraq yerləşən simvollar olur. tos isə stekin təpəsinin indeksidir. Stekin açıq funksiyaları init( ), pop( )push( )-funksiyalarıdır. main( ) funksiyasının daxilində S1S2 stekləri yaradılır və bunların hər birində simvollar yerləşir. S1-obyekti S2-obyektindən asılı deyildir. Ona görə də S1-dəki simvollar S2-yə təsir etməyəcəkdir. Hər bir obyektdə özünün xüsusi stcktos dəyişənlərinin sürətləri yerləşir. Bu obyekt konsepsiyasının başa düşülməsində fundamental rol oynayır.

Sinfin bütün obyektləri ümumi üzv-funksiyalara malik olmasına baxmayaraq hər bir obyekt özünün xüsusi verilənlərini yaradır.




Yüklə 1,02 Mb.

Dostları ilə paylaş:
1   ...   47   48   49   50   51   52   53   54   ...   74




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©muhaz.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin