Swd019 guruh talabasi Gulmurodov O`rolbek




Download 237,04 Kb.
bet1/2
Sana30.11.2023
Hajmi237,04 Kb.
#108801
  1   2
Bog'liq
4 chi variant 7.docx76554
Algebra 4, jjj, BETLIK ingliz, BETLIK kurs ishi, moliyaviy hisobga kirish

Swd019 guruh talabasi
Gulmurodov O`rolbek
4-variyant
Ma’lumotlar, tuzilmalar, rekursiya va ob’ektga yo’naltirilgan dasturlash

Standart ma’lumotlar tuzilmalari kutubxonasi bilan ishlash


Dasturiy ta’minotni testlash va tekshirish. Ma’lumotlar tuzilmalarini modellashtirish


Ma’lumot - bu biror bir ob’ekt, jarayon, hodisa yoki voqelikni ifodalab (tasniflab) beruvchi belgi yoki belgilar majmuasidir.


Berilgan ma’lumot (belgi)lar qanday qiymat qabul qilishiga qarab ma’lumotlarni bir qancha turlarga ajratish mumkin.
Ma’lumotlar tuzilmasi va algoritmlar dastur tuzish uchun zarur bo’lgan tushunchalar sifatida qaraladi. O’rnatilgan ma’lumotlar tuzilmasi ikkilik miqdor (kodlangan ma’lumot)lar saqlanadigan registrlar va xotira so’zlarini ifodalab beradi. Qurilmani loyihalash uchun ishlab chiqilgan algoritm – bu elektron mantiqiy qurilmalarda qat’iy amalga oshiriladigan qoidalar bo’lib, xotirada saqlangan ma’lumot bajarilishi lozim bo’lgan komanda sifatida bo’ladi.
Dasturlash – bu nafaqat aqliy faoliyatni avtomatlashtirish, balki, ilmiy tadqiqot predmeti hisoblanadi.
Qandaydir amaliy masalani yechish uchun dastur tuzish jarayoni quyidagi bir nechta bosqichlardan tashkil topgan:
1. Masalaning qo’yilishi (qo’yilgan masalaga texnik topshiriqni ishlab chiqish);
2. Rasmiylashtirish – formallashtirish (masalaning matematik qo’yilishi);
3. Masalani yechish usulini tanlash (yoki ishlab chiqish);
4. Algoritmni ishlab chiqish (algoritmlash);
5. Dastur tuzish (dasturlash);
6. Dasturni testlash va otladka qilish;
7. Natijalarni hisoblash va qayta ishlash hamda dasturni hujjatlashtirish (foydalanuvchi yo’riqnomasini ishlab chiqish).
Dasturlash jarayonini quyidagicha sxema orqali iqodalash mumkin:

Matematik model

Ma’lumotlarning abstrakt turlari

Ma’lumot tuzilmasi

Norasmiy algoritm

Psevdo tildagi dastur

C++ tilidagi dastur

Birinchi bosqichda qo’yilgan masalaga matematik model tuziladi, buning uchun mos matematik model tadbiq qilinadi (masalan, graflar nazariyasiga o’xshash).


Keyingi bosqichda umumlashgan psevdo til - oddiy operatorlar va – S++ tilidagi konstruktsiyalar aralashmasi yordamida algoritm yoziladi.
Ushbu bosqichni norasmiy (formal bo’lmagan) operatorlarni almashtirish bilan davom ettiramiz.
Dasturlashning uchinchi bosqichida ma’lumotlarning har bir abstrakt turining tadbiqi ta’minlanadi va ushbu turdagi ma’lumotlar ustida bajariladigan turli xil operatorlar uchun protseduralar ishlab chiqiladi. Bu bosqichda barcha psevlo tilda yozilgan operatorlar C++ tilidagi kod bilan almashtiriladi. Bosqichning natijasi ishlaydigan dastur bilan yakunlanadi.

Ma’lumot va uning xotirada tasvirlanishi


Hisoblash mashinalari yordamida har qanday masalani yechish ma’lumotlarni xotiraga yozish, xotiradan o’qish va uni qayta ishlashni hisobga olgan holda bajariladi.
Nazariy jihatdan ma’lumot noaniqliklarni aniqlovchi vosita sifatida qaraladi. Faraz qilaylik, biror bir tizimning N ta mumkin bo’lgan holati mavjud bo’lsin, har bir holat paydo bo’lishi mustaqil P ehtimolga ega bo’lsin. U holda bu tizimning noaniqligi quyidagi ko’rinishda aniqlanadi:
∑=(P(i)*log2 P(i))
Tizimning noaniqligini o’lchash uchun bit deb ataluvchi maxsus birlik qabul qilingan. Bit hech bo’lmaganda ikkita mumkin bo’lgan holatga bog’liq noaniqlik (yoki ma’lumot)ning o’lchovi hisoblanadi, masalan rost-yolg’on yoki bor-yo’q holatlar. Bit noaniqlik va axborotning o’lchovi sifatida qo’llaniladi, ya’ni olingan axborotlar soni axborotlarni olish natijasida yo’qotilgan noaniqliklar soniga teng.

1-amaliy ish


#include

// Musbat toq va manfiy juft elementlarini yig'indisini topish uchun funksiya


int sumOfPositiveOddAndNegativeEven(int arr[], int n) {
int sum = 0;
for (int i = 0; i < n; i++) {
if (arr[i] > 0 && arr[i] % 2 != 0) { // Musbat toq sonlarni yig'indisi
sum += arr[i];
} else if (arr[i] < 0 && arr[i] % 2 == 0) { // Manfiy juft sonlarni yig'indisi
sum += arr[i];
}
}
return sum;
}

// Asosiy funksiya


int main() {
int n;

// Massiv uzunligini kiritish


std::cout << "Massivni uzunligini kiriting: ";
std::cin >> n;

int arr[n];

// Massiv elementlarini kiritish
std::cout << "Massiv elementlarini kiriting: ";
for (int i = 0; i < n; i++) {
std::cin >> arr[i];
}

// Musbat toq va manfiy juft elementlarining yig'indisini hisoblash


int result = sumOfPositiveOddAndNegativeEven(arr, n);

// Natijani chiqarish


std::cout << "Musbat toq va manfiy juft elementlarining yig'indisi: " << result << std::endl;

return 0;


}
2-amaliy ish
 Saralash va qidiruv.

2 Nima uchun kerak? Saralash va izlash amalda juda kop qollaniladi, fayldagi sozlarnini izlashdan tortib, internetda malumot izlashgacha.

3 Saralash a[0], a[1], a[2].. a[n-1] massiv elementlari berilgan. Ularni shunday joylashtirish kerakki, ular kamaymaslik tartibida bolib qolsin. Masalan: Saralangandan song

4 Saralash algoritmlari

5 Tanlash orqali saralash Xar qadamda hali korilmagan elementlar orasidan eng kichigini tanlaymiz. Bu jarayon (n- 1 ) marta davom etadi. min

6

7

8

9 Ikki ozgaruvchining qiymatini almashtirish. a va b ning qiymatlarini almashtirish kerak. Qoshimcha t ozgaruvhci kiritamiz. t = a; a = b; b = t;

10 Qoshimcha ozgaruvchi kiritmasdan almashtirish. a = a+b; (a+b, b); b = a-b; (a+b, a); a = a-b; (b, a);

11 #include using namespace std; int main() { int n; cin>>n; int a[n]; for (int i = 0; i < n; i++) cin>>a[i]; for (int i = 0; i < n-1; i++) { int minPos = i; for (int j = i+1; j < n; j++) if (a[j] < a[minPos]) minPos = j; int t = a[i]; a[i] = a[minPos]; a[minPos] = t; } for (int i = 0; i < n; i++) cout<

13 Pufakcha usulida saralash(Bubble sort). Agar ikki qoshni element notogri tartibda joylashib qolgan bolsa, ularning ornini almashtiramiz. Umumiy n-1 marta jarayon bajariladi. Har safar ikkita qoshni element taqqoslanadi. Elementlar oz orinlariga pufakga oxshab siljib boradi.

14

15



Download 237,04 Kb.
  1   2




Download 237,04 Kb.

Bosh sahifa
Aloqalar

    Bosh sahifa



Swd019 guruh talabasi Gulmurodov O`rolbek

Download 237,04 Kb.