Ïîìîãíè íè äà íàïðàâèì Uroci.net ïî - áîãàò! Äîáàâè óðîê
Êàòåãîðèè Äðóãè óðîöè Adobe Photoshop Adobe Illustrator Adobe Flash Adobe Fireworks DreamWeaver CSS è HTML Corel Draw Image Ready PHP SEO CMS Microsoft Windows Microsoft Word Microsoft Excel PowerPoint Microsoft Access Microsoft Publisher Linux Visual basic JavaScript Ajax 3ds Max Maya 3D C++
C++
Sound Forge Gimp SWiSH

Ñ++ ÷àñò.2 (Òèïîâå äàííè)

C++ » C++
fix3d   òðóäíîñò:    âèäÿí: 8099


Ãëàâà 2: Òèïîâå äàííè â Ñ++.

Ñúäúðæàíèå íà âòîðà ãëàâà :
2.1. Êîíñòàíòíè ñòîéíîñòè
2.2. Ïðîìåíëèâè
2.3. Óêàçàòåëíè òèïîâå
2.4. Ñúîòíàñÿùè òèïîâå (reference types)
2.5. Êîíñòàíòíè òèïîâå
2.6. Èçáðîèìè òèïîâå
2.7. Òèï ìàñèâ
2.8. Òèï êëàñ


Åçèêúò Ñ++ ïðåäëàãà íàáîð îò ïðåäâàðèòåëíî äåôèíèðàíè òèïîâå äàííè, îïåðàòîðè çà îáðàáîòêàòà èì, êàêòî è íÿêîëêî îïåðàòîðè çà ïðîãðàìåí êîíòðîë. Òåçè åëåìåíòè îïðåäåëÿò àçáóêàòà, ÷ðåç êîÿòî ìîãàò äà áúäàò íàïèñàíè ìíîæåñòâî ãîëåìè ñèñòåìè, ïðèëîæèìè â ðåàëíèÿ ñâÿò. Íà òîâà áàçèñíî íèâî Ñ++ å åäèí ïðîñò åçèê. Íåãîâàòà èçðàçèòåëíà ñèëà ñå óâåëè÷àâà ÷ðåç ïîääúðæàíåòî íà ìåõàíèçìè, êîèòî ïîçâîëÿâàò íà ïðîãðàìèñòà äà äåôèíèðà íîâè äàííîâè ñúâêóïíîñòè.

Ïúðâàòà ñòúïêà ïðè óñâîÿâàíåòî íà Ñ++ - ðàçáèðàíåòî íà áàçèñíèÿ åçèê - å òåìà íà òàçè è ñëåäâàùàòà ãëàâà. Òàçè ãëàâà îáñúæäà ïðåäâàðèòåëíî äèôèíèðàíèòå òèïîâå äàííè ïîÿñíÿâà ìåõàíèçìà çà êîíñòðóèðàíå íà íîâè òèïîâå äàííè, äîêàòî ãëàâà 2 ðàçãëåæäà ïðåäâàðèòåëíî äåôèíèðàíèòå îïåðàöèè è îïåðàòîðè. Òåêñòúò íà ïðîãðàìàòà, êîÿòî ïèøåì, êàêòî è äàííèòå, êîèòî îáðàáîòâàìå, ñà çàïèñàíè â ïàìåòòà íà êîìïþòúðà êàòî ïîñëåäîâàòåëíîñò îò áèòîâå. Âñåêè áèò ïðåäñòàâëÿâà åäèíè÷íà êëåòêà, êúäåòî ìîãàò äà ñå ñúäúðæàò ñòîéíîñòèòå 0 èëè 1. Íà ôèçè÷åí åçèê òåçè ñòîéíîñòè ñà åëåêòðè÷åñêè çàðÿäè, ñúîòâåòñòâóâàùè íà “off” èëè “on”. Îáèêíîâåíî ÷àñò îò ïàìåòòà íà êîìïþòúðà èçãëåæäà òàêà:

...00011011011100010110010000111011...

Ñúâêóïíîñòòà îò áèòîâå íà òîâà íèâî íÿìà ñòðóêòóðà. Òðóäíî å äà ñå ãîâîðè çà òîçè ïîòîê îò áèòîâå ïî êîéòî è äà å ñìèñëåí íà÷èí.

Âúðõó ïîñëåäîâàòåëíîñòòà îò áèòîâå ñå íàëàãà ñòðóêòóðà êàòî ñå ñ÷èòà, ÷å òå ñà ãðóïèðàíè â áàéòîâå è äóìè. Íàé - îáùî êàçàíî, áàéòúò å ñúâêóïíîñò îò 8 áèòà. Îáèêíîâåíî åäíà äóìà ñå îáðàçóâà îò 16 èëè 32 áèòà. Ðàçìåðúò íà áàéòà è äóìàòà âàðèðàò ìåæäó ðàçëè÷íèòå êîìïþòðè. Çà òåçè ñòîéíîñòè ÷åñòî ñå êàçâà, ÷å ñà ìàøèííî çàâèñèìè. Ôèãóðà 1.1. ïîêàçâà ãîðíàòà ïîñëåäîâàòåëíîñò îò áèòîâå, îðãàíèçèðàíà â ÷åòèðè àäðåñèðóåìè ðåäèöè îò áàéòîâå.

Îðãàíèçàöèÿòà íà ïàìåòòà íè ïîçâîëÿâà äà ñå îáðúùàìå êúì ïîäõîäÿùà ñúâêóïíîñò îò áèòîâå. Ïî òàêúâ íà÷èí âå÷å å âúçìîæíî äà ãîâîðèì çà äóìàòà íà àäðåñ 1024 èëè çà áàéòà íà àäðåñ 1040, êîåòî íè ïîçâîëÿâà äà êàçâàìå íàïðèìåð, ÷å áàéòà íà àäðåñ 1032 íå å ðàâåí íà áàéòà îò àäðåñ 1048.

Íî âñå îùå íå å âúçìîæíî äà ñå ãîâîðè ñìèñëåíî çà ñúäúðæàíèåòî íà áàéòà íà àäðåñ 1032. Çàùî? Çàùîòî íå çíàåì êàê äà èíòåðïðåòèðàìå íåãîâàòà áèòîâà ïîñëåäîâàòåëíîñò. Çà äà ãîâîðèì çà çíà÷åíèåòî íà áàéòà îò àäðåñ 1032, íèå òðÿáâà äà çíàåì òèïà íà ñòîéíîñòòà, êîÿòî å ïðåäñòàâåíà.

Àáñòðàêöèÿòà íà òèïîâåòå íè ïîçâîëÿâà äà ïðàâèì ñìèñëåíà èíòåðïðåòàöèÿ íà áèòîâà ïîñëåäîâàòåëíîñò ñ ôèêñèðàíà äúëæèíà. Ñèìâîëèòå, öåëèòå è ðåàëíèòå ÷èñëà ñà ïðèìåðè çà

1024 0 0 0 1 1 0 1 1
1032 0 1 1 1 0 0 0 1
1040 0 1 1 0 0 1 0 0
1048 0 0 1 1 1 0 1 1

Àäðåñèðóåìà ìàøèííà ïàìåò, òèïîâå äàííè.

Äðóãè òèïîâå ñà àäðåñèòå â ïàìåòòà è ìàøèííèòå èíñòðóêöèè, êîèòî óïðàâëÿâàò ðàáîòàòà íà êîìïþòúðà.

Ñ++ ïðåäëàãà åäèí ïðåäâàðèòåëíî äåôèíèðàí íàáîð îò òèïîâå íà äàííè, êîéòî ïîçâîëÿâà ïðåäñòàâÿíåòî íà öåëè è ðåàëíè ÷èñëà è íà ñàìîñòîÿòåëíè ñèìâîëè.

Òèïúò char ìîæå äà áúäå èçïîëçóâàí çà ïðåäñòàâÿíå íà åäèíè÷íè ñèìâîëè èëè ìàëêè öåëè ÷èñëà. Çàïèñâà ñå â åäíà ìàøèííà äóìà.

Òèïúò int ñå èçïîëçóâà çà ïðåäñòàâÿíå íà öåëè ñòîéíîñòè. Îáèêíîâåíî ñå çàïèñâà â åäíà ìàøèííà äóìà.

Ñ++ ïðåäëàãà ñúùî short è long integer òèïîâå. Ôàêòè÷åñêèÿò ðàçìåð íà òåçè òèïîâå å ìàøèííî çàâèñèì. Òèïîâåòå char, short, int è long ñå íàðè÷àò öåëè òèïîâå. Öåëèòå òèïîâå ìîãàò äà áúäàò ñúñ èëè áåç çíàê (signed/unsigned). Ðàçëèêàòà ñå ïðîÿâÿâà â ïðåäíàçíà÷åíèåòî íà íàé-ëåâèÿ áèò íà òèïà. Àêî òèïúò èìà çíàê, íàé-ëåâèÿò áèò ñå èíòåðïðåòèðà êàòî çíàêîâ áèò, à îñòàíàëèòå áèòîâå ïðåäñòàâÿò ñòîéíîñòòà. Àêî òèïúò ïðåäñòàâÿ áåç çíàêîâà ñòîéíîñò, âñè÷êè áèòîâå îïðåäåëÿò ñòîéíîñòòà. Àêî çíàêîâèÿò áèò èìà ñúäúðæàíèå 1, ñòîéíîñòòà ñå èíòåðïðåòèðà êàòî îòðèöàòåëíà; àêî å 0, êàòî ïîëîæèòåëíà. Åäèí 8-áèòîâ signed char ìîæå äà ïðåäñòàâè ñòîéíîñòèòå îò -128 äî 127; à unsigned char - îò 0 äî 255.

Òèïîâåòå float è double ïðåäñòàâÿò ðåàëíè ÷èñëà ñ åäèíè÷íà è äâîéíà òî÷íîñò. Îáèêíîâåíî òèïúò float ñå ïðåäñòàâÿ â åäíà äóìà, à double - â äâå. Èñòèíñêèÿò ðàçìåð å ìàøèííî çàâèñèì. Èçáîðúò íà òèïà äàííè ñå îïðåäåëÿ îò ðàçìåðà íà ñòîéíîñòèòå, êîèòî òðÿáâà äà áúäàò çàïèñâàíè. Íàïðèìåð, àêî ñòîéíîñòèòå íèêîãà íå íàäõâúðëÿò 255 è íå ñà ïî-ìàëêè îò 0, òîãàâà òèïúò unsigned char å ïîäõîäÿù. Îáà÷å, àêî ñå î÷àêâà ñòîéíîñòèòå äà íàäõâúðëÿò 255, å íåîáõîäèìî äà ñå èçáåðå íÿêîé îò ïî-ãîëåìèòå äàííîâè òèïîâå.

Òðåòèÿò òèï äàííè, ïðåäñòàâÿù ðåàëíè ÷èñëà long double, âåðîÿòíî ùå áúäå äîáàâåí â áëèçêî áúäåùå. Long double å ïðåäëîæåí çà âêëþ÷âàíå êúì ñòàíäàðòà íà åçèêà C ANSI.

2.1. Êîíñòàíòíè ñòîéíîñòè

Êîãàòî â äàäåíà ïðîãðàìà ñå ïîÿâÿâà ñòîéíîñò êàòî 1, íàïðèìåð, òÿ ñå ïðèåìà çà ëèòåðàëíà êîíñòàíòà: ëèòåðàëíà, çàùîòî ìîæåì äà ãîâîðèì çà íåÿ ñàìî êàòî çà ñòîéíîñò, êîíñòàíòà, çàùîòî ñòîéíîñòòà é íå ìîæå äà áúäå ïðîìåíÿíà. Âñåêè ëèòåðàë èìà ñúîòâåòåí òèï. 1, íàïðèìåð å îò òèï int. 3.14159 å ëèòåðàëíà êîíñòàíòà îò òèï double. Ñ÷èòàìå ëèòåðàëíèòå êîíñòàíòè çà íåàäðåñèðóåìè; âúïðåêè, ÷å òÿõíàòà ñòîéíîñò å ðàçïîëîæåíà íÿêúäå â ïàìåòòà, äîñòúïúò äî òîçè àäðåñ íå å ñúùåñòâåí.

