Muhammad Al-Xorazmiy nomidagi Toshkent Axborot Texnalogiyalari Universiteti Huzuridagi Toshkent Viloyati Axborot Texnologiyalari Texnikumi mustaqil ish mavzu



Download 54,69 Kb.
bet3/4
Sana23.07.2022
Hajmi54,69 Kb.
#841120
1   2   3   4
Bog'liq
algaritm tushunchasi

public class BubbleSort
public static void bubble_srt(int massiv[]) {// funksiyamizga saralash uchun saralanmagan bir o`lchamli massiv kiritiladi
int n = massiv.length;
int k;
for (int m = n; m >= 0; m--) {
for (int i = 0; i < n - 1; i++) {
k = i + 1;
if (massiv[i] > massiv[k]) {
almashtirish(i, k, massiv);//almashtirish uchun alohida funksiya
chiqarish(massiv);//chop etish uchun alohida funksiya
private static void almashtirish(int i, int j, int[] massiv)
int temp;
temp = massiv[i];
massiv[i] = massiv[j];
massiv[j] = temp;
private static void chiqarish(int[] input)
for (int i = 0; i < input.length; i++){
System.out.print(input[i] + ", "); }
System.out.println("\n");
public static void main(String[] args) {
int[] saralanmagan = { 4, 2, 9, 6, 23, 12, 34, 0, 1 };
bubble_srt(saralanmagan);

Chiqariluvchi natijamiz esa:


2, 4, 6, 9, 12, 23, 0, 1, 34, // 1-qadam.
2, 4, 6, 9, 12, 0, 1, 23, 34, //2-qadam.
2, 4, 6, 9, 0, 1, 12, 23, 34,//3-qadam.
2, 4, 6, 0, 1, 9, 12, 23, 34,//4-qadam.
2, 4, 0, 1, 6, 9, 12, 23, 34,//5-qadam.
2, 0, 1, 4, 6, 9, 12, 23, 34,//6-qadam.
0, 1, 2, 4, 6, 9, 12, 23, 34, //7-qadam.
0, 1, 2, 4, 6, 9, 12, 23, 34, //8-qadam.
0, 1, 2, 4, 6, 9, 12, 23, 34,//9-qadam.
0, 1, 2, 4, 6, 9, 12, 23, 34, // saralangan holdagi massiv.
Ushbu maqolalar to`plami dasturchilikning eng muhim bo`g`inlaridan bo`lmish, algoritmlashga bag`ishlanadi. Birinchi maqolamiz algoritmlashning nima ekanligi, uning asosiy turlari, va ularning qo`llanilish joylariga bag`ishlanadi. Demak, ketdik…
Algoritm so`zi barchamizga ma`lum bo`lganidek, vatandoshimiz Muhammad ibn Muso al-Xorazmiyning ismini yevropacha talaffuzidan kelib chiqqan. Demak, hozirda keng foydalanilayotgan algoritmlashning asosi bizning Vatanimizdan boshlangan.
Maktab informatika kursidan ma`lumki, algoritm bu – ma`lum masalani hal qilish uchun bajarish kerak bo`lgan amallar ketma-ketligi. O`sha mashhur choy damlash algoritmidan chekingan holda hayotiy misol keltiramiz. Hayotda eng ko`p bo`ladigan holatimiz bu uyqu. Ko`pchilik rejim bilan uxlaydi , ya`ni uxlashga ma`lum bir vaqtni belgilagan. Misol uchun siz uxlashga yotish uchun 22:00ni tanladingiz. Har safar soatga qaraganingizda uxlash vaqti bo`lgan yoki bo`lmaganini tekshirasiz. Miyangizda esa quyidagi jarayon bo`ladi:

Bu oddiy uyquga yotish algoritmi edi. Hayotda o`zimiz bilmagan holatda algoritmlardan foydalanamiz. Miyamiz juda tez ishlagani sabab qadamlar ketma-ketligi haqida o`ylab ko`rmaymiz.
Endi maqolamizning asosiy qismi, dasturlashda algoritmlashga o`tamiz. Dasturlashda algoritm bu – masalani yechish uchun bajarilishi kerak bo`lgan amallar ketma-ketligini kodga o`girilgan varianti. Bunda masalani yechish uchun miyamizda kechayotgan jarayonni kompyuter tushunadigan qilib yozish talab etiladi.
Algoritmlashning asosi matematika hisoblanadi. Bunda fikrlash muhim rol o`ynaydi. So`zimni quyidagicha isbot qilaman. Dasturlash sanoatida gigant korporatsiya hisoblangan Microsoftning asoschisi Bill Geytsning shunday so`zlari dasturchilar orasidda mashhur:”Qo`shish va ayirishni biladigan har qanday inson dasturchi bo`la oladi”. Bu so`zlarni mag`zini chaqish uchun sizlarni boshlang`ich sinflarga qaytishga taklif etaman. Har birimiz boshlang`ich sinflarda qo`shish va ayirish amallarini o`rgangan edik. Ko`pchilik buni barmoqlari orqali bajargan. Chunki barmoqlar 10ta va raqamlarni qo`shish va ayirishda qo`l keladi. Keyinchalik matematik evolutsiyamiz sonlar bilan qo`shish va ayirish amallarini bajarish bosqichiga yetib keladi. Bu rivojlanish jarayoni yangi amallar bilan boyidi va endi bir xil raqamlarni bir necha marta qo`shishni osonlashtirish uchun ko`paytirish jadvalini o`rgandik. E`tibor bering, ko`paytirish algoritmi qo`shish algoritmining asosiga qurilgan. Rivojlanishimiz davom etib, endilikda qoldiqli bo`lish va shu kabi murakkabroq amallarga o`tamiz. Maktabni bitirish vaqtida esa juda murakkab amallarni ham bajara oladigan darajada bo`lamiz. Ana ko`rdingizmi, hamma murakkab amallarning asosi qo`shish va ayirishdan boshlanadi. U yog`i esa fikrlash doirangiz kengligiga bog`liq. Demak, dasturlashdagi asosiy masalalar matematik fikrlashga bog`liq.
Algoritmlashning asosiy shartlaridan biri bu – dasturning ishlash tezligi. Kod qanchalik optimal bo`lsa, dastur shuncha tez ishlaydi. Dastur tezligini pasaytiruvchi omillar bu – loop , ya`ni takrorlanishlar. Sikl ichida sikl ochish yoki sikl ichida shart tekshirish dastur tezligini ma`lum darajada pasaytiradi. Hayotiy misol keltiraman: 7ta 45ni bir biriga qo`shing. Har birini alohida qo`shib chiqish uchun vaqt talab etiladi. Ya`ni 7 marta bir xil amalni bajarish kerak. Xuddi shuni ko`paytirish amali orqali kamroq vaqt sarflab amalga oshirish mumkin. Har birimiz arifmetik progressiya haqida tushunchaga egamiz. Hadlari bir biridan ma`lum d songa farq qiladigan sonli ketma-ketlik. Shuni nta hadi yig`indisini toppish uchun n marta har safar yangi hadni topish va uni oldingi sonlar yig`indisiga qo`shish talab etiladi. Bu esa juda ko`p vaqt talab qiladi. Aynan shu muammo matematikada oddiy formula orqali hal etilgan. Bu muammoni hal etish formulasi esa albatta tafakkur mahsuli hisoblanadi. Siz ham yuqori darajali masalalarni yechishda ana shunday ixtirolar qilasiz yoki boshqa ixtirolardan foydalanasiz.
Dasturlashda algoritmlashning asosan 4 turi mavjud:

  1. Saralash

  2. Qidirish

  3. Grafiklar

  4. Stringlar

Ularning har biriga keyingi maqolalarimizda alohida to`xtalib o`tishga harakat qilamiz. Hozir esa oddiy algoritmlaning kodga o`girilish jarayonini ko`rib chiqamiz. Biz bu misollarni O`zbekistonda anchagina mashhur bo`lgan Java dasturlash tili negizida ko`rib chiqamiz.
Aynan shu misolni yechishda xotiradan ortiqcha joy olmaslik talab etilishi mumkin, ya`ni o`rtadagi o`zgaruvchi “temp” ishlatilmasligi talab etiladi. Buni quyidagicha amalga oshirsa bo`ladi
Xulosa
Yuqoridagi misolda biz dasturda yangi qiymat o`zlashtirish orqali eskisini unutish usulidan foydalandik.
Misol: Bo`lish amalidan foydalanmasdan faqat qo`shish va ayirish amallari orqali bo`linmani hisoblang: 676 : 26;
Java dasturlash tilidagi dasturi quyidagicha bo`ladi:

Source code




  1. Download 54,69 Kb.

    Do'stlaringiz bilan baham:
1   2   3   4




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