Пәнінен оқу-әдістемелік кешен


V. Енгізілген циклдер құрылымымен алгоритмдерді программалау



жүктеу 2,3 Mb.
бет11/14
Дата11.12.2017
өлшемі2,3 Mb.
#3929
1   ...   6   7   8   9   10   11   12   13   14

V. Енгізілген циклдер құрылымымен алгоритмдерді программалау

Бірінің ішіне бірі кірістірілген циклдер бар болады. Оларды күрделі циклдер деп аталады. Кірістірілген циклдерді қолданған программалар құрғанда ішкі цикл толығымен сыртқы циклдің ішіне орындалатындай болуы керек. Ішкі цикл өз кезегінде өзінің ішіне ішкі цикл орналастыра алады.

Мысалы 1: Nжәне K айнымалыларының барлық мәндеріндегі у айнымалысының мәндерін есептеу керек. N-сыртқы цикл параметрі, K-ішкі цикл параметрі, N, K, y-бүтін типті айнымалылар.

N айнымалысының әрбір мәнінде K айнымалысы 2, 4, 6, 8 мәндерін қабылдасын. Бұл 3 рет қайталанады, себебі N айнымалысының қабылдайтын мәндері үшеу. N=1, 2, 3, K=2, 4, 6, 8, y=2K+N. Сыртқы цикл – for арқылы, ал ішкі цикл while арқылы орындалады.

Program M1 (input, output);

Var

M, K, y: integer;

Begin

For N:=1 to 3 do

Begin

While K<8 do

Begin

y:=2*K+N;

Writeln(N:4, K:4, y:4);

K:=K+2;

End;

End;

End.

Мысалы 2: F, J, K айнымалыларының барлық мәндеріндегі z айнымалысының мәндерін есептеу керек. F=1, 2, 3, 4, 5, J=2, 4, 6, 8, 10, 12, K=7, 9, 11, z=2F+2J+K.

F, J - сыртқы цикл параметрі;

K – ішкі цикл параметрі.

Program M2 (input, output);

Var

F, J, K, z: integer;

Begin

For F:=1 to 5 do

For J:=2 to 12 do

Begin

While K<11 do

Begin

Z:=2*F+2*J+K;

Writeln(‘F=’, F, ‘J=’, J, ‘K=’, K, ‘z=’, z);

K:=K+1;

End; End; End.



Өзін тексеру сұрақтар

  1. Циклдық алгоритм дегеніміз не?


Әдебиет: (1) бет. 71-80


8 апта



Дәріс №8. Ішкі программалар.

Ішкі программа ұғымы. Процедуралар және Функциялар.

ТР-да ішкі программаның 2 түрін бөліп көрсетуге болады: процедуалар және функциялар.

Программада қолданылатын стандартты функциялар мен процедуралар бар, мысалы, процедуралар:

Writeln(…)

Write(…)

Readln(…)

Read(…)

функциялар:

Sin(…)


Cos(…)

Odd(…)


Sqr(…)

Sqrt(…)


Программист өз есептерін шешу үшін өз процедурасы мен функциясын құра алады. Процедура және функциялар құрылымы негізгі программанікі сияқты.
Процедура құрылымы, оның сипатталуы және шақыру операторы

. Процедуралар

Процедура мәтіні procedure бөлімінде орналасқан.



Процедура сипаты мынадай түрде болады:

procedure <аты>(< формальды параметрлер тізімі>);

uses

label


const

type


var

procedure

function

begin


<операторлар>;

end;


Формальды және фактылы параметрлер, олардың сәйкестік ережесі. Функциялар

Формальды параметрлер типі көрсетілген, бір бірінен «;» арқылы бөлінген айнымалылар тізімінен тұрады. Процедура параметрі 3 түрлі:

  1. Параметрлер-мәндер (енгізу параметрлер).

  2. Параметрлер-айнымалылар(шығару параметрлер).

  3. Параметрлер-процедуралар.

Параметрлер-мәндер былайша сиптатталады:

<айнымалылар тізімі_1>:<тип_1>; <айнымалылар тізімі_2>:<тип_2>;…

Параметрлер-айнымалылар былайша сипатталады:

var < айнымалылар тізімі _1>:<тип_1>; < айнымалылар тізімі _2>:<тип_2>;…



