CS50 - Week 0
Tags: cs50, programming
Published: 2024-04-02 18:10:59

**بِسْمِ اللَّهِ الرَّحْمَنِ الرَّحِيم**

Garvard universiteti tomonidan taqdim etilgan o'sha mashhur kurs -  [CS50](https://www.edx.org/learn/computer-science/harvard-university-cs50-s-introduction-to-computer-science) kursini o'rganishni boshladim. O'rganish davomida o'rganganlarim, kerakli deb hisoblagan ma'lumotlarni sizlar bilan bo'lishib bormoqchiman. Ushbu kursda amerikalik professor [David J.Malan](https://en.wikipedia.org/wiki/David_J._Malan) tomonidan dasturlash tushunchalari, algoritmlar, ma'lumot tuzilmalari va umuman, kompyuterlar qanday paydo bo'lib, hozirgi holatga qanday kelib qolgan, barchasi aniq misollar bilan juda qiziqarli usulda tushuntirilgan.

Demak, boshladik!

## Dasturlash
Dasturlash - bu kirish (_input_) ma'lumotini olib unga mos natija (_output_) yaratish, umuman olganda qandaydir mavjud muammoni yechish hisoblanadi.

![Programming](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cy00fu2lyopejuo4peqx.png)


## Ikkilik sanoq sistemasi
Bugungi kunda kompyuterlar ikkilik _(binary)_ deb ataladigan sanoq sistemasidan foydalanadi. _Bit_ - ikkilik sanoq sistemasidagi raqamdir. Bir bit - o'chiq yoki yoniqlikni beradi.
Kompyuterlar faqat nol va birlar shaklida gaplashadi. Nol - o'chiqni, birlar esa yoniqlikni ifodalaydi. Kompyuterlarda millionlab, milliardlab shunday o'chiq yoki yoniq bo'lgan tranzistorlar ishlatilinadi.

![Binary system](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/crs8couy7emqcbsxhngv.png)

Kompyuterlar raqamni ifodalash uchun sakkiz bit (_bayt_) dan foydalanadi. Masalan, _00000111_ ikkilik sanoq sistemada _7_ raqamini beradi. _11111111_ esa _255_ raqamini bildiradi.


## ASCII (American Standard Code for Information Interchange)
Raqamlar birlar va nollar yordamida ikkilik sanoq sistemasida ifodalangani kabi, harflar ham bir va nol yordamida ifodalanadi! Raqamlar va harflarni ifodalovchi birlar va nollar o'rtasida o'xshashlik mavjudligi sababli, _ASCII_ _standarti_ yaratilingan.
![ASCII](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/djq41wvau9duln0jwa8u.png)

Misol uchun, ushbu standartga ko'ra _A_ harfi _65_ raqami bilan belgilashga kelishilingan. Bu ikkilik sanoq sistemasida _01000001_ ni ifodalaydi. Ikkilik sanoq tizimi bilan faqat _255_ gacha hisoblash mumkinligi sababli _ASCII_ bilan ifodalash mumkin bo'lgan belgilar soni cheklangan.


## Unicode
Ikkilik sanoq tizimida 8 bitlikda odamlar tomonidan ifodalanishi mumkin bo'lgan barcha turli belgilarni ifodalash uchun raqamlar yetarli emasligi sababli, _Unicode standarti_ kompyuterlar tomonidan uzatilishi va tushunilishi mumkin bo'lgan bitlar sonini kengaytirdi. _Unicode_ nafaqat maxsus belgilarni, balki emojilarni ham o'z ichiga oladi.

![Unicode](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cidohxrymqdg47gxbhjt.png)

Rangni ifodalash uchun ham nol va birlardan foydalanish mumkin.
**RGB** - qizil (_red_), yashil (_green_) va ko'k (_blue_) uchta raqamning kombinatsiyasidir.

![rgb](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/psrj5h4gvyrlbvx786f5.png)

Shuningdek, rasmlar oddiygina _RGB_ qiymatlari to'plamidir.
Videolar esa ko'plab tasvirlar ketma-ketligidir.


> _Ushbu maqolada [CS50x 2024](https://cs50.harvard.edu/x/2024) manbasidan foydalanilgan._