Информатика



Download 7,86 Mb.
Pdf ko'rish
bet247/485
Sana11.07.2021
Hajmi7,86 Mb.
#115730
1   ...   243   244   245   246   247   248   249   250   ...   485
Bog'liq
informatika

Leksik analiz.  Kiritilgan ifoda haqiqiy sonligini tekshiruvchi dastur: 

 33-listing.   Output: 

#include  

void Main() 

{ int k=1; m=0; char c; 

while (c!=`\n`) { 

if ((c=`.`) && (m=0)) {m=1; continue }; 

if ((c<`0`) || (c>`9`)) {k=0; break};  } 

if (k) cout<<“\n Haqiqiy son”; else  cout<<“\n Haqiqiy son emas”;} 

 

Keyingi dasturimizda kiritilayotgan ifoda identifikator yoki yo`qligi tekshiriladi: 



 34-listing.  Output: 

#include  

void Main() 

{ int k=0; char c; 

while (c!=`\n`) 

{if (k==-1) break; 

 m=2; 

if  ((c>=`0`) && (c<=`9`)) m=0; 




 

259 


if  ((c>=`a`) && (c<=`Z`)) m=1; 

if (c==`_`) m=1; } 

switch(m) 

{ case 0: if (k==0) k=-1;break; 

case 1: k=1;beak; 

default: k=-1;break; } } 

if (k=-1) cout<<(“\n Identifikator emas”); else  cout<<(“\n Identifikator”); }  

Rekursiv funksiyalar. Rekursiv funksiya deb, o`ziga o`zi murojaat qiluvchi 

funksiyaga aytiladi. Masalan, faktorialni hisoblash funksiyasini keltiramiz: 

 39-listing.  

Output: 


Long fact(int k) 

{if (k<0) return 0; 

if (k==0) return 1; 

return k*fact(k-1); } 

 

Manfiy  argument  uchun  funksiya  0  qiymat  qaytaradi.  Parametr  0  ga  teng 



bo`lsa  funksiya  1  qiymat  qaytaradi.  Aks  holda,  parametr  qiymat  birga 

kamaytirilgan  holda  funksiyaning  o`zi  chaqiriladi  va  uzatilgan  parametrga 

ko`paytiriladi.  Funksiyaning  o`z  -  o`zini  chaqirish  formal  parametr  qiymati  0  ga 

teng  bo`lganda  to`xtatiladi.  Keyingi  misolimizda  ixtiyoriy  haqiqiy  sonning  butun 

darajasini hisoblash rekursiv funksiyasini keltiramiz. 

 40-listing.  

Output: 

Double expo(double a, int n) 

{ if (n==0) return 1; 

if (a==0.0) return 0; 

if (n>0) return a*expo(a,n-1); 

if(n<0) return expo(a,n+1)/a; } 

 

Funksiyaga  expo(2.0,3)  shaklda  murojaat  qilinganda  rekursiv  ravishda 



funksiyaning  ikkinchi  parametri  kamaygan  holda  murojaatlar  hosil  bo`ladi: 


 

260 


Expo(2.0,3),  expo(2.0,2),  expo(2.0,1),  expo(2.0,0).  Bu  murojaatlarda  quyidagi 

ko`paytma  hisoblanadi:  2.0*2.0*2.0*1  va  kerakli  natija  hosil  qilinadi.  Shuni 

ko`rsatib  o`tish  kerakki,  bu  funksiyamizda  noaniqlik  mavjuddir  ya`ni  0.0  ga  teng 

sonning  0  chi  darajasi  0  ga  teng  bo`ladi.  Matematik  nuqtai  nazardan  bo`lsa,  bu 

holda  noaniqlik  kelib  chiqadi.  Yuqoridagi  sodda  misollarda  rekursiyasiz  iterativ 

funksiyalardan  foydalanish  maqsadga  muvofiqdir.  Masalan,  darajani  hisoblash 

funksiyani quyidagicha tuzish mumkin: 

 41-listing.  

Output: 

Double expo(double a, int n) 

{ if (n==0) return 1; 

if (a==0.0) return 0; 

int k=(n>0)?n:-n; 

for(double s=1.0, int i=0; i

if (n>0) return s else return 1/s; } 

 

Rekursiyaga  misol  sifatida  sonni  satr  shaklida    chiqarish  masalasini  ko`rib 



chiqamiz.  Son  raqamlari  teskari  tartibda  hosil  bo`ladi. Birinchi  usulda  raqamlarni 

massivda saqlab so`ngra teskari tartibda chiqarishdir. 

Rekursiv  usulda    funksiya  har  bir  chaqiriqda  bosh  raqamlardan  nusxa olish 

uchun o`z - o`ziga murojaat qiladi, so`ngra oxirgi raqamni bosib chiqaradi. 

 

 

 42-listing. print n in decimal (recursive)  



Output: 

printd(n)    

int n; 

( int i;  

if (n < 0)  

putchar(`-`); 

n = -n; 

if ((i = n/10) != 0) 

 



 

261 


printd(i); 

putchar(n % 10 + `0`); ) 



PRINTD(123) chaqiriqda birinchi funksiya PRINTD  N = 123 qiymatga ega. 

U  12  qiymatni  ikkinchi    PRINTD  ga  uzatadi,  boshqarish  o`ziga  qaytganda    3  ni 

chiqaradi. 




Download 7,86 Mb.

Do'stlaringiz bilan baham:
1   ...   243   244   245   246   247   248   249   250   ...   485




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

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish