Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МетодАлгКП.doc
Скачиваний:
109
Добавлен:
18.02.2016
Размер:
2.27 Mб
Скачать

Практикалық жұмыс №9

Тақырыбы: Turbo Pascal программалау тілінде символдық информацияларды өңдеу

Жұмыс мақсаты: Turbo Pascal программалау тілінде символдық информацияларды өңдеуге арналған программаларды құруды үйрету

Жұмыстың орындалу тəртібі:

  1. Теориялық мəліметтермен танысу.

  2. Жеке нұсқада тапсырмалар орындау.

  3. Бақылау сұрақтарына жауап беру.

  4. Орындалған жұмыс туралы жазбаша есеп беру. Есепте жұмыс тақырыбы, мақсаты, тапсырманың математикалық үлгісі, алгоритмнің блок – схемасы, листингі болуы қажет.

9.1 Негізгі түсініктер

9.1.1 Символдық (жолдық) айнымалылар. Оларға қолданылатын операторлар

Мәні символ (әріп, цифр, таңба) болатын айнымалы символдық айнымалы деп аталады. Турбо Паскальда мәтіндік айнымалыларды өңдеу үшін STRING типі қолданылады. (string – жол).

Символдық айнымалының ұзындығы деп ондағы символдар санын айтады. әр тұрақтының ұзындығы (мәтіндегі символдар саны) 255-тен артпайды.

Символдық тұрақтының әр символы 1-ден бастап солдан оңға қарай бүтін сандармен нөмірленеді.

Мысалы: а1:= ‘кітап’; а1 айнымалысы жадыда былайша орналасады:

0

1

2

3

4

5

5

к

і

т

а

n

0-байтта символдық айнымалының ағымдық ұзындығының мәні орналасады.

Символдық айнымалы TYPE немесе VAR бөлімінде сипатталады.

Оның жалпы түрі:

TYPE символдық типтің аты=String [айнымалының символ аты];

VAR символдық айнымалы аты: типтің аты;

немесе

VAR символдық айнымалының аты: string;

Мысал: 1) type 1=string [6];

2= string;

var a1:в1; a2:в2;

2) var x: string [10];

y: string;

String сөзінен кейін символ саны көрсетілмесе, ол айнымалыға жадыдан 255 орын бөлінеді.

Символдық айнымалыларға стандарт функциялар және процедуралар қолданылады.

9.1.2 Символдық айнымалыларды түрлендірудің стандарт функциялары

Length (а) – функциясы а символдық айнымалының ұзындығын табады.

Функция нәтижесінде бүтін типті сан шығады.

мысал: var a,b: string [10];

begin

a:= ‘кітап’;

b:= ‘513?.abc, 2’;

k:= length (a); writeln (‘a жолының ұзындығы=’,k);

writeln (‘b жолының ұзындығы=’, length (a));

end.

Concat (a1, a2) – функциясы а1 және а2 жолдық айнымалыларды біріктіреді. (concat- конкатенция- біріктіру). Функция нәтижесінде жолдық айнымалы шығады.

Мысал: a1:= ‘қалам’

a2:= ‘can’

b := concat (a1, a2);

writeln (b);

программаның орындалу нәтижесінде “қаламсап” сөзі шығады. Екі жолды біріктіру үшін “+” таңбасын да қолдануға болады.

Мысал: a1:= ‘информатика’

b := ‘ғылымы’

writeln (a+b);

Copy (a, n, k)- функциясы а жолының n-ші символынан бастап к символ көшіріп (немесе қиып) алады.

Мысал: copy (‘қаламсап’,3, 2) → ‘лa’

copy (‘кітап’,1, 1) → ‘к’

Pos (a1, a2)- функциясы а2 жолындағы а1 ішкі жолының басталу позициясын көрсетеді, егер а2 жолында а1жолы жоқ болса, онда функция мәні 0-ге тең болады.

Мысал: pos(‘ka’, ‘информатика’) → 10

pos(‘та’, ‘информатика’) → 0

pos(‘abcdcdrf’) → 3

Әрбір символға компьютерде 0 мен 255 аралығындағы бүтін санды код сәйкес келеді. Символдар кодының кең тараған түрі ASCП коды. (American Standard Code for Information Interchange- ақпарат алмасу үшін арналған Америкалық кодтар стандарты). ASCII- де символдардың коды 32-ден басталады. 0-ден 32-ге дейінгі компьютердің ақпаратпен түрлі жұмыс істеуіне арналған басқарушы кодтар.

Есептер шығаруда төменгі кодтар жиі қолданады:

  • 48-ден 57-ге дейін- 0-ден 9-ға дейін цифрлар коды.

  • 65-тен 90-ға дейін- латынның бас әріптері (А-65, В-66 т.с.с.)

  • 97-ден 122-ге дейін- латынның кіші әріптері (а-97,b-98 т.с.с)

  • 128-ден 159-ға дейін- орыс алфавитінің бас әріптері (А-128, В129 т.с.с)

  • 160-тан 175-ке дейін және -орыс алфавитінің кіші әріптері224-тен 239-ға дейін

  • ТАВ пернесінің коды -9, ESC-27, бос орын пернесі-32, нүкте-46, үтір-44, сұрақ белгісі-63 т.с.с.

