UF

 Қатарлар. Символдық мәліметтерді өңдеудің есептерін программалау.

 

 жоспары:

  1. Жолдық түр.
  2. Жолдық айнымалыларға қолданылатын процедуралар мен функциялар

 

Негізгі ұғымдардың сөздігі: қатар, символдар тізбегі, процедура, функция.

Студенттерде қалыптасу керек білім мен дағды:  Паскаль тілінде қатарларды қолданып, программалау дағдыларын меңгеру.

 

 

1. Жолдық түр.

Программалау тілдерінде көптеген жағдайларда символдар тізбектерін қолдану қажет болады. Ол үшін char типін пайдалану ыңғайсыз. Сол себепті символдар тізбегін тұтасымен қарастыру мүмкіндіктерін қарастырған жөн. Бұл жағдайда Паскальда жолдық (String) түр пайдаланылады.

Турбо Паскальда символдар тізбегінен тұратын тұрақтылар – жолдық тұрақты, ал мәндері осы тұрақтылар болатын айнымалылар - жолдық айнымалылар деп аталады.

 

Жолдық  айнымалының сипатталынуы: String [<мәні тұрақты өрнек>].

Мұндағы <мәні тұрақты өрнек> – қатардың ұзындығын білдіреді және көрсетілуі міндетті емес. Қатар ұзындығы көрсетілмеген жағдайда 255-ке тең деп есептелінеді. Өрнектерде жол екі жағынан апострофқа алынып, жолдық тұрақты ретінде қарастырылады.

Жолдық қатарға бөлінген орынның 0-ші байтына осы қатардың ұзындығының мәні жазылады. String типті айнымалыны тип тарауында жариялау арқылы немесе бірден айнымалылар тарауында сипаттауға болады.

Жазылуы: Type <типтің аты> = String [жолдың ең үлкен ұзындығы];

                    Var <айнымалы> : <типтің аты>;

 

                     Var <айнымалылар>: String [жолдың ең үлкен ұзындығы]

Мысалы:

Type   jol = string[6];

Var     Fam : jol;

 Esim : string[15];

Begin

Fam : = ‘Әбдраимқызы’;

Esim : = ‘Айгүл’;               {жолдық айнымалыға меншіктелген жолдық тұрақты}

 

Жолдың байтпен есептелетін ұзындығын анықтау үшін, оның ең үлкен ұзындығына 1- ді қосамыз. Бұл қосымша байт жолдың ең алғашқы позициясына (0-дік) орналасады да, Ord функциясының көмегімен жолдың ұзындығын табуға пайдаланылады. (sise:= ord(str1[0])). Жолдың ұзындығын анықтау үшін арнайы Length функциясы да бар.

Жолдарды өңдеуде ‘+’ таңбасымен белгіленетін конкатенция (жалғастыру) операциясы қолданылады. Нәтижесінде тұтас бір жол алуға алуға пайдаланылады.

              ‘A’+’Б’+’В’+’Г’+’Д’                ->    АБВГД

               ‘1’ + ’+’ +’топ’ +’студенті’     ->    1- топ студенті

Нәтиже жол болғандықтан, ұзындығы  255 символдан аспауы керек.

Жолдық айнымалыларды салыстыру үшін қатынас операцияларды ( = , <  > ,>,>= , < , < =) қолданылады және олардың мәндерінің ұзындықтары бірдей болуы керек.Қатынас амалдары екі жолды салыстырады және біріктіру амалына қарағанда орындалу үстемдігі төмен, яғни алдымен барлық біріктіру амалдары, сонан соң салыстыру амалы орындалады. Салыстыру солдан оңға қарай жүреді. Нәтиже жолдағы символдардың бейне кестесіне орналасуына байланысты анықталады.

                 ‘COSM1’ <= ‘COSM2’     -> True

                 ‘DOS1.0’ < ‘Dos1.0’           -> True

                  ‘a’ < ‘A’                              -> False

         Жолдық айнымалыға символдық өрнектің нәтижесін беру үшін (:=) меншіктеу операторы пайдаланылады.

Мысап.  tz1:= ‘Бірінші курс’;

               tz2:= tz1+’студенттері’;

Меншіктеу операторындағы өрнектің нәтижесінің ұзындығы меншіктеу айнымалысының ұзындығынан асып кетсе, артылған символдар қабылданбайды.

Мысалы, ‘9’<’25’;  {жолдық тұрақтылардың ұзындықтары әр түрлі болғандықтан, логикалық өрнекте қате бар}

fam айнымалысына ұзындығы 6-дан аспайтындықтан меншіктелетін мән << Әбдраи>>.

А-ның сипатталуы                          Меншіктеу                                 Нәтиже

A:string[9]                                        A:=’1-курс студенті’                 ‘1- курс’

A:string[12]                                      A:=’1- курс студенті’                ‘1-курс ст’

A:string[6]                                        A:=’1- курс студенті’                ‘1- к’

 

 

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

Турбо Паскальда жолдық айнымалыларға қолданылатын процедуралар: Read, Readin, Write, Writeln, Delete, Insert, Str, Val, және функциялар:

Length, Concat, Copy, Pos.

Delete (S,  m,  n ) – берілген S қатардағы m-ші нөмірден бастап,  n таңбаны өшіреді.

Insert (s1,  s2,  n) - s1 қатарды  s2 қатарға,  n- ші нөмірлі таңбадан бастап қосады.

