Ajiniyoz nomidagi nukus davlat pedagogika


-§. Texnologiyalarning qiyosiy taxlili


Download 296.57 Kb.
Pdf ko'rish
bet15/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

2-§. Texnologiyalarning qiyosiy taxlili 

 

Paskal va C++ tillari alifbosi, o`zgaruvchilari, operatoralri  va dastur tuzish 



tartibini ko`rib o`tdik. Buning natijasida biz quydagi o`xshashlik va farqlarni 

kuzatdik.Dastur ishlashi jarayonida xotiradan kamroq joy egallashi dasturning tez 

ishlashiga olib keladi. Bu muammolar dasturdagi o'zgaruvchilar sonini kamaytirish, 

yoki o'zgaruvchilar saqlanadigan yacheyka hajmini kamaytirish orqali erishiladi

.

 

Pascal  dasturlash  tilida  o`zgaruvchilarni  nomlanishi  va  qiymatlar  oralig`i  quydagicha 



bo`ladi. 

Hаqiqiy  (kаsr)  qiymаtli  tipgа  tegishli  o’zgаruvсhilаrni  e’lоn  qilish  uсhun  Real, 



Single, Double, Extended vа Comp  хizmаtсhi so’zlаridаn fоydаlаnish mumkin. 

Хаmmа  хаrflаr,  belgi  vа  rаqаmlаr,  mаsаlаn  A,  b,  ",  !,  $,  S    belgili  tipgа 

tegishlidir.  Belgili  tipni  qаbul  qiluvсhi  o’zgаruvсhilаrni  e’lоn  qilish  uсhun  Char 

хizmаtсhi so’zidаn fоydаlаnish mumkin. 

Аgаr  kоmp’yuterdа  mаtemаtik  sоprоsessоr  bo’lmаsа,  fаqаt  Real  tipiniginа 

ishlаtish mumkin. Хаqiqiy sоnlаrgа dоir quyidаgi misоlni ko’rаylik: 

 

 

Tip ko’rinishi 



Mаzkur 

tipli 


o’zgаruvсhining 

qаbul 


qilаdigаn qiymаt оrаlig’i 

O’zgаruvсhining  kоmp’yuter 

хоtirаsidаn egаllаydigаn jоyi 

Real 

2.9E-39..1.7E38 

6 bаyt 

Single 

1.5E-45..3.4E38 

4 bаyt 

Double 

5.0E-324..1.7E308 

8 bаyt 

Extended 

3.4E-4932..1.1E4932 

10 bаyt 

Comp 

-9.2E18..9.2E18 

8 bаyt 

 

Butun qiymаtli tiplаrning  bаrсhаsi quyidаgi jаdvаldа keltirilgаn:  

 



 

 

35 



 

Tip ko’rinishi 

Mаzkur  tipli  o’zgаruvсhining 

qаbul  qilаdigаn  qiymаtlаr 

оrаlig’i 

O’zgаruvсhining 

kоmp’yuter 

хоtirаsidаn 

egаllаydigаn jоyi 

ShortInt 

-128..127 

8 bit 

Integer 

-32768..32767 

16 bit 

LongInt 

-2147483648.. 2147483647 

32 bit 

Byte 

0..255 


8 bit 

Word 

0..65535 

16 bit 

 

C++  da  butun  va  haqiqiy  sonlarni  e'lon  qilish  uchun  bir  nechta  toifalar  mavjud.  Ular 



bir -  biridan kompyuter xotirasida qancha hajm egallashi va qabul qiluvchi qiymatlar 

oralig'i bilan farq qiladi. 

Butun sonlar musbat va manfiy raqamlardan tashkil topgan sonlardir, haqiqiy 

sonlar esa kasr ko‘rinishidagi musbat va manfiy sonlardir. Simvollar esa tushunarli, 

simvollardan tashkil topgan qiymatlardir. Quyida tiplarning to‘liq ro‘yxati (nomi, 

hajmi, qiymati)ni ko‘rishingiz mumkin 

Butun sonlar 

unsigned short int  0..65535 2   bayt 

short int          –32768..32767 2   bayt 

unsigned long int 0..42949667295 4   bayt 

long int –2147483648..2147483647 4   bayt 

int (16 razryadli) –32768..32767 2   bayt 

int (32 razryadli) –2147483648..2147483647 4   bayt 

unsigned int (16 razryadli)0..65535 2   bayt 




 

 

36 



 

unsigned int (32 razryadli)0..42949667295 4   bayt 

C++ tilida yana bitta butun qiymatlarni oluvchi o`zgaruvchi taifasi bo`lib bu C++ tiliga 

qo`shimcha ravshda o`rnatililadi. 

Bu  gigonteger bo`lib hajim qiymati 4 GB ni tashkil qiladi. 

#include "BigIntegerLibrary.hh" 

 

    BigInteger a = 65536; 



    cout << (a * a * a * a * a * a * a * a); 

 

(prints 340282366920938463463374607431768211456) 



 

Misol: 10 ning 100 darajasini hisoblash. 

 

#include "stdafx.h" 



using namespace System; 

#using  

using namespace System::Numerics; 

  

int main() 



    int a = 10; 

    int b = 100; 

    auto r = BigInteger::Pow(a, b);  

    Console::WriteLine(r); 

    Console::ReadLine(); 

    return 0; 




 

 

37 



 

 

Haqiqiy sonlar 



float 1.2Е–38..3.4Е38 4 bayt 

double 2.2Е–308..1.8Е308 8 bayt 

long double (32 razryadli) 3.4e-4932..-3.4e4932 10 bayt 

C++ tilida yana bitta haqiyqiy qiymatlarni oluvchi o`zgaruvchi taifasi bo`lib bu C++ 

tiliga qo`shimcha ravshda o`rnatililadi. 

Bu  gigdemical bo`lib hajim qiymati 4 GB ni tashkil qiladi 

#include  

#include  

 

using namespace std; 



 

int main() 

  { 


    std::decimal::decimal32 dn(.3), dn2(.099), dn3(1000), dn4(201); 

    dn-=dn2; 

    dn*=dn3; 

    cout << "decimal32 = "  << (dn==dn4) << " : " << decimal32_to_double(dn) << 

endl; 

  } 


 

  { 


    std::decimal::decimal64 dn(.3), dn2(.099), dn3(1000), dn4(201); 

    dn-=dn2; 




 

 

38 



 

    dn*=dn3; 

    cout << "decimal64 = "  << (dn==dn4) << " : " << decimal64_to_double(dn) << 

endl; 


  } 

 

  { 



    std::decimal::decimal128 dn(.3), dn2(.099), dn3(1000), dn4(201); 

    dn-=dn2; 

    dn*=dn3; 

    cout << "decimal128 = " << (dn==dn4) << " : " << decimal128_to_double(dn) << 

endl; 

  } 


 

  return 0; 

Mantiqiy ifoda 



bool true yoki false 1 bayt 

Belgilar 

char 0..255 1 bayt 

void 2 yoki 4 

Har xil toifadagi o'zgaruvchilar kompyuter xotirasida turli xajmdagi baytlarni 

egallaydi. Xattoki bir toifadagi o'zgaruvchilar ham qaysi kompyuterda va qaysi 

operatsion sistemada ishlashiga  qarab turli  o'lchamdagi xotirani  egallashi mumkin. 

 C++ da ixtiyoriy toifadagi o'zgaruvchilarning o'lchamini sizeof funksiyasi orqali 




 

 

39 



 

 aniqlash  mumkin.  Bu funksiyani  o'zgarmasga, biror toifaga  va o'zaruvchiga qo'llash 

mumkin. 

 Toifalarni  kompyuter xotirasida egallagan  xajmini  aniqlash : 

 

#include 



int main () 

cout<<"char="<

cout<<"bool="<

cout<<"int="<

cout<<"float="<

cout<<"double="<

system ("Pause"); 

return 0; 

}   

 

Program  misol; 



Var 

  I : Longint; 

  S : String [10]; 

begin 


  Writeln (SizeOf(I));  { Prints 4  } 

  Writeln (SizeOf(S));  { Prints 11 } 

end. 

 



 

 

40 



 


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