|
5-ma’ruza. Tarmoqlanuvchi jarayonlarni dasturlash Reja
|
bet | 4/7 | Sana | 20.09.2024 | Hajmi | 90,95 Kb. | | #271786 |
if (x==1)
if (y==1)cout<<”x=1 va y=1”; else cout<<”x<>1”;
Bu misolda “x<>1” xabari x qiymati 1 va y qiymati 1 bo’lmagan holda ham chop etiladi. Quyidagi variantda ushbu mazmunan xatolik bartaraf etilgan:
if(x==1) {
if(y==1)cout<<”x=1 va y=1”; }
else cout<<”x<>1”;
Ikkinchi misol tariqasida uchta butun sonning maksimal qiymatini topadigan programma bo’lagini keltirishimiz mumkin:
...
int x,y,z,max; cin >>x>>y>>z; if (x>y)
if (y max=z; else max=y;
else
if (x max=z; else max=x;
...
Shart operatorida e’lon qilish operatorlarini ishlatish man etiladi, lekin undagi bloklarda o’zgaruvchilarni e’lon qilish mumkin va bu o’zgaruvchilar faqat blok ichida amal qiladi. Quyidagi misolda bu holat bilan bog’liq xatolik ko’rsatilgan:
if(j>0){int i;i=2*j;}
else i=-j;//xato,chunki i blokdan tashqarida ko’rinmaydi
Masala. Berilgan to’rt xonali ishorasiz sonning boshidagi ikkita raqamining yig’indisi qolgan raqamlar yig’indisiga teng yoki yo’qligi aniqlansin (raqamlar yig’indisi deganda ularga mos son qiymatlarining yig’indisi tushuniladi). Sonning raqamlarini ajratib olish uchun butun sonlar arifmetikasi amallaridan foydalaniladi:
|
| |