Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Алгоритмдеу жане багдарламалау негиздери 4 г.doc
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
2.73 Mб
Скачать

5 Дәріс тақырыбы: Берілгендердің символдық типі. Жолдық тип.

Мәліметтердің бірнеше типтері бар: стандартты, саналатын, шектелетін. Мұндай типтер қарапайым есептерді шешуде кездеседі. Дегенмен де, бір типті мәліметтерді тізбекке топтаудың қолайлы екені белгілі –массивтер, символ жолдары, әртүрлі типті мәліметтерді бір объектіге жазу түрінде біріктіруге болады.

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

Жолдар. Символдық ақпаратпен жұмыс істеу.

Символдық ақпараттарды пернетақтадан енгізу және дисплейге шығару жолын қарастырамыз. Пернетақта және дисплей енгізу және шығару стандартты құрылғылары болып табылады да, оларды пайдалану үшін сәйкес INPUT, OUTPUT қызметші сөздерін пайдаланады. Символыдқ берілгендерді өңдеу, сиволдық (белгілік, литерлік) типті беретін CHAR қызметші сөзі қолданылады. CHAR типті айнымалының мән, сол машинада пайдалана алатын кез келген жеке символдар, белгілер бола алады. Егер программада мынадай бейнелеу болса: А,В: CHAR; онда меншіктеу операторын: А:=’k’, B:=A, B:=’5’, A:=’*’ және т.с.с. түрінде жазуға болады. Мұндағы ’’ (апостроф) символдық мән екенін білдіреді. Символдық мән дисплейден немесе принтер арқылы алынған қағаздан көрінгенде ’’ белгісі алынып қалады да, тек символдың өзі көрініп тұрады. Символдық берілгендер үшін =, (< >), >, <, >=, <= қатынас белгілері пайдаланылады, себебі барлық символра, белгілер, цифрлар реттеліп орналасқан. Тізімде қай символ бұрын орналасса, келесі символға қарағанда оның коды кіші деп есептеледі. Әріптер алфавит бойынша орналасады. Кіші латын әріптері бірінен соң бірі алфавит бойынша бір топ құра орналасады, мысалы: ...a, b,…z,…, ал араб цифрлары өсу бойынша: ...0,1,2,...9,... орналасады. Олай болса: ‘a’<’c’, ‘y’>’x’, ‘2’>’1’, ‘x’<>’z’, IF C=’c’ сияқты белгілерді жазуға болады. Әріптерді орналасауы бойынша параметрлі қайталану операторының көмегімен мына программа арқылы экранға шығаруға болады:

Program AR;

Var C:char;

Begin

For C:=’a’ to ‘z’ do

Write (c);

End.

Нәтижесінде дисплейден a, b,…zкөрінеді. Ал алфавитті кері ретепн алу қажет болса, онда төмендегіше жазамыз:

For C:=’z’ downto ‘a’ do

Символдық берілгендерді енгізудің төмендегідей ерекшеліктері бар:

1. Бос символ (пробел) Паскаль тілінде символ орнына жүретіндіктен, символдық айнымалылардың мәндері бос орынсыз жазылады, ол енгізу операторы Read көмегімен енгізіледі.

2. Бір айнымалыға бір ғана символ меншіктеледі.

3. Символдық айнымалылардың басқа ерекшелігі Enter, басылса да оны бос орын символы ретінде қабылдады.

4. Символдық айнымалыларды енгізгенде SHIFT, CAPS, РУС, ЛАТ – пернелерін басқанда оларды жеке символ ретінде қабылдайды да, мән орнына олардың кодтары қабылданады.

5. Символдық және сандық мәндерді енгізгенде, көбінесе EOLN стандартты функциясын пайдалану қолайлы болады. Бұл функцияның мәні жолдың соңы немесе мәндер беріліп болды дегенде білдіреді. Бұл функция көбінесе операторлық циклдерде жиі пайдаланылады.

6. WHILE NOT EOLN DO операторының алдына міндетті түрде READLN операторы тұруы қажет.

Мәтін деп жолдар тізбегін айтады. Паскаль тілінде жол символдар тізбегінен құралады. Әдетте мәтіндерді өңдегенде тек литерлік шамаларды пайдалану тиімсіз келеді, себебі көп есептерде символдарды өңдеу емес, жолдарды өңдеу қажет болады. Паскаль тілінде программада жолдық тұрақтыларды пайдалануға болатыны жоғарыда көрсетілді. Жолдық тұрақты деп енетін символдардың саны 256 артпайтын апостроф ішіне алынған символдар тізбегін айтады. Егер жолдың ішінде апострофты пайдалану қажет болса, оны екі апострофпен алмастырады. Мысалы: ‘Бізге керегі ”өзі” емес пе?’, ’көбейту’ және т.с.с. Жолдық тұрақтыларда бос орын символ ретінде қабылданады. Басқа тілдер тәрізді Паскаль тілінде де жолдық айнымалылар пайдаланылады. Жолдық айнымалылардың типін көрсету үшін тік жақша ішінде жолдың максимальды ұзындығы көрсетілген String қызметші сөзі пайдаланылады. Жолдық айнымалының типі программаның тип бөлігінен кейін қарастырылады немес тікелей айнымалы бөлігінде бейнеленеді. Айнымалы бөлігінде бейнеленуі:

Var

<айнымалы аты>: string [жолдың мах.ұзын.]

Var

Tex: string [29];

At: string [40];

Atay: string [275];

Мұндағы Atay-дағы жол ұзындығы дұрыс көрсетілмеген, себебі 275>255, сондықтан мұнда компьютердің қате деп хабар береді. ЭЕМ-ң жадысынан жолдың алатын көлемін байт өлшемі арқылы алуға болады, ол үшін жолдың максимум ұзындығына 1 қосу жеткілікті. Мысалы алдағы мысалда At-ң өлшемі 41 байт. Қосымша байт жолдың алдында орналасады да, онда жолдың ағымдағы ұзындығы сақталады. Сонымен, жолдың жадыға орналасу схемасын былай крсетуге болады:

У-те жолдың ағымдағы ұзындығы А сақталады;

У+1-де жолдың 1 символы,

У+2-де жолдың 2 символы,

..............................................

У+А-да ағымдағы жолдың соңғы символы,

У+А+1-бос ұяшық

..............................................

У+М-жолға берілген ұяшық.

Мұндағы У-жады ұяшығын, А-ағымдағы жолдың ұзындығын, М-жол үшін алынған максимум ұзындықты белгілейді.

Жолдық өрнектер алгоритмдік тілдегі арифметикалық өрнектерге сәйкес келеді. Жолдық өрнек деп амал белгілері, жолдық тұрақтылар, айнымалылар және функция атауларынан құралған, ұзындығы 256 символдан артпайтын тізбекті айтады.

Жолға төмендегі амалдар пайдаланылады.

1. Жалғастыру амалы, яғни «+» белгісімен белгіленеді. Мысалы, жолдық өрнек ’инфор’+’матика’ нәтижесі информатика.

2. Салыстыру амалдары, яғни =, (< >), >, <, >=, <= белгілері. Мысалы, өрнек ’инфор’ =’инфор’, нәтиже true, ’инфор1’ >’инфор2’ нәтиже False, ’ВВВ’ >’ВВ’ нәтиже False.

3. Меншіктеу амалы, яғни «:=» белгісі. Бірақ мұнда егер меншіктелетін мән ұзындығы типте көрсетілген ұзындықтан артық болса, онда артық символ алынып тасталады. Мысалы, Бейнелеу А: string [5]; өрнек А:=’информатика’, нәтиже ’инфор’

Жолдың символдарын олардың орналасу орындары (индексі) бойыншатабуға болады. Индекстің типі бүтін болады, ол айнымалы атауынан соң тік жақшаның ішіне алынып жазылады. Мысалы, S=’Программа’, S[2]=’р’, S[6]=’а’ береді.

Паскаль тілінде төмендегі стандартты функциялар пайдаланылады:

1. СНR(I)-I санына (кодына) сәйкес символды береді. Мысалы, СНR(1) =’!’, СНR(250) =’з’.

2. ORD(S) – S символының кодын береді. Мысалы, ORD(!)=1, ORD(з)=250.

3. СОРУ (S, N,M) – S жолының N-1 орындағы символынан бастап M символды бөліп алады. S жолдық айнымалы, N, M – бүтін сан. Егер жолдың ұзындығынан артық болса, онда нәтиже бос орын болады.

4. CONCAT (S1,S2,Sn) – жолдарды реті бойынша жалғастырады. Мысалы, CONCAT (‘a’,’b’,’c’)=’abc’

5. LENGTH (S) – S жолдық айнымалысының мәніндегі символдар санын береді, Мысалы, LENGTH (‘ABCD’)=4, LENGTH (‘a_f_M_D’)=7.

  1. POS (S1,S2) – S1 кіші жолы S2 жолының бөлігі болатынын немесе болмайтынын анықтайды. Бұл функциядан шыққан нәтиже бүтін сан болады да, S1-мәні S2-мәніне сәйкес келетін орынды көрсететін санға тең болады. Егер нәтиже нөлге тең болса, онда S1 жолы S1 жолының бөлігі бола алмайды. Мысалы, POS (‘ab’, ‘abcd’)=1, POS (‘ab’, ‘array’)=0.

  2. UPCASE (CH) – латын кіші әріптерін оған сәйкес үлкен әріпке аударады. Мысалы, UPCASE(‘a’)= ‘А’.

Жолдық процедуралар:

  1. DELETE (S,M,N) – S-тің мәнінің M-ші орнынан бастап, N символды алып тастап нәтижені S-ке жазады.

  2. INSERT (S1,S2,N) – S2-ң N позициясынан бастап S1 жолын S2 жолының арасына орналастырады да, нәтижені S2 жазады.

  3. STR (I,S) – І санын жолға айналдырады да S-айнымалысына орналастырады.

  4. VAL (S,I,cod) – сандық S жолын бүтін немесе нақты санға аударады да нәтижені І-ге жазады, cod=0 қате, оның мәні І-ші қате кеткен орынды көрсететін санға тең.