Екі өлшемді массивтерге мысал есептері

Автор: Пользователь скрыл имя, 12 Сентября 2013 в 19:23, курсовая работа

Описание работы

Өрнектерді өңдеуде дәстүрлі Паскаль, Бейсик программалау тілдері жиі пайдаланылады.Қазіргі кезде кеңінен қолданылатын программалау жүйесінің бірі – Turbo Pascal. Turbo Pascal - жоғарғы деңгейлі программалау жүйесі.Оның тұңғыш нұсқасын 1970 жылы швейцария физигі Никлаус Вирт ұсынған.Автор тілді алғашқы арифметикалық есептеу машинасын жасаған французды ұлы ғалымы Блез Паскальдің құрметіне Паскаль деп атап,тіл атуын үнемі бас әріппен жазылуын сұраған.Кейіннен тілді көптеген нұсқалары жарық көрді.Солардың ішінде, 1983 жылы Борланд корпорациясының қызметкері Андерсон Хейлсбергтің қосқан үлесі өте зор болды.Оның жетекшілігімен құрылған программа үлгісі – Турбо Паскаль програмалаушыларының арасында үлкен сұранысқа ие. Андерсон Хейлсбергті жасаған нұсқасы СР / М операциялық жүйесіне негізделген. Турбо Паскаль-дің жоғарғы деңгейлі логикалық құрылымы әр түрлі есептерді дәл шешуге көмегін тигізеді.

Содержание

Кіріспе............................................................................................................2
1.1.Турбо Паскаль туралы түсінік...............................................................2
1.2.ТП жүйесінің ерекшеліктері..................................................................2
1.3.ТП-да жұмыс істеу..................................................................................3
Негізгі бөлім.................................................................................................4
ТП-ғы типтердің жіктелуі..................................................................4
Массив.................................................................................................4
Массив элементтері үшін жазылатын өрнектер.............................8
Массивтерге мысал есептер...............................................................9
Екі өлшемді массивті сипаттау........................................................10
Екі өлшемді массивті енгізу және шығару....................................12
Екі өлшемді массивтерге мысал есептері.......................................13

Есеп 1................................................................................................................14
а) есептің берілгені......................................................................................14
ә) есептің алгоритімі...................................................................................14
б) программа бөлімі....................................................................................15
в)программа нәтитжесі ..............................................................................16
Есеп 2................................................................................................................17
а) есептің берілгені......................................................................................17
ә)есептің алгоритімі....................................................................................17
б) программа бөлімі....................................................................................18
в)программа нәтитжесі...............................................................................19

3. Қорытынды...................................................................................................20
4. Қолданылған әдебиеттер.............................................................................21

Работа содержит 1 файл

massivtermen_zh_1201_mys_isteu.doc

— 287.00 Кб (Скачать)

   

    type  т = аrrау [ 1..40 ] оf  real ;

    var а,б,с,д: т;

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

                                       

    var < идентификатор, ... > : аrrау [ < индекс типі > ] оf  < элемент типі > ;

 

Мысалдар:

Type

     Klass= (k1,  k2, k3, k4 );

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

Var

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

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

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

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

       Lit: array [char] of   real;

       Ogr: 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 [1..20] of  Boolean;

       Var      A, B : S1;

                   L,G : S4;

                   C     :S2;

                   D    :S3;

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

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

    Var  A: array [5] of real;

             Немесе

    Var  A: array [integer] of real;

 

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

    Var  A,В,С: array [1..10] of real;

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

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

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

 

 

 

 

  

  

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

       А[3]:= С[4]+5;

       Р:= Х[3*і+1];

Паскаль тілінде массивтерге = (тең) , < >  (тең емес)  және  меншіктеу амалдарын  қолдануға  болады.Ал масив элементтері  үшін олардың  типіне сәйкес кез келген  амал орындала береді.

   Мысалы, А және  В массивтері былайша  сипатталса:

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

