Programmmalash asoslari lab
Samarqand Davlat Universiteti “Raqamli texnologiyalar” fakulteti amaliy matematika yo`nalishi Programmmalash asoslari fanidan tayyorlagan Labaratoriya ishlari
Kirish “Programmalash asoslari” fanidan labaratoriya ishini bajarishning bosh maqsadi talabalarga qo‘yilgan masalani echuvchi kompyuter programmasini tuzishga o‘rgatishdir. Shu maqsadda programmalash tillari va muhitlari haqida umumiy tushunchalar beriladi va bu tillardan foydalanish o‘rgatiladi. Laboratoriya ishi nazariy va amaliy qismlardan iborat. Nazariy qism informatika va hisoblash texnikasi, algoritmlar, C/C++ programmalash tili, Qt ob’yektga yo‘naltirilgan programmalash muhiti boblaridan tashkil topgan. Nazariy qismda programmalashga kirishning nazariy asosi bo‘lgan algoritmlarga alohida e’tibor qaratilgan. Bu erda algoritmlarni tavsiflash va keyinchalik kompyuterda amalga oshirish uchun zarur bo‘lgan bir qator matematik tushunchalar yordamchi algoritm, rekursiya, xotira, massiv, indeks, parametr va h.k. kiritilib, turli xil sinf masalalarining algoritmlari tuziladi. Programmalash tili - tuzilgan algoritmni kompyuter amalga oshirish uchun vositadir. Bu o‘rinda turli murakkablikdagi sintaksis va semantikaga ega bo‘lgan tillardan foydalanish mumkin. Fanda C++ tilining alfaviti, til qurilmalarining umumiy sintaksisi, berilganlar turlari, operatsiyalar va funktsiyalar qaraladi, oqim bilan ishlash, ko‘rsatgichlar, amallarni qayta yuklashlar, funktsiyalarni qayta yuklash, qoliplar va modulli programmmalash va grafika moduli bilan ishlash o‘rgatiladi. Programmalashga o‘rgatish mos amaliy masalalarga tayangan holda olib boriladi. Fanning amaliy qismida algoritmlar, C++ programmalash tili, Qt muhitida ishlash bo‘yicha masalalarni o‘z ichiga oladi. Programmalash asoslari fani bevosita tizimli programmalash, Berilganlar bazasini boshqarish tizimlari, Kompyuter grafikasi va Kompyuter tarmoqlari fanlari bilan uzviy bog‘liqdir va bu fan kompyuter texnologiyalari bo‘yicha mutaxassis tayyorlashda umumiy asos rolini o‘ynaydi.
1-LABAROTORIYA ISHI Mavzu: Obyekt modeli va uning afzaliklari Dasturlarni yozishga protsedurali yondashuv yaxshi, lekin sizning dasturingiz kichik bo'lsa bundan foydalanishingiz mumkin. Dastur hajmi katta bo’la boshlagach, siz darhol ushbu protseduraviy yondashuvdagi muammolarning ba'zi qiyinchiliklarini sezasiz. Kod katta va hajmli. Dasturga kiritmoqchi bo'lgan, biror narsa qo'shadigan, o'zgartiradigan va hokazo kerakli funksiyani yoki kerakli kodni topish siz uchun murakkab muammo aylanadi. Dasturga yangi xususiyatlarni qo'shish va uni kengaytirish murakkab bo’ladi. Protseduraviy yondashuv - bu hamma narsa ma'lum bir tartibda ketganda va biror narsani o'zgartirish uchun ko'p ishni bajarish, ko'p bog'liqliklarni tuzatish kerak: siz birini o'zgartirasiz, o'zgarishlar kodning boshqa qismiga ta'sir qiladi va hokazo. Agar siz katta dasturni protsedurali yondashuv yordamida yozmoqchi bo'lsangiz, bu kamchiliklarning barchasini o'zingiz sezishingiz mumkin. Shundan so'ng, sizning dasturingizda kodni tartibga solishning boshqa usulini topishingiz mumkin. Bunday yo'l bor va u OYD deb nomlanadi. So'nggi paytlarda u juda mashhur bo'lib ketdi. OYD - bu katta va murakkab dasturlarni ishlab chiqishni soddalashtirishning bir usuli. Bular prinsipial jihatdan, agar bizga biron bir katta dastur yozishning hojati bo'lmasa, OYDsiz osonlikcha qila olamiz. Bir butunlik – yaxlit kontekstda fikrlash nazariy jihatdan ajoyib yondashuv bo'lsa -da, har ikki tomonda ham tegishli kod nusxalari borligi sababli, xatti - harakatlarning o'zi yuborilmaydi. Shu bilan birga, butun ob'ektni butun tarmoq bo'ylab uzatiladigan kontekstda o'ylash muhimdir. To'g'ri loyihalash – bu konsepsiyaning yaxshi namunasi- bu brauzer yuklanadigan ob'ekt. Brauzer ma'lum bir ob'ekt qanday harakatlarni bajarishini oldindan bilmaydi, chunki u hali kodni "ko'rmagan". Ob'ekt yuklangach, brauzer ushbu ob'ektdagi kodni bajaradi va undagi ma'lumotlarni ishlatadi Topshiriq-22: Mashina nomli sinf yarating. Tarkibida ikki xil konstruktor bo‘lsin #include<iostream> using namespace std; class Mashina {private: int m_turi;
int m_rangi; public: Mashina() {m_turi =23; m_rangi =3; } Mashina(int a, int b) { m_turi =a; m_rangi =b; } void chiqarish() { cout<<"Mashinaning turi"<<m_turi <<endl; cout<<"Mashibaning rangi"<<m_rangi <<endl; } }; int main() { Mashina malumot; mashinamal(22,2); malumot.chiqarish(); mal.chiqarish(); return 0; }