Str (x[: ені [:дәлдігі ]], S)- x –сандық мәнді  S жолдық қатарға өзгертеді.

Мұндағы  S- қатардың ені, дәлдігі (үтірден кейінгі таңба саны)- міндетті емес параметрлер.

Val (S, X, code) – S жолдық мәнді X сандық түрге өзгертеді. Ал       code – бүтін айнымалы. Егер функция жолдық мәнді сандық түрге өзгерте алмаса, онда code – нің мәні нөлден өзгеше болады.

Length (S) – S жолдық қатардың ұзындығын, яғни таңбалар санын анықтайды.

Concat(S1[,S2,…SN ]) –S1 қатарды қалған қатарлармен жалғастырады.

Copy(S,m,n) –S қатардан m-ші нөмірден бастап  n таңбаны бөліп алады.

Pos(Substr,S)- Pos функциясы – S-қатардан ізделінетін  Substr таңбалар тізбегі басталатын таңба нөмірін анықтайды.

 

Жаттығу есептері:

 

Мысал1: Ұзындығы 255-тен аспайтын текст берілген («БАҚЫЛАУ БАҒАСЫ»). Қазақ алфавиті бойынша әріптер жиілігін анықтайтын программа құр:

Program EX1:

Var S:string;

      Alf:string[42];

Ch: array [1..42] of integer;

        i, j:integer;

Begin

Alf:=’АӘБВГҒДЕЕЖЗИЙКҚЛМНҢЩӨПРСТУҮҰФХһЬЪЫІЦЧШЩЭЮЯ’;

For i:=1 to 42 do Ch[i]:=0;

Write(‘Тексті бас әріптермен енгіз:’);

Readln(s);

For i:= 1 to 42 do

If s[i]=Alf[j] then Ch[i]:=Ch[i]+1;

Writeln(‘Жиілік сөздік:’);

For i:=1 to 42 do Writeln (‘ ‘,Alf[i],’ ‘,Ch[i]);

End.

Программаның орындалу нәтижесі:

Тексті бас әріптермен енгіз: БАҚЫЛАУ БАҒАСЫ

Жиілік сөздік:

А 3

Ә 0

Б 2

В 0

Г 0

Ғ 1

Д 0

..

 

6. Әдебиеттер

1. Н.С. Заурбеков, Б.Ж.Жумажанов. Алгоритмдеу және программалау тілдері. Экономика баспасы. Алматы-2008.

2. Ж.Қ. Масанов, Б.А.Белгибаев, А.С.Бижанова, Қ.Қ.Мақұлов «Turbo Pascal». Алматы 2004.

3. Фаронов В.В.  Тurbo Pascal 7.0. Практика программирования.  Оку құралы.- М.: Нолидж, 2000ж. 416 бет.

 

Мәлімет сізге көмек берді ма

  Жарияланған-2014-05-27 22:19:08     Қаралды-7684

ҚҰСТАРҒА ҚАУЫРСЫН НЕ ҮШІН ҚАЖЕТ?

...

Құстар жылыну және ұшу үшін қауырсындарды қажет етеді...

ТОЛЫҒЫРАҚ »

МАГНИТТЕР НЕ ҮШІН ҚОЛДАНЫЛАДЫ?

...

Магниттерді қолданудың жүздеген әдістері бар.

ТОЛЫҒЫРАҚ »

МАГНИТ ДЕГЕНІМІЗ НЕ?

...

Қарапайым тілмен айтқанда, магнит темірді тарта алатын дене.

ТОЛЫҒЫРАҚ »

КРАН НЕ ҮШІН ҚОЛДАНЫЛАДЫ?

...

Кран (мұнара краны деп атау дұрысырақ болар еді) қазіргі кез келген құрылыс...

ТОЛЫҒЫРАҚ »

МАГНИТ ӨРІСІ ДЕГЕНІМІЗ НЕ?

...

Магнит өрісі – магниттің айналасындағы аймақ, оның шегінде магниттің сыртқы заттарға әсері сезіледі.

ТОЛЫҒЫРАҚ »

АРАЛАР ҚАНШАЛЫҚТЫ ПАЙДАЛЫ?

...

Аралардың адамдарды тамақтандырудағы негізгі үлесі олардың өндіретін балында емес.

ТОЛЫҒЫРАҚ »

ӘЛЕМДЕГІ ЕҢ ҮЛКЕН ІНЖУ-МАРЖАННЫҢ МӨЛШЕРІ ҚАНДАЙ?

...

Соңғы уақытқа дейін әлемдегі ең үлкен інжу 1934 жылы Оңтүстік Қытай теңізінде Филиппиннің Палаван аралында салмағы 300 кг-нан асатын меруерт табылған

ТОЛЫҒЫРАҚ »

КЛИМАТТЫҚ БЕЛДЕУЛЕР ҚАЛАЙ ЕРЕКШЕЛЕНЕДІ?

...

Жер шарының әртүрлі жерлерінде климат айтарлықтай ерекшеленеді.

ТОЛЫҒЫРАҚ »

ЕГИПЕТТЕ ПИРАМИДАЛАР ҚАЛАЙ САЛЫНДЫ?

...

Мысырдағы Гиза қаласындағы пирамидалар бес мың жыл бойы әлемде бар.

ТОЛЫҒЫРАҚ »