Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
fife' < 'tree' {себебі 'f'<'t'}; 4 > '237' {себебі '4' > '2'}.⇐ ПредыдущаяСтр 31 из 31
Жолдық типтегі шамалар ү шін логикалық <, >, = операциялардан басқ а коммутативті емес біріктіру операциясы анық талғ ан, ол плюс таң басы арқ ылы белгіленеді: а: ='кол ' + 'о'+'кол'; { нә тижеде а='колокол'} Жолдық шамалар ү шін келесі тө рт стандартты функциялар анық талғ ан: · біріктіру - concat(s1, s2,.., sk); функцияның мә ні - s1, s2,..., sk жолдарды біріктіру нә тижесі, егер ол қ амтығ ан символдар саны 255-тен аспайтын болса; · ерекшелеу - copy(s, i, k); s жолдан i -ші символдан бастап k символдар ерекшелінеді: а: =сору('крокодил', 4, 3); { нә тижеде а='код'}; · жолдың ұ зындығ ын анық тау - length(s); s жолдың ағ ымдағ ы мә нін қ ұ райтын символдар саны есептеледі: b: =length('автоматика'); { b=10 }; · позицияны анық тау - pos(s, t); s жол t жолғ а бірінші рет кірген позиция нө мірі есептеледі; егер s жол t жол қ ұ рамына кірмеген болса, онда нә тиже 0-ге тең: с: =pos('ом', 'компьютер'); {с=2}. Сонымен қ атар, Паскальда жолдық шамаларды ө ндеуге арналғ ан тө рт стандартты процедуралар анық талғ ан: · жою - delete(s, i, k); s жолдан i -ші символдан бастап k символдар жойылады: s: ='таракан'; delete(s, 5, 2); { нә тижеде s='таран'}; · кірістіру - insert(s, t, i); i -ші позициядан бастап s жол t жолғ а кірістіріледі t: ='Tapaн’; insert('ка', t, 5); {t='таракан'}; · санды символдар жолына тү рлендіру - str(k, s). k санына апострофтарды қ осу арқ ылы s жолы пайда болады: str(564, s); {s='564'}; · цифрлардан тұ ратын жолды санғ а тү рлендіру - val(s, k, i); егер s жолда цифрлардан ө зге символдар болмаса і саны i=0, керісінше жағ дайда i цифрдан ө зге бірінші символдың позициясына тең: val('780', k, i); {k=780; i=0}. Р24 программасында жолдық шамаларды пайдаланып 100 символдан аспайтын мә тіндегі дауысты ә ріптер саны анық талады. Бұ л жерде 18 кіші жә не ү лкен ә ріптерден тұ ратын тұ рақ ты-жолды анық тап, берілген мә тіннің кезекті символы тұ рақ ты-жолдың элементі болатындығ ын цикл ішінде тексерген ың ғ айлы. Р25 программасында sqr функциясы ехр функцияғ а алмастырылады, оғ ан delete жә не insert процедураларын ретімен қ олдану арқ ылы қ ол жеткізеді. Р26 программасында 10 латын сө здері енгізіліп алфавит бойынша реттеледі. 10 элемент-жолдардан тұ ратын массив анық талғ ан жә не оның элементтері кө піршік ә дісі арқ ылы реттелген.
10.4 Жалғ ау операторы (with) Жазбаларғ а қ олданылатын операцияларда жазбаның ө рістеріне қ ысқ аша сілтеу жасау ү шін жалғ ау операторды (with) пайдаланғ ан ың ғ айлы. Жалғ ау операторда жазба типтегі бір немесе бірнеше нақ тылы айнымалылардың ө рістеріне тек ө рістердің идентификаторларын ғ ана пайдаланып сілтеу жасауғ а болады. Жалғ ау оператордың синтаксисі келесідей: with операторғ а мысал келтірейік: with Date do if month = 12 then begin month: = 1; year: = year + 1 end else month: = month + 1; Бұ л келесіге эквивалентті: if Date.month = 12 then begin Date.month: = 1; Date.year: = Date.year + 1 end else Date.month: = Date.month + 1; Жалғ ау операторында алдымен айнымалығ а жасалатын ә р сілтеуді тексеру орындалады, атап айтқ анда: оны жазбаның ө рісі ретінде интерпретациялауғ а болады ма. Егер ол ондай болмаса, онда ол ә рдайым дә л солай интерпретацияланады, тіпті егер дә л сондай атаулы айнымалығ а қ ол жеткізу орын алатын болса да. Келесі айнымалылар жарияланғ ан болсын дейік: Type Point = record x, y: integer; end; var x: Point; y: Integer; Бұ л жағ дайда х-ке де у-ке де айнымалығ а немесе жазбаның ө рісіне сияқ ты сілтеу жасауғ а болады. Операторда: with x do begin x: = 10; y: = 25; end; with жә не dо кілттік сө здердің арасындағ ы х нұ сқ ағ ыш типтегі айнымалығ а қ атысты, ал қ ұ рама операторда x пен y x.x пен y.y –терге сілтеп тұ р. with V1, V2,...Vn do s; о ператор келесі операторларғ а эквивалентті. with V1 do with V2 do ... with Vn do S; Екі жағ дайда да, егер Vn - v1-дің де v2-нің де ө рісі болып табылса, онда ол v1.Vn емес v2.Vn ретінде интерпретацияланады. Егер жазба типтегі айнымалыны таң дап алу индекстелген массив немесе нұ сқ ағ ышты есептеумен байланысты болатын болса, онда бұ л амалдар қ ұ рама операторының орындалуынан бұ рын орындалады. Сонымен, with оператор жазбаның ө рістеріне, сонымен қ атар, объекттің ө рістеріне, ә дістеріне жә не қ асиеттеріне сілтеу жасауды қ ысқ артуғ а мү мкіндік береді. Ол келесі тү рге ие: with жазба немесе объект аталуы do оператор немесе with атаулар тізімі do оператор Оператордың ішінде кө рсетілген жазбаның ө рісіне сілтеу жасағ анда жазба аталуын немесе кө рсетілген объекттің ө рісіне, ә дісіне немесе қ асиетіне сілтеу жасағ ан кезде объект аталуын тастап кетуге болады. Мысалы, келесі айнымалы сипатталғ ан болсын: var DateOfBirthday=record Day: Integer; Month: Integer; Year: Integer; end; Онда with операторын пайдаланбай оның ө рістеріне мә ндерді меншіктеу тү рі: DateOfBirthday.Day: =23; DateOfBirthday.Month: =2; DateOfBirthday.Year: =1965; with операторын пайдалану арқ ылы алдың ғ ы жазуды қ ысқ артуғ а болады: with DateOfBirthday do begin Day: =23; Month: =2; Year: =1965; end; Егер сыртқ ы айнымалының аталуы ө ріс (ә діс, қ асиет) аталуымен бірдей болатын болса, онда басымдылық ө ріске (ә діске, қ асиетке) беріледі. Бір-бірінің ішіне салынғ ан with операторлар орын алғ ан жағ дайда алдымен айнымалыны ең ішкі with оператордың жазбаның немесе объекттің ө рісі ретінде қ арастыру ә рекеті жасалады, одан кейін тікелей оны қ оршағ ан with оператордың жә не с.с. Егер with оператор объекттердің тізімін қ амтитын болса, онда олар оң жақ тан сол жақ қ а қ арай қ арастырылады. Мысалы, егер келесі сипаттаулар болса: var x, y, z: integer; a: record x, y: integer; end; b: record x: integer; end; онда программаның келесі фрагменті: with a, b do begin x: =1; y: =2; z: =3; end; келесі фрагментке эквивалентті: with a do with b do begin x: =1; y: =2; z: =3; end; сонымен қ атар жә не келесі фрагментке эквивалентті b.x: =1; a.y: =2; z: =3;
|