Ajiniyoz nomidagi nukus davlat pedagogika
-§. Texnologiyalarning qiyosiy taxlili
Download 296.57 Kb. Pdf ko'rish
|
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 .
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:
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
2.9E-39..1.7E38 6 bаyt
1.5E-45..3.4E38 4 bаyt
5.0E-324..1.7E308 8 bаyt
3.4E-4932..1.1E4932 10 bаyt
-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
-128..127 8 bit
-32768..32767 16 bit
-2147483648.. 2147483647 32 bit
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<<"int="< cout<<"float="< cout<<"double="< system ("Pause");
return 0; }
I : Longint; S : String [10];
begin
Writeln (SizeOf(S)); { Prints 11 } end.
|
ma'muriyatiga murojaat qiling