Паскаль тілінде символдың ASCII кодтар кестесіне сәйкес кодын анықтайтын және оған керісінше, 0-ден 255-ке дейінгі бүтін санды кодқа сәйкес символды беретін 2 қарама-қарсы стандарт функциялар бар.

Ord функциясы символдың сейкес кодын табады. (Ordinal value- реттік мәні)

Мысал: ord (‘A’) → 65

ord(‘a’) → 97

Chr функциясы кодқа сәйкес символды береді. (character- символ)

Мысал: сhr(65) → ‘A’

ord(49) → 1

Бұл функцияны # (диез белгісі) символымен алмастыруға да болады.

Мысал: # 65 → ‘A’

Мысал 1: 0-ден 255-ке дейінгі барлық кодты (бүтін сандарды) және оған сәйкес символды 2 баған түрінде экранға шығаратын программа.

Program n1; USES crt;

var i:byte;

begin

for i:=0 to 255 do

begin

writeln (i, ‘---’, CHR (i));

delay (20000);

end ;

end.

Delay процедурасы символдарды үзіліспен шығару үшін қолданылады.

9.1.2 Символдық айнымалыларды түрлендірудің стандарт процедуралары.

Delete (a, m, n) процудерасы а жолдың m-ші символынан бастап n символ жоюды жүзеге асырады.

Мысал: а:= ‘информатика’;

delete (a, 7, 5);

wtiteln (a);

нәтижеде экранға информ сөзі шығады.

Insert (a1, a2, n) процедурасы а1 ішкі жолын а2 жолының n нөмірлі символынан бастап а2 жолының арасына апарып қояды, а2 жолының қалған символдарын соңына қарай ығысады.

Мысал 1. а1:= ‘-’;

a2:= ‘Ол оқушы’;

Insert (a1, a2, 3);

Writeln (a2);

нәтижеде а2 жолындағы екі сөздің арасына сызықша белгісі қойылады.

Мысал 2. Delete, Insert процедураларын қолданып «строка» сөзінен «сетка» сөзін алатын программа.

Var S:Sting;

begin

S:= ‘строка’

delete (s, 3, 2); {‘po’ символын жою}

insert ( ‘e’, s, 2); {2-орынға е әрпін қою}

Writeln (S);

end.

Str (x, a)- х бүтін немесе нақты санды а символдық тұрақтыға түрлендіретін процедура.

Егер х нақты сан болса, процедура төмендегіше жазылады:

Str (x:i:j, a);

Мұндағы і-нақты санның цифрларының саны.

j-бөлшек бөлігінің символдар саны.

Мысалы: Str (pi:6:2, a); (a= ‘ _ _ 3.14’)

Егер х=512 болса, Str (х, а) процедурасының орындау нәтижесі а= ‘512’.

Мұндағы 512 мәні сан емес, символдық тұрақты.

Val (a, x, c) прцедурасы Str-ға кері процедура. Ол а символдық тұрақтыны х санғы айналдыру жүзеге асырады. Мұндағы с- бүтін айнымалы. Егер а-ны х-ке түрлендіру мүмкін болса, яғни а-ның барлық символы сан болса, с айнымалысының мәні 0-ге тең. Керісінше жағдайда, с-ның мәні 1-символдың нөміріне тең.

Мысалы: 1) a= ‘416’; val (a, x, c);

нәтижеде х-416; с=0

2) a= ‘41авб’; val (a, x, c);

нәтижеде с=3

1 – жаттығу.

var x:real; y:integer; a, a1:string;

begin

a:=concat (‘12’, ‘345’); {a=12345}

a1:=copy (a, 3, length (a)-2); {a1=345}

insert (‘-’ a1, 2); {a1=3-45}

delete (a, pos (‘2’, a),3); {a=15}

Str (pi:4:2, a); {a=3.14}

Val (‘3.14’, x, y); {x=3.14, y=0}

Val (‘5.14’, x, y); {y=2, x-өзгермейді}

2 – жаттығу. Str, Val процедураларын қолданып, берілген бүтін санның цифрларының қосындысын есептеңдер.

var x, i, y, s:integer;

a,в:string;

begin

read (x); {санда енгізу}

str (x, a); {санды а символдық тұрақтыға айналдыру}

for i: =1 to length (a) do

begin

b:=copy (a,I,1) {1-символдан бастап қиып алу}

val (b, y, c); {символды санға түрлендіру}

S:=S+y;

end;

Writeln (‘санның цифрларының қосындысы=’, S)ж

end.

