#define MAX 8
int main()
{ int i,x[MAX];
for (i=0, i
x[i]=i;
return 0;
}
Bu proqram 8 elementli tam tipli x cərgəsi elan edir və onun elementlərinə 0-dan 7-yə kimi
qiymətlər mənimsədir.
Şərt makrosları
Şərt makrosları #ifdef , #ifndef , #endif direktivlədən istifadə olunaraq yaradılır.Şərt makrosları
bizə imkan verir ki, mьəyyən şərtdən asılı olaraq proqramın hər-hansı hissəsinin kompilyator
tərəfindən nəzərə alınmamasını təmin edək.
Sintaksis belədir:
# if şərt
proqram kodu
#endif
Bu zaman əgər şərt 1 qiyməti alarsa onda kompilyator proqram kodu hisəsini nəzərə
alacaq, əks halda isə bu hissə kompilyator tərəfindən inkar ediləcək, başqa sцzlə şərh kimi
qəbul olunacaq.
Əlavələr
Əlavə A – bəzi standanrt funksiyalar
sdt::cout funksiyası.
sdt::cout funksiyası yaddaşın mьxtəlif məlumatları ekrana зap etmək ьзьn istifadə olunur.
Misal ьзьn əgər ekranda "Salam dunya" sətrini зap etmək istəyiriksə onda aşağıdakı kimi
yazırıq:
std::cout<<"Salam dunya";
Əgər sdt::cout vastəsilə ekrana mьxtəlif məlumatlar gцndərmək istəyiriksə onda bir neзə
mьxtəlif məlumatı "<<" vastəsilə birləşdirə bilərik. Misal ьзьn tutaq ki, x,y,z dəyişənlərinin
qiymətlərini зap etmək istəyirəm. Onda kod aşağıdakı kimi olar:
std::cout<
std::cin funksiyası.
std::cin funksiyası std::cout funksiyasının gцrdьyь işin əksini gцrьr. Əgər std::cout vastəsilə biz
dəyişənlərin qiymətlərin ekrana зap edirdiksə, std::cin vastəsilə biz istifadəзinin klaviaturadan
daxil etdiyi qiymətləri dəyişənlərə mənimsədirik. Misal ьзьn əgər mən hər-hansı x
dəyişəninə istifadəзinin daxil etdiyi qiymət mənimsətmək istəyirəmsə onda aşağıdakı kimi
yazıram:
std::cin>>x;
std::cin də std::cout kimi bir neзə dəyişənlə eyni anda işləməyə imkan verir. Misal ьзьn əgər
mən x,y,z dəyişənlərinə istifadəзi tərəfindən daxil olunan qiymət mnimsətmək istəyirəmsə
onda yaza bilərəm:
std::cin>>x>>y>>z;
Əlavə B. ASCII Kodlar Cədvəli.
Bu cədvəldən istifadə etmək ьзьn , sadəcə lazım olan simvolu tap və solda yerləşən
rəqəmlə yuxarıda yerləşən rəqəmin cəmi bu simvolun kodunu gцstərir.
Cədvəl B-1.10-luq say sistemində ASCII Kodlar Cədvəli.
Char Dec
\0 0 (sp) 32 @ 64 ` 96
(soh) 1 ! 33 A 65 a 97
(stx) 2 " 34 B 66 b 98
(etx) 3 # 35 C 67 c 99
(eot) 4 $ 36 D 68 d 100
(enq) 5 % 37 E 69 e 101
(ack) 6 & 38 F 70 f 102
(bel) 7 ' 39 G 71 g 103
(bs) 8 ( 40 H 72 h 104
\t 9 ) 41 I 73 i 105
\n 10 * 42 J 74 j 106
(vt) 11 + 43 K 75 k 107
(np) 12 , 44 L 76 l 108
(cr) 13 - 45 M 77 m 109
(so) 14 . 46 N 78 n 110
(si) 15 / 47 O 79 o 111
(dle) 16 0 48 P 80 p 112
(dc1) 17 1 49 Q 81 q 113
(dc2) 18 2 50 R 82 r 114
(dc3) 19 3 51 S 83 s 115
(dc4) 20 4 52 T 84 t 116
(nak) 21 5 53 U 85 u 117
(syn) 22 6 54 V 86 v 118
(etb) 23 7 55 W 87 w 119
(can) 24 8 56 X 88 x 120
(em) 25 9 57 Y 89 y 121
(sub) 26 : 58 Z 90 z 122
(esc) 27 ; 59 [ 91 { 123
(fs) 28 < 60 \ 92 | 124
(gs) 29 = 61 ] 93 } 125
(rs) 30 > 62 ^ 94 ~ 126
(us) 31 ? 63 _ 95 (del ) 127
Bəzi зalışmaların həlləri
$1. Giriş
5 - ci çalışma.
Ekranda Mən C++ dilini örgənirəm sətrini çap edən proqram tərtib edin.
// hell_1_5.cpp
#include
int main()
{ std::cout<<"Men C++ silini orgenirem \
n";
}
Nəticə:
C:\cpp\prog2\Debug>
C:\cpp\prog2\Debug>prog2.exe
Men C++ silini orgenirem
C:\cpp\prog2\Debug>
C:\cpp\prog2\Debug>
$2. Dəyişənlər
1 - ci зalışma.
Elə proqram yazın ki, istifadəзidən 5 ədəd daxil etməsini istəsin, daha sonra proqram bu
ədədlərin cəmini ekranda зap etsin.
Nəticə:
// hell_2_1.cpp
#include < iostream >
int main(){
int x1,x2,x3,x4,x5,y;
/*en primitiv variant*/
std::cout<<"Zehmet olmasa 1-ci ededi daxil edin \n";
std::cin>>x1;
std::cout<
std::cin>>x2;
std::cout<<"Zehmet olmasa 3-cu ededi daxil edin \n";
std::cin>>x3;
std::cout<<"Zehmet olmasa 4-cu ededi daxil edin \n";
std::cin>>x4;
std::cout<<"Zehmet olmasa 5-ci ededi daxil edin \n";
std::cin>>x5;
y = x1 + x2 + x3 + x4 + x5;
std::cout<<"Daxil etdiyiniz ededlerin cemi = "<
}
Nəticə:
C:\cpp\prog2\Debug>prog2.exe
Zəhmət olmasa 1-ci ədədi daxil edin
45
Zəhmət olmasa 2-ci ədədi daxil edin
34
Zəhmət olmasa 3-cu ədədi daxil edin
123
Zəhmət olmasa 4-cu ədədi daxil edin
7
Zəhmət olmasa 5-ci ədədi daxil edin
8
Daxil etdiyiniz ədədlerin cemi = 217
C:\cpp\prog2\Debug>
C:\cpp\prog2\Debug>
2 - ci зalışma.
Elə proqram tərtib edin ki, istifadəзidən üçbucağın tərəflərinin uzunluğunu daxil etməsini
istəsin və üçbucağın perimetrini çap etsin.
//hell_2_2.cpp
#include
int main()
{
int ter1, ter2, ter3, perim;
std::cout<<"Zehmet olmasa ucbucaqin 1-ci terefinin uzunlugunu daxil edin \n";
std::cin>>ter1;
std::cout<<"Zehmet olmasa ucbucaqin 2-ci terefinin uzunlugunu daxil edin \n";
std::cin>>ter2;
std::cout<<"Zehmet olmasa ucbucaqin 3-cu terefinin uzunlugunu daxil edin \n";
std::cin>>ter3;
perim = ter1 + ter2 + ter3;
std::cout<<"Ucbucaqin perimetri = "<
}
Nəticə:
C:\cpp\prog2\Debug>
C:\cpp\prog2\Debug>prog2.exe
Zəhmət olmasa ucbucaqin 1-ci terefinin uzunlugunu daxil edin
23
Zəhmət olmasa ucbucaqin 2-ci terefinin uzunlugunu daxil edin
34
Zəhmət olmasa ucbucaqin 3-cu terefinin uzunlugunu daxil edin
45
Ucbucaqin perimetri = 102
C:\cpp\prog2\Debug>
C:\cpp\prog2\Debug>
$3. Operatorlar
1 - ci зalışma.
El proqram yazın ki, istifadəçidən 2 ədəd qəbul etsin və bunların ən böyüyünü çap etsin.
//hell_3_1.cpp
#include
int main()
{
int dey1, dey2, max;
std::cout<<"Birinci ededi daxil edin \n";
std::cin>>dey1;
std::cout<<"Ikinci ededi daxil edin \n";
std::cin>>dey2;
if (dey1 > dey2)
max = dey1;
else
max = dey2;
std::cout<<"Bu ededlerden en boyuyu "<
}
Nəticə:
C:\cpp\prog2\Debug>
C:\cpp\prog2\Debug>prog2.exe
Birinci ededi daxil edin
234
Ikinci ededi daxil edin
457
Bu ededlerden en boyuyu 457 -dir
C:\cpp\prog2\Debug>
C:\cpp\prog2\Debug>
2 - ci зalışma.
Elə proqram yazın ki, istifadəзidən 3 ədəd qəbul etsin və bunların ən büyüyünü çap etsin.
//hell_3_2.cpp
#include
int main()
{
int dey1, dey2, dey3, max;
std::cout<<"Birinci ededi daxil edin \n";
std::cin>>dey1;
std::cout<<"Ikinci ededi daxil edin \n";
std::cin>>dey2;
std::cout<<"Ucuncu ededi daxil edin \n";
std::cin>>dey3;
if ((dey1 > dey2) && (dey1 > dey3))
max = dey1;
else
if ((dey2 > dey1) && (dey2 > dey3))
max = dey2;
else
max = dey3;
std::cout<<"Bu ededlerden en boyuyu "<
}
Nəticə:
C:\cpp\prog2\Debug>
C:\cpp\prog2\Debug>prog2.exe
Birinci ededi daxil edin
23
Ikinci ededi daxil edin
456
Ucuncu ededi daxil edin
981
Bu ededlerden en boyuyu 981 –dir
C:\cpp\prog2\Debug>
C:\cpp\prog2\Debug>
4 - cü çalışma.
Elə proqram qurun ki, istifadəçinin daxil etdiyi ədəd sayda ekranda 'a' simvolu çap etsin.
//hell_3_4.cpp
#include
int main()
{
int i,dey;
std::cout<<"Her hansi daxil edin \n";
std::cin>>dey;
for (i=0; istd::cout<<'a'<<" ";
std::cout<<"\n";
}
Nəticə:
C:\cpp\prog2\Debug>
C:\cpp\prog2\Debug>prog2.exe
Her hansi daxil edin
6
a a a a a a
C:\cpp\prog2\Debug>
C:\cpp\prog2\Debug>
5 - ci зalışma.
El proqram qurun ki, istifad зid n h r-hansı d d q bul ə ə ə ə ə ə ə etsin. Əgər bu ədəd 100-dən
bцyьk olarsa ondaekranda 100 dəfə 'c' simvolu зap etsin, 50 ilə 100 arasında olarsa ekranda
həmin ədəd sayda 'b' simvolu зap etsin,50 -dən kiзik olarsa həmin ədəd sayda 'a' simvolu
зap etsin.
//hell_3_5.cpp
#include
int main()
{
int i,dey;
std::cout<<"Her hansi daxil edin \n";
std::cin>>dey;
if (dey > 100 )
for (i=0; i<100; ++i)
std::cout<<'c'<<" ";
else
if (dey > 50)
for (i=0; istd::cout<<'b'<<" ";
else
for (i=0; istd::cout<<'a'<<" ";
std::cout<<"\n";
}
Nəticə:
C:\cpp\prog2\Debug>
C:\cpp\prog2\Debug>prog2.exe
Her hansi daxil edin
12
a a a a a a a a a a a a
C:\cpp\prog2\Debug>
C:\cpp\prog2\Debug>
6 - cı зalışma.
for dövr operatorundan istifadə etməklə ekranda sonsuz olaraq "unix" kəlməsini çap edən proqram yazın.
//hell_3_6.cpp
#include
int main()
{
int i;
for (i=0; i<1; i=i)
std::cout<<"unix\n";
}
Nəticə:
C:\cpp\prog2\Debug>
C:\cpp\prog2\Debug>prog2.exe
unix
unix
unix
unix
unix
unix
unix ^C
C:\cpp\prog2\Debug>
7 - ci зalışma.
while dövr operatorundan istifadə etməklə ekranda sonsuz olaraq "linux" kəlməsini зap
edən proqram yazın.
//hell_3_7.cpp
#include
int main()
{ while(1)
std::cout<<"linux\n";
}
Nəticə:
C:\cpp\prog2\Debug>
C:\cpp\prog2\Debug>prog2.exe
linux
linux
linux
linux
linux
linux
linux ^C
C:\cpp\prog2\Debug>
$4. Ьnvan dəyişənləri
1 - ci зalışma.
Ancaq ьnvan dəyişənlərindən istifadə etməklə iki ədədin cəmini hesablayan proqram tərtib
edin.
//hell_4_1.cpp
#include
int main(int argc, char *argv[])
{
int *dey1, *dey2, *cem;
// unvan deyishenleri ucun yaddashda yer ayiririq
dey1 = new int;
dey2 = new int;
cem = new int;
std::cout<<"Birinci ededi daxil edin \n";
std::cin>>*dey1;
std::cout<<"Ikinci ededi daxil edin \n";
std::cin>>*dey2;
*cem = *dey1 + *dey2;
std::cout<<"Bu iki ededin cemi <<*cem<<" -dir\n";
}
Nəticə:
C:\cpp\prog2\Debug>
C:\cpp\prog2\Debug>./prog2.exe
Birinci ededi daxil edin
45
Ikinci ededi daxil edin
234
Bu iki ededin cemi 279 -dir
C:\cpp\prog2\Debug>
C:\cpp\prog2\Debug>
2- ci зalışma.
Ancaq ьnvan dəyişənlərindən istifadə etməklə iki ədədin maksimumunu hesablayan
proqram tərtib edin.
//hell_4_2.cpp
#include
int main(int argc, char *argv[])
{ int *
dey1, *
dey2, *
max;
// unvan deyishenleri ucun yaddashda yer ayiririq
dey1 = new int;
dey2 = new int;
max = new int;
std::cout<<"Birinci ededi daxil edin \n";
std::cin>>*dey1;
std::cout<<"Ikinci ededi daxil edin \n";
std::cin>>*dey2;
if (*dey1 > *dey2)
*max = *dey1;
else
*max = *dey2;
std::cout<<"Bu iki ededin en boyuyu "<<*max<<" -dir\n";
}
Nəticə:
C:\cpp\prog2\Debug>
C:\cpp\prog2\Debug>./prog2.exe
Birinci ededi daxil edin
45
Ikinci ededi daxil edin
234
Bu iki ededin cemi 279 –dir
C:\cpp\prog2\Debug>
C:\cpp\prog2\Debug>
$5. Funksiyalar
1 - ci зalışma.
Funksiyalardan istfad etm kl iki d din maksimumunu hesablayan ə ə ə ə ə proqram tətrib edin.
//hell_5_1.cpp
#include
// en_boyuk funksiyasinin elani
int en_boyuk (int x, int y);
int main(int argc, char *argv[])
{
int dey1, dey2, max;
std::cout<<"Birinci ededi daxil edin \n";
std::cin>>dey1;
std::cout<<"Ikinci ededi daxil edin \n";
std::cin>>dey2;
max = en_boyuk(dey1, dey2);
std::cout<<"Bu iki ededin en boyuyu "<
}
// en_boyuk funksiyasinin proqram kodu
int en_boyuk ( int dey1, int dey2)
{ if (
dey1 >
dey2)
return dey1;
else
return dey2;
}
Nəticə:
C:\cpp\prog2\Debug>./prog2.exe
Birinci ededi daxil edin
5
Ikinci ededi daxil edin
67
Bu iki ededin en boyuyu 67 -dir
C:\cpp\prog2\Debug>
C:\cpp\prog2\Debug>
2 - ci зalışma.
Elə funksiya qurun ki, istifadəзidən 10 tam ədəd daxil etməsini istəsin və onların cəmini
qaytarsın.Bu funksiyadan istifadə etməklə proqram qurun və onu icra edin.
//hell_5_2.cpp
#include
// cem funksiyasinin elani
int cem (void);
int main(int argc, char *argv[])
{
int dey1, dey2 ;
dey2 = cem();
std::cout<<"Daxil etdiyiniz ededlerin cemi "<
}
// cem funksiyasinin proqram kodu
int cem ( void)
{ int i, x, y;
// y-den umimi cemi yadda saxlamaq ucun istifade edeceyik
y=0;
for (i=1; i<=10; ++i)
{ std::cout<
ci ededi daxil edin\n";
std::cin>>x;
y = y + x;
}
return y;
}
Nəticə:
C:\cpp\prog2\Debug>./prog2.exe
1 -ci ededi daxil edin
4
2 -ci ededi daxil edin
56
3 -ci ededi daxil edin
67
4 -ci ededi daxil edin
23
5 -ci ededi daxil edin
45
6 -ci ededi daxil edin
67
7 -ci ededi daxil edin
2
8 -ci ededi daxil edin
6
9 -ci ededi daxil edin
78
10 -ci ededi daxil edin
123
Daxil etdiyiniz ededlerin cemi 471 -dir
C:\cpp\prog2\Debug>
C:\cpp\prog2\Debug>
3 - cь зalışma.
kvadrat adlı el funksiya t ə ərtib edin ki, ekranda “*” simvollarından ibarət, tərəflərinin
uzunluğu 10 olan, kvadrat зəksin (iзini doldurmaqla). kvadrat funksiyasından istfadə etməklə
proqram qurub icra edin.
//hell_5_3.cpp
#include
// kvadrat funksiyasinin elani
void kvadrat (void);
int main(int argc, char *argv[])
{ kvadrat();
}
// kvadrat funksiyasinin proqram kodu
void kvadrat ( void)
{ int i, j;
for(i=0; i <10; ++i){
for(j=0; j <10; ++j)
std::cout<<"* ";
std::cout<<"\n";
}
}
Nəticə:
C:\cpp\prog2\Debug>./prog2.exe
* * * * * * * * * *
* * * * * * * * * *
* * * * * * * * * *
* * * * * * * * * *
* * * * * * * * * *
* * * * * * * * * *
* * * * * * * * * *
* * * * * * * * * *
* * * * * * * * * *
* * * * * * * * * *
C:\cpp\prog2\Debug>
C:\cpp\prog2\Debug>
4 - cь зalışma.
Зalışma 3-dəki kvadrat funksiyasını elə dəyişin ki, tərəflərinin sayı və təşkil olunduğu simvol
bu funksiyaya parametr kimi цtьrьlsьn. Bu funksiyadan istifadə etməklə elə proqram qurun ki,
istifadəзidən hər hansı simvol və ədəd daxil etməsini istəsin, daha sonra isə ekranda həmin
parametrlərə uyğun kvadrat зəksin.
// hell_5_4.cpp
#include
// kvadrat funksiyasinin elani
void kvadrat (int , char);
int main(int argc, char *argv[])
{ int x;
char c;
std::cout<<"kvadratin terefinin uzunlugunu ve \n"
<<" reng simvolunu daxil edin \n";
std::cin>>x>>c;
kvadrat(x,c);
}
/* kvadrat funksiyasinin proqram kodu */
void kvadrat (int teref, char reng)
{ int i, j;
for(i=0; i
for(j=0; jstd::cout<
std::cout<<"\n";
}}
Netice:
C:\cpp\prog2\Debug>
C:\cpp\prog2\Debug>./prog2.exe
kvadratin terefinin uzunlugunu ve
reng simvolunu daxil edin
7 @
@ @ @ @ @ @ @
@ @ @ @ @ @ @
@ @ @ @ @ @ @
@ @ @ @ @ @ @
@ @ @ @ @ @ @
@ @ @ @ @ @ @
@ @ @ @ @ @ @
C:\cpp\prog2\Debug>
C:\cpp\prog2\Debug>
5 - ci зalışma.
Зalışma 4-d ki funksiyanı el d yişin ki, istifad зi kvadratın iзinin ə ə ə ə rəngləndiyi simvolu da
daxil edə bilsin.Bu funksiyadan istifadə etməklə proqram tərtib edib, icra edin.
// hell_5_5.cpp
#include
// kvadrat funksiyasinin elani
void kvadrat (int , char, char);
int main(int argc, char *argv[])
{
int x;
char c,d;
std::cout<<"kvadratin terefinin uzunlugunu , terefinin ve\n"
<<" daxilinin reng simvollarini daxil edin \n";
std::cin>>x>>c>>d;
kvadrat(x,c,d);
}
// kvadrat funksiyasinin proqram kodu
void kvadrat (int teref, char t_reng, char d_reng)
{ /* burada bir balaca izaha ehtiyac var.
cekdiyimiz fiqurun kenarlari t_reng simvolu, daxili ise
d_reng simvolu ile renglenmelidir. */
int i, j;
/* tutaq ki, terefin uz-gu 5, terefin reng simvolu #,
daxilin reng simvolu ise @ -dir.
Onda ashagidaki kod ekranda
# # # # #
cap edecek */
for(j=0; jstd::cout<
std::cout<<"\n";
/* ashagidaki kod 5 - 2 = 3 defe tekrar olunacaq.
ve her defe tekrar olunanada ekranda evvelce
#, daha sonra 5 - 2 = 3 sayda @ , daha sonra ise #
simvolunu cap edecek. ashagidaki kimi:
# @ @ @ #
3 defe tekrar olunanda ise ekranda bu shekil alinin
# @ @ @ #
# @ @ @ #
# @ @ @ #
*/
for(i=1; i
{ std::cout<
for(j=1; jstd::cout<
std::cout<
std::cout<<"\n";
}
/*sonda yuxarida baxdigimiz kod,
fiquru tamalamaq ucun tekrar olunur
# # # # #
*/
for(j=0; j
std::cout<
std::cout<<"\n";
/*
neticede ekranda terefinin uzunlugu 5, kenarlari #,
daxili ise @ simvolu ile renglenmish kvadrat alinir.
ashagidaki kimi.
# # # # #
# @ @ @ #
# @ @ @ #
# @ @ @ #
# # # # #
*/
}
Netice:
C:\cpp\prog2\Debug>./5_5
kvadratin terefinin uzunlugunu , terefinin ve
daxilinin reng simvollarini daxil edin
7 # ~
# # # # # # #
# ~ ~ ~ ~ ~ #
# ~ ~ ~ ~ ~ #
# ~ ~ ~ ~ ~ #
# ~ ~ ~ ~ ~ #
# ~ ~ ~ ~ ~ #
# # # # # # #
C:\cpp\prog2\Debug>
C:\cpp\prog2\Debug>
6 - cı зalışma.
Зalışma 5-in t l bl rini yerin yetir n romb funksiyası qurun, ə ə ə ə ə hansı ki, ekranda romb
зəksin.Bu funksiyadan istifadə edib proqram tərtib edin və icra edin.
// hell_5_6.cpp
#include
// romb funksiyasinin elani
void romb (int , char, char);
int main(int argc, char *argv[])
{ int x;
char c,d;
std::cout<<"rombun terefinin uzunlugunu , terefinin ve\n"
<<"daxilinin reng simvollarini daxil edin \n";
std::cin>>x>>c>>d;
romb(x,c,d);
}
// romb funksiyasinin proqram kodu
void romb (int teref, char t_reng, char d_reng)
{ /*
eger istifadeci 6 , =, + parametrlerini daxil etse
proqram ekranda ashagidaki kimi romb cekmelidir.
=
= + =
= + + + =
= + + + + + =
= + + + + + + + =
= + + + + + + + + + =
= + + + + + + + =
= + + + + + =
= + + + =
= + =
=
*/
int i, j, k;
// ust hisse
Dostları ilə paylaş: |