Guruh F.I.SH 710-20 Ahmadjonov Ravshanbek Qabulqilindi S.Toxirova AMALIY MASHG’ULOT - 1 Mavzu: Dasturlash tillarida ma’lumotlarning standart turlari. Funksiyalarni amalga oshirish. Ishdan maqsad:Daturlash tillaridama’lumotlarningstandart turlari.Ma’lumot tiplari va ularni ishlatish. Ma’lumotlarning oddiy sozlangan, unar va binar amallar va ularni tadqiq qilish. Ma’lumotlarning ixtiyoriy toifasi qiymatlar sohasi va ular ustida bajarilishi mumkin bo’lgan amallar orqali tavsiflanadi. void kalit so’zi hech qanday toifaga ega emaslikni anglatadi. Bunday toifadagi funksiyalar hech qanday qiymatni qaytarmaydi. Lekin asosiy dastur tanasi, ya’ni main() funksiyasi void toifasiga ega bo’lolmaydi, u int toifasida bo’lishi kerak. Amallar odatda unar ya’ni bitta operandga qo’llaniladigan amallarga va binar ya’ni ikki operandga qo’llaniladigan amallarga ajratiladi. Binar amallar additivya’ni qo’shuv [+] va ayirish [–] amallariga, hamdamultiplikativ ya’ni ko’paytirish [*], bo’lish [/] va modul olish[%] amallariga ajratiladi. Additiv amallarining ustuvorligi multiplikativ amallarining ustuvorligidan pastroqdir. Butun sonni butun songa bo’lganda natija butun songacha yaxlitlanadi. Masalan, 10/3=3, (-10)/3=-3, 10/(-3) =-3. Modul amali butun sonni butun songa bo’lishdan hosil bo’ladigan qoldiqqa tengdir. Agar modul amali musbat operandlarga qo’llanilsa, natija ham musbat bo’ladi, aks holda natija ishorasi kompilyatorga bog’liqdir. Binar arifmetik amallar bajarilganda tiplarni keltirish quyidagi qoidalar asosida amalga oshiriladi: 1. short va char tiplari int tipiga keltiriladi; 2. agar operandlar biri long tipiga tegishli bo’lsa ikkinchi operand ham long tipiga keltiriladi va natija ham long tipiga tegishli bo’ladi; 3. agar operandlar biri float tipiga tegishli bo’lsa ikkinchi operand ham float tipiga keltiriladi va natija ham float tipiga tegishli bo’ladi; 4. agar operandlar biri double tipiga tegishli bo’lsa ikkinchi operand ham double tipiga keltiriladi va natija ham double tipiga tegishli bo’ladi; 5. agar operandlar biri long double tipiga tegishli bo’lsa ikkinchi operand ham long double tipiga keltiriladi va natija ham long double tipiga tegishli bo’ladi; Unar amallarga ishoranio’zgartiruvchi unarminus [–] va unar plus [+] amallarikiradi. Bundan tashqari [++] va [--] amallari ham unar amallarga kiradi. [++] unar amali qiymatni 1 ga oshirishniko’rsatadi.Amalni prefiks ya’ni ++i ko’rinishda ishlatish oldin o’zgaruvchi qiymatini oshirib so’ngra foydalanish lozimligini, postfiks ya’ni i++ ko’rinishda ishlatishdan oldin o’zgaruvchi qiymatidan foydalanib, so’ngra oshirish kerakligini ko’rsatadi. Masalan, i qiymati 2 ga teng bo’lsin, u holda 3+(++i) ifoda qiymati 6 ga, 3+i++ ifoda qiymati 5 ga teng bo’ladi. Ikkala holda ham i qiymati 3 ga teng bo’ladi. [--] unar amali qiymatni 1 ga kamaytirishni ko’rsatadi. Bu amal ham prefiks va postfiks ko’rinishda ishlatilishi mumkin. Masalan, i qiymati 2 ga teng bo’lsin, u holda --i ifoda qiymati 1 ga, i-- ifoda qiymati 2 ga teng bo’ladi. Ikkala holda ham i qiymati 1 ga teng bo’ladi. Topshiriq 6. C++ dasturlash tilida a=100, b=10, c=5; qiymatlar berilgan. Sikl va arifmetik amallar yordamida ekranga a=104, b=50, c=14580natija chiqsin. package Univer; import java.util.Scanner; public class Topshiriq1 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int a = 100; int b = 10; int c = 5; for (int i = a; i < 104; i++){ a++; } System.out.println(a); for (int i = b; i < 50; i++){ b++; } System.out.println(b); for (int i = c; i < 14580; i++){ c++; } System.out.println(c); } } AMALIY MASHG’ULOT - 2 Mavzu: Qidiruv algoritmlari: chiziqli va binary qidiruv. Xesh funksiyalar va xesh algoritmlarini tuzish. Ishdan maqsad: Ushbu laboratoriya ishining maqsadi talabalar qandayqidirish usullari va algoritmlari mavjudligini va ularning samaradorliklarini baholashni o’rganishlari kerak. Shu asosda qidirish usullarini qiyosiy tahlil qilishlari, C++ dasturlash tilida qidirish bilan islashni va ularga oid dasturlar tuzishni o’zlashtirishlari kerak. Endi bu qidiruv usullarini ayrim jihatlarini keltirib o'tamiz: 5. funksiyaga berilayotgan massiv Binar qidiruv uchun albatta o'sish tartibida bo'lishi talab qilinadi, chiziqli qidiruv uchun esa berilayotgan massiv qay tartibda bo'lishini ahamiyati yo'q 6. chiziqli qidiruvda elementlarni bittalab har birini tekshiriladi, binarda esa algoritmidan kelib chiqib chiziqliga nisbatan ancha kam solishtirish amali bajariladi, chiziqli qidiruvning ishlash vaqti ko'pi bilan O(n) va binar qidiruvniki ko'pi bilan O(log n) "Xesh" so'zi ingliz tilidagi «hash» so’zidan olingan bo’lib, uning ma'nosi “shovqin” yoki “aralash” kabi ta'riflanadi. Aslida, bular atamaning haqiqiy ma'nosini to'liq ifodalaydi. 1. Xesh jadvalni tashkil etish: asosiy tushunchalar • Xeshlash –bu ma'lum bir turdagi va ixtiyoriy uzunlikdagikirishma'lumotlarimassivini fiksirlangan uzunlikdagi chiquvchi bitlar qatoriga (butun son) aylantirish. Bunday akslantirish (aylantirish) xesh-funksiya deb ham ataladi. Xesh-funksiya – bu kirishma’lumotlarini sonlarga aylantiruvchi funksiya bo’lib, bir xil ma’lumotlar to’plami hamma vaqt bir xil natija beradi. •Xesh-jadval – bu elementlari “kalit-qiymat” juftliklari bo'lgan assotsiativ massiv shaklidagi ma'lumotlar tuzilmasi. • Xeshlash assotsiativ massivlarni tashkil qilish uchun qo’llaniladi, bunda indekslari sonlar emas, balki ixtiyoriy qiymatlar bo’ladi. Xeshlashdan odatda matnlardan nusxalarning takrorlanishini qidirishda, ya'ni xesh-funksiyalarining bir xil qiymatiga ega bo'laklarni qidirishda foydalaniladi. Bundan tashqari, xeshlash ko'pincha parollarni saqlash uchun ishlatiladi; shu bilan birgalikda noyob identifikatorlarni yaratish uchun, masalan, agar fayl o'ziga xos nomni talab qilsa, siz ushbu faylni xeshlash natijasini hisoblab chiqishingiz va natijani faylga nom sifatida ishlatishingiz mumkin. Shuningdek, bu matnlarning nazorat summasini hisoblash uchun juda muhimdir. Aytaylik, foydalanuvchi tarmoq orqali bir nechta matn yuborishi kerak. Tekshirish summasi matn bilan birga uzatiladi, olinganidan keyin asl nusxasi bilan tekshiriladi. Agar summasi mos kelmasa, demak matnni uzatishda qandaydir xatolik bo’lganligi haqida xulosa qilish mumkin bo’ladi. • Biroq, ko'pincha kirishdagi turli uzunlikdagi bir nechta turli xil ma'lumotlar, chiqishda bir xil ma'lumotlarga mos kelishi mumkin. Turli xil ma'lumotlar bir xil xush qiymatiga ega bo'lgan holatlar kolliziya (to'qnashuv) deb ataladi (2rasm). Bunday holda, xeshlash algoritmi har xil ma'lumotlarning har xil qiymatga ega bo'lishini ta'minlashga intilishi kerak. Kamdan kam hollarda kolliziyalarning oldini olish mumkin. 2-rasm. Kolliziyaga misol: xeshlash natijasida xesh funksiya K2 va K3 kalitlar uchun bir xil qiymat bergan. • Xesh-jadval – assotsiativ massivni tatbiq etish uchun qo’llaniladigan interfeys hisoblanadi. Unda kalitlar va xeshlangan kalitlardan tashkil topgan juftliklar saqlanadi. Xesh-jadval unga yangi juftlik qo’shish, kaliti bo’yicha juftliklarni qidirish va o’chirish imkonini beradi. Xesh-jadval xesh-funksiya tomonidan ma’lum bir tartibda shakllanadi. • Xesh-jadvallari ko'pincha ma'lumotlar bazalarida, ayniqsa, kompilyatorlar va assemblerlar kabi til protsessorlarida qo'llaniladi, bu yerda ular identifikatorlar jadvalini qayta ishlash tezligini oshiradi. 1-Topshiriq Qidiruv algoritmlari chiziqli va binary qidiruv 6. Xaqiqiy sonlar orqali berilgan 1 dan 55 gacha bo’lganlari ichida ekranga 28 raqami chiquvchi chiziqli qidiruv algoritmi tuzilsin va natijalar taxlil qilinsin. package Univer; public class Topshiriq2 { public static void main(String[] args) { int a[] = {2, 6, 8, 12, 16, 25, 28, 32, 48, 49, 53, 55}; for (int i = 0; i < a.length; i++){ if (a[i] == 28){ System.out.println(true); } } } } 2-Topshiriq online kalkulyator. Ism familyangizni hesh funksiya orqali online shifrlashni amalga oshiring. Xulosa: 2-Amaliy mashg’ulotimizda Qidiruv algoritmlari: chiziqli va binary qidiruv. Hesh funksiya va heshlash algoritmlarini tuzish haqida o`rgandik. Chiziqli va binary qidiruv algaritimlari ustida amallar bajardik va olgan bilinlarimizni berilgan topshiriqni barish davomida yanada mustahkamladik. Hamda Hesh funksiyasi orqani online shifrlashni ham bajarib yangi bilimlarga ega bo`ldik.