|
Mustaqil ishi Bajardi: Jumayeva Iroda Tekshirdi: Yusupov. M. Andijon -2024 Mavzu: Takrorlovchi operatorlar va ularning ishlatilishi. Reja
|
bet | 9/12 | Sana | 21.01.2024 | Hajmi | 35,78 Kb. | | #142182 |
Bog'liq рефератint i=0;
i++; if(i) goto m;
int j;
m: j+=I;
Bu misoldagi goto operatorining bajarilishi xatolikka olib keladi, chunki j e’lon qilinmay qoladi.
Shartsiz o`tish operatori dastur tuzishdagi kuchli va shu bilan birga xavfli vositalardan biri hisoblanadi. Kuchliligi shundaki, u yordamida algoritmning «boshi berk» joylaridan chiqib ketish mumkin. Ikkinchi tomondan, bloklarning ichiga o`tish, masalan takrorlash operatorlarining ichiga «sakrab» kirish kutilmagan holatlarni yuzaga keltirishi mumkin. Shu sababli, imkon qadar goto operatoridan foydalanmaslik kerak, ishlatilgan taqdirda ham qo’yidagi qoidalarga amal qilish zarur: blok ichiga, if…else va tanlash operatorlari ichiga hamda takrorlash operatorlari tanasiga tashqaridan kirish mumkin emas.
Garchi, nishon yordamida dasturning ixtiyoriy joyiga o`tish mumkin bo’lsa ham, boshlang`ich qiymat berish e’lonlaridan sakrab o`tish man etiladi, lekin bloklardan sakrab o`tish mumkin.
Xususan, nishon yordamida ichki blokdan tashqi blokka va tashqi blokdan ichki blokka o`tishga C++ tili ruxsat beradi:
{…
goto ABC:
…
{int i=15;
…
ABC:
…
goto XYZ;
int y=10;
…
goto KLM;
…}
…
int k=0;
…
KLM:
…}
Lekin, yuqorida keltirilgan misoldagi barcha o`tishlar mazmunan xato hisoblanadi.
Quyidagi dasturda ikkita natural sonlar EKUBini topish masalasidagi takrorlash jarayonini nishon va goto operatori vositasida amalga oshirish ko`rsatilgan:
int main(){
int a,b;
cout<<”A va B natural sonlar EKUBini topish.\n”;
cout<<”A va B natural sonlarni kiriting: “
cin>>a>>b;
nishon:
if (a==b){
cout<<”Bu sonlar EKUBi=”<return 0;}
a>b?a-=b:b-=a;
|
|
Bosh sahifa
Aloqalar
Bosh sahifa
Mustaqil ishi Bajardi: Jumayeva Iroda Tekshirdi: Yusupov. M. Andijon -2024 Mavzu: Takrorlovchi operatorlar va ularning ishlatilishi. Reja
|