19. Oy nomlaridan iborat sanaladigan tip yarating. So’ralayotgan oy qaysi faslga tegishliligini aniqlang


Download 25.39 Kb.
Sana31.01.2024
Hajmi25.39 Kb.
#1829090
Bog'liq
1-laboratoriya ishi


O’zbekiston Respublikasi Raqamli Texnologiyalar Vazirligi

Muhammad Al-Xorazmiy nomidagi Toshkent Axborot Texnologiyalari Universiteti

Tizimli va amaliy dasturlashtirish kafedrasi

Ma’lumotlar tuzilmasi va algoritmlar fanidan

1-laboratoriya ishi

Mavzu: Ma’lumotlarni oddiy sozlangan turlari

Bajardi: 028-21-guruh talabasi
Mo’minov Ma’mur
Tekshirdi: Kafedra assistenti
Buriyev Yusuf

19-variant


19. Oy nomlaridan iborat sanaladigan tip yarating. So’ralayotgan oy qaysi faslga tegishliligini aniqlang.

Bu masalada enum tipida 12ta oyni ketma-ketlikda e’lon qilamiz va yanvarni 1ga tenglashtiramiz. Shundan so’ng foydalanuvchidan oy raqamini kiritishini so’raymiz. Kiritilgan raqamni shart operatori bilan tekshirib faslni aniqlaymiz va ekranga chiqaramiz.


C++ dasturlash tilida dastur kodi:
#include
using namespace std;
int main()
{ enum oylar{yanvar=1,fevral,mart,aprel,may,iyun,iyul,avgust,sentabr,oktabr,noyabr,dekabr};
cout<<"Oy raqamini kiriting: ";
int oy_raqami;
cin>>oy_raqami;
if(oy_raqami==1 || oy_raqami==2 || oy_raqami==12){
cout<<"Bu oy qish fasliga tegishli";
}else if(oy_raqami==3 || oy_raqami==4 || oy_raqami==5){
cout<<"Bu oy bahor fasliga tegishli";
}else if(oy_raqami==6 || oy_raqami==7 || oy_raqami==8){
cout<<"Bu oy yoz fasliga tegishli";
}else if(oy_raqami==9 || oy_raqami==10 || oy_raqami==11){
cout<<"Bu oy kuz fasliga tegishli";
}else{
cout<<"Bunday raqamli oy yo'q";
}
system("pause");
}

2-dastur kodi:
#include
#include
#include

enum Fasl {


QISH,
BAHOR,
YOZ,
KUZ,
UNKNOWN
};

Fasl aniqlashFasl(const std::string& oy) {


static std::map oyFaslMap = {
{"Yanvar", QISH},
{"Fevral", QISH},
{"Mart", BAHOR},
{"Aprel", BAHOR},
{"May", BAHOR},
{"Iyun", YOZ},
{"Iyul", YOZ},
{"Avgust", YOZ},
{"Sentabr", KUZ},
{"Oktabr", KUZ},
{"Noyabr", KUZ},
{"Dekabr", QISH}
};

auto it = oyFaslMap.find(oy);


if (it != oyFaslMap.end()) {
return it->second;
} else {
return UNKNOWN;
}
}

int main() {


std::string oy;
std::cout << "Iltimos, oyni kiriting: ";
std::cin >> oy;

Fasl fasl = aniqlashFasl(oy);


if (fasl != UNKNOWN) {
std::cout << "Kiritilgan oy " << fasl << " faslga tegishli." << std::endl;
} else {
std::cout << "Noto'g'ri oy nomi kiritildi." << std::endl;
}

return 0;


}

Nazariy ma’lumot: Enum (enumeration) C++ dasturlash tilida ma'lumotlar turlaridan biridir. Enum turi, belgilangan qiymatlardan iborat bo'lgan bir tuzilma yaratishga imkon beradi. Enum qiymatlari, fikr qabul qiladigan ismlar bilan bir qator tartib bilan belgilanadi.

Enumlar, ma'lumotlar turlarini ifodalashda foydali bo'ladi. Ular, belgilangan qiymatlarni o'qishni va yozishni osonlashtiradi. Misol uchun, hafta kunlarini ifodalash uchun enumdan foydalanish mumkin:

enum HaftaKuni {
DUSHANBA,
SESHANBA,
CHORSHANBA,
PAYSHANBA,
JUMA,
SHANBA,
YAKSHANBA
};

Ushbu kodda `HaftaKuni` nomli enum yaratilgan. Birinchi qiymat `DUSHANBA` ga, ikkinchi qiymat `SESHANBA` ga va hokazo tartib bilan davom etadi.

Enum qiymatlariga ko'rsatkichlar (ordinal numbers) bilan murojaat qilish mumkin. Misol uchun:

HaftaKuni kun = JUMA;


if (kun == SHANBA) {
std::cout << "Bugun Shanba kuni!" << std::endl;
}

Enumlar, dasturda ma'lumotlar turlarini aniqlash uchun qulaylik yaratadi va kodni o'qishni osonlashtiradi. Enumlar, o'zgaruvchilar, funktsiyalar parametrlari va klasslarning xususiyatlari sifatida ham ishlatilishi mumkin.

Enum qiymatlariga qiymat beringanida, qiymatlar 0 dan boshlanib, har bir qiymat birga oshadi. Qiymatlar belgilanmasa, birinchi qiymat 0 ga, ikkinchi qiymat 1 ga, va hokazo belgilanadi. Enum qiymatlarini istalgan tartibda belgilash ham mumkin.

Enumlar, kodni osonlashtirish, qo'llanma qismiga tushuntirish va loyihalarni nazorat qilishda foydali bo'ladi.



Xulosa: Xulosa qilib aytganda bu laboratoriya ishini bajarish natijasida c++ tilidagi ma’lumotlar turlari va sanaladigan tip ya’ni enum haqida ko’plab ma’lumotlarga ega bo’ldim.

Download 25.39 Kb.

Do'stlaringiz bilan baham:




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