Mavzu: Standart kutubxona funksiyalari va ulardan foydalanish. Topshirdi



Download 111,15 Kb.
bet18/18
Sana31.12.2021
Hajmi111,15 Kb.
#222439
1   ...   10   11   12   13   14   15   16   17   18
Bog'liq
Kurs ish

#include
#include
// funksiya prototipi
float hisobla(float , float );
int main()
{
float c;
c = hisobla(3, 4);
cout << c << endl;
c = hisobla(6, 8);
cout << c << endl;
c = hisobla(12, 5);
cout << c << endl;
system ("pause");
return 0;
}
float hisobla(float a, float b)
{
//lokal o'zgaruvchi
float natija;
natija = sqrtf(a*a + b*b);
return natija;
}

2) void toifasidagi parametrli funksiya



#include
#include
// funksiya prototipi
void hisobla(float , float );
int main()
{
hisobla(3, 4);
hisobla(6, 8);
hisobla(12, 5);
system ("pause");
return 0;
}
void hisobla(float a, float b)
{
float c;
c = sqrtf(a*a + b*b);
cout << c << endl;
}

Misol 2: Global va lokal o'zgaruvchilarga murojaatni  o'rganish

#include
int x = 5; // global o'zgaruvchi
int main()
{
int x = 9; // lokal o'zgaruvchi
std::cout << "lokal  x=" <<   x << std::endl;
std::cout << "global x=" << ::x << std::endl;
system ("pause");
return 0;
}

Misol 3: Kiritilgan  n sonini 3 - darajasini hisoblovchi funksiya  tuzilsin

#include
void kub (int *);
int main()
{
int n;
cout << "n="; cin >> n;
kub (&n);
cout << "n ning qiymati =" << n << endl;
system ("pause");
return 0;
}
void kub (int *nPtr)
{
*nPtr = *nPtr * *nPtr * *nPtr;
}

Misol 4: Ikkita son yig'indisini  funksiyaorqalihisoblovchidasturtuzilsin
#include
// funksiyaprototipi
int  sum(int , int);
void sum(int , int, int *);
int  sum(int *, int *);
void sum(int *, int *, int *);
int main()
{
int a, b, c;
cout<< "a="; cin>> a;
cout<< "b="; cin>> b;
c = sum(a, b);
cout<< "1-sul natijasi=" << c <
sum(a, b, &c);
cout<< "2-sul natijasi=" << c <
c = sum(&a, &b);
cout<< "3-usul natijasi=" << c <
sum(&a, &b, &c);
cout<< "4-usul natijasi=" << c <
system ("pause");
return 0;
}
// 1 - usul
int sum(int son1, int son2)
{
intnatija;
natija = son1 + son2;
return natija;
}
// 2 - usul
void sum(int son1, int son2,int *natija)
{
*natija = son1 + son2;
}
// 3 - usul
int sum(int *son1, int *son2)
{
intnatija;
natija = *son1 + *son2;
return natija;
}
// 4 - usul
void sum(int *son1, int *son2,int *natija)
{
*natija = *son1 + *son2;
}


2.2 Matematik funksiyalar kutubxonasi (math.h)


Funksiyaprototipi

Bajaradiganamali

intabs(int i)

Isonni absolyut qiymatini qaytaradi

doubleacos(double x)

Radianda berilgan x argumentni arkkosinus qiymatini qaytaradi

doubleasin(double x)

Radianda berilgan x argument arksinus qiymatini qaytaradi

doubleatan(double x)

Radianda berilgan x argumentni arktangens qiymatini qaytaradi

double atan2(double x, double y)

Radianda berilgan x/y nisbatning arktangensi qiymatini qaytaradi

doubleceil(double x)

Haqiqiy x qiymatini unga eng yaqin katta butun songacha aylantiradi va uni haqiqiy ko‘rinishda qaytaradi

doublecos(double x)

x radianga teng bo‘lgan burchakni kosinusini qaytaradi

doublecosh(double x)

x radianga teng bo‘lgan burchaknigi perbolik kosinusini qaytaradi

doubleexp(double x)

Yex qiymatni qaytaradi

doublefabs(double x)

Haqiqiy sonni absolyut qiymatini qaytaradi

doublefloor(double x)

Haqiqiy x qiymatni eng yaqin kichik songa aylantira di va uni haqiqiy son ko‘rinishida qaytaradi

Math standart kutubxonasidagi funksiyalardan foydalanish uchun cmath sarlovha faylini qo’shib qo’yish kerak.

Misol:


#include

#include #include using namespace std; int main() { int x; double u, v;

cout<< "Line 1: Uppercase a is " <(toupper('a'))

