Monday, March 3, 2014

Shartli o`tish operatori ( if )

Shartli o`tish operatori ( if )
Shartli o`tish operatori - biror shart bajarilganda belgilangan vazifani bajarishga yo`naltiruvchi operator. E`tibor bering: shart bajarilganda. bu operatorning sintaksisi quyidagicha. Belgilangan vazifa bajarilishi uchun biror shart qo`yish kerak bo`lganda foydalaniladi.














Biror shart bajarilganda 1-vazifa aks holda 2-vazifa bajarilishi uchun ham foydalanish mumkin.


If( shart ){
.....//1-vazifa
} else {
..............//2-vazifa
}
... else - aks holda

Dasturlashda Type(tip) tushunchasi

Dasturlashda Type(tip) tushunchasi

Dasturlar amallardan(operatsiyalar) tarkib topgan. Bu amallar xoh mantiqiy xoh algebraik amallar bo`lsin barchasi matematik amallardir. Demak bu yerda qiymatlar orasida amallar bajariladi. Qiymatlar esa ma`lum bir (type)tipga tegishli bo`lishi lozim. Bu tiplarni dasturlash tillari orqali kiritganda kompyuterga anglatish uchun uni qaysi tipga tegishli ekanligini ko`rsatib e`lon qilish muhim. Shu tiplarning biriga tegishli bo`lgan qiymatni ma`lum bir nom bilan atab e`lon qilinishi o`zgaruvchilar deyiladi. Bundan kelib chiqadiki eng sodda dastur yozish juda ham oson, biror tipga tegishli bo`lgan o`zgaruvchilarni e`lon qilib ular o`rtasida amallar bajarib natijani chiqarib qo`ysak bir dasturni tuzgan hisoblanaveramiz. Tiplar 2 turga bo`linadi. Reference Type, Value Type.
Reference Type - dinamik xotiradan foydalanib e`lon qilinadigan qiymatlar tipi.
Value Type - statik xotiradan foydalanib e`lon qilinadigan qiymatlar tipi.
Tizimli dasturlash tillar.
Muayyan bir kichik masalani yechish uchun mo`ljallangan dasturlarni yechishda  foydalaniladigan dasturlash tillari tizimli dasturlash tillaridir. Chunki kichik bir masala uchun OOP ga zarurat yo`q.  Asosan qo`shish, ayirish, ko`paytirish va bo`lish amallaridan foydalaniladi. Bu amallar value tiplar orasida bajariladi. (matematiklar barcha amallar qo`shish amalidan kelib chiqqan deb hisoblashadi : 3-2=3+(-2); 3*3=3+3+3; 4/2=(2+2)/2,...).
Bu turdagi dasturlarda oddiy(value) tiplardan foydalaniladi. (faqat asosiylarini keltirib o`tamiz):
Integer- butun sonlar tipi (masalan:...-23,-3,-2, 0, 3, 6, 8,...)
String - qatorlar, so`zlar, matnlarni o`z ichiga oladi (masalan: "2312","fgtds","fg4fd"...)
Char - 1 ta belgiga teng (masalan: 'd','4','^',...)
Double - haqiqiy sonlardan iborat
va Massivlar
Massivlar haqida
Massivlar bu bir tipgagi qiymat yoki obyektlarning  kollektsiyasi ya`ni ketma-ket joylashgan ro`yxati. Ular ixtiyoriy tip bo`lishi mumkin, ammo hammasi bir tipga tegishli bo`ladi xolos.
masalan:
Integer[] a={1,2,3,4,5,6,7,8,9,34}; bu butun sonlarning massivi
Double[] a={1,2,3,4,565.5,343.6,4.54,45.65}; bu haqiqiy sonlarning massivi
String[] a={"34","sdfsa","344df3"};  qatorlar massivi.
Massivlar ham value tiplar oilasiga kiradi.
Massivlar avvaliga tushunarsiz tuyuladi, buning sababi har bir elementini maxsus tip bo`lsa kerak deb hisoblashda. Butun sonlarning massivi - har bir elementi butun son, qatorlar(string) massivi esa har bir elementi qator. Xuddi shunga ko`ra qaysi bir class ning massivi ham har  bir elementi shu class obyektlaridan tashkil topgan bir massiv deb qabul qilinadi.
Undan tashqari pozitsiya 0 dan boshlanadi. 1- element 0-pozitsiya deb qabul qilingan.
0-positsiya yo`qligi sababli massivda "-1" -indexli element bo`lmaydi, ya`ni "-1" -index mavjud emas.
a[0]=1; (birinchi elementni qiymati o`zgartirildi)
 b[3]="dsfsdf";(to`rtinchi elementni qiymati o`zgartirildi)
....

c[0]=new Tom(); c[0].Name="Tom";

Dasturlash tillari haqida

Dasturlash tillari haqida.


Muayyan dastur shaxsiy kompyuterga o`rnatilib ishga tushirilganidan so`ng u Operatsion Sistema(OS) ga biror algoritm asosida ketma-ketlik va bog`liqlik bilan buyruqlarni berib boradi, OS esa uni tartib bo`yicha bajaradi. Bi shu algoritmni kompyuterga biror bir til orqali izohlab kiritamiz. Bu til esa dasturlash tili deyiladi. Dasturlash tillari juda ko`p, ammo barcha tillar oxirida yagona tilga o`giriladi, tarjima qilinadi (translation), bu til Assembler tilidir. Assembler tili - mashina tiliga eng yaqin til, ya`ni mashinaga to`g`ridan-to`g`ri buyruq beradigan til. E`tibor bering OS ga emas, mashinaga buyruq beradigan til deb tushuntirildi. Bu tarjimani OS yoki biror dastur amalga oshirishi mumkin. Assembler dasturlash tili juda ham murakkab til bo`lganligi sababli uni o`rganish, o`rgatish juda kam uchraydi. Shu Assembler tilininig ustiga boshqa dasturlash tillari yozilgan va ular foydalanishga ancha qulay bo`lganligi sababli hozirgi vaqtda ancha ommalashib, rivojlanib bormoqda...

Zamonaviy dasturlash tillari C, C++, C#, Java, Php, ...

C, C++ dan biror bir service(kompyuterda ishga tushirilganda kerakli natijani qaytaruvchi dastur), driver(texnik qurilmalar va OS ni buyruq va ma`lumotlarni almashib turishini ta`minlovchi dastur), mikrosxemalarga dastur yozganda(robotlashtirish, avtomatlashtirish) va  kuchli matematik amallar yozganda keng foydalaniladi.
Java va C# dan foydalanuvchilar uchun dastur yoki saytlar tuzishda qo`llaniladi. C# dasturlash tili Java dan imkoniyatlari tomonidan ancha oldinlab ketgan, ammo faqat Windows OS da ishlaydi xolos. Java esa har qanday sistemada ishlayveradi. Undan tashqari C# ni o`zi ham, unda tuzilgan dasturlarni ishlatilishi uchun o`rnatiladigan qobiq dasturlar ham pullik, Java da esa tekinlari ham bor.... Xavfsizlik va tezlik tomoni muhim bo`lgani sababli bunga ham e`tibor qaratish lozim. Windows OS muhitida C# har tomonlama kuchliroq ammo Linux OS da esa C# ishlamaganligi sababli taqqoslay olmaymiz. Windows va Linux OS larni taqqoslaydigan bo`lsak - Windows shaxsiy kompyuterlarda foydalanish ma`qulroq, chunki server versiyasi Linuxdan har tomonlama orqada qoladi. Shu sababli Java da katta va xavfsizligi o`ta muhim bo`lgan saytlar yoziladi. Sabab Javada emas, OS da bo`lganligi sababli... Yaqinda C# ham platforma tanlamaydigan bo`lib chiqmoqda, ko`ramiz natija qanaqa bo`ladi endi...
PHP - kichik saytlarni, web sahifalarni, tezda bitkazilishi kerak bo`lgan ma`lumotnoma,reklama saytlarini tuzish uchun foydalaniladigan dasturlash tili....

Dasturlash tillarida xotira tushunchasi

Dastur ishlashi uchun xotira eng muhim subyektlardan biri, chunki xotirasiz hech narsa ishlamaydi, biror amal bajarishda faqat xotiradagi qiymatlar ustida amal bajariladi, xotirada bo`lmagan narsalarni dasturlash tillari xato deb hisoblaydi. Demak har bir foydalanmoqchi bo`lgan qiymatimizni avval xotiraga olib keyin foydalanar ekanmiz.
2 xil xotira mavjud. Dinamik(Dynamic) va Statik(Static) xotira turlari.
Statik xotira chegaralangan va u to`lgan sari dasturning ishlash tezligi pasayishi mumkin. Dinamik xotira esa chegaralanmagan va undan foydalanishda bizda imkoniyatlar mavjud. Statik xotirada e`lon qilingan(saqlangan) qiymat statik xotiraning o`zida saqlanadi. Dinamik xotirada saqlanganda esa qiymatning o`zi keng maydondek tasavvur qilinadigan dinamik xotiraga va uning manzili esa statik xotirada saqlab qo`yiladi. Shu tufayli katta ma`lumotlar bilan ishlaganda ham statik xotirani tejab foydalanamiz. Dinamic xotirada e`lon qilingan o`zgaruvchi o`chirib yuborilsa statik xotiradagi dinamik xotiraning adresi o`chiriladi ammo dinamik xotiradagi qiymat qolib ketadi. Bir nechta shu kabi holatlar yuzaga kelsa dinamik xotirada keraksiz ma`lumot qolib ketadi, buni ham tozalashga to`g`ri keladi. C++ da bularni dasturchining o`zi hisobga olib tozalab ketishi lozim, Java,C# da esa hisobga olingan va avtomatik ravishda ro`y beradi (Garbage Collect algoritmi asosida chiqindilardan tozalab turiladi) . Ya`ni har bir blok yopilishida o`sha blok ichidagi chiqindilar tozalab ketiladi. Demak dinamik xotirada biror qiymat o`zgartirilsa statik xotiradagi qiymat(ya`ni dinamik xotiradagi qiymatning manzili) o`zgartirilmasdan dinamik xotiradagi qiymat o`zgartirib qo`yiladi.

Tizimli va Obyektga yo`naltirilgan dasturlash tillari.

Biz yuqorida dasturlash tili deganda qisqacha ma`lumotga ega bo`ldik. Demak algoritmlarni biror bir qonuniyat bo`yicha kompyuterga bajarishi uchun buyruqlar asosida izohlab beriladigan til - dasturlash tili. Dasturlash tillari insonlar kashf qilinganida tizimli dasturlash bo`lgan xolos. Hisob-kitob, qo`shish-ayirish va shunga o`xshash oddiy narsalar bo`lgan. Obyekt tushunchasi bo`lmagan. Faqat biror bir ma`lumotni saqlab undan foydalanish bo`lgan xolos. Bular Tizimli dasturlash deyilgan.

Undan so`ng dasturlar rivojlangan va ba`zi dasturlar murakkab dasturning bir qismi(funksiyasi) bo`lib qolgan. Shunda funksiya kiritilgan, undan so`ng to`plamlardan foydalanishga ehtiyoj sezilgan. Qaysidir bir ma`lumotlar to`plamini biror tipga tegishli deb shunaqa to`plam hosil qilish fikrini ilgari surib struct, class tushunchalari kiritilgan. Struct(struktura) Class(klass)dan biroz oldinroq kiritilgan va OOP ga aloqasi yo`q. Struct bilan Class ning farqini ko`rishda Tizimli va OOP ni farqini bilib olamiz.

Saturday, March 1, 2014

Windwos OS da Maven qanday o`rnatiladi?

  Maven nima?
  -----------
  Maven - dastur strukturasini boshqaruv uskunasi. Unda Project Object Model(POM)
  tushunchasi mujassamlashgan. Maven projectning build strukturasini boshqara oladi.
  Shuningdek ma`lumotlarning markaziy bo`limidan xabar va ma`lumotlar bilan tanishamiz:

   Ma`lumotlar
  -------------
  Eng oxirgi ma`lumotlar va yangiliklarni http://maven.apache.org/ saytidan olamiz.

  O`zgarishlar
  -------------
  Barcha o`zgarishlar va yangilanishlar ro`yxatini http://maven.apache.org/release-notes.html saytidan
  ko`ramiz.

Apache Maven Windows OS da o`rnatishni talab qilmaydigan service componenti, siz internetdan Maven ning zip formatdagi arxiv faylini ko`chirib olib kompyuteringizda arxivdan chiqarasiz va "Windows environment path variable" ni configuratsiya qilasiz.

Quyidagilardan foydalanilgan:




  • JDK 1.6
  • Maven 2.2.1
  • Windows 7
  • P.S: Shuningdek Maven 3 dan foydalanilgan.


    JDK va JAVA_HOME

    JDK o`rnatilganligiga ishonch hosil qilib "Windows environment path variable" ga JAVA_HOME va MAVEN_HOME parametrlarini qo`shiladi.
    JAVA_HOME - JDK ning manzili
    MAVEN_HOME - Maven papkasining manzili



    So`ng shu yerda PATH parametriga Maven papkasining bin catalogini ham qo`shib qo`yish zarur.


    Bu ketma-ketliklarni tartib bilan bajarganingizdan so`ng, maven sizning mashinangizda o`rnatildimi yo`qmi quyidagi komanda bilan tekshirib ko`rasiz. mvn –version“. 
    C:\Documents and Settings\mkyong>mvn -version
    Apache Maven 2.2.1 (r801777; 2009-08-07 03:16:01+0800)
    Java version: 1.6.0_13
    Java home: C:\Program Files\Java\jdk1.6.0_13\jre
    Default locale: en_US, platform encoding: Cp1252
    OS name: "windows xp" version: "5.1" arch: "x86" Family: "windows"
    Agar shunga o`xshash natija qaytarsa demak bu muvaffaqiyatli yakunlanganligini bildiradi.

    Thursday, May 9, 2013

    PostgreSql dynamic function

    PostgreSql da funksiyaga istalga select zaprosni berib javobni tablitsa shaklida olish.


    create table test as
    select 1 id, 'safd' data1,'sagd' data2
    union
    select 2 id, 'hdfg' data1,'sdsf' data2;
    
    create or replace function test2(a varchar) returns SETOF record as
    $BODY$
    declare x record;
    begin
    for x in execute a loop
    RETURN NEXT x;
    end loop;
    return;
    end;
    $BODY$
    LANGUAGE 'plpgsql' VOLATILE;
    



    select * from test2('select * from test') s(a int, b text, c text);
     a |  b   |  c   
    ---+------+------
     1 | safd | sagd
     2 | hdfg | sdsf

    Wednesday, May 8, 2013

    Kasperskyni aktivatsiya qilish



    1-qadam



    2-qadam



    3-qadam



    Kompyuterni keraksiz fayllardan tozalash

    Bu qo`llanmaning afzal tomoni shundaki: 
    Ko`rsatmalar orqali oddiy foydalanuvchi 
    ham o`z kompyuterini keraksiz 
    fayllardan tozalashi mumkin

                Kompyuter ishlashida sekinlashish yoki shunga o`xshash muammolar kelib chiqish muammolari deyarli har birimizda uchraydi. Bunga sabablar nimada? - Shu kompyuterda ishlaymizmi demak unga doim xizmat ko`rsatib turishimiz lozim, chunki qarovsiz qoldirsa hatto temir ham zanglaydi! Xizmat ko`rsatish nima bo`lishi mumkin? - Viruslardan himoya dasturlarini o`rnatish, Kerakli nastroykalarni amalga oshirish, Keraksiz fayllarni o`chirib tashlash va Foydalanilmaydigan Service(служба)larni to`xtatib qo`yish!
    Antiviruslar haqida to`xtaladigan bo`lsak- har qaysi antivirusni o`z joyi bor. Kompyuterga virus tushirmaslik hozirda ko`proq antivirusdan foydalana olmaganligimizdan vujudga kelmoqda. Vaqtida ba`zasini yangilab turmaymiz. Umuman olganda antivirus har doim ishlab turishi kerak emas! Agarda kompyuter tarmoqqa, internetga ulanmagan bo`lsa antivirusni o`chirib qo`yish mumkin, chunki tezroq ishlaydi. Qachonki fleshka ulashdan oldin antivirusni qo`shib fleshkani tekshirib olib yana o`chirib qo`ysa bo`ladi. Tarmoqqa ulangan kompyuterlarni antivirus bilan birgalikda ishlating!
                Keraksiz fayllar nima va u qayerdan yig`ilib qoladi? - Windows OS(Operatsion Sistema) sida Temporary Files(vaqtinchalik fayllar) dan ko`p foydalaniladi. Kerakli dastur ochilganda maxsus Temp papkalarda shu fayllar saqlanib turadi. Bu fayllarni shu papkalarga kirib o`chirib yurardik ilgari. Mana bir necha yilki bu noqulayliklarni avtomatik amalga oshiriladigan dasturlar ishlab chiqarilmoqda. Bular Utilit lar deyiladi. Bu utilitlar sistemaga foyda bilan birga ma`lum miqdorda zarar ham keltirishi mumkin. Bularning ichida eng zararsiz bo`lgan dasturlarni keltirib o`tmoqchimiz.
    1-Ccleaner(http://www.ccleaner.com/). Bu dasturga qo`llanma quyida keltirillgan.
    2-Auslogics Disk Defrag 1.3 (free version)
    Dasturning ko`rinishi quyidagi 1-rasmda keltirilgan


    1-rasm


    Zapustit Cleaner tugmasi 2-3 marta bosiladi, shunda kompyuterni keraksiz fayllardan tozalaydi.
    Vaqti-vaqti bilan registrlarni ham tozalab turish foydali. Chunki Windows OS registrlarga tayanib ishlaydi. Registrni oddiy so`z bilan eng tez ishlaydigan ma`lumotlar ba`zasi deyish mumkin. Bu yerda faqat nastroykalar saqlanadi. Bu yerda ham keraksiz ma`lumotlar yoki ma`lumoti yo`q manzillar ancha sekinlashtirib qo`yishi mumkin. Aslida Registrlarni ham defragmentatsiya qilgan yaxshi. Ammo har qanday dasturni ishlataverish yaramaydi! Ccleanerdagi registr muammolarini ta`mirlash bo`limi zararlimi yoki yo`qmi tekshirib ko`rmaganman!
    Foydalanish uchun Poisk problema va so`ng Ispravit tugmalari bosiladi (2-rasm)


    2-rasm
    Shu o`rinda Kompyuter ishga tushganida sekin yuklanish muammosi ham ko`pchiligimizda uchraydi.
    Сервис => Автозагрузка bu sizning mashinangiz ishga tushganda birinchi yuklanadigan dasturlar ro`yxati. Keraklisini qoldirib qolganini shu yerdan o`chirib qo`yish yaxshiroq. Kerakli ekanini qanday bilamiz? - Qizil to`rtburchak bilan belgilangan joyga e`tibor bering. C:/Windows/ bilan boshlangan shu ro`yxatdagi har qanday file kerakli! Undan tashqari Программа  bo`limida ko`rib turganingizdek dastur nomi ko`rsatilgan. E`tibor bering Antivirus qoldirishi kerak, Google Update qolishi kerak . va sizga kerakli bo`lganlari qolaveradi.(3-rasm)

    3-rasm



    DASTURDAN FOYDALANISH YUQORIDA TUSHUNTIRIB O`TILDI. ENDI BU DASTURNI BIR BUYRUQ BILAN AVTOMATIK ISHLATIB YUBORISHNI NASTROYKA QILIB QO`YISH MUMKIN. E`TIBORINGIZNI SHUNGA QARATAMIZ.
    Demak 4-rasmda ajratib ko`rsatilgan joylarga qizil rang bilan chizilgan. Shu joylarga galchka qo`ying.
    4-rasm
    5-ramda ko`rsatilgandek Korzina ga sichqonchaning o`ng tugmasini bosasiz va ushbu munyu ochiladi. Zapustit Ccleaner ni bosing va avtomatik tarzda o`zi tozalaydi.
    5-rasm
    Kompyuterni ishga tushirganda bir marta Zapustit qilib olishingizni maslahat beramiz.



    Dasturni bu yerdan ko`chirib oling!