Mavzu: C++ tilining konstruksiyasi va dasturni translatsiya qilish bo’limi asosida elektron saxifa yaratish



Download 152,5 Kb.
bet2/11
Sana06.05.2020
Hajmi152,5 Kb.
#49284
1   2   3   4   5   6   7   8   9   10   11
Bog'liq
C tilining konstruksiyasi va dasturni translatsiya qilish bo’limi asosida elektron saxifa yaratish

Hajmi yoki qiymati

C ++

Shortlnt

8 bit butun son

imzolangan char

Smalllnt

16 bitli butun son

qisqa

Longlnt

butun son 32 bit

int

Bayt

imzosi bo'lmagan 8 bit

imzolanmagan char

So‘z

imzosi bo'lmagan 16 bit

imzosi qisqa

Butun son

butun son 32 bit

int

Kardinal

imzosi bo'lmagan 32 bit

imzosi yo'q int

Boolean

rost, yolg'on yoki

bool

Baytool

haqiqiy, yolg'on yoki 8 bitdan iborat bo'lmagan butun son

imzolanmagan char

Wordbool

haqiqiy, yolg'on yoki imzosiz 16 bit

imzosi qisqa

Longbool

haqiqiy, yolg'on yoki imzosiz butun son 32 bit

BOOL (WinAPI)

Ansichar

8 bit imzolanmagan belgi

char

Widechar

so'z o'lchamidagi unikod belgisi

wchar_t

Char

8 bit imzolanmagan belgi

char

Ro'yxatdan o'tish

AnsiString Delphi

Ro'yxatdan o'tish

Satr [n]

eski Delphi liniyasi uslubi, n = 1..255 bit

SmallString

Qisqa chiziq

eski Delphi liniyasi uslubi, 255 bit

SmallString <255>

Qator

AnsiString Delphi

Ro'yxatdan o'tish

Yagona

32 bit suzuvchi nuqta raqami

suzuvchi

Ikkita

64 bit suzuvchi nuqta raqami

ikki baravar

Kengaytirilgan

80 bit suzuvchi nuqta

uzoq juftlik

Haqiqiy

32 bit suzuvchi nuqta raqami

ikki baravar

Ko'rsatkich

umumiy ko'rsatkich 32 bit

bo'shliq *

Pchar

32 bitli belgilar ko'rsatkichi

imzolanmagan char *

PAnsiChar

ANSI 32 bitli ko'rsatgich

imzolanmagan char *

Komp

64 bit suzuvchi nuqta raqami

Komp

Olevariant

variant ole qiymati

Olevariant

Kalit so'zlar

Shuni ta'kidlash kerakki, C ++ harflar uchun katta ahamiyatga ega, OP dan farqli o'laroq, bunday emas.



C ++

#define #elif #else #endif #error #if #ifdef #ifndef #include #line #pragma #printf #undef avto-break case case char class const const_cast davom eting odatiy o'chirish ikki tomonlama dinamikani o'zgartiring, boshqa soxtalashtirishdan tashqari, tashqi do'st soxta oxirida suzadi. agar inline int uzoq mutable ismlar maydoni yangi operator xususiy himoyalangan jamoat registri reinterpret_cast return qisqa imzolangan o'lcham static static_cast tuzilmani o'zgartirish shabloni, bu otish haqiqiy urinish tipedef typeid ittifoqi virtual bo'shliqlardan foydalanmasdan imzolanmagan va xalloc yangi o'chirish paytida.

OP

ABSOLUTE VA ARRAY ASM ASSEMBLER BOOLEAN BYTE Case CHAR COMP CONST Konstruktori Quruvchi DIV DO DOUNTLE DOWNTO ELSE SON HALT FALSE FALSIYA TO'G'RISIDA O'TKAZILDI FUNKSIYA FAOLIYATINI MUHOFAZA QILIShGA TAKLIF BERADI? SHL ShORTINT SHR YANGI TEKSHIRUVNI TO'G'RISIDA NAZORAT QILMOQDA, HOR WORD XOR BILAN VERT VURTUAL FOYDALANING

Operator oxirining belgilari

C ++
Ko'pgina iboralar nuqta-vergul bilan tugaydi;


Garchi bir nechta istisnolar mavjud bo'lsa-da. Masalan, sarlavha fayllarini ulashda nuqta-vergul talab qilinmaydi
#include "foo.h" // nuqta-vergul bilan tugamaydi;
# belgilangan MAXNAMELENGTH 35     // shuningdek, nuqta-vergul bilan tugamaydi;

OP
Barcha iboralar nuqta-vergul bilan tugaydi; C ++

o'zgarmaydigan deklaratsiya o'zgaruvchining maksimal uzunligi 32 belgidir - bu uzoqroq bo'lishi mumkin, ammo faqat birinchi 32 ta belgi tan olinadi. O'zgaruvchilar kodning istalgan joyida e'lon qilinishi mumkin va shunga mos ravishda o'zgaruvchilar ishlatiladigan joygacha e'lon qilinishi kerak. // ... ba'zi kod ... char sName [10]; int iCount, iLoop, iValToReach; juft dMaxLoan, dTotal; float fMaxRate = 123.875; OP 63 ta belgining maksimal o'zgaruvchan uzunligi - ko'proq bo'lishi mumkin, ammo faqat birinchi 63 ta belgi tan olinadi. O'zgaruvchilar " var " blokida protsedura yoki funktsiya boshida yoki ob'ektni belgilashda funktsiyalar va protseduralar deklaratsiyasidan oldin e'lon qilinishi kerak, o'zgaruvchilar qiymatlari var blok ichida o'rnatilishi mumkin emas . // ... ba'zi kod ... funktsiyasi PayBack_d ( var dAmount: double): double ; var iCount, iLoop, iValToReach: butun son ; dMaxLoan, dTotal, dMaxRate: juft ; dMaxRate boshlang : = 123.875; ... chiziqlar

C ++
C ++ qatorlarida maxsus satr mavjud emas. Satrlar nol bilan tugaydigan belgilar qatori sifatida ko'rib chiqiladi ('\ 0'). Chiziqning o'lchamlari cheksiz bo'lishi mumkin (nazariy jihatdan maksimal xotira hajmi). Chiziqqa ko'rsatgich orqali chiziqdagi birinchi belgigacha kirish mumkin. Satrning qiymati bu birinchi belgining manzili. Shunday qilib, biz C ++ tilida ko'rsatgich - satrning birinchi belgisiga ishora deb aytishimiz mumkin. Shu ma'noda, satrlar massivlarga o'xshaydi, chunki massiv ham uning birinchi elementiga ishora qiladi. Qator belgilar qatori yoki char * tipining o'zgaruvchisi sifatida e'lon qilinishi mumkin. Quyidagi deklaratsiyalarning har biri to'g'ri:


char sName [26]; // 25 ta belgi va NULL
char psDemo [] = "Salom, u erda!";
char * psDemo = yangi char [26];

Simlarni qayta ishlash uchun bir qator kutubxona funktsiyalari mavjud. Ularning asosiylari strcat - bir-biriga bog'lash (yopishtirish), strcmp - ikkita satrni taqqoslash, strcpy - bitta satrni boshqasiga nusxalash, strstr - satrda berilgan substratni qidirish, strlen - satr uzunligini aniqlash, strupr - satr belgilarini bosh harfga, sprintfga o'zgartirish - berilgan formatlash satriga va argumentlar ro'yxatiga va boshqa bir qator funktsiyalarga chiziq qurish.

OP

 

Delphi Paskal torlari deb nomlanuvchi 255 belgidan iborat uzunlikdagi deyarli cheksiz (2 Gb gacha) torlarni qo'llab-quvvatlaydi. $ H kompilyatorining yangi yo'riqnomasi sizga ajratilgan so'z satridan foydalanish ma'nosini boshqarish imkoniyatini beradi. Ushbu ko'rsatmaning standart holati ($ H +) uzun satrlarni satr turi sifatida ishlatishni nazarda tutadi. $ H - 255 belgili qisqa paskal satrlaridan foydalanishni anglatadi. Delphi-ning barcha tarkibiy qismlari uzun iplardan foydalanadi. Shuni ta'kidlash kerakki, $ H direktivasining holatidan qat'i nazar, agar satrning maksimal uzunligi 255 dan kam bo'lsa, unda qisqa satr (ShortString) nazarda tutiladi. Kvadrat qavslardan foydalanib satr uzunligini belgilash har doim ShortString pastki turini anglatadi. Delphi 2.0-da taqdim etilgan uzun iplar ko'p hollarda eski tipdagi torlarga mos keladi. Bunday holda, ulardan foydalanishning quyidagi xususiyatlarini hisobga olish kerak:



  • Uzoq chiziqlar uchun xotira dinamik ravishda ajratilgan. Uzun simlar - bu uyumda saqlanadigan qatorlarga ishora. Qator uzunligini o'zgartirganda, Delphi32 xotirani qayta taqsimlaydi. Xotira menejeri xotirani shu hududda qayta taqsimlashga harakat qilayotganligi sababli, u har doim ham buni amalga oshira olmaydi. Shuning uchun, satr uzunligini oshirish uchun Delphi 2.0-ga kiritilgan SetLength protsedurasidan foydalaning, agar imkon bo'lsa, xotirani qayta taqsimlang.

  • Uzun satrlar avtomatik ravishda # 0 bilan tugaydi, shuning uchun siz null bilan tugagan satrni qayta ishlashda foydalangan ushbu satrlar bilan ishlash usullaridan foydalanishingiz mumkin. Shuning uchun, endi Delphi qisqa satrlarni qo'llab-quvvatlasa ham, StrPCopy kabi ishlash funktsiyalaridan foydalanishning hojati yo'q

  • Delphi har bir uzun chiziq uchun foydalanish hisoblagichiga ega. Bu shuni anglatadiki, agar sizning dasturingizda satr nusxasi bo'lsa (masalan, uni protseduraga simli parametr sifatida o'tkazish), satrga havolalar soni avtomatik ravishda ko'payadi. Keyingi satr nusxasini ishlatish tugaganda, ya'ni foydalanish hajmi oshib ketganda, foydalanish hisoblagichi avtomatik ravishda kamayadi. Foydalanish hisoblagichi nolga teng bo'lganda, chiziq uchun ajratilgan xotira avtomatik ravishda bo'shatiladi

