return 0;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
syh_el *siyahi_yarat( syh_el *syh, int elem_say)
{ syh_el *
p, *
q;
p=syh;
q=syh;
int i,dey;
char bufer[30];
for (i=1; i<=elem_say; ++i)
{ std::cout<<"siyahinin "<
<<" -ci elementinin x ve ad heddlerini daxil edin \n";
memset(bufer,0,30);
std::cin>>dey>>bufer;
p = new syh_el;
p->x = dey;
strncpy(p->ad,bufer,20);
*(p->ad + 20) = '\0';
p->novb_el = NULL;
if (syh==NULL){
syh=p;
q = p;
p = NULL; }
else {
q->novb_el = p;
q = p;
}} return syh;
}
//=================================================
void siyahini_cap_et (syh_el *syh)
{ syh_el *
p;
int dey, fix = 0;
char bufer[30];
p = syh;
if (syh == NULL ) {
std::cout<<"Siyahi boshdur \n";
return;
} std::cout<<"Siyahinin elementleri \
n";
while(p!=NULL)
{ /*elementlerin capinin ekanda gozel gorunmesi ucun*/
if (fix++ != 0) std::cout<<" -> ";
dey = p->x;
memset(bufer,0,30);
strncpy(bufer, p->ad, 20);
*(bufer + 20) = '\0';
std::cout<<"("<
p = p->novb_el; /* novbeti elemente kec */
} std::cout<<"\n";
}
//============================================
syh_el *siyahi_sil(syh_el *syh, int elem, int say)
{ syh_el *
p, *
q;
p=syh;
int i,dey;
if (syh==NULL)
return NULL; /* siyahi boshdur */
if (elem==1)
{ /* silmek istediyimiz element ilk elementdir */
syh = p->novb_el;
p->novb_el = NULL;
delete p;
return syh;
}
for (i=1; i
if (p==NULL) break;
else
p = p->novb_el;
if (p==NULL){
std::cout<<"Siyahida "
<
return syh;
} q=p;
/*
indi q simek istediyimiz yerin bashlangicina istinad edir
p -ni bu elementden bashlayaraq say qeder sona
surushdurmeliyik
*/
for (i=0; i
if (p==NULL) break;
else
p = p->novb_el;
if (p==NULL){
std::cout<<"Siyahida "
<
return syh;
}
if (p->novb_el==NULL)
{ /* siyahini q-den bashlayaraq sona kimi silmeliyik */
q->novb_el=NULL;
delete p;
p=q=NULL;
return syh;
}
q->novb_el = p->novb_el;
p->novb_el = NULL;
delete p;
q=NULL;
return syh;
}
Netice:
C:\cpp\prog2\Debug>
C:\cpp\prog2\Debug>./prog2.exe
Siyahinin elementlerinin sayini daxil edin
9
siyahinin 1-ci elementinin x heddini daxil edin
1
siyahinin 2-ci elementinin x heddini daxil edin
2 siyah
inin 3-ci elementinin x heddini daxil edin
3
siyahinin 4-ci elementinin x heddini daxil edin
4
siyahinin 5-ci elementinin x heddini daxil edin
5
siyahinin 6-ci elementinin x heddini daxil edin
6
siyahinin 7-ci elementinin x heddini daxil edin
7
siyahinin 8-ci elementinin x heddini daxil edin
8
siyahinin 9-ci elementinin x heddini daxil edin
9
Siyahinin elementleri
(1) -> (2) -> (3) -> (4) -> (5) -> (6) -> (7) -> (8) -> (9)
Siayhidan silmek istediyiniz elementlerin
bashlangic indeksini ve sayini daxil edin
3 4
Siyahinin elementleri
(1) -> (2) -> (7) -> (8) -> (9)
C:\cpp\prog2\Debug>
C:\cpp\prog2\Debug>
Qeydlər
Oxucular ьзьn:
Bu buraxılışda əsasən sintaktik səhvlərin aradan qaldırılması və bəzi yerlərdə proqram
kodunun və izahın əlavə olunmasına ьstьnlьk verdik.
Зox istədik ki, Obyekt yцnьmlь proqramlaşdırmanın Varislik və Polimorfizm kimi mцvzuların
əlavə edək, amma bu buraxılışda buna imkanımız olmadı.
Qurucular ьзьn:
Kitabın gələcək buraxılışlarının hazırlanmasında , kitabda olan mцvzuların
təkmilləşdirilməsində, yeni mцvzuların və proqram nьmunələrinin əlavə olunmasında kцnьllь
kцməklik gцstərmək istəyən proqramзılar mьəlliflə aşağıdakı ьnvandan əlaqə saxlaya bilər.
ahmed.sadikhov@gmail.com
Gцrьlməli işlər:
1. Continue və break operatorlarına aid proqram nьmunəsi, izahın yenilənməsi.
2. Mьqaisə əməllərinin 3.1 -dən əvvələ keзirilməsi + proqram kodu.
3. Rekursiv funksiyaların izahı və proqram kodu nьmunəsi
4. Bьtьn nəticələrdə proqram adları prog2.exe kimi gцstərilib, mьvafiq adlarla dəyişmək.
5. Ьnvan dəyişənləri ьzərində hesab əməlləri + proqram kodu.
6. Null qiymətinin izahı + proqram kodu ($4). Hazırki buraxılışda NULL barəsində ancaq $9
-da qısa izah verilir.
7. Varislik mцvzusunun əlavə olunması
8. Polimorfizm mцvzusunun əlavə olunması
9. Axınlar (streams) mцvzusunun əlavə olunması
10. İkiistiqamətli siyahılar, ağaclar, nцvbələr, steklər mцvzularının əlavə olunması
11. Const, statik, volatile, external dəyişən və funksiyalara aid mцvzunun əlavə olunması +
proqram kodu
12. Fayllarla işləmə funksiyalarına aid mцvzunun əlavə olunması
13. Proqram nьmunələrinin artırılması, yeni зalışmaların əlavə olunması
Dostları ilə paylaş: |