Ajiniyoz nomidagi nukus davlat pedagogika


Inkrement va decrement amallari


Download 296.57 Kb.
Pdf ko'rish
bet16/17
Sana16.11.2021
Hajmi296.57 Kb.
#175221
1   ...   9   10   11   12   13   14   15   16   17
Bog'liq
pascal va c dasturlash tillarini qiyosiy tahlil qilish metodikasi

Inkrement va decrement amallari 

Pascal  tilida butun turdagi operatorlarni bittaga oshirish va bittaga kamaytirishning  

samarali vositalari mavjud. Ortrish  uchun n:=0; deb boshlang`ich qiymatni berib olib 

keyin n:=n+1; har safar qiymat birga oshib boradi. Kamaytirish uchun  ko`rinishda 

n:=10; deb boshlang`ich qiymatni berib olib keyin n:=n-1;  har safar birga kamayib 

boradi. 


  C++  tilida butun turdagi operatorlarni bittaga oshirish va bittaga kamaytirishning  

samarali vositalari mavjud. Bular inkrement (“++”) va decrement (“--”) unar 

amallaridir.  

Operatorlarga nisbatan bu amallarning prefix va  papostfiks ko`rinishlari bo`lad. 

Prefiks ko`rinishida  amal til ko`rsatmasi bo`yicha ish bajarilishidan  oldin operandga 

qo`llaniladi. Postfiks xolatda esa amal til ko`rsatmasi bo`yicha ish bajarilgandan keyin 

operandga qo`llaniladi.[8] 

Prefix yoki postfiks amal tushunchasi qiymat berish va boshqa amallar bilan bog`liq 

ifodalarda o`rinli: 

x=y++                     // postfiks inkrement 

index =--i;             // prefix decrement 

count++;             // undan amal, “++count;” bilan ekvivalent 

abc--;                 // undan amal, “--abc;” bilan ekvivalent 

Bu erda y o`zgaruvchining qiymatini x o`zgaruvchiga o`zlashtiriladi va keyin bittaga 

oshiriladi, i o`zgaruvchining qiymati bittaga kamaytirib, index o`zgaruvchga 

o`zlashtiriladi. O`zgaruvchilarning aniq bir qiymatlari uchun misol: 

int s=10, i=5; 



 

 

41 



 

s+=++i;             //s=16 va i=6 

s+=i++;            // s=22 va i=7. 

C++ tilini o`zgaruvchilarni  har bir qiymat uchun alohida elon qilish hajim va vaqtda 

ancha yutuq beradi 

Oliy matematika kursidagi tanish masalalar tanlab olib, Pacal va C++ tilarida   tilarida 

dastur tuzib, ularning farqlarini ko`rib o`tamiz. [12,13] 

 

1-masala. Ikki butun musbat son m va n larning eng katta umumiy bo’luvchisi 

(EKUB) ni aniqlash dasturini tuzing. 

Dastur matni  

program ekub; 

var m,n,x,y:ineteger;  

Function 

ekub(a,b:integer):integer; 

Begin 


If a<>0 then 

ekub:=ekub(b mod a, a) 

else ekub:=b; 

End; 


begin 

write('m=');read(m); 

write('n=');read(n); 

write('x=',ekub(n,m)); 

end. 

 

C++da dasturu: 

 

#include 

#include 

int ekub(int aa, int bb){ 

  return 

aa!=0?ekub(bb%aa,aa):bb; 



int main(){ 

int a,b; 

cin>>a>>b; 

cout<

getch(); 



 

Bu ikki misolda ham bir xil 

natijaga ega bo`lamiz. 

Lekin C++ dagi bu kod 

orqali 

aa!=0?ekub(bb%aa,aa):bb; 

pascaldagi If operatori 

ichidagi vazifani bajarib 

dastur hajmini va vaqttidan 

yutiq C++ da. 

 



 

 

42 



 

2-masala. Ikkita x va y sonlarning kattasini tanlash (EKT) dacturini tuzing. 

program ekt; 

var m,y,x:ineteger;  

begin 

write('x=');read(x); 



write('y=');read(y); 

if x>y then begin 

m:=x; write('m=',m); 

end 


else if y>x then begin 

m:=y; write('m=',m); 

end 

else write('‘PAUSE’’); 



end. 

 

C++  da dasturu: 

#include                    

      Int main() 

int m,y,x; 



cout<<”x=”;cin>>x; 

cout<<”y=”;cin>>y; 

if (x==y) 

cout<<("Bu sonlar teng"); 

if (x>y)  m=x; cout <<"m=" <

if (x

cout <<"x1=" <

system("PAUSE"); 

return 0; 

 



Qiyosiy taqoslash 

Bu ikki misolda ham 

bir xil natijaga ega 

bo`lamiz. Lekin C++ 

dagi bu kod orqali 

if (x>y)  m=x; cout 



<<"m=" <if (x

b/(2*a);

pascaldagi If 

operatori ichidagi 

vazifani bajarib 

dastur hajmini va 

vaqttidan yutiq 

pascalda. 


Download 296.57 Kb.

Do'stlaringiz bilan baham:
1   ...   9   10   11   12   13   14   15   16   17




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