1 дәріс. Объектілі бағытталған бағдарламалау түсінігі


дәріс Object Pascal тіліндегі құрылымдық типтер



бет13/36
Дата11.12.2021
өлшемі79,06 Kb.
#99042
1   ...   9   10   11   12   13   14   15   16   ...   36
Байланысты:
ОББ

4 дәріс

Object Pascal тіліндегі құрылымдық типтер

Жолдар.

Жол типінің түрлері 9-шы кестеде берілген:

9 кесте. Жол типтерінің түрлері

Атауы

Мәндері

Жадыдағы орны

Түрі

ShortString

Символдардың қысқа жолы

2 байт ... 256 байт

Негізгі

AnsiString

ANSI кодты символдар жолы

4 байт .. 2 Гбайт

Негізгі

WideString

Unicode кодты символдар жолы

4 байт .. 2 Гбайт

Негізгі

String

Символдардың ұзын жолы

4 байт .. 2 Гбайт

Жалпы

PChar

Соңында #0 символы бар жол

4 байт .. 2 Гбайт

Негізгі

Кезкелген жолды бір өлшемді символдар жиымы деп қарастыруға болады. Келесі мысалдарда символдардан қысқа және ұзын жолдарды құрастырудың және оны Edit1 редакторынан көрсетудің екі тәсілі келтірілген.
procedure TForm1.Button1Click(Sender: TObject);

var i: byte; s: ShortString;

begin

For i:=65 to 90 do



s[i-64]:= Chr(i);

Edit1.Text:= s;

end;
procedure TForm1.Button1Click(Sender: TObject);

var i:Word; s:string;

begin

s:='1'; Randomize;



For i:=2 to 1000 do

s:=s+chr(Random(2)+48);

Edit1.Text:=s;

end;
Жоғарғы мысалда s қысқа жолы латын әліппесінің ретімен алынған 26 бас әрпінің тіркесінен тұрады, ал төменгі мысалда s ұзын жолы саны 1000-ға тең кездейсоқ ‘0’-дер мен ‘1’-лерден құралады.



PChar типті жолдар Windows операциялық жүйесінің API-функцияларын тікелей пайдаланғанда ғана керек. Ал WideString типті жолдар 2 байттық Unicode символдарынан құралатындықтан, олар OLE-технологиясын пайдаланатын Windows – программаларда ғана қолданылады.

Жолдарға қолданылатын стандарт процедуралар мен функциялардың негізгілері 10 кестеде келтірілген (s – string, i – integer, r – real, c – char, cur – currecy, dt – TDateTime, ext – extended).



10 кесте. Жолдарға қолданылатын стандарт процедуралар мен функциялар

Жазылуы

Нәтиже типі

Атқаратын қызметі







Ф: AnsiLowerCase(x: s)

s

Бас әріптер кіші әріптермен ауысады







Ф: AnsiUpperCase(x: s)

s

Кіші әріптер бас әріптермен ауысады







Ф: Concat(x1,x2,...,xn : s)

s

x1, x2, … , xn жолдарының тіркесі







Ф: Copy(x: s, p,n: i)

s

p-дан бастап n символды көшіреді







П: Delete(x: s, p,n: i)




p-дан бастап n символды өшіреді







П: Insert(x1,x2: s, p: i)




x2-ге x1-ді p-дан бастап енгізеді







Ф: Length(x: s)

i

x-тің ұзындығын береді







Ф: Pos(x1,x2: s)

i

x1-дің x2-дегі позициясын береді







П: SetLength(x: s, d: i)




x-тің d жаңа ұзындығын қояды







Ф: StringOfChar(ch: c, n: i)

s

Ch символын n рет қайталайды







Ф: StrToCurr(x: s)

cur

x-ті Currecy типті бүтінге түрлендіреді







Ф: StrToDate(x: s)

dt

x-ті күн жадына түрлендіреді







Ф: StrToDateTime(x: s)

dt

x-ті күн жады мен уақытқа түрлендіреді







Ф: StrToFloat(x: s)

ext

Ф: StrToDateTime(x: s)

dt

x-ті күн жады мен уақытқа түрлендіреді

Ф: StrToInt(x: s)

i

x-ті бүтін санға түрлендіреді







Ф: StrToTime(x: s)

dt

x-ті уақытқа түрлендіреді







П: Val(x: s, n: i,r, code: i)




x-ті санға түрлендіріп n-ге береді







Ф: DateTimeToStr(x: dt)

s

Күн жады, уақытты жолға түрлендіреді







П: DateTimeToString

(x: s, Format: s, v: dt)






Күн жады мен уақытты берілген пішім бойынша жолға түрлендіріп v-ға береді