<

cout<< "Line 4: " << u << " to the power of " << v << " = " << pow(u, v) <cout<< "Line 7: u = " << u <cout<< "Line 9: Absolute value of " << x << " = " << abs(x) <

}

Дастуришлашинингнатижаси:



Line 1: Uppercase a is A

Line 4: 4.2 to the power of 3 = 74.088

Line 5: 5.0 to the power of 4 = 625

Line 7: u = 31.2

Line 9: Absolute value of -15 = 15 288

2,3 Belgilar bilan ishlash funksiyalari


Programmalash amaliyotida belgilarni qaysidir oraliqqa tegishli ekanligin ibilish zarur bo‘ladi. Buni «ctype.h» sarlavha faylida e’lon qilingan funksiyala ryordamida aniqlash mumkin.

Quyida ularning bir qismining tavsifi keltirilgan: isalnum() – belgi raqam yoki harf (true) yoki yo‘qligini (false) aniqlaydi; isalpha() - belginiharf (true) yoki yo‘qligini (false) aniqlaydi;

isascii() – belgini kodi 0..127 oralig‘ida (true) yoki yo‘qligini (false) aniqlaydi; isdigit() – belgini raqamlar diapazoniga tegishli (true) yoki yo‘qligini (false) aniqlaydi.

Bu funksiyalardan foydalanishga misol keltiramiz.

#include #include #include using namespace std; int main() { char satr[5]; intxato; do { xato=0;

cout<<"\nTug\'ilgan yilingizni kiriting: "; cin.getline(satr,5);

for (inti=0; i

{


if(isalpha(satr[i]))

{


cout<<"Harfkiritdildi!"; xato=1; } else

if(iscntrl(satr[i]))

{

cout<<"Boshqaruv belgisi kiritildi!"; xato=1; } else



if(ispunct(satr[i]))

{


cout<<"Punktuatsiya belgisi kiritildi!"; xato=1; } else

if (!isdigit(satr[i]))

{

cout<<"Raqamdan farqli belgi kiritildi!"; xato=1;



} } if (!xato) {

cout<< "Sizni tug\'ilgan yilingiz: "<

}

} while (1);



}

Programmada foydalanuvchiga tug‘ilgan yilini kiritish taklif etiladi. Kiritilgan sana satr o‘zgaruvchisiga o‘qiladi va agar satrning har bir belgisi (satr[i]) harf yoki boshqaruv belgisi yoki punktuatsiya belgisi bo‘lsa, shu haqda xabar beriladi va tug‘ilgan yilni qayta kiritish taklif etiladi. Programma tug‘ilgan yil( to‘rttaraqam) to‘g‘ri kiritilganda “Sizni tug'ilgan yilingiz: XXXX” satrini chop qilish bilan o‘z ishini tugatadi.



2,4 Turlarni o‘zgartirish funksiyalari


Satrlar bilan ishlashda satrk o‘rinishida berilgan sonlarni, son turlaridagi qiymatlarga aylantirish yoki teskari amalni bajarishga to‘g‘ri keladi. C++ tilining «stdlib.h» kutubxonasida bu amallarni bajaruvchi funksiyalar to‘plami mavjud. Quyida nisbatan ko‘p ishlatiladigan funksiyalar tavsifi keltirilgan.

atoi( ) funksiyasining sintaksisi

intatoi(const char* ptr);

ko‘rinishga ega bo‘lib, ptr ko‘rsatuvchi ASCIIZ-satrni int turidagi songa o‘tkazishni amalga oshiradi. Funksiya satr boshidan belgilarni songa aylantira boshlaydi va satr oxirigacha yoki birinchi raqam bo‘lmagan belgigacha ishlaydi. Agar satr boshida songa aylantirish mumkin bo‘lmagan belgi bo‘lsa, funksiya 0 qiymatini qaytaradi. Lekin, shunga e’tiborberish kerakki, “0” satri uchun ham funksiya 0 qaytaradi. Agar satrni songa aylantirishdagi hosil bo‘lgan son int chegarasidan chiqib ketsa, sonning kichik ikki bayt inatija sifatida qaytariladi.

Misol uchun

#include #include int main() { char str[]="32secund"; inti=atoi(str); cout<

}

Programmasining natijasi sifatida ekranga 32 sonini chop etadi. Agar str qiymati ”100000” bo‘lsa, ekranga -31072 qiymati chop etiladi, chunki 100000 sonning ichki ko‘rinishi 0x186A0 va uning oxirgi ikki baytidagi 0x86A0 qiymati 31072 sonining qo‘shimcha koddagi ko‘rinishidir.



