Uploaded by ravshan akhmadjanov

Ravshanbek

advertisement
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.
Download