4-мavzu. Mantiqiy dasturlash texnologiyasi. Reja



Yüklə 0,69 Mb.
Pdf görüntüsü
səhifə2/10
tarix17.04.2023
ölçüsü0,69 Mb.
#99079
1   2   3   4   5   6   7   8   9   10
4-ma\'ruza

Mulohazalar 
Mulohazalar ustida amallar 


!A 
A&&V 
A||V 




















Rostlik jadvali. 
 
Mantiqiy tur qiymatlari ustida mantiqiy ko’paytirish, qo’shish va inkor amallarini 
qo’llash orqali murakkab mantiqiy ifodalarni qurish mumkin. Misol uchun, «x–manfiy va y 
ning qiymati [-1..3] sonlar oralig’iga tegishli emas» mulohazasining mantiqiy ifodasi 
quyidagicha bo’ladi: (x<0&& (u<-1) || (y>3). 
Masala. Tekislikda markazining koordinatalari 
y
x,
, radiusi 
r
bo’lgan aylana, hamda nuqta 
0
,
0
y
x
koordinatalari bilan berilgan. Berilgan nuqtaning aylanaga tegishli ekanligini 
aniqlovchi algoritm va dastur tuzilsin.
#include  
#include  
#include  
using namespace std; 
int main(int argc, char *argv[]) 
{ float x,y,r,x0,y0; 
/*Aylana markazining koordinatalari va radiusini 
kiritish*/ 
cin>>x>>y>>r; 
/*Berilgan nuqta koordinatalarini kiritish*/ 
cin>>x0>>y0; 
/*Berilgan nuqtaning aylana ichida yotishlik shartini 
tekshirish*/ 
bool b=r>=sqrt(pow(x-x0,2) +pow(y-y0,2)); 
//Natijani chiqarish 
cout<<"b="<system("PAUSE"); 
return EXIT_SUCCESS;}
Funksiy algoritmi 
Berilgan masalalar uchun mantiqiy mulohazalar bajarilganda 1 (rost), aks holda 0 
(yolg’on) qiymat qaytaruvchi algoritmlar va dasturlar tuzilsin: 
Ko’pgina masalalar yuzaga keladigan turli holatlarga bog’liq ravishda qaror qabul 
qilishni talab etadi. Bu borada C++ tili dasturning alohida bo’laklarining bajarilish tartibini 
boshqarishga imkon beruvchi qurilmalarning etarlicha katta majmuasiga ega. Masalan, dastur 
bajarilishining birorta qadamida qandaydir shartni tekshirish natijasiga ko’ra boshqaruvni 


dasturning u yoki bu bo’lagiga uzatish mumkin (tarmoqlanuvchi algoritm). Bunday 
tarmoqlanishni amalga oshirish uchun shart operatorlaridan foydalaniladi. 
 
if operatori:if operatori qandaydir shartni rostlikka tekshirshi natijasiga ko’ra dasturda 
tarmoqlanishni amalga oshiradi: 
if ( );
Bu erda mantiqiy turga tegishli o’zgaruvchi yoki mantiqiy ifoda bo’lishi 
mumkin. 
Agar shart 0qiymatidan farqli, ya’ni rost bo’lsa, <operator> bajariladi, aks holda, ya’ni 
shartning qiymati 0(yolg’on) bo’lsa, hech qanday amal bajarilmaydi va boshqaruv if operatoridan 
keyingi operatorga o’tadi (agar u mavjud bo’lsa).
C++ tilining qurilmalari operatorlarni blok ko’rinishida tashkil qilishga imkon beradi. 
Blok – ‘{‘ va ‘}’ belgilar oralig’iga olingan operatorlar ketma-ketligi bo’lib, u kompilyator 
tomonidan yaxlit bir operator deb qabul qilinadi. Blok ichida o’zgaruvchilar e’lonlari ham 
bo’lishi mumkin va blokda e’lon qilingan o’zgaruvchilar faqat shu blok ichida (ko’rinadi) amal 
qiladi, blokdan tashqarida (ko’rinmaydi) amal qilmaydi. Blokdan keyin ‘;’ belgisi qo’yilmasligi 
mumkin, lekin blok ichidagi har bir ifoda ‘;’ belgisi bilan yakunlanishi shart. 
If – else operatori:Shart operatorining if – else ko’rinishi quyidagicha: 
if () ; else
Bu erda 0qiymatidan farqli, ya’nirost bo’lsa , aks holda 
bajariladi. If-else shart operator mazmuniga ko’ra algoritmning tarmoqlanuvchi 
blokini ifodalaydi. 
?: shart amali:Agar tekshirilayotgan shart nisbatan sodda bo’lsa, shart amalining ‘?:’ 
ko’rnishiniishlatishmumkin: 
 ?  : 
Ushbu shart amali if shart operatoriga o’xshash ko’rinishda ishlaydi: agar  
0qiymatidan farqli, ya’nirostbo’lsa, , aks holda bajariladi. Odatda 
ifodalarningqiymatlari biror o’zgaruvchiga o’zlashtiriladi. 
Goto operatori va nishonlar:Nishon – bu davomida ikkita nuqta (‘:’) qo’yilgan 
identifikator. Nishon bilan qandaydir operator belgilanadi va keyinchalik dasturning boshqa bir 
qismidan unga shartsiz o’tish amalga oshiriladi. Nishon bilan har qanday operator belgilanishi 
mumkin, shu jumladan e’lon operatori va bo’sh operatorlar ham. Nishon faqat funksiyalar ichida 
amal qiladi. 
Nishonga shartsiz o’tish goto operatori yordamida bajariladi. Goto operatori orqali faqat 
uning o’zi joylashgan funksiya ichidagi operatorlarga o’tish mumkin. Goto operatorining 
sintaksisi quyidagicha: 
goto
Ayrim hollarda, goto operatorining «sakrab o’tishi» hisobiga xatoliklar yuzaga kelishi 
mumkin. Masalan, 
int i=0; 
i++; if(i) goto m; 
int j; 
m: j+=i; 
operatorlarining bajarilishi xatolikka olib keladi, chunki jo’zgaruvchisining e’loni chetlab 
o’tilgan. 
Shartsizo’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, foydalanilgan taqdirda ham 
quyidagi qoidalarga amal qilish zarur – blok ichiga, if, if−else va switch operatorlari ichiga, 
hamda takrorlash operatorlari tanasiga tashqaridan “sakrab” 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. 
Masalan: 
… 
goto B3A;
\\
xato
 
float x=0.5; 
goto B3A; \\
to’g’ri
{int n=10;x=n*x+8;} 
B3A: cout<<“x=”<

Yüklə 0,69 Mb.

Dostları ilə paylaş:
1   2   3   4   5   6   7   8   9   10




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin