1-laboratoriya mashg’uloti Ma’lumotlarni oddiy sozlangan turlari


Download 22 Kb.
bet4/4
Sana18.03.2023
Hajmi22 Kb.
#1282409
1   2   3   4
Bog'liq
1-mavzu

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.

1-jadval. C++ da toifalarni moslashtirish

X bo’linuvchi

Y bo’luvchi

Bo’luv natijasi

misol x = 15 y = 2

int

int

int

15/2=7

int

float

float

15/2=7.5

float

int

float

15/2=7.5

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(ret)/2 //natija 7.5
<> 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(15) / 2 = " << static_cast(15) / 2 << endl // toifani o’girish unar amali yordamida
<< "static_cast(15) = " << static_cast(15) << endl // ASCII jadvalidagi barcha belgilar kodlarini kiritish mumkin
<< "static_cast(20) = " <(20) <
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

  1. x o’zgaruvchiga qiymat kiritilishini so‘rash.

  2. y funksiyaning qiymatini hisoblash.

  3. 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

  1. Ma’lumotlar toifasi tushunchasi nima va nima uchun ma’lumotlar toifalanadi?

  2. Qanday ma’lumot toifalarini bilasiz?

  3. Oddiy sozlangan toifalarni tushuntiring.

  4. Int va float toifalarini farqini tushuntiring.

  5. Satr toifalari qanday e’lon qilinadi?

Download 22 Kb.

Do'stlaringiz bilan baham:
1   2   3   4




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