Процедураны шақыру негізгі программада былай іске асырылады:

<процедура аты>(<фактілі параметрлер>);

Фактілі параметрлер үтір арқылы типін көрсетпей-ақ тізіліп жазылады.



Формальды және фактілі параметрлер арасында саны бойынша, мәліметтер типі бойынша сәйкестік болу керек. Сәйкес параметрлерінің аты әртүрлі немесе бірдей болу керек.

Процедураға жіберілетін фактілі параметрлер константа, айнымалы, өрнек болуы мүмкін.

Процедурадан мән алатын фактілі параметрлер тек қана айнымалы болады.

Параметр-мәндер арқылы ақпаратты программадан процедураға жіберуге болады, бірақ кері қайтарылмайды. Ал параметр-айнымалы арқылы ақпаратты программадан процедураға жіберуге болады, жәнеде кері де жіберуге болады.



Функциялар

Функция мәтіні мына бөлімде орналасқан: function.



Функцияның сипаты:

function <аты>(<формальды параметрлер тізімі>):<тип>;

uses

label


const

type


var

procedure

function

begin


<операторлар>;

<имя>:= <нәтиже>;

end;
Өзін-өзі тексеру сұрақтары немесе тестер

{Өзін-өзі тексеру сұрақтар тізімі немесе тестер}


  1. Процедураның құрылымы қандай? Процедура қандай бөлімде сипатталады?

  2. Негізгі программада процедураны қалай шақыруға болады?

  3. Формальды және фактілік параметрлер деген не?

  4. Формальды мәндер - параметрлер және формальды айнымалы – параметрлер деген не? Негізгі программадан параметрлердің берілуі қалай орындаладыжәне керсінше мәндер - параметрлер мен айнымалы – параметрлер пайдаланған жағдайда?

Әдебиет: (1) бет. 80-92

9 апта



Дәріс №9. Деректердің құрылымданған типі: массивтер.

Массивтер

Қарапайым типтер қатарына жататын стандартты (Integer, real) және қолданушылар (тізбектелген тип) типтерінде бір айнымалыны сақтау үшін, негізінен компьютер жадысының бір ғана ұяшығы қолданылады. Бірақ көпетген программаулау есептерінің шешімін табу барысында әрбір элементтің деректерін жеке айнымалыға сақтау орнына, оларды тізбектеп бір жерде сақтау анағұрлым тиімді болып табылады.



  1. Бір өлшемді массивтер

Бір типтес берілгендерден құралып, барлық элементтеріне бір ортақ атау берілген жиынды массив деп атаймыз. Массив құрылымдық типтер қатарына жатады. Массив элементтері нөмірленеді. Массивтің әрбір элементіне индексін көрсету арқылы жұмыс істеуге болады. Массивке мысал ретінде векторларды қарастыруға болады. Егерм массивке кестелік берілгендер жазылса ( матрица), онда элементтері екі индекс бойынша нөмірленеді.

Массив сипаттамалары:



Массивтер элементтерімен жұмыс жасау барысында, массив атауынан кейін міндетті түрде тік жақшаға алынған индекс көрсетіледі. Индекс ретінде сандар қолданылады.

Массивтерді қолдану үшін оларды типтер (type) немесе айнымалыларды сипаттау (var) бөлімінде хабарлану қажет.

Жалпы жазылу түрі:

Type

Массив типінің атауы = array [индекс типі] of элемент типі;

Var

Массив атауы: массив типінің атауы;

Мысалы:


Type

GRUP = array [1…8] of integer;



Var

A:GRUP; {А – массивіне жады бөлу }

Мұндағы:


Массив типінің атауы – массив элементтерінің жиынын сипаттайды;

Индекс типі - тізбектелген немесе шектелген типтерді көрсету;

Элемент типі – массив элементтерінің типін көрсету.

Берілген мысалдағы массивтің әрбір элементімен жұмыс істеу үшін, массив атауы және индексі берілуі тиіс. Массив индексі тік жақшаға алынып жазылады, сол себепті массивтің кез келген элементіне қатынас алуға болады.