Онда пайдаланылған  амалдар төмендегідей  нәтиже береді.

 

Өрнек

Нәтиже

А = В

 

 

 

 

А < > В

 

 

 

 

А:=В

А массивінің  әр элементінің  мәні  В  массивнің  сәйкес элемементінің  мәнін тең болса, онда нәтиже  true болады.

 

А массивіні  ең аз дегенде бір элементінің мәні  В массивінің сәйкес элементінің мәніне тең болмаса,  онда нәтиже   true  болады.

 

В массивінің  барлық элементтері  А  массивінің сәйкес элементтеріне айналады.


 

 

      Массив  элементтері  өрнектерде  read, readln, write, writeln   тәрізді операторлардың параметрі міндетін атқара отырып, циклдік операторларда пайдаланылады немесе айнымалыларға басқа мән меншіктеуде операнд, яғни  аргумент рөлін атқарады.

      Мысалы, А массиві  элементтерін пернетақтада  енгізу үшін:

         For i:=1 to n do

               Read(a[i]);

А массиві элементтерін экранға шығару үшін:

         For i:=1 to n do

              Write(a[i],’ ‘);

операторлары қолданылады.

 

 

 

 

 

 

Массивке мысал:

   13 бүтін саннан  тұратын массивтің арифметикалық  ортасын және оның әр элементінің  арифметикалық ортасынан ауытқуын табатын программа құрайық.

Program  Orta1;

   Var     x : array [1..13] of integer;  i : integer; s : real;

begin

    s:=0;

    writeln  (‘бос орын арқылы 13 сан енгізіңдер: ’);

    for i:=1 to 13 do

begin

   read (x[i]);

   s := s+x[i];

end;

   s := s/13;

   writeln (‘s=’,s:8:4);

   for i:= 1 to 13 do writeln (s-x[i])

end.

 

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

 Program  Ret1;

    Var   a:array [1..50] of real;  k,I,j: integer;  m:real;

Begin

    Write (‘элементтер саны n-ді (n<50) енгізіңдер:’);    Readln (n);

      For k:=1 to n do

             Begin

                   Write (k,’-элементті енгізіңдер:=’); readln (a[k]) ;

              End;

      For k:=1 to n do

              Begin

                   i:=k;

                    for j:=k+1 to n do

                     if a[j] <a[i] then

               begin

                    i:=j; m:= a[k]; a[k]:=a[i]; a[i]:= m;

                end;

write (‘ ‘, a[k]:6:2);

                 end;

end.    

 

 

Екі өлшемді массивтер

 

   Турбо Паскаль   программалау тілі бір өлшемді  массивтермен қатар екі өлшемді  және көп өлшемді массивтерді  қолдануға мүмкіндік береді. Егер  массив атауында бір ғана индекс  болса,онда ол массивті бір  өлшемді деп айтатынбыз.Ал егер  массивтің  индексі екеу болса, мұндай массивті екі өлшемді массив деп атаймыз және т.с.с. n индекс болса, n-өлшемді индекс дейді.Массив элементтері былай белгіленеді: A[i ], B[i, j], C[i, j, k] және т.с.с., мысалы,  В[i][j].Мұндағы A[i ] бір өлшемді массивтің i-ші элементі, B[i, j] – екі өлшемді  массивтің  i-жолы  мен j-бағанасының қиылысында орналасқан элементінің белгіленуді; ал  C[i, j, k] үш өлшемді массив, оны элементін кеңістікте орналасқан нүкте координаталары (i, j, k) деп қарауға болады.

    Екі өлшемді массивті  Var бөлімінде сипаттаудың жалпы түрі:

 

Var

    массив атауы  : array [ а1..аn, б1..бn]  of  элемент типі;

Мұнда айнымалылар бөлімінде  осы типке жататын  массивтер  көрсетіледі.

   Екі өлшемді  массивті Type  бөлімінде сипаттаудың  жалпы түрі:

 

Type 

       массив  типінің  атауы = array [ а1..аn, б1..бn]  of  элемент типі;

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

   Мұндағы ,а1..аn, б1..бn – екі қлшемді массивтің  көлемі.

а1 және аn – массив қатарыны алғашқы және соғы мәні;

б1 және бn – массив бағаныны алғашқы және соғы мәні.

  А [n ,m] – массивін сипаттау жолы:

               

                      і  


А  массиві:        1     2    3    ...   n

         
         
         
         
         



    J           1    

                 2 


                 3

                 .

                  m

                   

  Var 

          a:array [1..n,1.. m] of  integer;

 

    Type   бөлімінде екі өлшемді массивтерді сипаттау:

Type     GR = array [1..n,1..m] of integer;

Var     A : GR;

 

 

 

 

 

 

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

       Type     GR = array [1..n] of   array [1..m] of < элемент типі >;

Мысалы, 

  Type     GR = array [1..2] of   array [1..3] of   іnteger ;

      ...

  Var     A : GR;

   Мұнда алдымен  жол индекстерінің [1..n] типі, одан со күрделі базалық тип көрсетілген:   array [1..m] of  < элемент типі >;

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

  Type   vector = array [1..4] of  integer;

              massiv = array [1..4] of  vector;

   var    matr: massiv;

  Мұнда    massiv  және   matr   массивтері  екі  өлшемді, яғни  massiv [ 4,4 ] , matr [ 4,4 ] –  олар 4 жол және 4 бағанадан тұратын  кесте элементтерін бейнелейді.

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

      Type     Т1 = array [1..m] of < элемент типі >;

                    Т= array [1..n] of  Т1;

      Var       В:Т;  А:Т1;

Мұнда алдымен бағаны типі  Т1 көрсетіледі де , одан соң  ол жолдың типі  арқылы матрицаның  типі Т көрсетіледі.Айнымалылар бөлігінде екі өлшемді массив - В және бір өдшемді массив – А  көрсетілген.

     Екі өлшемді  массивтерде жол мен бағанның  қиылысуында орналасқан әрбір  элементтің орны  сол жол және баған номерімен анықталады. Сондықтан екі өлшемді массивті сипаттау үшін екі индекс қолданылады. Массивтің элементін жазу кезінде индекстер массивтің атынан соң тік жақша ішінде жазылады оларды арасынан үтір қойылады.Мысалы, натурал сандардан тұратын өлшемі N x M болатынекі өлшемді  массивті сипаттау былай орындалады:

     Var  mas: array [1..n,1..n] of integer;

  Индекс  типіне   integer, real  стандартты  типтерден  өзге  типтердің барлығын пайдалануға  болады, ал элементтер типі үшін  Паскаль тіліндегі барлық типтерді қолдану мүмкіндігі бар.

   

 

 

 

 

 

 

Мысалы,

         Type 

                   Den = ( mo, tue, th, fr, sat, sum);

                    Rden = mo..fr;

                    Zadan = array [1..25, rden] of integer;

         Var

                  A : array [den]  of array [1..25] of  char;

                  B : zadan;

                  C : array [1..365] of  zadan;

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

   

   For i:= 1 to n do

     For j:=1 to m do

       Read (A[i,j]) ;     

Немесе экранға  мәлімет  шығару үшін:

       For i:= 1 to n do

    Begin

         Writeln ;

      For j:=1 to m do

         Write (В[i, j]:8:3)

  End.

   Индекстері мен  элементтерінің  типтері бірдей массивтардың  бірінің мәндерін  екіншісіне көшіру үшін , мысалы А:=D; меншіктеу операторын немесе  цикл операторы арқылы  былай орындау мүмкіндігі бар:

          For i:= 1 to 4 do А[і]:=D[і];

Информация о работе Екі өлшемді массивтерге мысал есептері