Çalışmalar.
1. İstifad çinin daxil etdiyi d dl rin c mini hesablayan proqram t rtib edin.
ə
ə ə ə
ə
ə
2. İstifad çinin daxil etdiyi d dl r iç risind n böyüyünü t yin ed n proqram
ə
ə ə ə
ə
ə ə
ə
ə
t rtib edin.
ə
3. İstifad çinin daxil etdiyi d dl r iç risind 3 - bölün nl ri t yin ed n
ə
ə ə ə
ə
ə
ə
ə ə ə
ə
proqram t rtib edin.
ə
4. İstifad çinin daxil etdiyi d dl ri artan sıra il düz n proqram t rtib edin.
ə
ə ə ə
ə
ə
ə
5. İstifad çinin daxil etdiyi d dl rd n cüt v t k d dl ri ayrı-ayrı (2 müxt lif
ə
ə ə ə ə
ə ə ə ə ə
ə
sırada) çap ed n proqram t rtib edin.
ə
ə
$6 S tirl r
ə
ə
S tirl r simvol tipli c rg l rdir. S tir elan etm k üçün aşağıdakı sintaksisd n istifad
ə ə
ə ə ə
ə
ə
ə
ə
olunur:
char
Sətrin_Adı [ Simvolların_Sayı ];
Çalışma 1. 10 simvoldan ibar t s s tri elan edin.
ə
ə
H lli .
ə
S trin elan olunma sintaksisin sas n t l b olunan s tri aşağıdakı kimi elan ed
ə
ə ə
ə ə ə
ə
ə
bil rik:
ə
char
s[
10
];
S tril rl işl m k üçün funksiyalar
ə ə ə
ə ə
S tirl rl işl m k üçün bir neç standart funksiyalar t yin olunmuşdur. Bu funksiyalardan
ə ə ə
ə ə
ə
ə
istifad ed rk n proqrama string.h faylını lav etm liyik. G lin bu funksiyalarla tanış
ə
ə ə
ə
ə
ə
ə
olaq.
strcpy(s1, s2) funksiyası
strcpy funksiyası parametr olaraq iki s tir q bul edir v ikinci s tri birinciy köçürür.
ə
ə
ə
ə
ə
strcmp(s1,s2) fuksiaysı
strcmp funksiyası s tirl rin müqais si üçün istifad edirl r. g r s1 s tri s2 s tri il
ə ə
ə
ə
ə Ə ə
ə
ə
ə
eynidirs onda funksiya 0 qiym tini qaytarır. g r s1-in elementl rinin sayı s2-d n
ə
ə
Ə ə
ə
ə
azdırsa onda <0 ks halda >0 qiym tini qaytarır.
ə
ə
strcat(s1,s2) fuksiaysı
strcat funksiyası parametr olaraq iki s tir q bul edir v birinci s trin sonuna ikinci s tri
ə
ə
ə
ə
ə
lav edir
ə
ə
strlen(s) funksiyası.
strlen funksiyası parametr olaraq h r-hansı s tir q bul edir v n tic olaraq h min s trin
ə
ə
ə
ə ə ə
ə
ə
uzunluğunu qaytarır. Burada s trin uzunluğu anlayışını elanda istifad etdiyimiz
ə
ə
Simvolların_Sayı il qarışdırmaq olmaz. Elandakı Simvolların_Sayı s tir n çoxu neç
ə
ə ə ə
ə
simvol yerl şdir bil c yimizi bildirir, s trin uzunluğu is hal-hazırda s tr yerl şdirilmiş
ə
ə
ə ə
ə
ə
ə ə
ə
simvolların sayını bildirir.
Çalışma 2. İstifad çinin daxil etdiyi s trin uzunluğunu ekranda çap ed n proqram t rtib
ə
ə
ə
ə
edin.
H lli.
ə H r-hansı s tir elan ed k. cin operatoru il h min s tr istifad çinin daxil etdiyi
ə
ə
ə
ə ə
ə ə
ə
qiym ti m nims d k. strlen il s trin uzunluğunu çap ed k. Proqram aşağıdakı kimi
ə
ə
ə ə
ə ə
ə
olacaq:
#include
#include
int
main(){
int
k;
// ozunde en coxu 256 simvol saxlaya bilen
// setir elan edirik
char
s[
256
];
// istifadeciden her-hansi setir daxil etmesini isteyek
std::cout<<
"Zehmet olmasa her-hansi setir daxil edin
\n
"
;
// istifadecinin daxil etdiyi qiymeti s setrine yerleshdirek
std::cin>>s;
// s setrinde olan simvollarin sayini k-ya menimsedek
k = strlen(s);
// setrin uzunlugunu cap edek
std::cout<<
"setrin uzunlugu = "
< "
\n
"
;
}
Calışma 3. İstifad çinin daxil etdiyi s tird olan 'a' simvollarının sayını tapan proqram
ə
ə
ə
t rtib edin.
ə
H lli .
ə
Proqramda h r-hansı s tir elan edib istifad çinin daxil etdiyi ifad ni h min s tir
ə
ə
ə
ə
ə
ə ə
yerl şdir c yik. S trin uzunluğunu strlen funksiyası il hesablayacayıq. Daha sonra dövr
ə
ə ə
ə
ə
operatoru il s trin bütün simvollarını yoxlayıb, a-ya b rab r olanların sayını tapa bil rik.
ə ə
ə
ə
ə
Proqram kodu aşağıdakı kimi olar:
#include
#include
int
main(){
int
i,k,say;
// ozunde en coxu 256 simvol saxlaya bilen
// setir elan edirik
char
s[
256
];
// istifadeciden her-hansi setir daxil etmesini isteyek
std::cout<<
"Zehmet olmasa her-hansi setir daxil edin
\n
"
;
// istifadecinin daxil etdiyi qiymeti s setrine yerleshdirek
std::cin>>s;
// s setrinde olan simvollarin sayini k-ya menimsedek
k = strlen(s);
// evvelce say deyishenine 0 qiymeti menimsedek
say =
0
;
//dovr operatoru ile setirde olan simvollari bir-bir yoxlayaq
// eger simvol 'a' -dirsa onda say -i bir vahid artiraq
for
(i=
0
; i
{
if
(s[i] ==
'a'
) say++;
}
// setirde olan 'a' simvollarinin sayini cap edek
std::cout<<
"setirde olan a simvollarinin sayi = "
<"
\n
"
;
}
Çalışma 4. İstifad çinin daxil etdiyi iki s trin eyni olub olmadığını mü yy n ed n proqram
ə
ə
ə ə
ə
t rtib edin.
ə
H lli.
ə İki s trin elan edirik v istifad çinin daxil etdiyi ifad l ri h min s tirl r yerl şdiririk.
ə
ə
ə
ə ə
ə
ə ə ə
ə
Daha sonra strcmp funksiyası il bu s tirl ri müqais edirik. Proqram kodu aşağıdakı kimi
ə
ə ə
ə
olar:
#include
#include
int
main(){
// iki setir elan edek
char
s1[
256
], s2[
256
];
// istifadeciye birinci setri daxil etmesini bildirek
std::cout<<
"Zehmet olmasa birinci setri daxil edin
\n
"
;
// Istifadecinin daxil etdiyi birinci setri s1 -e yazaq
std::cin>>s1;
// eyni qayda ile ikinci setri s2 -ye yazaq
std::cout<<
"Zehmet olmasa ikinci setri daxil edin
\n
"
;
std::cin>>s2;
// strcmp ile s1 ve s2 -ni muqaise edek
if
(strcmp(s1,s2) ==
0
)
std::cout<<
"Setirler eynidir
\n
"
;
else
std::cout<<
"Setirler ferqlidir
\n
"
;
}
Çalışma 5. İstifad çinin daxil etdiyi iki s tri birl şdirib çap ed n proqram t rtib edin.
ə
ə
ə
ə
ə
H lli.
ə İki s tir elan ed k, istifad çinin daxil etdiyi ifad l ri h min s tril r yerl şdir k.
ə
ə
ə
ə ə
ə
ə ə ə
ə
ə
daha sonra strcat il ikinci s tri birinicinin sonuna lav ed k. Proqram kodu aşağıdakı
ə
ə
ə
ə
ə
kimi olar:
#include
#include
int
main(){
// iki setir elan edek
char
s1[
100
], s2[
100
];
std::cout<<
"Zehmet olmasa birinci setri daxil edin
\n
"
;
std::cin>>s1;
std::cout<<
"Zehmet olmasa ikinci setri daxil edin
\n
"
;
std::cin>>s2;
// strcat ile s1 -in sonuna s2 -ni elave edek
strcat(s1,s1);
// s1 - cap edek
std::cout<
"
\n
"
;
}
Çalışmalar.
1. İstifad çini daxil etdiyi s trin uzunluğunu çap ed n proqram t rtib edin.
ə
ə
ə
ə
2. İstifad çinin daxil etdiyi s trin son 5 simvolunu ekranda çap ed n proqram t rtib edin.
ə
ə
ə
ə
3. İstifad çinin daxil etdiyi s trin ilk 3 simvolu il son 5 simvolunu birl şdirib çap ed n
ə
ə
ə
ə
ə
proqram t rtib edin.
ə
4. El proqram qurun ki, istifad çinin daxil etdiyi s trin 5-ci simvolu il 15-ci simvolu
ə
ə
ə
ə
arasında qalan hiss sini çap etsin.
ə
5. El proqram t rtib edin ki, istifad çid n 3 s tir q bul etsin v bu s tirl ri ardıcıl
ə
ə
ə
ə
ə
ə
ə
ə ə
birl şdir r k tam s tir kimi çap etsin.
ə
ə ə
ə
6.* El proqram t rtib edin ki, istifad çid n 4 s tir q bul etsin v bu s tirl ri daxil olma
ə
ə
ə
ə
ə
ə
ə
ə ə
sırasının ksi ardıcıllığında birl şdir r k tam s tir kimi çap etsin.
ə
ə
ə ə
ə
7.* El proqram t rtib edin ki, istifad çid n 4 s tir q bul etsin v bu s tirl ri
ə
ə
ə
ə
ə
ə
ə
ə ə
uzunluqlarının artma ardıcıllığı il alt-alta çap etsin.
ə
$7 Struct tipl r.
ə
7.1 Struct tipinin yaradılması
Struct tipl rind n müxt lif tipl rd n olan d yiş nl rd n ibar t yeni tip yaratmaq üçün
ə
ə
ə
ə ə
ə
ə ə ə
ə
istifad olunur. Struct tipi elanı sintaksisi aşağıdakı kimidir:
ə
struct
Ad {
tip_1 dəyişən_1;
tip_2 dəyişən_2;
.
.
.
tip_n dəyişən_n
};
Burada Ad yeni yaratdığımız struct tipinin adını bildirir. d yiş n_1, ... d yiş n_n is yeni
ə
ə
ə
ə
ə
tipin h ddl ri adlanır.
ə
ə
Çalışma 1. int tipli x v char tipli c h ddl rind n ibar t s adlı struct tipi elan edin.
ə
ə
ə
ə
ə
H lli. T l b olunan struct tipinin adı s -dir v 2 h ddi var: int tipli x v char tipli c. Struct
ə
ə ə
ə
ə
ə
tipinin elanı sintaksisin asas n onu aşağıdakı kimi elan ed bil rik:
ə
ə
ə
ə
struct
s {
int
x;
char
c;
};
7.2 Struct tipind n olan d yiş nl r
ə
ə
ə ə
Struct tipi elan ed rk n biz yeni d yiş n tipi yaratmış oluruq. Yeni yaratdığımız tipd n
ə ə
ə
ə
ə
dig r standart tipl rd n olduğu kimi d yiş n elan ed bil rik.
ə
ə ə
ə
ə
ə
ə
Çalışma 2. Çalışma 1 -d t rtib olunan s struct tipind n q adlı d yiş n elan edin.
ə ə
ə
ə
ə
H lli.
ə Tipin adı s, d yiş nin adı q olduğuna gör adi standart tipl rin elan olunması
ə
ə
ə
ə
qaydasına sas n q d yiş nin aşağıdakı kimi elan ed bil rik:
ə
ə
ə
ə
ə
ə
// s adli yeni tip yaradiriq
struct
s {
int
x;
char
c;
};
// s tipindən q dəyisheni elan edirik
s q;
7.3 Struct tipinin h ddl rin müraci t
ə
ə
ə
ə
Struct tipind n d yiş n elan etdikd n sonra biz artıq onun h ddl rin müraci t ed
ə
ə
ə
ə
ə
ə ə
ə
ə
bil rik. Bunun üçün D yiş nin_Adı.H ddin_adı sintaksisind n istifad edirik
ə
ə
ə
ə
ə
ə
(d yiş nin_adı nöqt h ddin_adı).
ə
ə
ə ə
Çalışma 3. Çalışma 2 -d elan olunan q d yiş nin x h ddin 10, c h ddin is 'A' qiym ti
ə
ə
ə
ə
ə
ə
ə ə
ə
m nims din.
ə
ə
H lli.
ə D yiş nin adı q, olduğundan onun x h ddin 10, c h ddin 'A' qiym ti
ə
ə
ə
ə
ə
ə
ə
m nims tm k üçün
ə
ə ə
q.x =
10
;
q.c =
'A'
;
yazmalıyıq. Struct tipinin elanı v q d yiş ninin elanı s tril rini d n z r alsaq yekun
ə
ə
ə
ə ə
ə ə ə ə
kod aşağıdakı kimi olar:
// s adli yeni tip yaradiriq
struct
s {
int
x;
char
c;
};
// s tipindən q dəyisheni elan edirik
s q;
// q -nün x həddinə 10 qiyməti mənimsədək
q.x =
10
;
// q -nün c həddinə 'A' qiyməti mənimsədək
q.c =
'A'
;
$8 Sinifl r.
ə
8.1 Sinfin elanı
Sinifl r struct tipl rd n f rqli olaraq özl rind d yiş nl rl yanaşı funksiya h ddl ri d
ə
ə ə ə
ə
ə ə
ə ə ə
ə
ə
ə
saxlaya bil r. Sinfin elan olunma qaydası aşağıdakı kimidir:
ə
class
sinfin_adı {
tip1 dəyişən1;
tip2 dəyişən2
.
.
.
tip_n dəyişən_n;
tip_1 funksiya_1 ();
tip_2 funksiya_2 ();
.
.
.
tip_k funksiya_k ();
};
D yiş nl r sinfin d yiş n h ddl ri, funksiyalar is funksiya h ddl ri adlanır.
ə
ə ə
ə
ə
ə
ə
ə
ə
ə
Çalışma 1. int tipli en v int tipli uz d yiş n h ddl ri, int sahe(int,int) funksiya h ddind n
ə
ə
ə
ə
ə
ə
ə
ibar t duzbucaqli adlı sinif elan edin. sahe funksiyası n tic olaraq q bul etdiyi
ə
ə ə
ə
parametrl rin hasilini qaytarır.
ə
H lli .
ə
Sinfin elanı sintaksisini n z r alsaq t l b olunan sinfi aşağıdakı kimi elan ed
ə ə ə
ə ə
ə
bil rik:
ə
class
duzbucaqli {
int
en;
int
uz;
int
sahe (
int
,
int
);
};
8.2 Sinif tipind n d yiş n elan etm k
ə
ə
ə
ə
Sinif tipini yaratdıqdan sonra adi standart tipl rd olduğu kimi d yiş n elan ed bil rik.
ə ə
ə
ə
ə
ə
Sinif tipind n elan olunan d yiş nl r b z n obyekt d adlandırılır.
ə
ə
ə ə ə ə
ə
Çalışma 2. Çalışma 1 -d t rtib olunmuş duzbucaqlı sinfind n duzb adlı d yiş n elan
ə ə
ə
ə
ə
edin.
H lli.
ə Sinif tipind n d yiş n elan etm sintaksisin sas n t l b olunan d yiş ni
ə
ə
ə
ə
ə ə
ə ə ə
ə
ə
aşağıdakı kimi elan ed bil rik.
ə
ə
duzbucaqli duzb;
8.3 Sinfin h ddl rin müraci t
ə
ə
ə
ə
Sinfin h ddl rin müraci t ed n zaman struct tipinin h ddl rin müraci t qaydasından
ə
ə ə
ə
ə
ə
ə ə
ə
istifad ed c yik. Başqa sözl d yiş nin_Adı.h ddin_adı kimi.
ə
ə ə
ə ə
ə
ə
Çalışma 3. Çalışma 2 -d elan olunan duzb d yiş ninin en h ddin 10, uz h ddin 20
ə
ə
ə
ə
ə
ə
ə
qiym tl ri m nims din.
ə ə
ə
ə
H lli.
ə Sinif tipinin h ddl rin müraci t qaydasından istifad edib sinfin d yiş n
ə
ə ə
ə
ə
ə
ə
h ddl rin t l b olunan qiym tl ri aşağıdakı kimi m nims d bil rik:
ə
ə ə ə ə
ə ə
ə
ə ə
ə
duzb.en =
10
;
duzb.uz =
20
;
8.4 Sinfin funksiya h ddinin t rtibi
ə
ə
Sinfin funksiya h ddinin proqram kodunu t rtib etm k üçün aşağıdakı sintaksisd n
ə
ə
ə
ə
istifad olunur:
ə
nəticə_tipi sinfin_adı::funksiyanın_adı (parametrlər) {
proqram kodu;
}
Çalışma 4. Çalışma 1 -d elan olunmuş duzbucaqli sinfinin sahe funksiyasının proqram
ə
kodunu t rtib edin.
ə
H lli.
ə sinfin_adı duzbucaqli, funskiya h ddinin adı sahe, funksiyanın qaytardığı n tic nin
ə
ə ə
tipi int, q bul etdiyi h r iki parametrin tipi int-dir. sahe funksiyası n tic olaraq q bul etdiyi
ə
ə
ə ə
ə
parametrl rin hasilini qaytarır. Bunları v sinfin funksiya h ddinin t rtib olunma qaydasını
ə
ə
ə
ə
n z r alıb sah funksiyasının proqram kodunu aşağıdakı kimi t rtib ed bil rik:
ə ə ə
ə
ə
ə
ə
int
duzbucaqli::sahe (
int
x,
int
y){
return
x*y;
}
8.5 Açıq v gizli h ddl r
ə
ə
ə
Struct tipind n f rqli olaraq sinifl r öz h ddl rin müraci ti açıq v gizli xass l ri il
ə ə
ə
ə
ə ə
ə
ə
ə ə
ə
t nziml y bilir. Sinfin açıq h ddl rin müraci t s rb stdir. Gizli h ddl r is yalnız sinfin
ə
ə ə
ə
ə ə
ə ə ə
ə
ə ə ə
öz h ddl ri müraci t ed bil r.
ə
ə
ə
ə
ə
8.5.1 Açıq h ddl r
ə
ə
Sinfin h r-hansı d yiş n v ya funksiya h ddini açıq elan etm k üçün "public" xass si il
ə
ə
ə
ə
ə
ə
ə
ə
elan etm k lazımdır. Sintaksis aşağıdakı kimidir:
ə
class
sinfin_adı {
public
:
tip_1 dey_1;
tip_2 dey_2;
.
.
.
tip_n dey_n;
};
8.5.2 Gizli h ddl r
ə
ə
Sinfin h r-hansı d yiş n v ya funksiya h ddini gizli elan etm k üçün "private" xass si il
ə
ə
ə
ə
ə
ə
ə
ə
elan etm k lazımdır. Sintaksis aşağıdakı kimidir:
ə
class
sinfin_adı {
0> Dostları ilə paylaş: |