Öåëèòå ëèòåðàëíè êîíñòàíòè ìîãàò äà áúäàò íàïèñàíè â äåñåòè÷åí, îñìè÷åí èëè øåñòíàäåñåòè÷åí âèä. ( Òîâà íå ïðîìåíÿ áèòîâîòî ïðåäñòàâÿíå íà ñòîéíîñòòà.) Ñòîéíîñòòà 20, íàïðèìåð, ìîæå äà áúäå çàïèñàíà ïî åäèí îò ñëåäíèòå òðè íà÷èíà:

20 // äåñåòè÷åí
024 // îñìè÷åí
0õ14 // øåñòíàäåñåòè÷åí

Âîäåùàòà íóëà çà ëèòåðàëíà êîíñòàíòà îò öÿë òèï óêàçâà, ÷å êîíñòàíòàòà å îò îñìè÷åí òèï. Ïðåäñòàâÿíå, èçïîëçóâàùî 0õ èëè 0Õ â íà÷àëîòî íà êîíñòàíòàòà, óêàçâà, ÷å òÿ å â øåñòíàäåñåòè÷åí çàïèñ. (Ïðèëîæåíèå À îáñúæäà îòïå÷àòâàíåòî íà ñòîéíîñòè â îñìè÷åí è øåñòíàäåñåòè÷åí çàïèñ).

Âñÿêà öÿëà ëèòåðàëíà êîíñòàíòà ìîæå äà áúäå äåôèíèðàíà îò òèï long ÷ðåç çàïèñâàíå íà L èëè l ñëåä ñòîéíîñòòà é. (Áóêâàòà L ìîæå äà áúäå ãëàâíà èëè ìàëêà). Èçïîëçóâàíåòî íà ìàëêà áóêâà l íå ñå ïðåïîðú÷âà, ïîíåæå ëåñíî ìîæå äà áúäå ñáúðêàíà ñ öèôðàòà 1. Ïî ïîäîáåí íà÷èí öÿëà ëèòåðàëíà êîíñòàíòà ìîæå äà áúäå äåôèíèðàíà êàòî unsigned ÷ðåç äîáàâÿíå íà U èëè u ñëåä ñòîéíîñòòà é. Ëèòåðàëíà êîíñòàíòà îò òèï unsigned long ìîæå ñúùî äà ñå äåôèíèðà. Íàïðèìåð,

128u 1024UL 1L 8Lu
Ðåàëíèòå ëèòåðàëíè êîíñòàíòè ìîãàò äà áúäàò çàïèñâàíè ÷ðåç åêñïîíåíòà èëè ïî îáè÷àéíèÿ íà÷èí. Ïðè ïúðâîòî ïðåäñòàâÿíå åêñ-ïîíåíòàòà ìîæå äà áúäå çàïèñàíà êàòî ñå èçïîëçóâàò áóêâèòå Å èëè å. Ðåàëíà ëèòåðàëíà êîíñòàíòà ìîæå äà áúäå äåôèíèðàíà è îò òèï float ÷ðåç çàïèñâàíå íà F èëè f ñëåä ñòîéíîñòòà é. Åòî íÿêîëêî ïðèìåðà çà ðåàëíè ëèòåðàëíè êîíñòàíòè:

3.14159F 0.1f 0.0
3e1 1.0E-3 2.

Ïå÷àòóåìèòå ëèòåðàëíè ñèìâîëíè êîíñòàíòè ìîãàò äà áúäàò çàïèñàíè ÷ðåç çàãðàæäàíåòî íà ñèìâîëà â åäèíè÷íè êàâè÷êè. Íàïðèìåð,

‘a’ ‘2’ ‘,’ ‘ ‘ (blank)

Íåïå÷àòóåìèòå ñèìâîëè, åäèíè÷íèòå èëè äâîéíèòå êàâè÷êè, êàêòî è îáúðíàòàòà íàêëîíåíà ÷åðòà ìîãàò äà áúäàò ïðåäñòàâåíè ÷ðåç ñëåäíèòå escape - ïîñëåäîâàòåëíîñòè:

newline n
horizontal tab t
vertical tab v
backspace b
carrige return r
formfeed f
alert (bell) a
backslash
question mark ?
single quote ’
double quote "

Ìîæå äà áúäå èçïîëçóâàíà è îáîáùåíà escape - ïîñëåäîâàòåëíîñò. Òÿ èçãëåæäà òàêà:

îîî

êúäåòî îîî ïðåäñòàâëÿâà ïîñëåäîâàòåëíîñò îò åäíà, äâå èëè òðè îñìè÷íè öèôðè. Ñòîéíîñòòà, ïðåäñòàâåíà ÷ðåç îñìè÷íèòå öèôðè, ïðåäñòàâëÿâà ÷èñëåíàòà ñòîéíîñò íà ñèìâîëà â ñèìâîëíèÿ íàáîð íà ìàøèíàòà. Ïðèìåðèòå, êîèòî ñëåäâàò, ïðåäñòàâëÿâàò ëèòåðàëíè êîíñòàíòè, êàòî ñå èçïîëçóâà ñèìâîëíèÿ íàáîð ASCII:

7 (bell) 14 (newLine)
� (null) �62 (‘2’)

Âñÿêà íèçîâà ëèòåðàëíà êîíñòàíòà ïðåäñòàâëÿâà ñúâêóïíîñò îò íóëà èëè ïîâå÷å ñèìâîëà, îáãðàäåíè ñ äâîéíè êàâè÷êè. Íåïå÷àòóåìèòå ñèìâîëè ìîãàò äà áúäàò ïðåäñòàâÿíè ÷ðåç òåõíèòå escape - ïîñëåäîâàòåëíîñòè. Íèçîâ ëèòåðàë ìîæå äà çàåìå íÿêîëêî ðåäà îò òåêñòà íà ïðîãðàìàòà. Îáðàòíàòà íàêëîíåíà ÷åðòà êàòî ïîñëåäåí ñèìâîë íà ðåäà óêàçâà, ÷å íèçîâèÿò ëèòåðàë ïðîäúëæàâà íà ñëåäâàùèÿ ðåä. Ñëåäâà ïðèìåð çà íèçîâè ëèòåðàëíè êîíñòàíòè:

"" (null string)
"a"
"nCCtoptionstfile:[cC]n"
"a multi-line
string literal signal its
continuation with a backslash"

Íèçîâèÿò ëèòåðàë å îò òèï ìàñèâ îò ñèìâîëè. Òîé ñå ñúñòîè îò íèçîâ ëèòåðàë è îãðàíè÷àâàùèÿ ñèìâîë null, äîáàâåí îò êîìïèëàòîðà. Íàïðèìåð, äîêàòî ‘a’ ïðåäñòàâÿ åäèíè÷íèÿ ñèìâîë à, òî “a” ñå çàïèñâà êàòî ñèìâîëà à, ñëåäâàí îò ñèìâîëà null. Ñèìâîëúò null ñå èçïîëçóâà çà îòáåëÿçâàíå íà êðàÿ íà íèçà.


Ñòðàíèöè: 1 2 3 4 »

Ðåãèñòðèðàéòå ñå, çà äà äîáàâèòå êîìåíòàð

ðåêëàìà

© Âñè÷êè ïðàâà çàïàçåíè. 2006-2008. Created by: Site.bg
Ïðåïîðú÷âàìå: IT Íîâèíè | Êèíî è èãðè | Äèïëîìà.áã | Paparak.bg | Òóíèíã Ïîðòàë | uchenik.com | TRAVEL òóðèçúì | Ðåôåðàòè | AmAm.bg | Èäå.ëè | Êóðñîâè ðàáîòè | AnimeS-bg.com | Ôîòî Ôîðóì | Çàïîçíàíñòâà | Ìðåæà îò ïðèÿòåëè | IT Light | Spodeli.net | Ôîòî-Êóëò | IDG.BG | Teenproblem.net | Áëîã - Îáðàçîâàíèå | Fresh-BG.com | Hanovete.com | Bulfleet.com | Mythlands.com | Ohoboho.com | Êàçàíëúê.Com | News24 | Setcom.bg | Atol.bg | Elmaz.com | MobileBulgaria.com