Тақырыбы: Паскаль тілінде мәтіндік ақпараттарды өңдеу.
Сабақ мақсаты: а) Мәтіндік ақпараттарды енгізу, шығару тәсілдерін, олармен орындалатын операцияларды таныстыру.
Б) Мәтіндік ақрпараттарды өңдеу, олармен әртүрлі операцияларды орындау дағдыларын қалыптастыру.
В) Оқушылардың ойлау қабілеттерін дамыту.
Сабақ көрнекілігі: FrontPage қолданбасында жасалынған электронды көрнекі құрал.
Сабақ түрі: Дәстүрлі
Сабақ әдісі: Түсіндірмелі баяндау
Сабақ типі: Жаңа білімді меңгерту сабағы
Сабақ барысы: Ұйымдастыру кезеңі
Үй тапсырмасын тексеру
Жаңа сабақ түсіндіру
Жаңа сабақты бекітуге есептер шығару
Үйге тапсырма
Сабақты қорытындылау
Сәләматсыңдар ма?
Үй тапсырмасы Символдық айнымалылар. Сұрақтар:
Сандық айнымалыларға қарағанда символдық айнымалылардың қандай ерекшеліктері бар.
Оларды енгізуде, шығаруда қандай өзгешеліктер бар.
Символдық айнымалылар енгізілгенде оның қанша символ енгізілгенін қандай функция арқылы анықтауға болады?
Мысал келтіріңдер.
Жаңа сабақ алдыңғы сабақтың жалғасы деп айтуға болады. Біз енді мәні бір символ емес тұтас сөздер болатын айнымалалар жөнінде қарастырамыз. Себебі мәтіндермен жұмыс істегенде тек мәні бір символ болатын айнымалылармен жұмыс істеу тиімсіз. Сонымен жаңа сабағымыз Паскаль тілінде мәтіндік ақпараттарды өңдеу.
Символдар жолы немесе жолдық тұрақты деп символдарының саны 255-тен аспайтын апостроф ішіне алынған символдар тізбегін айтады.
Егер сол тізбек ішінде апостроф пайдалану керек болса онда оны екі апострофпен алмастыру керек. Тізбек ішіндегі бос орын да символ ретінде қарастырылады.
Сонымен Паскаль тілінде символдар тізбегінен тұратын тіркестік айнымалалар кең қолданылады. Олардың типін көрсету үшін алдымен айнымалы атауы, одан кейін тік жақша ішіне жолдың ұзындығы көрсетілген STRING түйінді сөзі қолданылады.
Оларды айнымалылар бөлімінде былайша сипаттауға болады.
VAR
Tex1:string[29];
ATJ:string[40];
ATAY:string[275];
A:string;
Мұндағы соңғы ATAY:string[275]; - да символ ұзындығы дұрыс көрсетілмеген, себебі 275 үлкен 255-тен. Мұндай жэағдайда компьютер қате деп хабарлама шығарады. Егер жол ұзындығы көрсетілмесе оны оның ұзындығы 256 деп алынады. Сөз тіркесіндегі символдардың номері 1-ден бастап оның ең үлкен мәніне дейін өзгереді.
Апостроф ішіндегі орналасқан сөз тіркестерінің мағынасы болуы болмауы шарт емесе. Төз тіркестерінің көлемі оның ұзындығы бойынша анықталады. Компьютер жадынан сөз тіркесі қанша орын алатынын анықттау үшін оның ұзындығына бірді қоссса болдды. Мұнда қосымша байт жолдың алдына орналасады да, ол байтта осы сөздің ағымдағы ұзындығының мәні сақталады.
Мысалы тіркестік айнымаланың мәні Алматы қаласы боса ол жадта былай орналасады.
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
10
|
11
|
12
|
13
|
13
|
А
|
л
|
м
|
а
|
т
|
ы
|
|
к
|
а
|
л
|
а
|
с
|
ы
|
Тіркестік өрнектер
Тіркестік өрнек деп амал белгілері , тіркестік тұрақтылар, айнымалылар және функция атауларынан құралған, ұзындығы 256 символдан аспайтын тізбекті айтады.
Тіркестік өрнектерде біріктіру амалы қолданылады.
Біріктіру амалы ол қарапайым + амалымен белгіленеді. Бұл амал бірнеше символдардан немесе сөз тіркестерінен жаңа мәтін құруға көмектеседі.
Мысалы:
Тіркестік өрнек
|
Нәтижесі
|
‘Ауыл’+ ‘адамдары’
‘А’+‘р’+‘п’+‘а’
‘Ал’+‘ма’+‘ты’
‘20’+‘05 жыл’
|
‘Ауыл адамдары’
‘Арпа’
‘Алматы’
‘2005 жыл’
|
S1:=’Ас’; S2:=’тана’; S3:=S1+S2; S4:=S1+’қар’; S5:=S2+’көз’;
S3:=’Астана’; S4:=’Асқар’; S5:=’танакөз’;
Сөз тіркестерін біріктіру амалын Concat() функциясы арқылы да беруге болады.
Мысалы:
Str1:=’Әйтеке’; Str2:=’би’; Str3:=Concat(Str1,Str2);
Мұның нәтижесі: Str3:=’Әйтекеби’; болады негізінде былай жазған дұрыс:
Str3:=Concat(Str1,’ ‘Str2); Str3:=’Әйтеке би’;
Меншіктеу амалы.
Тіркестік айнымалыға тіркестік өрнектер мәнін беруде меншіктеу амалы қолданылады.Бірақ мұнда егер меншіктелетін мән ұзындығы оны сипаттауда көрсетілген ең үлкен ұзындықтан артық болса, онда артық символдар алынып тасталады.
Мысалы:
Сипаттау
|
Өрнек
|
Нәтиже
|
A:string[5];
B:strinf[3];
C:string[8];
|
A:=’ҚАЛАМҚАС’
B:=’ТАМАША’
C:=’Ақанұлы’
|
‘ҚАЛАМ’
‘ТАМ’
‘Ақанұлы’
|
Мәтін ұзындығын анықтау операциясы
Мәтін ұзындығы оның символдар санымен анықталады. Бір де бір символы жоқ мәтін бос мәтін деп аталады. Мәтін ұзындығын Паскаль тілінде Length сөзі арқылы анықтайды. Мысалы Length (‘информатика’)=11
Жолдың символдарын олардың орналасу орны(индексі) бойынша да табуға болады. Индекстің типі бүтін типті болады. Ол айнымалы атауынан соң тік жақша ішіне алынып жазылады. Мысалы:
S:=’Алматы’ болса, онда S[2]=’л’, S[4]=’а’ болады.
Сөз тіркестерін өңдеуге арналған стандартты функциялар мен процедуралар.
COPY(St, Poz,N)- St сөз тіркесінен Poz номерлік символынан бастап қаттар тұрған N символ көшіріліп алынады. St-тркестік айнымалы, Poz, N –бүтін сандар. Егер N сөз тіркесі ұзындығынан артық болса нәтиже бос символ (бос орын) болады.
Мысалы:
Program gggg;
S:string[12];
R:string[8];
Begin
Writeln(‘S ’);
Readln(S);
R:=Copy(S,4,6);
Write(‘R=’,R);
End.
Бұл программа орындалғанда S=’Алматылық’ мәні берілсе, онда нәтиже R=’атылық’ болады.
Concat(S1, S2,…,SN)- - жақша ішінде орналасқан тіркестік айнымалылардың мәндерін тұрған орындары бойынша біріктіреді.
Мысалы: Concat(‘a’,’b’,’c’)=’abc’
Length(S)- S тіркестік айнымалысының мәніндегі символдар санын береді.
Length(‘ABCD’)=4 Length(‘a f 5 3’)=7
Pos(S1, S2)- S1кіші сөз тіркесінің одан үлкен S2 сөз тіркесіне кіретін, кірмейтінін анықтайды.Бұл функцияның мәні бүтін сан болады. Да, ол S1-дің S2дегі алғашқы символы номеріне сәйкес келеді. Егер S1 тіркесі S2-ге кірмейтін болса, нәтиже 0 болады.
Мысалы: Pos(‘ab’,’abcd’)=1 Pos(‘ab’,’array’)=0
Upcase(Ch)- латын әріптерінің кіші әріптерін сәйкесінше бас әріптерге ауыстырады.
Upcase(‘a’)=’A’ Upcase(‘q’)=’Q’
Паскаль тілінің сөз тіркестерін өңдеуге арналған процедуралары
Delete(S, Poz, N)- S сөз тіркесінен Poz номерлік символынан бастап қатар тұрған N символды өшіреді де, нәтижені қайта S мәні ретінде жазады.
Мысалы:
S мәні
|
Өрнек
|
Нәтижесі
|
‘ДЭВМ ІВМ’
‘Аәбвгде’
‘Сырдария өзені’
|
Delete(S,1,4)
Delete(S,2,5)
Delete(S,9,6)
|
‘ІВМ’
‘Ае’
‘Сырдария’
|
Insert(S1, S2, Poz)- S1 сөз тіркесін S2 сөз тіркесінің Poz номерінен бастап орналастырады да, нәтижені S2 мәні ретінде жазады.
Мысалы:
S1:=’-математика’; S2:=’физика факультеті’ болса, INSERT(S1,S2,7) онда орындалғанда , S2:=’физика-математика факультеті’ болып шығады.
Str(I, S)- I санын символдар тіркесіне ауыстырады да, нәтижені S мәні ретінде жазады. I атауынан кейін шығару форматын көрсетуге болады. Егер форматта көрсетілген разрядтар саны қажетті мөлшерден аз болса, оның ені керекті ұзындыққа дейін автоматты түрде ұзарады.
Мысалы:
I мәні
|
Өрнек
|
Нәтижесі(St мәні)
|
‘1500’
‘4,8Е+03’
‘76854’
‘15’
|
Str(I:6,St)
Str(I:10,St)
Str(I:3,St)
Str(I,St)
|
‘_ _ 1500’
‘_ _ _ _ _ _ 4800’
‘76854’
‘15’
|
Val(S, I, Cod)- S сөз тіркесі ретінде берілген сандық мәнді бүтін немес нақты санға ауыстырады да нәтижені I айнымалысының мәні ретінде жазады. Cod бүтін типті айнымалы, егер түрлендіру кезінде қате болмаса Cod=0 – нәтиже дұрыс Cod<>0 болса , онда нәтиже қате, оның мәні алғашқы қате кеткен орын номерін көрсететтін санға тең болады да, мұндайда I-дің мәні анықталмаған болады.
Мысалы:
S мәні
|
Өрнек
|
Нәтижесі(I мәні)
|
‘1500’
’14.2E+02’
’14.2A+02’
‘1995’
‘abcd’
|
Val(S,I,Cod)
Val(S,I,Cod)
Val(S,I,Cod)
Val(S,I,Cod)
Val(S,I,Cod)
|
Cod=0
Cod=0
Cod=5
Cod=0
Cod=1
|
Енді сөз тіркестерінен тұратын процедуралар мен функцияларды пайдалануға мысалдар қарастырайық.
1-мысал: * символымен толтырылған тік бұрышты үшбұрыштың кескінін салатын программа құру керек.
*
* *
* * *
.......
* * * * * * * * * * * *
Program USHBURISH;
Var St:string[12];
Begin
St:=’’;
For I:=1 to 12 do
Begin
St:=St+’*’;
Writeln(St);
End;
End.
2-мысал:
Енгізілген сөз тіркесі солдан оңға қарай, оңнан солға қарай оқығанда бірдей оқылатын сөзге (полиндром) жататынын, жатпайтынын анықтайтын программа құру керек.
Мұнда 1 символ соңғы символмен, екінші символ соңғының алдындағы символмен т.с.с. салыстырылып сөздің ортасына дейін жетуі керек. Салыстыру барысында символдар бірдей болса, онда қойылған талаптың орындалғандығы.
Program POLINDROM;
Var
I:byte;
Coz: string[20];
Begin
Write(‘Бір сөз енгізіңдер’);
Readln(Coz);
For I:=1 to Trunc(Length(Coz)/2) do
Begin
If Coz[I]<>Coz[Length(coz)-I+1];
Then
Begin
Writeln(‘Алды-артынан бірдей оқылмайды’);
Exit;
End;
End;
Writeln(‘Алды-артынан бірдей оқылады.’);
End.
3-мысал: Тіркестік айнымалының мәні ретінде берілген символдар саны 20-дан аспайтын сөзді кері жазатын программа құру керек.
Program Kericoz;
Var
I:integer;
soz: string[20];
Begin
Write(‘Бір сөз енгізіңдер’);
Readln(soz);
For I:=Length(soz) downto 1 do
Write(Copy(soz,I,1);
End.
Сабақты бекіту сұрақтары:
Тіркестік айнымалыларды программада қалай сипаттаймыз?
Сөз тіркестерін өңдеуге арналған қандай процедуралар мен функцияларды білесіңдер?
Үйге тапсырма: Сөздегі а әрпін т әрпімен алмастыратын программа жазу керек.
Program Almasturu;
Var
I:integer;
soz: string[20];
Begin
Write(‘Бір сөз енгізіңдер’);
Readln(soz);
For I:= 1 to Length(soz) do
If soz[i]=’a’ then soz[i]:=’t’;
Writeln(‘Auyskan soz – ‘,soz);
End.
Сабақ аяқталды
Сау болыңыздар.
Достарыңызбен бөлісу: |