Паскаль тілінде мәтіндік ақпаратты өңдеу

26

Паскаль тілінде мәтіндік ақпаратты өңдеу

Оның айнымалы бөлімінде сипатталуы:

Var

<айнымалы аты, …>; string [жолдың ұзындығы];

Мысал:

Var

     Tex1 : string[29];

     Atj : string[40];

     Atau : string[200];

     A : string;

Салыстыру амалдары, олар: +, <>, >, >=, <, <= белгілерімен белгіленеді. Сөз тіркестерін салыстыру олардың символдарының кодтарын солдан оңға қарай біртіндеп бір-бірімен салыстыру арқылы жүзеге асырылады. Егер тіркестің алғашқы символдары бірдей болса, онда қай жолдың символы көп болатын болса, сол үлкен деп есептеледі. Егер өрнекте біріктіру мен салыстыру амалдары болса, ең алдымен біріктіру амалы, содан соң салыстыру амалы орындалады. Сөз тіркесінің салыстыру амалының  нәтижесі логикалық шама болады. Мысалдар:

          өрнек                             нәтиже      

‘MS-DOS’ < ‘MS-Dos’            true

‘program’ <  ‘PROGRAM’      true

‘SAM’ = ‘SAM’                       true

‘SAM’ > ‘SAM’                       true

‘BBB’ < ‘BB’                           false

‘TAM1’ > ‘TAM2’                   false

‘100’ <  ‘110’                           true

Мәтін ұзындығын анықтайтын операциясы – LENGTH (x).

Length (‘ABCD’) = 4.     Length (‘a f 5 1’) = 7.

Copy (St, Poz,N) – St сөз тіркесінің Poz нөмірлік символынан бастап қатар тұрған N символ көшіріліп алынады.  St – тіркестік айнымалы, Poz, N – бүтін сандар. Егер сөз тіркесі ұзындығынан N артық болса, нәтиже бос символ болады.

Concat(s1, s2,…,sn) – жақша ішіндегі тіркестік айнымалылар мәндерін орналасқан орындары бойынша біріктіреді.

Upcase(ch) – латын алфавитінің кіші әріптерін сәйкесінше бас әріптерге ауыстырады.

Delete(S,Poz,N) – S сөз тіркесі символдарының Poz нөмірінен бастап, N символды өшіреді де нәтижені қайта S мәні ретінде жазады, мұнда  Poz<255.

Insert(S1,S2,Poz) – S1 сөз тіркесін S2 тіркесінің Poz нөмірінен бастап кірістіріп орналастырады да, нәтижені  S2 мәні ретінде жазады.

Str(I,S) – I санын сиволдар тіркесіне ауыстырады да, нәтижені S мәні ретінде жазады.  I атауынан кейін шығару пішімін ( I:2) көрсетуге болады.

Val(S,I,god) – S сөз тіркесі ретінде берілген сандық мәнді бүтін немесе  нақты санға ауыстырады да, нәтижені I айнымалысының мәні ретінде жазады.  God – бүтін типтегі айнымалы, егер түрлендіру кезінде қате болмаса,  сod = 0 – нәтиже дұрыс, ал cod <> 0 болса, онда нәтиже қате, оның мәні алғашқы қате кеткен орын нөмірін көрсететін санға тең болады да, мұндайда I – дің мәні анықталмаған болып саналады.

Мысал: «Студент» сөзі берілген. Стандартты тіркестік процедуралар мен функцияларды пайдаланып, төмендегі тапсырмаларды орындау керек:

1)    сөздің ұзындығын табу;

2)    сөзге «пін» жалғауын жалғау;

3)    сөзден «ден» үзіндісін кесіп алу;

4)    сөзден «ент» үзіндісін алып тастау;

5)    сөз алдына «Мен» тұрақтысын кіргізу;

6)    сөз ішіндегі «е» әрпінің орналасу нөмірін табу:

program student;

var

     a1: string [7];   a2: string [3];

     a3: string [10]; a4: char;

     b1,b6:integer;   b2: string [10];

     b3: string [3];    b4: string [4];

     b5: string [11];

begin

         writeln;

         a1:=’студент’;      a2:=’пін’;

         a3:=’Мен’;            a4:=’е’;

         b1:=length(a1);              {ұзындығын анықтау b1=7}

         b2:=concat(a1,a2);          { a1 және a2 –ні қосу}

b3:=copy(a1,4,3);          {а1 тіркесінің 4-ші позицисынан 3 символды бөліп алу}

      b4:=copy(a1,5,3);        { а1 тіркесінің 5-ші позицисынан 3 символды бөліп алу

         b5:=concat(a3,a1);            { a3 және a1 –діі қосу }

         b6:=pos(a4,a1);                 {5}

write(‘сөз ұзындығы:’,b1,’’:2,b2,’’:2,b3,’’:2,b4);

writeln(b5,’’:2, b6);

end.  

Тапсырма №1.  Кез келген сөзді пернетақтадан енгізіп, оның ұзындығын анықтайтын программа құрыңдар.  Компьютерде орындап, нәтижені көрсет.

Тапсырма №2: Енгізілген жолда «*» символ санын анықтайтын программада қажетті функцияны енгізіп, программаны аяқтаңыз.

Program esep2;

Uses crt;

Var k,tz:string [100];

S,I,n: integer;

Begin clrsscr;

Write (‘jol engiz:’); readln(tz);

N:length (tz);

Writeln(‘n=’,n);

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

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

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

……………………………………………

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

End.

Қажетті функциялар: Writeln (‘S=’,S), k:=copy (tz,i,1), S:=0, if k=’*’ then s:=S+1, for i:=1 to n do begin, end.