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     Қаралды-7493

ЭЛЕКТРОНДАР ДЕГЕНІМІЗ НЕ?

...

«Электрон» сөзі грек тілінен «янтарь» деп аударылған.

ТОЛЫҒЫРАҚ »

ЭЛЕКТР ЗАРЯДЫ ДЕГЕНІМІЗ НЕ?

...

Электрондардың теріс заряды, ал атом ядросының оң заряды бар екенін сіз бұрыннан білесіз.

ТОЛЫҒЫРАҚ »

ЭЛЕКТР ДЕГЕНІМІЗ НЕ?

...

Көптеген ғасырлар бойы адамдар электр қуатының бар екенін білмеді.

ТОЛЫҒЫРАҚ »

КОМПАСТЫ КІМ ОЙЛАП ТАПТЫ?

...

Навигацияның дамуымен кеме жасау ғылымы жетілдірілуде - кибернетика...

ТОЛЫҒЫРАҚ »

ҚАЗІРГІ ЖАНУАРДЫҢ ҚАЙСЫСЫ ЕҢ КӨНЕ?

...

Қолтырауындар - жартылай суда өмір сүретін ірі жыртқыштар.

ТОЛЫҒЫРАҚ »

АҚШ-ТА РЕСМИ ТІЛ ҚАНДАЙ?

...

Біздің елде қазақ тілі ресми тіл болып заңды түрде танылған.

ТОЛЫҒЫРАҚ »

ҚАЙ ҚАЛАНЫҢ СУ АСТЫНДА ЖОҒАЛЫП КЕТУ ҚАУПІ БАР?

...

20-ғасырдың 60-шы жылдарының басында бір қаланың халқы бірте-бірте су астына батып бара жатыр деген хабардан шошып кетті.

ТОЛЫҒЫРАҚ »

НЕЛІКТЕН АДАМДАР ҒАРЫШҚА ҰШАДЫ?

...

Спутниктер мен орбиталық станциялар ғарышта көптеген жұмыстарды орындайды.

ТОЛЫҒЫРАҚ »