I. Bob Dasturlash amaliyoti algoritm va dasturlarni ishlab chiqish



Download 86,17 Kb.
bet16/19
Sana18.07.2022
Hajmi86,17 Kb.
#818693
1   ...   11   12   13   14   15   16   17   18   19
Bog'liq
FARRUX 2

Birlashmalar
Strukturalarga yaqin tushuncha bu birlashma tushunchasidir. Birlashmalar union xizmatchi so’zi yordamida kiritiladi. Misol uchun:
union
{ long h;
int i,j; char c[4] }UNI;
Birlashmalarning asosiy xususiyati shundaki, uning hamma elementlari bir xil boshlang’ich adresga ega bo’ladi. Birlashmalarning asosiy afzalliklaridan biri xotira biror qismi qiymatini har xil tipdagi qiymat shaklida qarash mumkin.
Union
{
float f;
unsigned long k;
char h[4];
}fl;
Birlashmalar
Quyidagi dastur yordamida birlashma xususiyatini tekshirish mumkin:
#include
enum paytype{CARD, CHECK};
struct {
paytype ptype;
union{
char card[4];
long check;
};
}info;
int main()
{
info.ptype = CHECK;
info.check = 77;
switch (info.ptype) {
case CARD:printf("\nKarta bilan to'lash:%s", info.card); break;
case CHECK:printf("\nChek bilan to'lash:%ld", info.check); break;
}
return 0;
}
Natija Chek bilan to'lash:77
Birlashmalar
Imkoniyatlarini ko’rsatish uchun bioskey() funksiyasidan foydalanishni ko’rib chiqamiz. Bu funksiya bios.h sarlavhali faylda joylashgan bo’lib, quyidagi prototipga ega: int bioskey(int);
MS DOS operasion tizimida ixtiyoriy klavishaning bosilishi klaviatura buferiga ma’lumot yozilishiga olib keladi. Agar funksiyaga bioskey(0) shaklda murojaat qilinsa va bufer bo’sh bo’lsa biror klavishaga bosilishi kutiladi, agar bufer bo’sh bo’lmasa funksiya buferdan ikki baytli kodni o’qib butun son sifatida qaytaradi. Funksiyaga bioskey(0) shaklda murojaat qilinsa va bufer bo’sh bo’lsa biror klavisha bosilishi kutiladi, agar bufer bo’sh bo’lmasa funksiya buferdagi navbatdagi kodni qaytaradi. Funksiyaga bioskey(1) shaklda murojaat qilish bufer bo’sh yoki bo’shmasligini aniqlashga imkon beradi. Agar bufer bo’sh bo’lmasa funksiya buferdagi navbatdagi kodni qaytaradi, lekin bu kod buferdan o’chirilmaydi.
Birlashmalar
Quyidagi dastur buferga kelib tushuvchi kodlarni o’qib monitorga chiqarishga imkon beradi:
int main()
{
union
{
char hh[2];
int ii;
} cc;
unsigned char scn,asc;
printf("\n\n Ctrl+Z bilan chiqish.");
printf("\n Klavishani bosib, kodini oling. \n ");
printf("\n SCAN || ASCII"); printf("\n (10) (16) (10) (16)");
Birlashmalar
Do
{ printf("\n"); cc.ii = bioskey(0); asc = cc.hh[0];
scn = cc.hh[1];
printf(" %4d %3xH || %4d %3xH |", scn, scn, asc, asc);
}
while(asc! = 26 || scn! = 44);
return 0;
}
Bu dasturda cc nomli birlashma kiritilgan bo’lib, cc.ii elementiga bioskey(0) funksiyasi natijasi yoziladi. So’ngra natijaning alohida baytlari scn va ASCII kodlar sifatida monitorga chiqariladi.
Sikl to 26 ASCII kod va 44 scn kod paydo bo’lmaguncha (ctrl+Z klavishlari bosilmaguncha) davom etadi.
.bob.2.2 Ikkita (nomsiz) strukturani e’lon qilish
Struktura turini e’lonida turning nomi bo’lmasligi mumkin, lekin bu holda struktura aniqlanishidan keyin albatta o’zgaruvchilar nomlari yozilishi kerak:
struct
{
unsigned int x, y;
unsigned char Rang;
}Point1, Point2;
Keltirilgan misolda struktura turidagi Point1, Point2 o’zgaruvchilari e’lon qilingan.

Download 86,17 Kb.

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




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©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