- •Мазмұны
- •4.1. Массивтер және оларды циклдер көмегімен өңдеу
- •Writeln
- •4.2.3 А(4,5) екі өлшемді массивінің бас диагоналдағы оң таңбалы элементтерінің санын табу.
- •4.2.4 А(4,5) екі өлшемді массивінің әрбір жолындағы оң элементтердің санын табу.
- •Var айнымалы аты: string [жол ұзындығы];
- •6.2 Модулдер қолдану
- •Информатика. Turbo Pascal тілі
6.2 Модулдер қолдану
Паскалда процедуралармен және функциялармен қоса модулдер қолданылады. Кітапханалық модул – бұл тұрақтылар, айнымалылар, тип түрлерінен, процедуралар және функциялар сипатталуынан тұратын Turbo Pascal-дың өз бетінше компилациялайтын файлы. Модулді құрып, компиляциялаған соң, оны Turbo Pascal-дың кез келген бағдарламасында қолдануға болады, тек қана оның атын көрсету керек. Егер бірнеше қайталанатын әрекеттер туындап жатса, онда модул құрамына қосалқы бағдарламаны қосады. Мұндай бағдарламаны бір рет жазып қойып, бірнеше рет қайталауға болады. Модул құрамындағы файлдың аты модул атымен сәйкес болуы керек. Бағдарламадан модул функцияларына қатынас құруды, бағдарлама атауынан кейін орналасқан және модул аты (немесе бірнеше модулдер) көрсетілетін Uses қолдану операторы жүзеге асырады.
Модулдың бірінші жолында компиляторға директива бар. Директива $ белгісінен басталады және фигуралы жақшамен бітеді, ашылған фигуралы жақша мен $ белгісінің арасында бос жол болмауы керек. Директива компилятор (транслятор) жұмысын өзгертуге мүмкіндік береді, мысалы математикалық сопроцессор бағдарламасын қолдану қажеттілігі.
Әрбір модулде қызметші сөзден басталатын секциялар болады.
Модул Unit қызметші сөзінен басталады, содан кейін модул тақырыбы көрсетіледі және End (модул соңының белгісі) сөзімен аяқталады, содан кейін нүкте қойылады. Бұл үшін End-ке сәйкес Begin сөзі талап етілмейді. Өйткені Begin сөзінің модулде болуы міндетті емес жетекші секцияның басталу белгісі қызметін атқарады. Осылайша End сөзінің жұбы ретінде Begin емес Unit сөзі қолданылады.
Interface (интерфейстік секция) секциясы шақырылатын бағдарламадан немесе модулден қол жеткізілетін тұрақтылар, типтер айнымалылар және процедуралар сипаттауларынан тұрады және модулдың басқа модулмен, сонымен қатар негізгі бағдарламамен өзара қарым-қатынасын қамтамасыз етеді. Implementation (жүзеге асыру секциясы) секциясының тақырыбы модулдің интерфейстік секциясында көрсетілген бағдарламаның алдыңғы кодынан тұрады, сонымен қатар модул сипаттауына қатысты жергіліктерден тұруы мүмкін.
Модулді міндетті түрде көрсетілім жасау қажет, осы кезде аты алдыңғы файл атымен сәйкес кеңейтілуі .tpu түріндегі файл пайда болады. Көрсетілген модулді орындауға болмайды.
Turbo Pascal 7.0 құрамына қолданбалы бағдарламада шексіз қолдануға болатын алдын - ала анықталған көптеген типтер, тұрақтылар, айнымалылар, процедуралар мен функциялардан тұратын сегіз стандартты (System, Dos, Crt, Printer, Graph, Overlay, Turbo3 (Graph3) и Strings) модулдер жиыны кіреді. Кітапханалық модулдердің толық сипаттауларын Turbo Pascal 7.0 интегралданған құралдың қабықшасындағы файлдан Help көмегімен табуға болады.
System модулі– бұл файлдың енгізу-шығару, жолды өңдеу, бүтін мәнді арифметика, қозғалмалы нүктелі арифметика мен жадының динамикалық таратылуы секілді бағдарламалау тілінің барлық мүмкіндіктерін қолдаушы қосалқы бағдарламалардан тұратын Turbo Pascal-дың негізгі сақтаушы қоймасы. Бұл модулдің басқа модулден айырмашылығы Uses бағдарламасының бөлімінде көрсетілуі талап етілмейді.
Dos модулінде процедуралар мен функциялар, сонымен қатар бағдарламадан MS DOS құралдарына байланыс құру және файлдарды басқаруға мүмкіндік беретін айнымалылар мен тұрақтылар жинақталған.
Crt модулінің қосалқы бағдарламалары экранның мәтіндік ережесін, оның түсі мен терезелерін, символдардың анық жарықталуын, сонымен қатар пернетақта мен дыбыстың кеңейтілген кодтарын басқаруға мүмкіндік береді.
Printer модулінде LPT жүйелік құрылымымен бірігетін және мәліметтерді баспаға шығаратын Text типі бар Lst файлдық айнымалы ғана хабарланады.
Graph модулі экранның графикалық ережесін басқаруға арналған көптеген қосалқы бағдарламалардан тұрады. Осы модул қолданатын бағдарламаны іске қосу үшін графикалық драйвер (.bgi кеңейтілуі бар файл) және оған қосымша шрифтер файлы (.chr кеңейтілуі бар) болуы керек.
Ірі бағдарламаларды дайындау кезінде бағдарламаны жеке сегменттерге (оверлеи) бөлу қажеттілігі туындаса Overlay модуліндегі арнайы құралдар қолданылады.
Turbo3 және Graph3 модулдері қазіргі кезде практика жүзінде қолданылмайтын Turbo Pascal 3.0- мен бірігуді қолдауға арналған.
Strings модулі Windows-қосымшаларымен бірге бағдарламалар жазуға арналған функциялар мен процедуралардан тұрады.
6.3 Қосалқы бағдарламаны және модулді қолдану мысалы
6.3.1
есептеу,
мұндағы
А(n)
мен
В(m)-
бірөлшемді
массивтер.
6.1 - суретте VV және SUM процедуралары қосалқы бағдарлама-процедуралары қолданылған берілген есепті шешу бағдарламасы алгоритмінің блок-сұлбасы көрсетілген. VV процедурасы матрицаның мәндерін енгізуге қызмет етеді және бас бағдарламада А және В массивтерінің -n және m өлшеміндегі мәндерін енгізгеннен кейін шақырылады. VV процедурасының кіретін мәні ретінде енгізілетін матрицаның өлшемін анықтайтын к шамасы саналады. Бас бағдарламаға берілетін шығатын параметрлер–Х массивінің элементтері. VV процедурасын бірінші рет шақырғанда К, Х формалді параметрлері сәйкес нақты n, А параметрлерімен алмасады. Мұндай формалды параметрлердің нақтылармен алмасуы қосалқы бағдарламаның екінші шақырылуы кезінде де жүзеге асырылады.
|
|
|
6.1-сурет Қосалқы бағдарлама-процедураны қолдану мысалы |
||
program primer6_1; type t = array [1..20] of real; var A, B:t; n, m: integer; SA, SB, Z:real; procedure VV (k: integer; var x: t); var i: integer; begin for i:=1 to k do read (x[i]) end; procedure SUM (k: integer; x: t; var s: real); var i:integer; begin s:=0; for i:=1 to k do s:=s+x[i] end; begin write (‘А және В массивтерінің өлшемін енгізіңіз,n,m’); readln (n,m); VV (n, A); VV (m,B); SUM (n,A,SA); SUM (m,B,SB); Z := SA*SB; writeln (’Z=’,z) end.
|
||
6.2-суретте осы есепті қосалқы бағдарлама-функция қолданылып шығару алгоритмінің блок-сұлбасы көрсетілген.
|
|
6.2-сурет Қосалқы бағдарлама –функцияны қолдану мысалы |
|
Төменде келтірілген бағдарламада шақыру SUM процедурасының SUM функциясының көмегімен жүзеге асырылады. Мұндай алмастыру қосалқы бағдарламаны сипаттауда ғана емес, оны шақыруда да өзгерту енгізуге тура келеді. SUM қосалқы бағдарламасын шақыру бас бағдарламада массив элементтерін енгізгеннен кейін жүзеге асырылады. Кіретін параметрлер Х массиві мен оның К өлшемі, шығатын параметр –массив элементтерінің S қосындысы. Қолданылатын процедурадағы і параметрі жергілікті деп саналады, яғни өз мәнін процедура ішінде сақтайды. Қосалқы бағдарлама орындалған соң жергілікті параметрлер мәні ұмытылады. SUM процедурасында шығатын параметр біреу болғандықтан, оның орнына қосалқы бағдарлама функцияны қолдануға болады.
program primer6_2; type t = array [1..20] of real; var A, B: t; n, m: integer; SA, SB, Z: real; procedure VV (k: integer; var x: t); var i: integer; begin for i:=1 to k do read (x[i]) end; function SUM (k: integer; x: t): real; var i:integer; s:real; begin s:=0; for i:=1 to k do s:=s+x[i]; SUM:=s end; begin write (’А мен В массивтерінің өлшемін енгізіңіз, n, m’); readln (n, m); VV(n, A); VV(m, B);SA:=SUM(n, A);SB:=SUM(m, B); Z:=SA*SB; writeln (’Z=’,z) end.
|
6.3.2
белгілі математикалық қарым-қатынастарды қолданып, Sinh(x), Cosh(x) и Tanh(x) гиперболалық функциялар сипаттауынан тұратын модулді қолдану. Төменде құрылған модул мәтіні мен оны қолданатын тексеру бағдарламасы келтірілген.
{$N+} {компиляторға директива}
Unit hyp_fun; {модулдің тақырыбы}
Interface {интерфейстік секция}
Function sinh (x: extended): extended;
Function cosh (x: extended): extended;
Function tanh (x: extended): extended;
Implementation {жүзеге асыру секциясы}
var t: extended;
Function sinh (x: extended): extended;
Begin
t := exp(x); sinh := 0.5*(t – 1.0/ t);
End;
Function cosh (x: extended): extended;
Begin
t := exp(x); cosh := 0.5*(t + 1.0/ t);
End;
Function tanh (x: extended): extended;
Begin
t := exp(x); tanh := (t - 1.0) / (t + 1.0);
End;
End. {модулдің соңы}
{$N+}
Program Test_hyperbolic_fun; {тексеру бағдарламасы}
Uses hyp_fun;
Begin
Writeln (‘sinh (0.5) =’, sinh (0.5));
Writeln (‘cosh (-0.5) =’, cosh (-0.5));
Writeln (‘tanh (1.5) =’, tanh (1.5));
Write (‘Нажмите <Enter>:’);
Readln;
End.
6.4 Тапсырмалар нұсқасы
6.4.1 Қосалқы бағдарлама–функцияны қолдану
1.
функциясын
есептеу, мұндағы А(12) және В(10)- берілген
бірөлшемді массивтер.2. С(10), D(15) массивтері және Х нақты саны берілген. Z=AX2+B функциясын есептеу, мұндағы
,
.3. Х(10), У(15), Z(20) массивтері элементтерінің әрқайсысының арифметикалық орташасын есептеу.
4. Z(10) және X(15) массивтерінің ең кіші элементтерінің рет нөмірін анықтау.
5. А(5,5) және В(7,7) матрицаларының әрқайсысындағы бас диагоналда орналасқан элементтерінің қосындысын есептеу.
6. У(3,6) және Х(5,4) массивтерінің әрқайсысындағы оң элементтердің қосындысын табу.
7. А(4,4) және С(5,5) матрицаларының әрқайсысындағы бас диагоналда орналасқан элементтерінің арифметикалық орташасын есептеу.
8.
функциясын
есептеу,
мұндағы
Xmax
және
Ymax-
Х(10) және
Y(15)
массивтерінің ең үлкен элементтері.9. А(3,5) және В(4,4) матрицаларындағы 7-ден үлкен элементтердің санын табу.
10. А(5,5) және В(7,7) матрицалары үшін бас диагоналдың жоғарғы жағында орналасқан элементтердің арифметикалық орташасын есептеу.
11.
функциясын
есептеу,
мұндағы
А(10) және
В(12)- берілген
бірөлшемді массивтер.12. Y=ax2+bx+c функциясын есептеу, мұндағы х- берілген сан,
,
,
,
T(15)
және
Q(15)-
берілген
массивтер.13. C(9) және D(10) матрицаларындағы ең кіші элементтерінің қосындысын табу.
14. Х(10) және У(15) массивтеріндегі ең кіші элементтердің геометриялық орташасын анықтау.
15. А(10) және В(12) матрицалардың ең кіші элементтерінің көбейтіндісін табу.
16. А(5,5) және В(7,7) матрицалары үшін бас диагоналда орналасқан элементтердің көбейтіндісін есептеу.
17. А(10) және В(15) массивтеріндегі [-2, 6] аралығында кездесетін элементтердің санын анықтау.
18. А(4,4) және С(5,5) матрицаларының әрқайсысы үшін бас диагоналдың төменгі жағында орналасқан элементтердің арифметикалық орташасын есептеу.
19. А(3,5) және В(4,4) матрицаларындағы 10-нан кіші элементтердің санын табу.
20. х саны мен С(10) және D(15) бір өлшемді массивтері берілген.
есептеу,
мұндағы
,
.
21. А(10) және В(13) массивтерінің әрқайсысындағы нөлге тең элементтердің санын анықтау.
22. У(3,6) және Х(5,4) массивтерінің әрқайсысындағы теріс элементтердің көбейтіндісін табу.
23. А(5,5) және В(7,7) матрицаларындағы бірліктердің санын табу.
24. Z(10) және X(15) массивтерінің ең үлкен элементтерінің рет нөмірін анықтау.
25. C(9) және D(10) массивтерінің ең үлкен элементтерінің қосындысын табу.
26. А(10) және В(12) векторларынан таңдап алынған ең үлкен элементтердің арифметикалық орташасын табу.
27. n және m бүтін сандары берілген.
.
қосалқы
бағдарламада есептеледі.28. С(12) және D(15) екі өлшемді массивтері берілген.
есептеу.29.
функциясының
мәнін есептеу, мұндағы Xmin
және
Ymin-
Х(10) және Y(12)
массивтерінің ең кіші элементтері.30. (10) және D(15) матрицаларының ең кіші элементтерінің көбейтіндісін табу.
6.4.2 Қосалқы бағдарлама–процедураны қолдану
1. А(5,4), В(5,3) матрицаларының ең кіші элементтерін, сонымен қатар осы элементтер орналасқан жол және баған нөмірін анықтау.
2. Х(10) және У(15) массивтерінің ең үлкен элементтерін және олардың рет нөмірін табу.
3. А(3,5) және В(4,4) массивтерінің оң, теріс және нөлге тең элементтерінің санын табу.
4. А(12) және В(9) массивтеріндегі [-3, 5] аралығына жататын элементтердің
санын анықтау. Осы берілген аралыққа жататын элементтерді ретімен А1 және
В1 массивтеріне жазу.
5. А(5,4), В(5,3) матрицаларының ең кіші элементін, сонымен қатар осы элемент орналасқан жол мен баған нөмірін анықтау.
6. Х(10) және У(15) массивтеріндегі ең үлкен элементтерді және олардың рет нөмірін табу.
7. А(3,5) және В(4,4) массивтерінен оң, теріс және нөлге тең элементтердің санын табу.
8. А(12) және В(9) массивтеріндегі, [-3, 5] аралығында жататын элементтердің санын анықтау. Берілген аралыққа кіретін элементтерді А1 және В1 массивтеріне ретімен жазу.
9.
функциясын
есептеу, где x1,
x2
– ax2+2x-5=0
квадрат теңдеуінің түбірлері; y1,
y2
–7y2+ay-3=0
квадрат теңдеуінің түбірлері.10. А(10) және В(15) массивтерінен арифметикалық орташаны анықтап және осы арифметикалық орташадан кіші элементтердің санын табу.
11.
есептеу,
мұндағы
,
,
Amax және Bmax –А(15) және B(13) массивтерінің ең алкен элементтері.
12. А(3,3), В(4,4), С(3,3). А, В, С матрицаларының ізі боп табылатын Х, У, Z сандарынан ең кішісін табу. Матрица ізі – бас диагонал элементтерінің қосындысы.
13. А(3,3), С(7,7) матрицаларының нөлге тең және теріс элементтерінің санын санайтын бағдарламаны құру.
14. А(15), В(18) массивтеріндегі (1,5) аралығына жататын элементтердің санын және олардың қосындысын табу.
15. А(3,3), В(3,4) бүтін мәнді матрицалардағы 3-ке бөлінетін элементтердің санын және қалған элементтердің қосындысын табу.
16. В(3,5) және С(3,4) матрицаларындағы оң элементтердің көбейтіндісін және теріс элементтердің қосындысын табу.
17.
функциясын
есептеу,
мұндағы
x1,
x2
–
ax2+bx+c=0;
y1
квадрат теңдеуінің түбірлері,
y2
–dy2+ey+f=0
квадрат теңдеуінің түбірлері.18. В(5,3) және С(4,3) матрицаларындағы теріс элементтердің қосындысын және оң элементтердің санын табу.
19. А(3,5) және В(4,4) массивтеріндегі 5-тен үлкен, 5-тен кіші және 5-ке тең элементтердің санын табу.
20. D(5,5) және F(4,6) массивтерінің әрқайсысынан (-5,5) аралығына жататын элементтердің санын табу және осы элементтерді бір-бірімен көбейту.
21.
функциясын
есептеу,
мұндағы
,
,
Amax
және
Bmax
–А(15) және
B(13)
массивтерінің ең үлкен элементтері.22. А(7,2) және В(5,3) тікбұрышты матрицалардың элементтерін жол тізбегі бойынша ретімен бір өлшемді массивке жазудың қосалқы бағдарламасын құру.
23. В(5,3) және С(4,3) матрицаларының теріс элементтерінің қосындысын және оң элементтердің санын табу.
24. А(3,5), В(2,6) бүтінм әнді матрицаларындағы 5-ке бөлінетін элементтердің санын және қалған элементтердің көбейтіндісін табу.
25.
функциясын
есептеу,
мұндағы
,
,
Amin
және
Bmin
–А(12) және
B(14)
массивтерінің ең кіші элементтері.26. С(3,5) және D(4,4) массивтеріндегі 1-ден үлкен, 1-ден кіші және 1-ге тең элементтердің санын табу.
27. А(4,4) және В(3,5) массивтері элементтерінің арифметикалық орташасын және осы орташадан үлкен элементтердің санын анықтау.
28. X(5,5) және Y(4,6) матрицаларындағы оң элементтердің қосындысын және нөлге тең элементтердің санын табу.
29.
функциясын
есептеу,
мұндағы
,
,
Amin
және
Bmin
–А(15) және
B(13)
массивтерінің ең кіші элементтері30.
мәнін
есептеу,
мұндағы Xmin және и Ymin –X(10) және Y(13) массивтерінің ең кіші
элементтері
31. (5,5), В(6,6) матрицаларындағы ең үлкен элементтерді, сонымен қатар осы элементтер орналасқан жол мен баған нөмірін анықтау.
32. Х(10) және Y(15) массивтеріндегі берілгендердің математикалық күтуі мен дисперсиясын табу.
Есептеуді
,
формулалары
бойынша
процедурада жүргізу.
33.
мәнін
есептеу,
мұндағы Amin және Bmin –А(15) және B(13) массивтерінің ең кіші элементтері;
Amax және Bmax –А(15) және B(13) ең үлкен элементтері.
ретті екі квадрат матрица берілген. Осы матрицалардың қайсысында жол бойынша ең үлкен элементтерінің қосындысы кіші.
6.5 Бақылау сұрақтары
6.5.1 Қосалқы бағдарлама деген не? Қосалқы бағдарлама не мақсатпен
қолданылады?
6.5.2 Қосалқы бағдарлама-функцияның қосалқы бағдарлама-процедурадан
айырмашылығы?
6.5.3 Қосалқы бағдарламаның тақырыбы қандай ережемен жазылады?
6.5.4 Қосалқы бағдарламаны шақыру қалай жүзеге асырылады?
6.5.5 Қосалқы бағдарламада мысалы, массивтерде берілгендердің стандартты емес типі қалай хабарланады?
6.6.6 Нақты (жергілікті) параметрлердің формалді (ауқымды) параметрлерден айырмашылығы неде?
6.6.7 Модул деген не?
6.6.8 Модулді шақыру қалай жүзеге асырылады?
6.6.9 Модулдің құрылымын сипаттаңыз.
6.6.10 Стандартты модул мен оның тағайындалуларын жазыңыз.
A қосымшасы
Алгоритмнің графикалық сұлбасында (АГС) қолданылатын таңбаларды анықтау
А1 кестесі. Блок-сұлбаның негізгі элементтері
Атауы |
Белгіленуі |
Ескерту |
Терминатор |
|
Алгоритмнің басын және соңын белгілеу үшін қолданады |
Берілген мәндер |
|
Бастапты мәндерді еңгізу және шығару үшін қолданады |
Үрдіс |
|
Меншіктеу операциясын белгілеу үшін қолданады |
Дайындау |
|
Циклдың басын белгілеу үшін қолданылады |
Шешім |
|
Шартты немесе таңдау операторларын белгілеу үшін қолданылады. |
Алдын-ала анықталған үрдіс |
|
Негізгі бағдарлама ішінде алдын ала құрылған ішкі бағдарламамен модулдерді бейнелеу үшін қолданылады |
Біріктіргіш |
|
Берілген сұлбаны жалғастырып басқа жерге бейнелеу үшін қолданылады |
Сызық |
|
Сұлбаның орындалу тәртібін көрсету үшін бағыттаушы белгісі бар сызықтарды қолданылады. |
Түсініктеме |
|
Сұлба бөліктеріне ескерту немесе түсініктеме беру үшін қолданады |
Ескерту: Таңбаларды кез келген бағытта сызуға болады, бірақ негізінде көлбеу бағыт қолданылады. Таңбаның ішінде белгі немесе операцияны суреттейді. АГС таңбаларды реттік нөмірлермен немесе идентификаторлармен белгілеуге болады.
|
||
Әдебиеттер тізімі
1. Симонович С.В. Информатика. Базовый курс.- СПб.: Питер, 2000.
2. ГОСТ 19.701-90. ЕСПД. Схемы алгоритмов и программ. Обозначения условные, графические. – М.: Издательство стандартов,1990.
3. С.Немнюгин, Л.Перколаб. Изучаем Turbo Pascal. – СПб.: Питер, 2001. О.А.Меженный.Turbo Pascal: Учитесь программировать.- М.:Издательский дом «Вильямс», 2001.
4. Ю.Аляев, О.Козлов. Алгоритмизация и языки программирования Pascal, C++, Visual Basic: Учебно-справочное пособие. – М.: Финансы и статистика, 2004.
2004 ж. жиынтық жоспары, реті 25
Сүйебаева Ләйлә Біләлқызы
Ешпанова Мадина Далабайқызы
Сябина Наталья Валерьевна