String типі array [o.n.] of char бір өлшемді символдар массивіне ұқсас. Мұндағы n-жолдағы символдардың максимал саны. Сондықтан жолдағы кез – келген символды көрсетуге болады, яғни сopy (a, i, 1) функциясының орнына a[1] деп алуға болады.

3 – жаттығу. Берілген сөздегі “a” әрпін санаңдар.

Var a:string;

i, k: integer;

begin

read (x); {сөзді енгізу}

for i:=1 to length (x) do

if (x [i]= ‘A’) or (x [i]= ‘a’) then k:=k+1;

Wtiteln (сөздегі а әрпінің саны=’k);

end.

Бұл жаттығуда а [i]-дің орнына copy (a, i, 1 ) деп алуға да болады.

4-жаттығу. Берілген сөз төңкермелі (полиндром) бола ма? Сөз төңкермелі деп аталады, егер берілген сөз бен оны кері жазғандағы сөз бірдей болса. Мысалы: қазақ, нан, 1221.

Var a,b: string;

i: integer;

begin

read (a);

for i:=1 to length (a) do

b:= a[i] + b;

writeln (‘:’,a,’:’b);

if a=b then writeln (‘төңкермелі’) else writeln (‘төңкермелі емес’);

end.

2 жолды салыстыру үшін қатынас операцияларының белгісі қолданылады: =,<>,<,<=,>,>=. Жолдарды салыстыру 1-символдан басталады. Символдар олардың кодтары арқылы салыстырылады, код алфавит бойынша өседі.

Мысалы: ‘max 1’<’max 2’

‘pascal’>’PASCAL’

‘abc_’><>’abc’

‘123’=’123’

ЖЕКЕ ТАПСЫРМАЛАР НҰСҚАЛАРЫ

  1. Ағылшын тілінде берілген сөйлемдегі барлық қайталанатын сөздерді алып тастап қайта шығаратын программа құру.

  2. Берілген сөйлемдегі бас әріптер кіші әріптерге ауыстырып қайта шығаратын программа құру.

  3. 3. Берілген сөйлемнен пернелер тақтасы көмегімен енгізілген сөздін неше рет қайталанатынын анықтайтын программа құру.

  4. Берілген сөйлемді кері рет бойынша қайта жазатын программа құру.

  5. 5. Берілген сөйлемде бүтін сандар неше рет қайталанатынын анықтайтын программа кұру.

  6. Берілген сөйлемде қанша дауысты дыбыс бар екенін анықтайтын программа құу.

  7. Берілген сөйлемде қанша дауыссыз дыбыс бар екенін анықтайтын программа құру.

  8. Берілген сөйлемдегі барлық тыныс белгілерін алып тастайтын программа құру.

  9. Берілген сөйлемде "а" әрпінен қанша сөз басталатынын аныкгайтын программа құру.

  10. Берілген сөйлемде қанша бос орын бар екенін анықтайтын программа құру.

  11. Берілген сөйлемде "а" әрпінен басталып "а" әрпімен аяқталатын сөздер санын қанша екенін анықтайтын программа құру.

  12. Берілген мәтіндегі “а” әрпін “о” әрпімен алмастырыңдар.

  13. Сөйлемде неше сөз бар екенін анықтаңдар.

  14. Берілген әріп дауысты ма екенін анықтаңдар.

  15. 1 ашылған және 1 жабылған жақшасы бар мәтін берілген. Жақша ішіндегі барлық символдарды шығарыңдар.

  16. Сөйлемдегі неше сөз берілген әріптен басталады?

  17. Латын әрпімен жазылған сөздегі барлық кіші әріптерді бас әріппен алмастырыңдар.

Бақылау сурақтары

  1. Жолдық типті сипаттаудың кандай жолдары бар?

  2. Жолдық типтің көлемі қандай?

3. Жолдық типтерді өңдеуге арналған процедуралар қандай?

4. Жолдық типтерді өңдеуге арналған функциялар қандай?

  1. Символдарды қалай сипаттауға болады?

  2. Бүтін сандарды жолдық типке ауыстыруға бола ма?

  3. Нақты типті жолдық типке қалай ауыстыруға болады?

  4. Пернелер тақтасынан басылған перне арнайы басқару пернесі екендігін қалай анықтауға болады?

  5. Символдық айнымалы деген не?

  6. Символдық айнымалының ұзындығы деген не?

  7. Паскальда символдық айнымалының максимал ұзындығы неге тең?

  8. Символдық айнымалыларға қандай стандарт функциялар қолданылады?

  9. Символдық айнымалыларға қандай стандарт процедуралар қолданылады?

  10. Символдық айнымалылар қалай сипатталады?

  11. Символдық айнымалылар қалай салыстырылады?

  12. ASCII коды деген не? Ол қандай аралықта беріледі?

  13. Символдық айнымалыдан символ қиып алу қалай жүзеге асырылады?

  14. Символдық айнымалы жадыда қалай нөмірленеді?

Ұсынылатын әдебиеттер: 1, 4, 6