Darhaqiqat, uzun chiziqlar takrorlanmaganligi va ular uchun hisoblagichlardan foydalanilganligi sababli, uzun chiziqlarni tayinlash qisqa chiziqlarga qaraganda ancha tezroq. Stringlar bilan ishlashda ishlatiladigan kodning ko'p qismi qisqa va uzun satrlar uchun o'zaro ishlashga ega bo'lishiga qaramay (ya'ni bu har ikki tur uchun ham amal qiladi), ammo qisqa satrlarda ba'zi operatsiyalar uzun satrlarga qo'llanilmaydi. Uzun satrlarni OpenString yoki qisqa satrlarga mos keladigan var-parametrlar parametrlariga o'tkazish mumkin emas.

Massivlar

Massivlar bir xil ma'lumot turlarining tartiblangan ketma-ketliklari (ob'ektlarni ham o'z ichiga olishi mumkin). C ++ va OP-da massivni e'lon qilish usullari boshqacha.

C ++
massivlari "nolga asoslangan" - birinchi element [0] element, ikkinchi element [1], uchinchi element [2] va boshqalar. Bu har doim yangi boshlanuvchilarni chalkashtiradi. Array
deklaratsiyasi:
ikki tomonlama Array [31];
Foydalanish:
for (int i = 30, j = 29; i> 0; i -, j--)
      Array [i] = Mass [j];

OP
1-elementdagi massivning boshlanishi ... lekin har doim ham emas Delphi-da nolga asoslangan komponentlar va C ++ kabi ob'ektlar mavjud. Masalan, elementlari noldan boshlanadigan TL ro'yxati. Siz e'lon qilgan har qanday massiv bitta narsaga asoslanadi.

var ArrayS: qator [1..31] juft;
i, j: butun son;
 
boshlash
    j: = 30;
       i uchun: = 31 2 downto qilasiz
          boshlanadi
              massivida [i] = massivida [j];
              Dek (j); {yoki j: = j-1; }
         oxiri; 
......

Ikkala til ham ko'p o'lchovli qatorlarni qo'llab-quvvatlaydi.

C ++

juft dMatriks [50] [20];



OP

dMatriks: qator [1..50, 1..20] juft;

O'zgaruvchilarni tenglashtirish va taqqoslash

C ++


Taqqoslash "ikki baravar" (==) operatori tomonidan bajarilib, bitta (=) ga tenglashtiriladi.

int i, j;


agar (i == j) // taqqoslash
.....
i = j; // tenglashtirish
....

OP

Taqqoslash "teng" (=) operatori bilan amalga oshiriladi, yo'g'on ichak + bitta tenglashtiriladi (: =)



...
agar dMaxRate = 15.75 bo'lsa, unda
     boshlang ...
            dMaxRate: = 12.5;  
               ... 
     oxiri;
OPdagi qoida uchun istisno o'zgaruvchini doimiyga tenglashtirishdir. Bunday holda bitta (=) tenglik qo'llaniladi

Doimiylarning deklaratsiyasi

Konstantalar o'zgarmas qiymatlardir. Aniqlovchi C ++ va OP da ham doimiy sifatida e'lon qilinishi mumkin. Ikkala C ++ va OP konstantalari ular e'lon qilinganida qiymatlar berilishi kerak.

C ++


Ma'lumotlar turidan oldin doimiylikni e'lon qilganda, const
const int
iMax = 2000 kalit so'zidan foydalaniladi;
const double dMaxValue = 1234.75;

S ++ da barqarorlikni preprosessor direktivasi orqali ham aniqlash mumkin #define


#define MAXA 1000

ammo amalda u eskirgan. Tuzuvchi turni tekshirishni amalga oshira olmasligi sababli (u ini yoki double ekanligini aniqlay olmaydi)

OP

Konstantalar, o'zgaruvchilar singari, "const" kod blokida protsedura yoki funktsiya ta'rifi, ta'rifi yoki ob'ekt deklaratsiyasining boshida e'lon qilinishi kerak.



PayBack_d funktsiyasi ( var dAmount: double): double ;


Download 152,5 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9   10   11




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

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish