Chiziqli tuzilishli algoritmlarini dasturlash
Download 75.52 Kb.
|
1 lab. ishi bajarish korsatna (amaliyot)
№ 1 laboratotiya ishi Mavzu: "Chiziqli tuzilishli algoritmlarini dasturlash." Maqsad: ma'lumotlarning asosiy turlarini, har xil toifadagi o'zgaruvchilarni tavsiflash usullarini, qiymat berish operatorlarini va ma’lumotlarni kirish / chiqishlarni tashkil qilishni o'rganish. Qisqacha nazariy ma'lumotlar: Algoritm - bu qat'iy belgilangan qoidalar bo'yicha bajariladigan harakatlar ketma-ketligi bo’lib, bu muammoni hal qilish jarayonini noyob ravishda cheklaydi va aniq bosqichda uni hal qilishga olib keladi. Algoritmlashtirish – bu amaliy dasturni kompyuter dasturi shaklida amalga oshirish imkoniyati bilan hal qilish uchun rasmiy usulni ishlab chiqishdir. Blok – shema ko'rinishidagi algoritmning tasviri "Algoritmlar, dasturlar, ma'lumotlar va tizimlarning sxemalari" Yagona dasturiy hujjatlar tizimining GOST 19.701-90 ga muvofiq amalga oshiriladi. Microsoft Visual Studio uchun dastur tuzilishi. // struct_program.cpp: Konsol ilovasi uchun kirish joyini belgilaydi. 2#include "stdafx.h" 3// bu erda biz barcha kerakli protsessor direktivalarini 4 ulaymiz 5 int main() { // main deb nomlangan asosiy funktsiyaning boshlanishi 6 // bu yerda sizning dastur kodingiz joylashadi} 1-qator konsol ilovasi uchun kirish joyiga ishora qiladi, ya'ni ushbu dastur Windows nomini ko'rsatib, buyruq satri orqali ishga tushirilishi mumkinligini anglatadi, masalan, system_program.cpp. 1-qator bir qatorli sharh, chunki u // belgilar bilan boshlanadi. 2-qatorda "stdafx.h" sarlavha fayli mavjud. Ushbu fayl konteynerga o'xshaydi, chunki asosiy protsessor ko'rsatmalari ulangan. 2-qatorda "stdafx.h" sarlavha fayli mavjud. Ushbu fayl konteynerga o'xshaydi, chunki u asosiy protsessorni o'z ichiga olgan direktivalarni o'z ichiga oladi - preprocessor direktivasi, ya'ni preprosessorga xabar. # Belgidan boshlanadigan satrlar dasturni kompilyasiya qilishdan oldin, protsessor tomonidan ishlov beriladi.
Matematik math kutubxonasi umumiy matematik operatsiyalar va ma’lumotlar toifasini o'zgarishlarni bajarish uchun bir qator funktsiyalarni belgilaydi. Matematik funktsiyalar: 1) trigonometrik funktsiyalar: cos - radianga aylantirilgan burchak kosinusini hisoblash; sin- radianga aylantirilgan burchak sinusini hisoblash; tan-radianga aylantirilgan burchakning tangensini hisoblash;; acos-arkkosinni hisoblash, natija radianlarda bo'ladi; asin-arksini hisoblash, natija radianlarda bo'ladi;; atan-arktangent hisoblash, qaytish qiymati radian bo'ladi. atan2- arktangens va uning kvadrantni x va y koordinatalar bo'yicha hisoblashda qaytarilgan natija radian shaklida bo'ladi ; 2) giperbolik funktsiyalar: cosh-giperbolik kosinusni hisoblash; sinh-giperbolik sinusni hisoblash; tanh-giperbolik tangensni hisoblash; 3) eksponensial va logarifmik funktsiyalar:: exp- eksponentani hisoblash; log- natural logarifm; log10-li logarifm; modf- Haqiqiy qiymatni kasr va butun qiymatarga bo'lish; 4) daraja funktsiyalari: pow-sonni darajaga ko’tarish. funktsiyadan foydalanishga misol; sqrt- kvadrat ildiz; 5) yaxlitlash, modul va boshqa funktsiyalar: ceil- eng kichik butun songa yaxlitlash; fabs- modul qiymatlarini hisoblash; floor- eng katta butun songa yaxlitlash; fmod-suratni maxrajga bo’lgandagi qoldiq . Funksiyalardan foydalanishga oid misollar: #include #include int main() { std::cout << "5.0 ^ 4 = " << pow (5.0, 4) << std::endl; std::cout << "2.77 ^ 9 = " << pow (2.77, 9) << std::endl; std::cout << "12.01 ^ 11.54 = " << pow (12.01, 11.54) << std::endl; std::cout << "sqrt(" << param << ") = " << sqrt(param) // kvadrat ildizni hisoblaymiz << std::endl; double param = 60.0; // 60 gradusli burchak std::cout << " Kosinus " << param << " gradus = " << cos(param * PI / 180) // radianga o’girilgan burchak kosinusini // hisoblaymiz << std::endl; double param = 0.5; std::cout << " Arcsinus " << param << " = " << (asin (param) * 180.0 / PI) // artsinusni hisoblash << " gradus " << std::endl; double val = 5.5, result; result = log (val); // Natural logarifmani hisoblash std::cout << "ln(" << val << ") = "<< result << std::endl; return 0; } C ++ kodli fayllar (.cpp kengaytmasi bilan) loyihalar va dasturlarning yagona fayllari emas. Sarlavha fayli deb nomlangan boshqa turdagi fayl mavjud (sarlavha fayli, shu jumladan header file yoki sarlavha fayli). Ular .h kengayt-masiga ega, lekin ba'zan ularni .hpp kengaytmasi bilan ham ko'rish mumkin yoki umuman yo'q. Sarlavha fayllarining maqsadi boshqa fayllardan foydalanish uchun oldindan e'lonlarni qulay saqlashdir. Sarlavha fayli tarkibdagi barcha faillar nus -hasi * .cpp fayliga nushalanadi va barcha tarkib foydalanish uchun mumkin bo'ladi. Sarlavha fayllari: - stdio.h - bu kirish / chiqish operatsiyalarini bajarish uchun sarlavha fayli; - string.h - satrlar bilan ishlash uchun sarlavha fayli; - kirish-chiqishni tashkil qilish uchun sinflar, funktsiyalar va parametrlarga ega iostream-sarlavha fayli. Qulaylik uchun kutubxona uchta standart oqim ob'ekt-larini belgilaydi: cin - standart kirishga mos keladigan istream sinfi ob'ekti. Umuman olganda, foydalanuvchi terminalidan ma'lumotlarni o'qishga imkon beradi; cout - standart chiqishga mos keladigan sinf ostream ob'ekti. Umuman olganda, ma'lumotlar foydalanuvchi terminaliga chiqarilishini ta'minlaydi; serr - bu xatolar uchun standart chiqishga mos keladigan sinf ostream ob'ekti. Biz ushbu oqimga dastur xatoligi haqida xabarlarni yuboramiz. Chop etish odatda qayta yuklanadigan chap siljish operatori (<<) yordamida amalga oshiriladi va kirish o'ng (>>) operatori yordamida amalga oshiriladi. Ma'lumotlarning asosiy turlari 1-jadvalda keltirilgan.
Ma'lumotni tilga kiritishning ikkita usuli mavjud: Formatlangan kirish-chiqish yoki oqim. Formatlangan kiritish usulida scanf operatori va ma’lumotlarni chop etish uchun printf operatorlaridan foydalanadi. Operatorlarning sintaksisi quyidagicha:
Oddiy belgilar va qochish ketma-ketliklari paydo bo'lishi tartibida oddiy chiqish oqimiga ko'chiriladi. Format xususiyatlari% dan boshlanadi va ko'rsatiladigan qiymat turini belgilaydigan belgi bilan tugaydi. Bundan tashqari, format xususiyatlarida ko'rsatilgan qiymatning ko'rinishini boshqarish uchun belgilar va raqamlar bo'lishi mumkin (batafsil ma'lumot uchun pastga qarang). Chiqish ro'yxati o'zgaruvchilardan va / yoki qiymatlari chiqarilishi kerak bo'lgan doimiylardan iborat. Format spetsifikatsiyalarining soni chiqish ro'yxatida ko'rsatilgan chiqish qiymatlari soniga teng bo'lishi kerak. Boshqaruv belgilar ketma-ketligi 2-jadvalda ko'rsatilgan 2-jadval - Boshqaruv belgilari
Ba'zida operatorlar bilan ishlashda format spetsifikatorlari qo'llaniladi (jadval 3-5). 3-jadval - printf bayonoti uchun formatlash xususiyatlari
Bundan tashqari, l va h modifikatorlari format buyruqlariga qo'llanilishi mumkin. (jadval 4). jadval 4
5-jadval - skanf operatori uchun formatlash xususiyatlari
Kirish-chiqish operatorlarida kvalifikator va modifikatorlardan foydalanish misollari: int m, n, x; double y; char c = '&'; char str[] = "String"; scanf("%d%d", &m, &n); // m va n o'zgaruvchilarga o'nli butun sonlarni kiritish printf("m = %5d\nn = %5d\n", m, n); // m va n o'zgaruvchilarni o'nlik butun son shaklida chiqarishda kamida 5 ta belgi ishlatiladi scanf("%d", &x); // O'nli butun sonni x ga kiritish printf("%#010x\n", x); // O'n oltilik tizimda x o'zgaruvchisini10 xona aniqlik //biilan chop etish, nollar // va 0x belgilar sondan avval old tomonga qo'shiladi scanf("%lf", &y); // Y o'zgaruvchisiga haqiqiy sonni kiritish printf("y = %7.2lf\n", y); // Chiqish haqiqiy o'zgaruvchisi, kamida 7 xona aniqlikdar, shundan 2 - nuqtadan keyin chop etish printf("c = %c\n", c); // Bitta belgini chop etish printf("%.4s\n", str); } Ikkita sonning ko’paytmasini hisoblash dasturini c++ tilida tuzamiz. // Standart kutubxonalarni ulanishi: #include #include using namespace std; // identifikatorlar aniqlanadigan nomlar fazosi void main() // dasturning asosiy funktsiyasining sarlavhasi { // operator qavslari setlocale(0, “Russian”); // rus tilida xabarlarning chiqishini sozlash float x,y,z; // o'zgaruvchilar tavsifi (nomi va turi) cout<<" x,y sonlarini kiriting: "< cin>>x>>y; // x,y o’zgaruvchilarning son qiymatini klaviaturadan kiritamiz z=x*y; cout<<"Произведение="< system(“pause”);} //asosiy funksiyaning ohiri Topshiriqni bajarishga na’muna misol. Berilgan а vа α қийматлар учун y нинг қийматини хисобланг Muammoning echish g’oyasi Misolni echish uchun quyidagi belgilashlarni kiritamiz: vа ifodani juda sodda ifodalarga bo’lib tashlaymiz. Chunki 4 maro- taba uchratamiz, vа uni b deb belgilaymiz. Bundan tashqari quyidagi belgilashlarni kiritamiz : 1) 2) Download 75.52 Kb. Do'stlaringiz bilan baham: |
ma'muriyatiga murojaat qiling