Ф: DateToStr(v: dt)

s

Күн жадын жолға түрлендіреді







Ф: FloatToStr(x: ext)

s

Нақты санды жолға түрлендіреді







Ф: FormatDateTime

(Format: s, v: dt)



s

Күн жады мен уақытты берілген пішім бойынша жолға түрлендіреді







Ф: FormatFloat

(Format: s, v: ext)



s

v нақты санын берілген пішім бойынша жолға түрлендіреді







Ф: IntToHex(x: i, v: i)

s

Бүтін санды 16-лық сандар пішімдегі жолға түрлендіреді







Ф: IntToStr(x: ii)

s

Бүтін санды жолға түрлендіреді







П: Str(san:n:d, x: s )




san нақты санын берілген пішімде жолға түрлендіріп x–ке береді







Жиымдар.

Жиым типтері бірдей және индекстері бойынша реттелген шекті элементтердің жиынтығы болып табылады. Оның элементінің типі кезкелген болуы мүмкін. Жиым типінің сипатталу пішімі төмендегідей болады:

<Типтің аты> = array [индекс типі] of <элемент типі>;

ObjectPascal тілінде индекс типі үшін LongWord және Int64 типтерінен басқа кезкелген ретті тип алынады. Жиым типін сипаттамай оның айнымалысын анықтай беруге рұқсат етіледі. Жиымның белгілі бір элементін пайдалану үшін оның атын, сонан соң, тік жақшаның ішіне индексін жазу керек Мысалы:


Type TMas1 = array [0 .. 99] of real;

TMas2 = array [Word] of string;

Var mas1: TMas1; mas2: TMas2;

mas: array [‘A’ .. ‘Z’] of integer;

k: integer; ch: Char;

......................................…………………………………….

mas1[0]:=2.15; mas1[45]:=2.21; mas1[99]:=8.46;

mas2[100]:= ‘Undo’; mas2[145]:= ‘Clear’; mas2[500]:= ‘Press’;

for k=65 to 90 do

begin ch:=chr(k); mas[ch]:= 2*k+31; end;


Жиымның типі жиым болуы мүмкін. Мысалы,
Type TMat = array[1..3] of array[byte] of integer;

Var Mat1: TMat;


сипаттауында Mat1 жиымы 3 элементтен құралған, ал олардың әрқайсысы 256 integer мәнінен тұратын жиым болуы тиіс. Бұл сипаттауды мына пішімде жазған қолайлы:

Type TMat = array[1..3, byte] of integer;
Бұл жағдайда жиым екі өлшемді деп аталады да, элементі екі индекспен анықталады. Осындай тәсілмен көп өлшемді жиымдарды құруға болады.

Барлық параметрлері бірдей сипатталған екі жиымның біреуін екіншісіне меншіктеуге болады, бірақ салыстыруға болмайды. Мысалы:


Var Ma, Mb: array[0..5, 1..6] of real;

begin


………….

Ma:= Mb;


………….

end.
Бірдей сипатталған екі жиымды сәйкес элементтері бойынша салыстыруға болады. Жиымдарды енгізудің, экранға (баспаға) шығарудың, түрлендірудің немесе оларға амалдар қолданудың арнайы алгоритмдері бар.

ObjectPascal тілінде динамикалық жиымдар жиі қолданылады. Бұл жиымның ерекшелігі сол, оны анықтау кезінде индекстер типі көрсетілмейді. Мысалы,
Var M: array of string;

N: array of array of Char;


Программада SetLength операторымен жиым элементтерінің санын енгізгеннен кейін динамикалық жиымдарды пайдалана беруге болады. Мысалы, M жиымы үшін 20 элемент қажет болса SetLength(M, 20) операторы жазылуы тиіс. N жиымы үшін ең әуелі бірінші өлшемінің ұзындығы, сонан соң, екінші өлшемінің ұзындықтары қойылады. Динамикалық жиым элементтерінің нөмірлері 0-ден басталуы тиіс, мысалы:
SetLength(N, 4);

SetLength(N[0], 3); SetLength(N[1], 5);

SetLength(N[2], 6); SetLength(N[3], 4);

Жазулар.

Саны шекті, әртүрлі типті компоненттерден тұратын мәліметтер құрылымын жазба деп атайды. Компоненттер өріс деп аталады және оларды айыру үшін ат беріледі. Сипатталу әдісіне қарай жазба тұрақты және нұсқалы болып екі түрге бөлінеді. Жазба типін сипаттаудың пішімі:




Достарыңызбен бөлісу:
1   ...   9   10   11   12   13   14   15   16   ...   36




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

    Басты бет