- •Мазмұны
- •4.1. Массивтер және оларды циклдер көмегімен өңдеу
- •Writeln
- •4.2.3 А(4,5) екі өлшемді массивінің бас диагоналдағы оң таңбалы элементтерінің санын табу.
- •4.2.4 А(4,5) екі өлшемді массивінің әрбір жолындағы оң элементтердің санын табу.
- •Var айнымалы аты: string [жол ұзындығы];
- •6.2 Модулдер қолдану
- •Информатика. Turbo Pascal тілі
Var айнымалы аты: string [жол ұзындығы];
Мысалы, Var slovo:string[10]; stroka:string;
Осылайша жолдық тип жиі (массивті) типте беріледі, сондықтан да массивтің барлық құрамы жолға ауыстырылады (жол ұзындығы статикалық түрде беріледі; жолдың жеке символына қатынас құру оның индексі арқылы жүзеге асады). Жолдың ерекшеліктері:
- егер ұзындықтары тең болса, жол тұрақтылары жол айнымалыларына мән
ретінде тағайындалады;
- (<, >, <=, >=, =, < >) операцияларын пайдаланып, жол айнымалыларының мәндерін салыстыруға болады; жол айнымалыларының мәндерін салыстыру, литерді алғашқы сәйкес емес символға дейін тізбектеп салыстыру жолымен жүзеге асырылады, яғни егер осы символдың коды үлкен болса, онда сол жол үлкен болып саналады;
- жол айнымалыларының мәндерін енгізу read (readln) стандарты процедурасының көмегімен орындалады;
- жолға мән беру үшін бағдарламада меншіктеу операторы қолданылады, мысалы sl:='Ақпараттану'.
Паскалда жолдарға жиі қолданылатын әрекеттерді орындау үшін функциялар мен процедуралар жиыны тағайындалған (А1).
5.2 Символдық ақпаратты өңдеу алгоритмі мен бағдарламасына мысал
Берілген мәтіннің палиндром (солдан оңға және оңнан солға бірдей оқылатын мәтін палиндром деп аталады) екендігін тексеретін бағдарлама құру. Бағдарлама құру барысында ASCII кестесінде орыс әліпбиінің бас әріптер кодының - Ord(A)=128,…,Ord(Я)=159 ретімен, ал кіші әріптер кодының кестеде Ord(а)=160,…, Ord(п)=175, Ord(р) = 224,…, Ord(я)=239 ретсіз орналасуын ескеру керек.
5.1 суретінде берілген есепті шығару алгоритмінің блок-сұлбасы көрсетілген және оған қатысты бағдарлама келтірілген.
|
5.1-сурет Символды ақпаратты өңдеу мысалы |
program p_5; var st, a, b: string; i, n, k: integer; begin writeln ('Орыс тілінде мәтін енгіз'); readln (st); a:=''; b:=''; n:=length(st); for i:=1 to n do if st[i]<>' ' then begin {Орыстың БАС әріптерін кіші әріптерге ауыстыру} if (st[i]>='А') and (st[i]<='П') then st[i]:= chr(ord(st[i])+32) else if (st[i]>='Р')and(st[i]<='Я') then st[i]:=chr(ord(st[i])+80); a:=a+st[i]; b:=st[i]+b end; write (st,' - '); if a=b then writeln ('палиндром') else writeln ('палиндром емес') end. |
5.3 Тапсырмалар нұсқасы
1. Бірнеше сөзден тұратын символдар тізбегі берілген. Ең ұзын сөзді табу.
2. Бірнеше сөзден тұратын символдар тізбегі берілген. Сөздердің санын табу.
3. Символдар тізбегі берілген. Жолдағы бос жолдарды есептеп, оларды үтірмен алмастыру.
4. Символдар тізбегі берілген. Жолдағы сөздер санын анықтау.
5. Сөздер тізбегі берілген. Дисплей экранына саны бестен аспайтын символдардан тұратын сөзді шығару.
6. Берілген символдар жолынан "О" әрпінің санын анықтау.
7. Берілген символдар жолындағы барлық "А" әріптерін орнына "Я" әріптерімен алмастыру.
8. Берілген символдар жолынан төрт әріптен тұратын сөздер санын анықтау.
9. Берілген символдар жолындағы барлық бос жолдарды "+" таңбасымен алмастыру.
10. Берілген символдар жолында қай тыныс белгісінің (сызықша, үтір, нүкте, қос нүкте белгілерінің) көп кездесетінін анықтау.
11. Берілген символдар жолында "МИ" сөзі қанша рет кездеседі.
12. Жолдағы ең ұзын сөзді анықтау.
13. Берілген символдар жолынан "А" әрпімен аяқталатын сөзді экранға шығару.
14. Берілген символдар жолынан "С" әрпінен басталатын сөздердің санын анықтау.
15. Берілген символдар жолындағы барлық үтірлерді "-" белгісіне алмастыру.
16. Жолдағы үтірлер санын анықтау.
17. Жолдағы "Л" әрпінің санын анықтау.
18. Жолдағы "Ь" әрпімен аяқталатын сөздердің санын анықтау.
19. Жолдан кем дегенде екі "А" әрпі бар сөздердің санын анықтау.
20. Берілген символдар жолындағы барлық "И" әріптерін "+" белгісіне алмастыру.
21. Символдар жолынан цифрлар санын анықтау.
22. Берілген символдар жолынан бастапқы және соңғы символдары сәйкес сөздердің санын анықтау.
23. Берілген символдар жолынан "а" әрпінен басталатын ең ұзын сөзді тауып және оны кері түрде шығару.
24. Жолдағы бірінші сөзді соңғы сөзбен алмастыру.
25. Берілген символдар жолының палиндром екендігін анықтау (яғни сөз солдан оңға және оңнан солға қарай бірдей оқылады).
26. Берілген мәтінде бір сөзді басқа сөзге алмастыру.
27. Жолдағы сөзді кері жазу бағдарламасын құрыңыз (егер "кот" болса, онда нәтиже "ток" болуы қажет).
28. Берілген символдар жолындағы барлық "б" әріптерін "ку" буынына алмастыру.
29. К-ның 1-ден 99-ға дейін кез келген бүтін мәндерінен "Мне К лет" фразасын шығаратын бағдарламаны жазыңыз (мысалы, "Мне 18 лет", "Мне 21 год")
30. Латынның кіші әріптерін бас әріпке түрлендіретін LowCase бағдарламасын құрыңыз (Upcase кері функциясы). ord('A') = ord ('a') + 32 дәлелін пайдаланыңыз.
5.4 Бақылау сұрақтары
5.4.1 Берілгендердің жолдың типі қандай қандай мақсат үшін қолданылады?
5.4.2 Символдар жолы деп нені атайды? Жолдың ең ұзыны қанша болады?
5.4.3 Жол тұрақтылары мен жол айнымалыларының бір-бірінен айырмашылығы?
5.4.4 Жол айнымалылары қалай хабарланады?
5.4.5 Жолдың негізгі ерекшелігін атаңыз.
5.4.6 Жолмен жұмыс жасау үшін қандай негізгі функциялар мен процедуралар жиыны қарастырылған?
№6 зертханалық жұмыс. Қосалқы бағдарламаны мен модулді қолдану
Жұмыстың мақсаты – қосалқы бағдарламаны және модулді қолдана отырып есеп шығаруда бағдарламалау тәсілін меңгеру.
6.1 Қосалқы бағдарлама-функция және қосалқы бағдарлама-процедура
Бағдарламалау кезінде әртүрлі параметрлі бағдарламаның әртүрлі бөлігінде бір операторлар тізбегін бірнеше рет қайталап, көшіруге тура келеді. Осындай әрекетті жүзеге асыру үшін және бағдарламаның көлемін қысқарту үшін қосалқы бағдарламаларды: процедуралар мен функцияларды қолдану ыңғайлы. Есепті шығару кезінде қосалқы бағдарламаны қолданар алдында содан соң шығатын нәтижелердің санына байланысты қолданылатын қосалқы бағдарлама типін таңдау, себебі қосалқы бағдарлама-функцияда нәтиже біреу, ал қосалқы бағдарлама-процедурада бірнешеу.
Кез келген қосалқы бағдарламада:
- кіріспе;
- бейнелеу бөлімінен;
- орындаушы бөлімінен тұрады.
Қосалқы бағдарлама кіріспесінің жазылу үлгісі:
- қосалқы бағдарлама-функцияда |
|
Паскалда жазылуы |
Function аты (нақты параметрлер тізімі):функция типі; |
Мысал |
Function Beta ( x, y: integer; a, b: real) : real; |
- қосалқы бағдарлама-процедурада |
|
Паскалда жазылуы |
Procedure аты (нақты параметрлер тізімі); |
Мысал |
Procedure Alfa (N:integer; A,B:real; var max:real; var k:integer); |
Процедураны сипаттау үшін қолданылатын параметрлер нақты параметрлер деп аталады. Процедураның нақты параметрлері мәндер-параметріне және айнымалылар-параметріне бөлінеді. Қосалқы бағдарламаны (кіретін) орындау кезінде мәні өзгермейтін параметрлерді мәндер-параметрі, ал қосалқы бағдарламаның басты бағдарламаға берілетін шамалары айнымалы-параметрлер деп аталады. Нақты параметрлер тізіміне айнымалы-параметрлер аудару алдында Var сөзін жазу қажет. Қарастырылған мысалда нақты шама max және бүтін шама і айнымалы параметрлер болып табылады. Бүтін шама N және нақты шамалар А мен В мәндер параметрі түрінде көрсетілген. Егер қосалқы бағдарламада стандартты емес типті параметр қолданылса, мысалы массив, онда ол басты бағдарламада сипатталуы керек.
Қосалқы бағдарлама – функцияның нақты параметрлері мәндер-параметрі, яғни енгізілетін мәліметтер болуы мүмкін, ал шығатын параметрлер ретінде қосалқы бағдарлама-процедураның аты саналынады, сондықтан кіріспеде оның типін көрсету керек.
Осылайша процедура нәтижесі айнымалы-параметрлер арқылы, ал қосалқы бағдарлама-функция нәтижесі оның аты арқылы беріледі. Осыған байланысты нәтиже меншіктелетін қосалқы бағдарламаның орындаушы бөлімінде функция аты айнымалы ретінде қолданылады ал процедурада мұндай әрекетке қатаң тиым салынады.
Қосалқы бағдарлама-процедураның сипаттау бөлімінде жергілікті айнымалылар (яғни қосалқы бағдарлама-процедураның ішінде ғана қолданылатындар) сипатталады, формалді параметрлер қосалқы бағдарлама-процедураның бұл бөлімінде сипатталынбайды. Қосалқы бағдарлама-процедураның орындаушы бөлімі қосалқы бағдарлама процедураға кіргізілетін алгоритмді дайындайды. Бұл бөлімде қосалқы бағдарлама –функция үшін сол жағында функция аты тұратын меншіктеу операторы болуы қажет.
Қосалқы бағдарламаның негізгі бағдарламадан айырмашылығы үтір нүктемен аяқталады.
Бас бағдарламаға қосалқы бағдарлама-процедураны шақырудың жазылу тәртібі:
- қосалқы-бағдарлама-функцияда |
|
Паскалда жазылуы |
Айнымалы аты := Қосалқы бағдарлама аты (нақты параметрлер тізімі); |
Мысал |
Z := Beta (5,6, S, D); |
- қосалқы бағдарлама -процедурада |
|
Паскалда жазылуы |
Қосалқы бағдарлама аты (нақты параметрлер тізімі); |
Мысал |
Alfa (10, X, Xmax, ix); |
Қосалқы бағдарламаны шақыру үшін формалді параметрлердің орнына қолданылатын параметрлерді нақты (жергілікті) параметрлер деп аталады. Нақты және формалді параметрлер арасындағы сәйкестік олардың орналасу ретімен, тізімдегі санымен және көрсетілген типке сәйкестілігімен анықталады.
Бағдарламада бас бағдарламаның айнымалыларын сипаттау жиынтығынан кейін орналасатын бірнеше түрлі қосалқы бағдарламалар болуы мүмкін. Егер қандай да бір қосалқы бағдарлама басқа бір қосалқы бағдарламаны шақыратын болса, онда шақырушы қосалқы бағдарлама шақырылудан кейін орналасуы қажет.
