R. A. Ro‘ziyev, U. M. Mirsanov, F. J. Toxirov, L. S. Isroilova, H. N. Arziqulov


Switch operatoridan chiqish uchun break


Download 1.27 Mb.
bet15/45
Sana14.10.2023
Hajmi1.27 Mb.
#1703549
1   ...   11   12   13   14   15   16   17   18   ...   45
Bog'liq
C qo`llanma 29.06

Switch operatoridan chiqish uchun break operatoridan foydalanish talab etiladi. Agar break operatori qo‘llanilmasa, u holda aniqlangan qiymat ifoda qiymatiga mos kelmasligiga qaramay, ro‘yxatdagi barcha operatorlar bajariladi.
Yuqorida bayon etilgan fikrlarni tekshirish uchun C++ dasturlash tilida shartli operatorlardan foydalangan holda bir nechta misollarni ko‘rib chiqamiz.
1-misol. Berilgan k soniga mos keladigan hafta kunining nomini chop etuvchi dastur. (Bunda va birinchi kun dushanba)
Berilgan masalaning dastur kodi quyidagicha:
#include
using namespace std;
int main(){
unsigned int k, z;
cout<<"k= "; cin>>k;
if (k<=31) {
z=k % 7;
switch (z) {
case 1: cout<<"Dushanba"; break;
case 2: cout<<"Seshanba"; break;
case 3: cout<<"Chorshanba"; break;
case 4: cout<<"Payshanba"; break;
case 5: cout<<"Juma"; break;
case 6: cout<<"Shanba"; break;
case 7: cout<<"Yakshanba"; break;
}
}
else cout<<"Bunday kun yo‘q";
return 0;
}
2-misol. Bahoni anglatadigan k soni berilgan. Agar k=1 bo‘lsa “yomon”, k=2 bo‘lsa “qoniqarsiz”, k=3 bo‘lsa “qoniqarli”, k=4 bo‘lsa “yaxshi”, k=5 bo‘lsa “a’lo” so‘zlaridan birini, agar k bu oraliqda bo‘lmasa “xato” so‘zini chop etish dasturi.
Berilgan masalaning dastur kodi quyidagicha:
#include
using namespace std;
int main(){
unsigned int k;
cout<<"k= "; cin>>k;
switch (k) {
case 1: cout<<"Yomon"; break;
case 2: cout<<"Qoniqarsiz"; break;
case 3: cout<<"Qoniqarli"; break;
case 4: cout<<"Yaxshi"; break;
case 5: cout<<"A’lo"; break;
default: cout<<"Xato";
}
return 0;
}
3-misol. 1-12 oraliqdagi sonlarga mos keluvchi oy raqami berilgan. Shu oyga mos keladigan yil faslini chop etish dasturi.
Berilgan masalaning dastur kodi quyidagicha:
#include
using namespace std;
int main(){
unsigned int oy;
cout<<"Oy raqami: "; cin>>oy;
switch (oy) {
case 1: case 2: case 12: cout<<"Qish fasli"; break;
case 3: case 4: case 5: cout<<"Bahor fasli"; break;
case 6: case 7: case 8: cout<<"Yoz fasli"; break;
case 9: case 10: case 11: cout<<"Kuz fasli"; break;
default: cout<<"Xato";
}
return 0;
}
4-misol. Arifmetik amallar quyidagi ko‘rinishda raqamlangan: 1 “qo‘shish”; 2 “ayirish”; 3 “ko‘paytirish”; 4 “bo‘lish”. n butun soni 1-4 oralig‘ida berilgan bo‘lib, a va b (b≠0) haqiqiy sonlari berilganda n ga mos keluvchi amalni bajarish va natijani chop etish dasturi.
Berilgan masalaning dastur kodi quyidagicha:
#include
using namespace std;
int main(){
unsigned int n; float a, b;
cout<<"a= "; cin>>a;
cout<<"b= "; cin>>b;
cout<<"n= "; cin>>n;
switch (n) {
case 1: cout<
}
return 0;
}
5-misol. Birliklar quyidagi ko‘rinishda raqamlangan: 1-km; 2-m; 3-dm; 4-sm; 5-mm. Kesma uzunligi (haqiqiy son ko‘rinishida) berilib, uning birligi tanlanganda metrdagi ifodasini topish dasturi.
Berilgan masalaning dastur kodi quyidagicha:
#include
using namespace std;
int main(){
unsigned int n; float a, m;
cout<<"a= "; cin>>a;
cout<<"n= "; cin>>n;
switch (n) {
case 1: cout<
case 2: cout<
case 3: cout<
case 4: cout<
case 5: cout<
default: cout<<"Xato";
}
return 0;
}
6-misol. Robot to‘rtta yo‘nalish bo‘yicha harakatlanishi mumkin (“1” Shimol, “2” G‘arb, “3” Janub, “4” Sharq) va uch xil buyruqni qabul qila oladi, ya’ni 0 harakatni davom ettirish, 1 chapga burilish, -1 o‘ngga burilish, c-robotning berilgan yo‘nalishi bo‘lib, n-unga uzatilgan buyruq bo‘lsa, berilgan buyruqdan keyingi robotning holatini chop etish dasturi.
Berilgan masalaning dastur kodi quyidagicha:
#include
using namespace std;
int main(){
int c, n;
cout<<"c= "; cin>>c;
cout<<"n= "; cin>>n;
switch (c) {
1: switch (n){
0: cout<<"Shimol"; break;
1: cout<<"G‘arb"; break;
-1: cout<<"Sharq"; break;
}
2: switch (n){
0: cout<<"G‘arb"; break;
1: cout<<"Janub"; break;
-1: cout<<"Shimol"; break;
}
3: switch (n){
0: cout<<"Janub"; break;
1: cout<<"Sharq"; break;
-1: cout<<"G‘arb"; break;
}
4: switch (n){
0: cout<<"Sharq"; break;
1: cout<<"Shimol"; break;
-1: cout<<"Janub"; break;
}
default: cout<<"Xato";
}
}
7-misol. 1-99 oralig‘idagi butun son berilgan. U sonni satr ko‘rinishida chiqarish dasturi.
Berilgan masalaning dastur kodi quyidagicha:
#include
using namespace std;
int main(){
int n, a, b;
cout<<"1 <= n <= 99 oralig‘idagi son kiriting: "; cin>>n;
if ((1<=n) && (n<=99)) {
a=n/10; b=n%10;
switch (a) {
case 1: cout<<"O‘n "; break;
case 2: cout<<"Yigirma "; break;
case 3: cout<<"O‘ttiz "; break;
case 4: cout<<"Qirq "; break;
case 5: cout<<"Ellik "; break;
case 6: cout<<"Oltmish "; break;
case 7: cout<<"Yetmish "; break;
case 8: cout<<"Sakson "; break;
case 9: cout<<"To‘qson "; break;
}
switch (b){
case 1: cout<<"bir "; break;
case 2: cout<<"ikki "; break;
case 3: cout<<"uch "; break;
case 4: cout<<"to‘rt "; break;
case 5: cout<<"besh "; break;
case 6: cout<<"olti "; break;
case 7: cout<<"yetti "; break;
case 8: cout<<"sakkiz "; break;
case 9: cout<<"to‘qqiz "; break;
}
} else cout<<"Xato";
}
Shartsiz o‘tish operatori
Shartsiz o‘tish operatori – dasturni bajarishda tasodifiy xatoliklarni keltirib chiqarishi mumkin. Uning qulayligi shundaki, algoritmning ixtiyoriy qatoridan boshqaruvni qulay hisoblash qatoriga o‘tkazadi. Bunda goto operatoridan foydalaniladi. goto operatorining sintaksisi quyidagicha:
goto ;
Nishon – bu biror bir belgilar davomida ikkita nuqta ( : ) qo‘yilgan identifikator. Nishon bilan qandaydir operator belgilanadi va keyinchalik, dasturning boshqa bir nomidan unga shartsiz o‘tish amalga oshiriladi. Nishonga shartsiz o‘tish goto operatori yordamida bajariladi. goto operatori orqali faqat, uning o‘zi joylashgan funksiya ichidagi operatorlarga o‘tish mumkin.
Yuqorida bayon etilgan fikrlarni tekshirish uchun C++ dasturlash tilida shartsiz o‘tish operatoridan foydalangan holda, bir nechta misollarni ko‘rib chiqamiz.
1-misol. n butun son berilgan. Agar n soni 10 dan katta bo‘lsa, n ning kvadrat ildizi topish, aks holda n sonini qayta kiritishni so`rovchi dastur.
Berilgan masalaning dastur kodi quyidagicha:
#include
#include
using namespace std;
int main(){
int n;
x: cout<<"n= "; cin>>n;
if (n>10) cout<
else {
cout<<"Qayta kiriting \n"; goto x;
}
}
2-misol. ax2+bx+c=0 kvadrat tenglama ildizlarini topish dasturi.
Berilgan masalaning dastur kodi quyidagicha:
#include
#include
using namespace std;
int main()
{
int a, b, c;
float d, x1, x2;
cout <<" ax^2+bx+c=0 tenglama ildizini topish dasturi!";
z: cout<<"\n a - koeffitsientni kiriting: ";
cin>>a;
cout<<"\n b - koeffitsientni kiriting: ";
cin>>b;
cout<<"\n c - koeffitsientni kiriting: ";
cin>>c;
if (a==0) {
cout<<" kvadrat tenglama emas\n qayta kiriting"; goto z; } else
{
d = b*b - 4 * a * c;
if (d<0)
{ cout << " tenglama haqiqiy ildizlarga ega emas\n qayta kiriting";
goto z; }
if (d==0)
{
cout << " tenglama yagona ildizga ega: ";
x1=x2= -b / (2 * a);
cout<<"\n x= "<
}
else
{
cout << " tenglama ikkita ildizga ega: ";
x1 = (- b + sqrt(d)) / (2 * a);
x2 = (- b - sqrt(d)) / (2 * a);
cout<<"\n x1= "<
cout<<"\n x2= "<
}
}
return 0;
}
Mustaqil bajarish uchun topshiriqlar
1. x va y butun sonlar berilgan. Ularning hech bo‘lmaganda bittasi toq ekanligini tekshiruvchi dastur tuzing.
2. Berilgann x, y, z butun sonlardan musbatlarining kubini chiqaruvchi dastur tuzing.
3. Uchta haqiqiy son berilgan. Ushbu sonlar uchburchakning tomonlarini tashkil etishini tekshiruvchi dastur tuzing.
4. Quyidagi misolni dasturini tuzing:
5. Quyidagi misolni dasturini tuzing:
6. To`rtta haqiqiy son berilgan. Ulardan bittasi qolgan uchtasidan ishorasi bilan farq qilsa, shu farq qiluvchi sonning tartib raqamini aniqlovchi dastur tuzing.
7. Ox va Oy o‘qlarida yotmaydigan nuqta koordinatalari berilgan. Uning qaysi chorakka tegishli ekanligini aniqlovchi dastur tuzing.
8. To‘g‘ri sanani ifodalovchi kabisa bo‘lmagan yilning (k) kuni va (o) oyi butun sonlar ko‘rinishida berilgan. Berilgan sanadan keyingi sanani topuvchi dastur tuzing.
9. Uch xonali a va b sonlar oralig‘idagi avtomashina davlat raqamini bildiruvchi butun son berilgan. U sonni satr ko‘rinishda chiqaruvchi dastur tuzing.
10. Kvadrat tenglamani to`la tekshiruvchi dastur tuzing.

2.2-§. C++ dasturlash tilida takrorlanuvchi jarayonlar


Ba’zi bir misol va masalalarning parametrlarini o‘zgarishiga qarab ma’lum hisoblashlar bir necha marta takrorlanib, bajarilishi talab etiladi. Ushbu jarayonlarni amalga oshirishda takrorlanuvchi operatorlardan foydalaniladi. Masalan, funksiyada x ning bir nechta qiymatlarini hisoblashni va berilgan ikkita oraliqdagi sonlarni yoki qatorlarni yig‘indisi, ko‘paytmasi kabi amallarni dasturlash talab etilgan bo`lsin. Bu kabi dasturlarni shartli o‘tish operatori yordamida ham dasturlash mumkin. Ammo takrorlanuvchi operatorlardan foydalanilsa, hisoblash vaqti ma’lum darajada tejaladi. Shu bois, C++ dasturlash tilida takrorlanuvchi jarayonlarni dasturlash uchun for, while, do-while, break, continue operatorlar mavjud. Ushbu operatorlarning imkoniyatlarini quyida ko`rib chiqamiz.

Download 1.27 Mb.

Do'stlaringiz bilan baham:
1   ...   11   12   13   14   15   16   17   18   ...   45




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling