Дипломдық ЖҰмыс 5B100200 «Ақпараттық қауіпсіздік жүйелері»


Сурет 9 С++ тілінде сандардың факториалын есептейтін программа Сурет 10



бет6/14
Дата19.01.2022
өлшемі1,11 Mb.
#129475
түріДиплом
1   2   3   4   5   6   7   8   9   ...   14
Байланысты:
Дипломдық жұмыс Talgat

Сурет 9 С++ тілінде сандардың факториалын есептейтін программа



Сурет 10 Программаның есептеу жәтижесі

Жоғарыдағы программадағы fact.exe файлы GMP кітапханаларының біріктірілуімен компиляцияланғандықтан, 100 және 150 сандарының факториялын есептеу оңай болды (10 - сурет).



      1. Java-да үлкен сандармен жұмыс жасауға арналған кітапханалар

Java – 1995 жылы 23 мамырда Sun Microsystems компаниясы ойлап тапқан қатаң типтелген объектіге-бағытталған программалау тілі. Бұл тілдегі қосымшалар арнайы байт-кодта компиляцияланатындықтан, олар виртуалды Java-машинасы реализацияланған кез келген компьютер архитектурасында жұмыс істей береді. C++ тіліне қарағанда, Java тілі операторлардың жүктелуін қолдамайды [16].

Кірістірілген примитивті сандық түрлері әрқашанда белгілі бір программаларға сәйкес келе бермейді. Мысалы, программада long және double типтері үшін рұқсат етілген мәндерден өте үлкен сандарды сақтау және пайдалану қажет. Бұл жағдайда сандық деректермен жұмыс істеу үшін java.math бумасының екі қосымша кластарын пайдалануға болады, олар BigInteger (бүтін сандар үшін) және BigDecimal (құбылмалы нүктелі сандар үшін). Бұл кластар тиісінше бүтін және нақты сандарға арналған дәлдіктегі арифметикалық операцияларды жүзеге асырады [17].

Жай санда үлкен санға айналдырғанда ValueOf статикалық әдісі қолданылады:

BigInteger a = BigInteger.valueof(100);

Бұл жағдайда үлкен сандарға +, -, *, / сияқты қарапайым математикалық амалдарының орнына үлкен сандармен жұмыс жасауға арналған осы кластағы add, subtract, multiply және divide әдістері қолданылады.

BigInteger c = a.add(b); // c = a + b

BigInteger d = c.multiply(b.add(BigIneger.value.Of(2))); // d = c * (b + 2)

Кесте 2


BigInteger класының негізгі әдістері [18]:

Әдістер

Әдістердің анықтамасы

BigInteger add (BigInteger other)

екі санның қосындысы (+)

BigInteger subtract (BigInteger other)

екі санның айырмасы (-)

BigInteger multiply (BigInteger other)

екі санның көбейтіндісі (*)

BigInteger divide (BigInteger other)

екі санның бөліндісі (/)

BigInteger mod (BigInteger other):

екі санның бүтін бөлігінен қалдық қайтарады

BigInteger sqrt ()

санның квадрат түбірін қайтарады

int compareTo (BigInteger other)

екі санды салыстырады. Егер:

- ағымдағы нысан other санына тең болса 0-ді қайтарады;

- ағымдағы нысан other санынан аз болса -1-ді қайтарады;

- ағымдағы нысан other санынан көп болса 1-ді қайтарады;



static BigInteger valueOf (long x)

Х-тің мәніне тең үлкен санды қайтарады

int intValue ()

BigInteger нысанын int нысанына айналдырады

byte byteValue ()

BigInteger нысанын byte етіп түрлендіреді

short shortValue ()

BigInteger нысанын short етіп түрлендіреді

long longValue ()

BigInteger нысанын long түрлендіру

Кесте 3

BigDecimal класының негізгі әдістері [19]:



Әдістер

Әдістердің анықтамасы

BigDecimal add (BigDecimal other):

екі санның қосындысы (+)

BigDecimal subtract (BigDecimal other):

екі санның айырмасы (-)

BigDecimal multiply (BigDecimal other):

екі санның көбейтіндісі (*)

BigDecimal divde (BigDecimal other):

екі санның бөліндісі (/)

BigDecimal divide (BigDecimal other, RoundingMode mode):

mode режиміне сәйкес дөңгелектелген екі сандарды бөлу нәтижесі

int compareTo (BigDecimal other):

екі санды салыстырады. Егер:

  • ағымдағы нысан other санына тең болса 0-ді қайтарады;

  • ағымдағы нысан other санынан аз болса -1-ді қайтарады;

  • ағымдағы нысан other санынан көп болса 1-ді қайтарады;

static BigDecimal valueOf (double x):

мәні параметр ретінде берілген санға тең BigDecimal нысанын қайтарады

double doubleValue ():

BigDecimal нысанын double ішіне түрлендіреді

float floatValue ():

bigDecimal нысанын float түрлендіру

BigInteger және BigDecimal кластарының қолданылу мысалын қарастырып кетейін (11 – сурет):



Достарыңызбен бөлісу:
1   2   3   4   5   6   7   8   9   ...   14




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет