Ç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 = "<
}
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 = "<
}
Ç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);
İstifadəçini daxil etdiyi sətrin uzunluğunu çap edən proqram tərtib edin.
İstifadəçinin daxil etdiyi sətrin son 5 simvolunu ekranda çap edən proqram tərtib edin.
İstifadəçinin daxil etdiyi sətrin ilk 3 simvolu ilə son 5 simvolunu birləşdirib çap edən proqram tərtib edin.
Elə proqram qurun ki, istifadəçinin daxil etdiyi sətrin 5-ci simvolu ilə 15-ci simvolu arasında qalan hissəsini çap etsin.
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.
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:
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 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:
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;