1-laboratoriya mashg’uloti Ma’lumotlarni oddiy sozlangan turlari
Download 22 Kb.
|
1-mavzu
- Bu sahifa navigatsiya:
- X bo’linuvchi Y bo’luvchi Bo’luv natijasi
- Ishni bajarishga namuna
- Dastur natijasi : x ga qiymat kiriting: 0.2 Natija: 10.0793 Nazorat savollari
Toifalarni moslashtirish.Toifalar bilan ishlaganda ularni qiymatlarni 1 toifadan 2-siga o’girishga to’g’ri keladi. Ba’zi o’girishlarni kompilyator avtomatik tarzda o’zi bajaradi. Ba’zilariga kod yozish talab etiladi.Kompilyator avtomatik tarzda toifalarni moslashtirishiga misollar keltiramiz.
Ba’zida toifalar foydalanuvchilar tomonidan oshkora o’giriladi. Masalan, int i=23; float j=12.3,k; k=(float)i+j; Bu erda i o’zgaruvchisi haqiqiy toifaga o’girilmadi, faqat bu qiymatning vaqtinchalik haqiqiy toifadagi nusxasi yaratilindi.i o’zgaruvchini toifasini boshqa toifaga o’girish uchun C++ da quyidagi static_cast funksiyasi ishlatiladi. int ret=15; static_cast <> qavs ichida funksiya argumentidagi qiymat yoki o’zgaruvchi qaysi toifaga o’girilishi kerakligi ko’rsatiladi. Misol. Toifalarni avtomatik va oshkora tarzda o’girilishiga dastur tuzing. #include #include using namespace std; int main() { int int_value15 = 15, int_value2 = 2; // int toifali 2 ta o’zgaruvchi float float_value15 = 15, float_value2 = 2; // float toifali 2 ta o’zgaruvchi cout<< fixed << setprecision(2) // haqiqiy sonlarning kasr qismini aniqligini kiritish, 2 ga teng << "15 / 2 = " << int_value15 / int_value2 << endl << "15 / 2 = " << int_value15 / float_value2 < << "15 / 2 = " << float_value15 / int_value2 < << "15 / 2 = " << float_value15 / float_value2 << endl; // toifalar avtomatik moslashtiriladi cout<< "15.0 / 2 = " << 15.0 / 2 < << "15 / 2.0 = " << 15 / 2.0 << endl; // toifani oshkora o’girish cout<< "float(int_value15) / int_value2 = " << float(int_value15) / int_value2 << endl // toifani oshkora o’girish << "15 / double(2) = " << 15 / double(2) << endl; // toifani oshkora o’girish cout<< "static_cast << "static_cast << "static_cast system("pause"); return 0; } Ushbu toifalardan tashqari C++ da yana bitta satrtoifasi mavjud. Satr – bu char toifadagi elementlar massivi hisoblanadi va oxirgi elementi ikkilik 0 hisoblanadi(yani kodi 0 ga teng bo’lgan belgi). Bunday massivga satrli literallar, yani “” belgisi ichida belgilar ketma-ketligini o’zlashtirish mumkin.Masalan, quyidagi 3 ta qator bir xil. char str1[] = "text"; char str2[] = {‘t',’e',’x',’t',’\0' }; char* str3 = "text"; Ushbu toifaga oid bir qator funksiyalar mavjud. Misol.strncat() funksiyasi analogini yaratish.Bu funksiya 1-satrga 2-satrning boshidagi n ta belgisini birlashtiradi. #include using namespace std; char* mystrncat(char *s1, char *s2, int num); int main() { char *p1=new char [20]; char *p2=new char [20]; strcpy(p1, "abce"); strcpy(p2, "fghi"); char *p3; p3=mystrncat(p1,p2, 2); cout< system("pause"); } char* mystrncat(char *s1, char *s2, int num) { int len; len=strlen(s1); int i; for(i=0; i { s1[len+i]=s2[i]; } s1[i]=0; return s1; } Ishni bajarishga namuna Berilgan topshiriq variantlariga o‘xshash bo‘lgan bitta masalani bajarib ko‘ramiz. Quyidagicha masala qo‘yilgan: Berilgan funksiyani qiymatini toping. Algoritm x o’zgaruvchiga qiymat kiritilishini so‘rash. y funksiyaning qiymatini hisoblash. Natijani ekranga chiqarish. Talabalar algoritmni so‘z bilan yoki blok-sxema ko‘rinishida ifodalashlari mumkin. Dastur kodi: #include #include using namespace std; int main(){ float x,y; char a[100]; cout << " x ga qiymat kiriting: "; cin>>x; y=sqrt((cos(x)-sin(x))/pow(atan(x),3)); cout << "\n Natija: \n "; cout< } Dastur natijasi: x ga qiymat kiriting: 0.2 Natija: 10.0793 Nazorat savollari Ma’lumotlar toifasi tushunchasi nima va nima uchun ma’lumotlar toifalanadi? Qanday ma’lumot toifalarini bilasiz? Oddiy sozlangan toifalarni tushuntiring. Int va float toifalarini farqini tushuntiring. Satr toifalari qanday e’lon qilinadi? Download 22 Kb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling