Циклды ұйымдастыру және матрицаны өңдеу

Автор работы: Пользователь скрыл имя, 23 Декабря 2011 в 06:17, курсовая работа

Описание

Қазақстан Республикасындағы білімді ақпараттандыру жүйесі ары қарай дамыту процесін оқып үйренудің ақпараттық ресурсы болып табылатын оқытуға арналған программалық құралдарды дайындамай жүзеге асыруы мүмкін емес. Олардың атқаратын қызметтерінің ауқымы кең, мысалы, бақылайтын және тест жүргізетін программалар, компьютерлік ойындар, ақпараттық жүйелер, оқыту орталары, электрондық оқулықтар және мультимедиалық программалар.

Работа состоит из  1 файл

Курсовой Боранова 3-курс.doc

— 755.50 Кб (Скачать документ)
 

2.6  Жиымдар (Массивтер)

       Мәліметтерді ұйымдастырудың  кестелік тәсілі.

Мәліметтерді  ұйымдастыру тәсілдерінің кең тараған  түрі – кестелік тәсіл. Кестелік мәліметтермен  күнде жұмыс істейміз десек, артық  болмас. Шахмат турнирінің кестесі, сынып  журналы, көбейту кестесі, көрермендер залындағы орындар схемасы – барлығы да мәліметтерді кестелік түрде ұйымдастыру тәсілінің мысалы.

     Мысалы, 3-курс білімгерлері Жоғарғы  математика негіздерінен бақылау  жұмысын жазды делік, солардың  ішіндегі Байжанов Н. Қандай  баға алғанын білгіміз келсе, «Жоғарғы математика» пәні бетін ашып, Байжанов Н. Деп жазылған жолды тауып, алған бағасын қараймыз. Жол мен бағаны қиылысындағы іздеген бағаны тауып аламыз.

    Сабақтан соң театрға бардық делік. Билетке сәйкес залдағы орныңды қалай табамыз? Алдымен тура жүріп, өз қатарымызды, сонан соң қатар бойымен жылжып керекті орынды табамыз.

     Осы мысалдардың ұқсас екені  айтпаса да түсінікті. Топ журналындағы  баға мен театр залындағы орын  әртүрлі болғанымен, олардың орналасуы  өте ұқсас: ұзындықтары бірдей бірнеше қатарлардан (жолдардан) тұрады. Мәліметтерді осылай орналастыру тәсілі кестелік деп аталады. Кестеде бір-ақ жол болуы да мүмкін. Мұндай кесте сызықтық деп аталады. Бірнеше жолдан тұратын кесте тіктөртбұрышты кесте деп аталады.

     Сызықтық және тікөртбұрышты кесте элементтерімен жұмыс істеу үшін оларды бір ережеге сәйкес (жүйелік тәртіппен) белгілеп алу керек. Әдетте кесте элементтерін белгілеуде латын әріптері қолданылады. Кесте жолдарын жоғарыдан төмен қарай, ал бағаналарды солдан оңға қарай белгілеу қабылданған. А сызықтық кестесінің і-орнында тұрған элементі А[i] болып жазылады, ал тіктөртбұрышты Х кестесінің і-ші жолы мен j-ші бағанасының қиылысында орналасқан элемент Х[I,j] болып белгіленеді. Мысалы, төмендегі А кестесінде:

   7                                2                         3                          34

   4                                5                         0                          -3,2

   1                                3                         8                          1.2

   A[1,1]=7,                  A[2,3]=0,           A[1,3]=3,             A[2,4]=-3,2.

     Программалау тілдерінде кестелік  мәліметтерге жиымдар (массивтер) сәйкес келеді.

     Әртүрлі программалау тілінде  жиымдарды жазу ережесі әртүрлі  бола береді. Мысалы, бір сыныптағы  N оқушының бойлары алгоритмдік  тілде бір өлшемді жиыммен  былай беріледі: натурал R(N). N-осы жиым элементтерінің мүмкін болатын ең үлкен максималды нөмері. Бұл жиым Паскаль тілінде R[N] болып жазылады.

      Жиым элементтері нөмірленген  (индекстелген) айнымалылар болып  табылады. Айнымалы аты жиым атымен  бірдей болады. Топ білімгерлерінің бойлары жиым түрінде берілсін делік. Сонда R[N] жиымы элементтерінің әрқайсысы үшін ашып жазуға болады: R[N]=[156,162,…,R[i],…, 164], мұндағы индекстер (тік жақша ішінде) жиым элементтері нөмірін анықтайды; R[i] – жиымының і – ші элементі.

       Жоғарыдағы мысалда бірөлшемді (сызықтық) жиым берілген. Екіөлшемді жиымның мысалы ретінде көбейту кестесін натурал T[1..9,1..9] қарастыруға болады. Оның әрбір элементі T[I,j] индекстерінің көбейтіндісіне тең болады. Екіөлшемді жиым индекстері оның әрбір элементтерінің кесте ішінде орналасуын көрсетеді: і- жол нөмірі, j-бағана нөмірі. Алгоритмдік тілде ол былай болып жазылады: кесте бүтін G[I:N].

        Төмендегі кесте алты бағанадан  тұрады. Әрбір бағана – бірөлшемді  жиым. Оларды реттеп алгоритмдік  тілде жазып шығайық.

Фамилиясы

F[I:N]

Туған жылы

G[I:N]

Бойы

R[I:N]

Салмағы

W[I:N]

Спорт

S[I:N]

1 Боранова 1992 156 52,2 0
2 Байжанов 1991 162 61,5 1
...
N Сармантаева 1991 164 59,4 0

      Бірінші жиым – тізімдегі білімгерлер  нөмірі. Бұл натурал сандар қатары, нат N[1:N].

      Екіншісі – білімгердің аты-жөні – литерлік (символыдық, жолдық) шамалар жиымы лит F[1:N].

      Үшінші, төртінші жиымдар – туған  жылы мен бойларының ұзындығы  – бүтін сандар жиымы бүтін  G[1:N] және бүт R[1:N].

      Бесінші жиым – білімгерлер салмағы – нақты сандар жиымы нақ W[1:N].

      Соңғы, алтыншы жиым – олар  айналысатын спорт түрі. Бұл логикалық  шамалар жиымы, лог S[1:N].

     Кесте жолдарында берілген  мәліметтер-жазба  болып табылады. Мысалы, кестенің  екінші жолының жазбасы мынадай:

Нат N[2], лит F[2], бүт G[2] бүт R[2] нақ W[2] лог S[2]

Ол мына мәліметке сәйкес келеді.

         2,      Байжанов,             1991,               162,               61,5,             1;

      Паскаль тілінде мәліметтер  қарапайым және күрделі типтерге жіктеледі.

Қарапайым типтерге – стандартты деп саналатын  және шектеулі типтегі мәліметтер, ал күрделі типтерге жиымдар (массивтер), жиындар (множества), жазбалар (записи) және файлдар жатады. Күрделі типтің ішкі элементтерінің өзі қарапайым немесе құрамды тип те болуы мүмкін.

 

2.7  Паскаль тіліндегі жиымдар

      Жиым-бұл бір атаумен (жиым  идентификаторы) белгіленіп біріктірілген  біртекті элементтер жиыны. Жиымдардың  негізгі параметрлеріне оның  типі (сандық, символдық, логикалық), өлшемі (бірөлшемді, екіөлшемді т.с.с.) және көлемі (жиымдардың әрбір өлшемдегі элементтерінің саны) жатады.

       Жиымның жазылу түрі әр тілде  әрқалай бола береді. Мысалы, бір  топтағы N  білімгердің бойларын  анықтайтын жиым алгоритмдік  тілде бірөлшемді жиыммен былай беріледі: нат R[1:N], N-жиым элементтерінің ең үлкен максималды нөмірі. Бұл жиым паскаль тілінде былай жазылады: R[п].

       Тұрмыста тізбектелге сандарды, кестелердің реттелген жолдарын, фамилия тізімін көп пайдаланамыз, олар бірөлшемді (вектор) немесе екіөлшемді (матрица) жиым элементтері болуы мүмкін.

      Паскаль тілінде қарапайым айнымалылармен  қатар жиым түрінде біріктірілген  айнымалылар да жиі кездеседі.

      Мысалы, нақты сандардан құрылған  төмендегі тізбекті

      1.6,   14.9,    -5.0,    8.5,    0.46,    2.25,    -9.85,  6.27,  5.7,    -3.2

бірөлшемді  жиым деп, оған А деп атау беруге болады. Жиымның әр элементі жиымның  атымен белгіленеді де, тік жақша  ішіне оның индексі қойылады, яғни жиым элементтері индекстері бойынша  реттеліп жазылады. Математикада жиым вектор түрінде көрсетіледі де, немесе жалпы түрде болып өрнектеледі. Жоғарыдағы жиымда оның элементтері және т.б., тәрізді мәндер қабылдайды. Жиымның кез келген элементін оның реттелген нөмірін, яғни индексін көрсету жолымен пайдалана аламыз. Индекстер нақты типтен басқа кез келген скалярлық (реттелген) тұрақты немесе өрнек күйінде бола береді. Жиым элементтерінің саны оның индекстерінің мәнімен және олардың өзгерту аралығымен анықталады. Жиымды сипаттау үшін array of сөз тіркесі қолданылады.

        Оның жазылу пішімі:

     type <тип аты>=array[<индекс типі>] of <элемент типі>;

    Var <идентификатор,...>:<тип  аты>;

мұндағы array (жиым), of (-дан, -ден, -тан, -тен) – түйінді сөздер; [<индекс типі>] – real, integer базалық типтерінен өзге кез келген стандартты тип, яғни индекстің типі ретінде шектеулі саналатын, логикалық және литерлік типтер пайдаланылады; <элемент типі>-құраушылар (элементтер) типі, яғни Паскаль тілінде пайдалануға болатын жиым элементтерінің типі.

      Бұдан программа жиым пайдаланылатын  болса, онда ол VAR айнымалы бөлімінде  немесе TYPE тип бөлімінде сипатталуы  қажет екені көрінеді. TYPE бөлігінде  жиымның типі көрсетіледі де, одан соң айнымалы VAR бөлігінде осы типке жататын жиымдар немесе олардың тізімі көрсетіледі. Жиымды TYPE бөлігінде сипаттау программа көлемін үлкейтеді, бірақ программаны тез түзетудің, онда қате жібермеудің мүмкіндігі молдау болады.Жиымның синтаксистік диаграммасы былай кескінделеді:

                              Жиымның синтаксистік диаграммасы

       Мысалы, программада нақты 40 элементтен  тұратын А жиымы пайдаланылатын  болса, онда оны тип бөлігінде  былай сипаттайды:

           type          m=array[1..40]         of       real;

           var            a,b,c,d:m;

     Мұның артықшылығы – программадағы  типі m болатын бірнеше жиым бір ғана жолмен ыңғайлы түрде сипатталып тұр.

      Жиым типтер бөлігінде көрсетілмей,  бірден айнымалылар бөлігінде былай да анықтала береді:

             var <идентификатор,...>:array  [<индекс типі>] of

                                                                 [<элемент типі>];

 

    Мысалдар:

    type

         Klass=(K1,K2,K3,K4);

     Znak=array[1..255] of char;

   Var M1:znak; {Znak типі типтер бөлігінде анықталған}

   M2:array[1..60] of integer; {M2 жиымын тікелей сипаттау}

   M3:array[1..4] of Klass;

   Mas:array[1..4] of integer;

   Lit:array[char] of real;

   org:array[5..15] of char;

   Bol:array[Boolean] of integer;

   A:array[1..5] of real;

   Aj:array[қаңтар,...,желтоқсан] of integer;

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

      Type S1=array[1..N] of real;

               S2=array[1..M] of integer;

               S3=array[1..K] of char;

               S4=array[0..20] of Boolean;

      Var A,B:S1;

             L,G:S4;

             C:S2;

             D:S3;

       Жиымды сипаттағанда индекстің  үлкен мәні үшін кез келген (255-тен артпайтын) санды алуға  болады, бірақ программада пайдаланылатын  индекстің мәні оның берілген  ең үлкен мәніне дейін болуы шарт емес.  Мысалы, жиымды сипаттағанда array[1..255] деп жазып, программаны орындағанда i<255 кез келген мәнді пайдалануға болады. Программады і-дің мәні жиымды сипаттағандағы оның ең үлкен мәнінен ешқашан да аспауы қажет.

       Индекс типі стандартты, бүтін немесе нақты бола алмайды. Сондықтан, сипаттауды былай жазуға болмайды:

    Var A:array[5] of real;

           немесе

     Var A:array[integer] of real;

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

     Var A,B,C:array[1..10] of real;

   Мұнда А,В,С – жиымдар, олар  нақты типтегі 10 саннан (элементтен) тұрады.

Информация о работе Циклды ұйымдастыру және матрицаны өңдеу