Chiziqli algebraik tenglamalarning tizimlarini oddiy iteratsiyalar usuli bilan yechish. Usulning hisoblash algoritmi, xatoligini baholash
Download 414.51 Kb.
|
Azamat praktika (1)
Taqqoslash va mantiqiy amallar
Ammo dasturlashda nafaqat hisob-kitoblar bilan shug'ullanishimiz, balki o'zgaruvchilar qiymatlarini bir-biri bilan taqqoslashimiz ham mumkin bo 'ladi. Ushbu darsda biz tilining mantiqiy amallari bilan shug'ullanamiz. Har qanday o'zgaruvchini (qiymatini) bir-biri bilan taqqoslaganda, yolg' on yoki rost bo'lgan ikki natijadan birini olamiz. Masalan, biz ikkita qiymatni taqqoslaymiz: - natija rost, chunki 3 haqiqatan ham 8 dan kichik. Ammo - natijasi esa yolg'on. Mantiqiy amallar uchun ishlatiladigan operatorlarni ko'rib chiqaylik: Mantiqiy amallar
jadvaldagi barcha operatorlar - ham taqqoslash operatorlari, ham tenglik operatorlari - binar amallardir. Dasturlashda ular bilan ishlash ikkita operandni (ikkita qiymatni) bir-biri bilan taqqoslashimiz va ularning o'zaro munosabatlarini ko'rishimiz mumkin bo'ladi: biri katta, ikkinchisi kichik, yoki aksincha, yoki ikkalasi aynan teng, yoki teng cmas. Natijada ushbu munosabatlar, yuqorida aytib ơtilganidek, dasturga ikkita mumkin bo'lgan qiymatdan birini qaytaradi - false yoki true (1). Oldingi mavzuda berilgan (o'zgaruvchiga qiymat berish, ta'minlash operatori) va (mantiqiy tenglik operatori) bilan chalkashtirmaslik muhimdir. Bu ikkalasi butunlay boshqa operator. 10-jadval. Mantiqiy amallar
&& va ni birlashtirishning mantiqiy amallari binar shaklga ega. Ulardan nafaqut ikkita qiymatni taqqoslash, balki ba'zi shartlarni yaratish yoki bir nechta taqqoslash yoki tenglik shartlarini biriga qo'shish uchun dasturlashda foydalaniladi. Masalan, bizda foydalanuvchi tomonidan qiymati kiritilgan o'zgaruvchiga egamiz. Ushbu sonning 10 dan katta 20 dan esa kichik ekanligini bilmoqchimiz Bu rostmi (true) yoki yolg'on (false)? Mantiqiy VA yordamida tekshiramiz: cout (variable && (variable ); Ekranda 1 (true) ko'rsatiladi, agar qiymat bir vaqtning o'zida 10 dan kattaroq bo'lsa va (&&) 20 dan kichik bo'lsa, agar foydalanuvchi 15 ni kiritsa, natija rost, agar 21 ga kiritsa, ekranda 0 (false) chiqadi, chunki 2120 dan katta. Mantiqiy VA (&&) sharti bilan qaytarilgan natijalar jadvalda quyidagicha ifodalanishi mumkin: 11-jadval. a) Mantiqiy "VA" amali qiymatlar jadvali
b) Mantiqiy "OR" amali qiymatlar jadvali
Yuqorida muhokama qilingan misolga asoslanib: 15 bir vaqtning o'zida 10 dan katta va 20 dan kichik. Demak, 1-shart ham, 2-shart ham bajarilgan. Natija rost. Agar foydalanuvchi 50 qiymatini kiritgan bo 1 sa, unda faqat 1-shart qoniqtiradi va rost bo'ladi va 2 -shart yolg'on, chunki u qoniqtirmaydi. Birlashtirilgan shartning natijasi esa yolg'ondir. Agar bizga, aksincha, kiritilgan raqam belgilangan diapazonga tegishli emasligini, balki 10 dan kichik yoki 20 dan katta oralig'ida ekanligini tasdiqlash kerak bo'lsa-chi? Buning uchun mantiqiy operatori (Il) yordamida birlashtirilgan shartni tuzishimiz kerak: Agar foydalanuvchi 15 ni kiritgan bo'lsa, biz ekranda 0 (false) ni ko'ramiz, chunki 1510 dan katta hamda 20 dan kichik, Agar u 22 ga kiritsa, biz ekranda 1 (true) ni ko'ramiz, chunki 22 ikkinchi shartga to ri keladi va 20 dan katta. Mantiqiy OR (ID) sharti bilan qaytarilgan natijalar jadvali quyidagi keltirilgan: Mantiqiy INKOR (!) - bu operator unar. Mantiqiy qiymat natijasi doim teskarisini qaytaradi. Masalan, taqqoslash natijasini ko'rsatishda Bu holatda ekranda 1 (true) qiymatni ko'ramiz, chunki bu rost. Shartdan oldin mantiqiy INKORdan foydalanaylik: Rost qiymatni yolg'onga aylantiriladi. Natijada ekranda yolg'on qiymat chiqadi Jadval quyidagi ko' rinishda bo'ladi: 12 -jadval. Mantiqiy "INKOR" amali qiymatlar jadvali
Bir vaqtning o'zida bir nechta shartlarni sinab ko'rishingiz kerak bo'lgan holatlar mavjud. Masalan, biz lotereyada yutganyutmaganligimizni bilish uchun sotib olingan chiptaning barcha raqamlarini yutganlar bilan taqqoslashimiz kerak. Agar lotereyada 6 ta raqam bo'lsa, unda 6 ta taqqoslash kerak, bularning barchasi to'g'ri bo'lishi kerak. Bundan tashqari, ba'zida biz bir nechta shartlardan kamida bittasi to'g'ri yoki yo'qligini bilishimiz kerak. Masalan, biz kasal yoki juda charchagan bo'lsak yoki lotereyada yutgan bo'lsak, bugun biz ishga bormaymiz. Ushbu 3 shartdan kamida bittasi rost yoki yo'qligini tekshirishimiz kerak. Buni qanday qilish kerak? Mantiqiy operatorlardan foydalanish lozim. Ular bir vaqtning o'zida bir nechta shartlarni tekshirishga imkon beradi. Mantiqiy operator juda yuqori ustuvorlikka ega emasligini unutmang. Yangi boshlovchilar ko'pincha quyidagi xatoga yo'1 qo' yishadi: Winclude using namespace std; int main() i int int if cout "x y ga teng emas"; else cout "x y ga teng"; return Dasturni bajarish natijasi: y ga leng emas Ammo y ga teng emas, buni qanday tekshirish mumkin? Mantiqiy operatorning ustunligi tenglik operatorining ustunligidan yuqori emasligi sababli, ifodasi kabi tekshiriladi. Eslatma: mantiqiy kontekstdagi nolga teng bo'Imagan har qanday qiymat rostdir, bo'lgani uchun, u holda rost deb hisoblanadi, lekin yolg'on, ya'ni 0 . Mantiqiy amallarda butun sonlardan shu tarzda foydalanish nafaqat foydalanuvchini, balki ishlab chiquvchini ham chalg'itishi mumkin, shuning uchun bu tavsiya etilmaydi! Yuqoridagi dasturni yozishning to' ri usuli: Winclude int main 0 int int if else std:tcout "'x does not equal ; std:tcout «" "x equals "; return ; Winclude int main( 0 is int ; int if std:teout "x does not equal ; else std:tcout "x equals ; return ; s Birinchidan, y qayta ishlanadi, so'ngra operator natijani teskari o'zgartirmaydi. Qoida: Agar mantiqiy operator boshqa operatorlaming natijalari bilan ishlamasligi kerak bo'lsa, unda boshqa operatorlar va ularning operandlari qavs ichida bo lishi kerak. Quyidagi dasturni ko'rib chiqing: Winclude cjostream> using namespace std; int main() Struktura - bu bitta nom bilan birlashtirilgan o'zgaruvchi yig'indisi, bu ma'lumotni birgalikda saqlashning umumiy qat qilingan usulini ta'minlaydi. Strukturani e'lon qilish natijasida struktr obyektlarini yaratish uchun ishlatiladigan shablon paydo bo'la Strukturani tashkil etuvchi o'zgaruvchilar struktura �′ 'zolari deb atala (Struktura a'zolari ko pincha �′�� yoki maydon deb ham ataladi.) Masalan, shaxs haqidagi ma'lumotlarni saqlash uchun, ismingiz tug'ilgan kuningizni, bo'yingizni, vazningizni yoki bosh ma'lumotlarni kiritishni xohlaysiz: string ism; int kun; int oy; int yil; int balandlik; int vazn; Ammo endi sizda 6 ta alohida o'zgaruvchi mavjud. Agar o'zingiz haqida ma'lumotni funksiyaga o'tkazmoqchi bo'lsangiz, unda har bir o'zgaruvchini alohida o'tkazishingiz kerak. Bundan tashqari, agar siz boshqa birov haqida ma'lumot saqlamoqchi bo'lsangiz, unda har bir kishi uchun qo'shimcha ravishda yana 6 ta o'zgaruvchini e'lon qilishingiz kerak bo'ladi! Bunday amalga oshirish unchalik samarali emasligini oddiy ko'z bilan ham ko'rish mumkin. C++ tili dasturchilarga o'zlarining shaxsiy ma'lumot turlarini - bir nechta alohida o'zgaruvchilarni birlashtirgan turlarini yaratishga imkon beradi. Foydalanuvchilar tomonidan aniqlangan ma'lumotlar turlaridan biri bu strukturadir. Struktura har xil turdagi o'zgaruvchilami bir butunga birlashtirishga imkon beradi. Download 414.51 Kb. Do'stlaringiz bilan baham: |
ma'muriyatiga murojaat qiling