Яғни берілген массивиің бірінші элементіне қатынас алу үшін массив атауынан кейін бірінші индексті көрсету қажет: A[1]; массивтің екінші элементіне қатынас алу үшін; A[2]; ал А массивінің сегізінші элементіне: A[8] көрсетіледі

A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8]



12

11

5

-2

405

-3

9

-7

Массив- тің бірінші элементі

Массив-тің екінші элементі

Массив-

тің үшінші элементі



Массив-

тің төртінші элементі



Массив-тің бесінші элементі

Массив-

тің алтыншы элементі



Массив

-тің жетінші элементі



Массив-тің сегізінші элементі

Берілген массивтің кез келген элементтеріне арифметикалық операцияларды, салыстыру және меншіктеу операторларын қолдануға болады. Сонымен қатар, массивтерге Turbo Pascal программалау тіліндегі айнымалы типіне сәйкес келетін барлық стандартты процедуралар және функциялар қолданылады.

Массивтің кез-келген бір элементіне элементіне нәтиже беру үшін, меншіктеу операторы қолданылады:



Массив атауы[индексі]:=нәтиже

Мысалы:


а) А массивінің бірінші элементіне- 12 санын меншіктеу үшін: А[1]:=12;

ә) А массивінің бесінші элементіне- 405 санын меншіктеу үшін: А[5]:=1405;

б) А массивінің екінші элемент нәтижесін экранға- шығару үшін: writeln (A[2]); (экранға 11 шығады.)

в) А массивінің бесінші элементіне нәтижені пернелер тақтасы көмегімен енгізу үшін: readln(A[1]);

г) А массивінің бірінші және үшінші элементтерін қосындысын Sum айнымалысына меншіктеу үшін: Sum:=A[1]+A[3];(нәтижесінде Sum айнымалысына 17 саны меншіктеледі).
Бірөлшемді массивтер элементтерімен жұмыс.
Массивтің кез-келген элементерімен жұмыс істегенде программалау барысында олардың индекісінің мәні сипатталған шектеуден аспауы тиіс.

Егер массив индексінің мәні сипатталған шектеуден асып кетсе онда, синтаксистік қате тіркеліп, экранда “Index type is not compatible with declaration” деген сөз тіркестері шығарылады.

Массивтер қолдпанылатын программаларда “{R+}” директивасын жазу арқылы массивтің шектеулерін тексеруге болады. Егер прогаммада“{R+}” директивасы беріліп, массив индексі шектеуден асып кетсе, онда экранға “Range check error” сөз тіркесі шығарылады.

Массивтерді программада қолдану үшін Turbo Pascal програмаллау тілінде оларды бірден var бөлімінде сипаттау жолы қарастырылған.

Жалпы жазылу түрі:

Var


Массив атауы : array (индекс типі) of элемент типі;

Мысалы, бөлшек сандарға арналған он сегіз элементтен тұратын GR массивін сипаттау:

Var

GR: array [1...18] of real;



Берілген тоғыз элементтен тұратын А масчсивіне бөлшек сандар енгізіп, оларды дисплей бетіне ретімен шығару программасын қарастырайық:

{$ R+}

PROGRAM MASSIV; {Программа атауы}

Type { Типтерді сипаттау бөлімі }

Mas = array [1..9] of real; { Шарт бойынша массив типі }

Var {айнымалыларды сипаттау бөлімі}

A: Mas; {Mas типті А - массиві}

I: integer; {циклді басқару айнымалысы}

BEGIN {негізгі программа басы}

WRITELN (‘A – массивінің 9 элементін енгізіңіз:’);



` FOR I:= 1TO 9 DO {I- бойынша цикл}

READ (A[i]); {A[i] массивіне нақты сандарды енгізу операторы}

FOR I:=1 to 9 do {I- бойынша цикл}

WRITE(‘A[‘,I,’]=’,A[I]); {A[I] массивінің элементін дисплейге шығару операторы}



END. {Негізгі программа соңы}

Өзін-өзі тексеру сұрақтары

  1. Шектелген типті айнымалылар қалай сипатталады?

  2. Диапазондық типті айнымалылар қалай сипатталады?

  3. Массив деген не?

  4. Массивтің өлшемділігі деген не?

  5. Программада бірөлшемді, екіөлшемді массивтер қалай сипатталады?

  6. Массив элементіне қалай қарасады?

  7. Массивті қалай толтыру керек?

Массивті экранға шығару
Әдебиет: (1) бет. 140-153

10 апта



. Деректердің құрылымданған типі: массивтер.Бірөлшемді және көпөлшемді массивтер.
Массивтер

Қарапайым типтер қатарына жататын стандартты (Integer, real) және қолданушылар (тізбектелген тип) типтерінде бір айнымалыны сақтау үшін, негізінен компьютер жадысының бір ғана ұяшығы қолданылады. Бірақ көпетген программаулау есептерінің шешімін табу барысында әрбір элементтің деректерін жеке айнымалыға сақтау орнына, оларды тізбектеп бір жерде сақтау анағұрлым тиімді болып табылады.



  1. Бір өлшемді массивтер

Бір типтес берілгендерден құралып, барлық элементтеріне бір ортақ атау берілген жиынды массив деп атаймыз. Массив құрылымдық типтер қатарына жатады. Массив элементтері нөмірленеді. Массивтің әрбір элементіне индексін көрсету арқылы жұмыс істеуге болады. Массивке мысал ретінде векторларды қарастыруға болады. Егерм массивке кестелік берілгендер жазылса ( матрица), онда элементтері екі индекс бойынша нөмірленеді.

Массив сипаттамалары:



  • Типі – массив элементтерінің жалпы типі;

  • Көлемі – массив индексінің саны;

  • Шектелімі - әрбір индекстардің шектеу бойынша сәйкестігі;

  • Пішімі – көлем және шектеулер жиындары.

Массивтер элементтерімен жұмыс жасау барысында, массив атауынан кейін міндетті түрде тік жақшаға алынған индекс көрсетіледі. Индекс ретінде сандар қолданылады.

Массивтерді қолдану үшін оларды типтер (type) немесе айнымалыларды сипаттау (var) бөлімінде хабарлану қажет.

Жалпы жазылу түрі:

Type

Массив типінің атауы = array [индекс типі] of элемент типі;

Var

Массив атауы: массив типінің атауы;

Мысалы:


Type

GRUP = array [1…8] of integer;



Var

A:GRUP; {А – массивіне жады бөлу }

Мұндағы:


Массив типінің атауы – массив элементтерінің жиынын сипаттайды;

Индекс типі - тізбектелген немесе шектелген типтерді көрсету;

Элемент типі – массив элементтерінің типін көрсету.

Берілген мысалдағы массивтің әрбір элементімен жұмыс істеу үшін, массив атауы және индексі берілуі тиіс. Массив индексі тік жақшаға алынып жазылады, сол себепті массивтің кез келген элементіне қатынас алуға болады.

Яғни берілген массивиің бірінші элементіне қатынас алу үшін массив атауынан кейін бірінші индексті көрсету қажет: A[1]; массивтің екінші элементіне қатынас алу үшін; A[2]; ал А массивінің сегізінші элементіне: A[8] көрсетіледі

A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8]



12

11

5

-2

405

-3

9

-7

Массив- тің бірінші элементі

Массив-тің екінші элементі

Массив-

тің үшінші элементі



Массив-

тің төртінші элементі



Массив-тің бесінші элементі

Массив-

тің алтыншы элементі



Массив

-тің жетінші элементі



Массив-тің сегізінші элементі

Берілген массивтің кез келген элементтеріне арифметикалық операцияларды, салыстыру және меншіктеу операторларын қолдануға болады. Сонымен қатар, массивтерге Turbo Pascal программалау тіліндегі айнымалы типіне сәйкес келетін барлық стандартты процедуралар және функциялар қолданылады.

Массивтің кез-келген бір элементіне элементіне нәтиже беру үшін, меншіктеу операторы қолданылады:



Массив атауы[индексі]:=нәтиже

Мысалы:


а) А массивінің бірінші элементіне- 12 санын меншіктеу үшін: А[1]:=12;

ә) А массивінің бесінші элементіне- 405 санын меншіктеу үшін: А[5]:=1405;

б) А массивінің екінші элемент нәтижесін экранға- шығару үшін: writeln (A[2]); (экранға 11 шығады.)

в) А массивінің бесінші элементіне нәтижені пернелер тақтасы көмегімен енгізу үшін: readln(A[1]);

г) А массивінің бірінші және үшінші элементтерін қосындысын Sum айнымалысына меншіктеу үшін: Sum:=A[1]+A[3];(нәтижесінде Sum айнымалысына 17 саны меншіктеледі).
Бірөлшемді массивтер элементтерімен жұмыс.

Массивтің кез-келген элементерімен жұмыс істегенде программалау барысында олардың индекісінің мәні сипатталған шектеуден аспауы тиіс.

Егер массив индексінің мәні сипатталған шектеуден асып кетсе онда, синтаксистік қате тіркеліп, экранда “Index type is not compatible with declaration” деген сөз тіркестері шығарылады.

Массивтер қолдпанылатын программаларда “{R+}” директивасын жазу арқылы массивтің шектеулерін тексеруге болады. Егер прогаммада“{R+}” директивасы беріліп, массив индексі шектеуден асып кетсе, онда экранға “Range check error” сөз тіркесі шығарылады.

Массивтерді программада қолдану үшін Turbo Pascal програмаллау тілінде оларды бірден var бөлімінде сипаттау жолы қарастырылған.

Жалпы жазылу түрі:

Var

Массив атауы : array (индекс типі) of элемент типі;



Мысалы, бөлшек сандарға арналған он сегіз элементтен тұратын GR массивін сипаттау:

Var


GR: array [1...18] of real;

Берілген тоғыз элементтен тұратын А масчсивіне бөлшек сандар енгізіп, оларды дисплей бетіне ретімен шығару программасын қарастырайық:

{$ R+}

PROGRAM MASSIV; {Программа атауы}

Type { Типтерді сипаттау бөлімі }

Mas = array [1..9] of real; { Шарт бойынша массив типі }

Var {айнымалыларды сипаттау бөлімі}

A: Mas; {Mas типті А - массиві}

I: integer; {циклді басқару айнымалысы}

BEGIN {негізгі программа басы}

WRITELN (‘A – массивінің 9 элементін енгізіңіз:’);

` FOR I:= 1TO 9 DO {I- бойынша цикл}

READ (A[i]); {A[i] массивіне нақты сандарды енгізу операторы}

FOR I:=1 to 9 do {I- бойынша цикл}

WRITE(‘A[‘,I,’]=’,A[I]); {A[I] массивінің элементін дисплейге шығару операторы}



END. {Негізгі программа соңы}
Өзін тексеру сұрақтары

  1. Екі өлшемді массивті сипаттау?

  2. Екіөлшемді массив элементіне қатысу?

  3. Екі өлшемді массивті толтыру?

  4. Екіөлшемді массивті экранға шығару?


Әдебиет: (1) бет. 140-153


жүктеу 2,3 Mb.

Достарыңызбен бөлісу:
1   ...   6   7   8   9   10   11   12   13   14




©g.engime.org 2024
әкімшілігінің қараңыз

    Басты бет
рсетілетін қызмет
халықаралық қаржы
Астана халықаралық
қызмет регламенті
бекіту туралы
туралы ережені
орталығы туралы
субсидиялау мемлекеттік
кеңес туралы
ніндегі кеңес
орталығын басқару
қаржы орталығын
қаржы орталығы
құрамын бекіту
неркәсіптік кешен
міндетті құпия
болуына ерікті
тексерілу мемлекеттік
медициналық тексерілу
құпия медициналық
ерікті анонимді
Бастауыш тәлім
қатысуға жолдамалар
қызметшілері арасындағы
академиялық демалыс
алушыларға академиялық
білім алушыларға
ұйымдарында білім
туралы хабарландыру
конкурс туралы
мемлекеттік қызметшілері
мемлекеттік әкімшілік
органдардың мемлекеттік
мемлекеттік органдардың
барлық мемлекеттік
арналған барлық
орналасуға арналған
лауазымына орналасуға
әкімшілік лауазымына
инфекцияның болуына
жәрдемдесудің белсенді
шараларына қатысуға
саласындағы дайындаушы
ленген қосылған
шегінде бюджетке
салығы шегінде
есептелген қосылған
ұйымдарға есептелген
дайындаушы ұйымдарға
кешен саласындағы
сомасын субсидиялау