atol() funksiyasi huddi atoi() funksiyasidek amal qiladi, faqat funksiya natijasi long turida bo‘ladi. Agar hosil bo‘lgan son qiymati long chegarasiga sig‘masa, funksiya kutilmagan qiymatni qaytaradi.

atof() funksiyasi e’loni doubleatof (const char* ptr);

ko‘rinishida bo‘lib, ptr ko‘rsatuvchi ASCIIZ-satrni double turidagi suzuvchi nuqtali songa o‘tkazishni amalga oshiradi. Satr suzuvchi nuqtali son formatida bo‘lishi kerak. Songa aylantirish birinchi formatga mos kelmaydigan belgi uchraguncha yoki satr oxirigacha davom etadi.

strtod() funksiyasi atof() funksiyasidan farqli ravishda satrni double turidagi songa o‘tkazishda konvertatsiya jarayoni uzilgan paytda aylantirish mumkin bo‘lmagan birinchi belgi adresini ham qaytaradi. Bu o‘z navbatida satrni xato qismini qayta ishlash imkonini beradi.

strtod() funksiyasining sintaksisi

double strtod(const char *s, char **endptr);

ko‘rinishga ega va endptr ko‘rsatkichi konvertatsiya qilinishi mumkin bo‘lmagan birinchi belgi adresi.

itoa() valtoa() funksiyalari mosravishda int va long turidagi sonlarni satrga ko‘rinishga o‘tkazadi. Bu funksiyalar mosravishda quyidagi sintaksisga ega:

char* itoa(intnum, char *str, int radix); va

char* ltoa(long num, char *str, int radix);

Bu funksiyalar num sonini radi x argumentda ko‘rsatilgan sanoq sistemasidagi ko‘rinishini str satrda hosil qiladi.

XULOSA
Ushbu kurs ishida qaralgan Standart kutubxona funksiyalari va ulardan foydalanish mavzusi ostida qo‘yilgan masalalarni o‘rganish bo‘yicha quyidagilar bajarildi:
1. C++ dasturlash tilining imkoniyatlari o‘rganib chiqilib, ishga aloqador va ishga muhim deb hisoblanganlari ish tarkibiga kiritildi.

2. C++ tilining bir qator kutubxonalari va ularda mavjud imkoniyatlar batafsil o‘rganib chiqildi va ish tarkibiga kiritildi.

3. Amaliy dasturlar qurish yo‘li bilan C++ tilining , , va kutubxonalaridan samarali foydalanish yo‘llari ko‘rsatib berildi.
Ushbu ishda keltirilgan ma‘lumotlardan C++ tilining kutubxonalariga bog‘liq imkoniyatlarini qo‘llashni yo‘lga qo‘yishni,ya‘ni kengroq o‘rganishni istovchilarning faydalanishlari yaxshi natija beradi deb hisoblaymiz.

FOYDALANILGAN ADABIYOTLAR VA INTERNET RESURSLARI
I. A. Karimov ―Yuksak ma‘naviyat yengilmas kuch.‖ T. Ma‘naviyat, 2010 y. 173 s.

2. I. A. Karimov ―O‘zbekiston mustaqillikka erishish ostonasida‖ T.O‘zbekiston 2011 y. 432 s.

3. Г.Шилдт –―Полный справочник по C++‖ – М-2006., 801 стр.

4.Р.Седжвик – ―Фундаментальные алгоритмы на С++‖ – М 2001., 687 стр.

5. Ш.Ф.Мадрахимов, С.М.Гайназаров ―С++ тилида программалаш асослари‖ – Тошкент-2009 й., 196 6. М.Э.Абрамян ―Электронный задачник по программированию‖ Ростов - на - Дону 2005 г. 182 стр. 7. A.A.Xaldjigitov, Sh.F.Madraximov, U.E.Adambayev, E.A Eshboyev, Informatika va dasturlash. T.:O‗zMU, 2005 y, -148 s. 8. Н.Н.Непейвода- Стили и методы программирования. Интернет университет информационных технологий. INTUIT.ru, 2005 г., 320 стр.

9. O.M.Shukurov, E.A.Eshboyev, B.H.Shovaliyev – ―Delphi va C++ algoritmik tillarida dasturlash‖ – Qarshi-2012 y., 228 s.


10.www.cplusplus.com

11.www.acm.timus.ru

12.www.codeforces.ru

13.www.cyberforum.ru

14.www.cybern.ru

15.www.delphisources.ru



16.ziyonet.uz


Download 111,15 Kb.

Do'stlaringiz bilan baham:
1   ...   10   11   12   13   14   15   16   17   18




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©www.hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish