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

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

Описание

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

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

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

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

   for i:=1 to n do

   for j:=1 to m do

   read(B[I,j]);

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

     for i:=1 to n do

   begin

   writeln;

   for j:=1 to m do

   write(B[I,j]:8:3)

   End.

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

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

    Жиым элементтері компьютер жадында  тізбектеле орналасады. Төменгі  индексті жиым элементі кіші  адрестерде, жоғары индекстердегі  элементтер жоғары адрестерде  сақталады. Көпөлшемді жиымдардың  оң жақ шеткі индекстері бірінші  болып өсіп отырады. Мысалы, А:array[1..5,1..5] of integer; жиымы берілсе, ол компьютер жадында адрестерінің өсуі бойынша былай орналасады:

         A[1,1]

         A[1,2]

         

         A[1,5]

         A[2,1]

         A[2,2]

         

         A[5,5]

     Күнделікті тұрмыста екі-үш рет  өлшемді жиымдар жиі қолданылады.  Алгоритмдік тілдерде жиым өлшеміне шек қойылмайды. Жоғарыда айтылғандай жиым бір,екі, үш, төрт, тіпті одан да көпөлшемді болуы мүмкін. Бірөлшемді жиымдарды сызықты жиымдар десек, екіөлшемді жиымдардың математикада матрица немесе кесте деп атайды. Біз мұнда екіөлшемді жиымға мысал ретінде білімгерлердің әр сабақтан алған бағалары толтырылған кестені алуға болады.

       Мәселен, орта білім беру орталығында  «Есептеу техникасы» бөлімінен  1-курстардан үш топ бар екен  делік: 1ПВТ-09-1, 1ПВТ-09-2 және 1ПВТ-09-3 топтары.  Топ оқушыларының бес сабақтан алған орташа бағалары төмендегі кесте түрінде көрсетілген.

  Пәндер 1-топ 2-топ 3-топ
1 Информатика 4,1 4,7 4,2
2 Алгебра 4,4 4,3 4,0
3 Геометрия 4,5 4,6 4,7
4 Қазақ тілі 4,2 4,0 3,9
5 Орыс тілі 4,3 4,5 4,6

       Егер  қарастырылатын жиым атауы В болса, онда оны былай жазады:

                                           

мұндағы цифрлар В жиымның құрушылары немесе элементтері, олар да сол атаумен  белгіленіп, оның төменгі шетіне элементтің орналасқан орындары көрсетіледі:

                            

жалпы түрде жиым элементтері  деп белгіленсе, мұндағы і-жол, ал j-бағана нөмерлері, онда   деген мәндердің бірін қабылдайды.

        Жиым элементтерінің мәнін жол  және бағана нөмірлері арқылы  анықтайды. Біздің мысалда  және т.с.с.

      10-мысал. Жоғарыда берілген кестені пайдаланып, бес пән бойынша қай топтың орташа бағасы жоғары екенін және оның шамасын анықтайтын программа құру керек.

 Program baga;

    const n=5;m=3;

    var k,I,j:integer;

    s:real;

           b:array[1..n,1..m] of real;

           a:array[1..m] of real;

 begin

      s:=0;

      Writeln(‘Zhium elementterin bos orin arkili engizinder’);

     for  i:=1 to n do

          for j:=1 to m do read(b[I,j]); {Жиым элементтерін енгізу}

     for j:=1 to m do

         Begin

             for i:=1 to n do s:=s+b[I,j]; {Бағана элементтерін қосу}

              a[j]:=s/n; s:=0; writeln;

             write(‘ ‘:4,a[j]); writeln

         End;

     k:=1; s:=a[1];

     for j:=2 to m do

       if a[j]>s then

        begin

          s:=a[j]; k:=j

        end;

     writeln(‘ ‘:4,k,’-toptin bagasi jogari, ol’,s:4:3’-ge ten’);

 end.

 

11-мысал.   Көбейту кестесін Пифагор кестесі түрінде алу керек:

Program Pifagor;

     Var I,j:integer;

             A:array[1..10,1..10] of integer;

  Begin

        For i:=1 to 10 do

            Begin Writeln;

                 For j:=1 to 10 do

                     Begin a[I,j]:=i*j;

                         Write(a[I,j]:4);

                     End;

            End;

   End.

 

12-мысал.   Өлшемі п×п (n=4) нақты сандардан тұратын матрица берілген. Матрицаның ең үлкен элементі мен ең кіші элементін, олардың орналасқан орнын (бағанасы мен жолын) тауып, сол ең үлкен элемент пен ең кіші элементтің қосындысын анықтау қажет.

 Program Matrica1;

 Const n=4;

 Type mas=array[1..n,1..n] of real;

      Var a:mas;

          max, min,res:real;

          I,j,m1,m2, k1,k2:integer;

 Begin

 Writeln(‘Matrisa elementterin bos orin arkili engizinder:’);

     For i:=1 to n do

     Begin

          For j:=1 to n do Read(a[I,j]);

          Writeln

     End;

  max:=a[1,1]; min:=a[1,1];

  m1:=1; m2:=1;  k1:=1;  k2:=1;

  for i:=1 to n do

     For j:=1 to n do

         If max<a[I,j] then

           begin

             max:=a[I,j];

             m1:=I; m2:=j

           End;

          If min>a[I,j] then

           Begin

              min:=a[I,j];

            k1:=I;  k2:=j;

           End;

          End;

         Res:=max+min;

         Writeln(‘en ulken element=’,max:6:2,’,ol’,m1:2,’-jolda jane’,m2:2,’-  

 baganda ornalaskan’);

         Writeln(‘en kishi element=’,min:6:2,’,ol’,k1:2,’-jolda jane’,k2:2,’-

 baganada ornalaskan’);

          Writeln(‘olardin kosindisi=’,res:7:2)

 End.

 Нәтижесі:

 Matrisa elementterin bos orin arkili engizinder:

 2  4  6  3

 1  5  7  9

 8  4  2  3

 4  7  6  2

 en ulken element=9.00,ol 2-jolda jane 4-baganda ornalaskan

 en kishi element=1.00,ol 2-jolda jane 1-baganda ornalaskan

 olardin kosindisi=10.00

 

     13-мысал.  Екіөлшемді a және bматрицаларының қосындысы болып табылатын s матрицасын табу керек.

      PROGRAM KOSU;

         type ms=array[1..3,1..3] of real;

         var a,b,s:ms;

           k,j:integer;

      Begin

      Writeln(‘a jimi elementterin bos orin arkili engizinder:’);

           For k:=1 to 3 do

           For j:=1 to 3 do Read(a[k,j]);

           writeln;

      Writeln(‘b  jimi elementterin bos orin arkili engizinder:’);

           For k:=1 to 3 do

          For j:=1 to 3 do

           Begin

             Read(b[k,j]);

             s[k,j]:=a[k,j]+b[k,j]

           End;

         Writeln(‘S=a+b kosindi jiminin elementteri:’);

         For k:=1 to 3 do

           Begin

          For j:=1 to 3 do Write(s[k,j]:5:2);

          writeln

           End

      End.

      Нәтижесі:

a jimi elementterin bos orin arkili engizinder:

1 3 5

5 3 2

1 6 7

b  jimi elementterin bos orin arkili engizinder:

3 4 5

6 7 2

3 4 9

S=a+b kosindi jiminin elementteri:

4.00    7.00    10.00

11.00  10.00  4.00

4.00    10.00  16.00

 
 
 
 
 
 
 
 
 
 
    1. Арнайы  бөлім
    1. Тапсырманың қойылуы:

   Берілген нақты сандар тізбегінен төмендегі суреттегідей (Зик-зак) схема бойынша орналастырып ретті квадрат матрица алу керек.

                                             

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
    1.   Программаның сипаттамасы

         Зик-зак бағдарламасында ең бірінші екі өлшемді а( ) массивінің мәндері және s,i,j айнымалылары бүтін сан екені сипатталады. Әрі қарай «әзірше» циклдық операторының көмегімен бізге берілген шарт S<=64 болғандықтан, S-айнымалысы 64-ке тең болғанға дейін цикл орындала береді. Содан кейін «үшін» операторының көмегімен программаны жүргіземіз. i=1 (1-ші жол) болғанда, j-ды 1-ші бағаннан 8-ші бағанға дейін цикл параметрінің өсу ретімен өзгертіп, i=2 болғанда (i-айнымалысы 2-ші жолға түскенде), j-ды 8-ші бағаннан   1-ші бағанға қарай қадамын кемітеміз. Әрбір циклдың соңында,  яғни  і (цикл параметрін)-ді бірге арттырып, меншіктеп отырамыз. Содан бағдарлама барысында «әзірше» циклы аяқталғанға дейін, автоматты түрде әр жол сайын і-дің мәні бірге артып отырады. «Әзірше» операторының шарты орындалып біткен соң (64 ұяшық толған соң) бағдарламамыз өздігінен тоқтайды. Нәтижесінде, 1-ден 64-ке дейінгі сандар «Зик-зак» тәріздес болып орналасады.

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

                                 3.2.1 Тапсырманы шешу алгоритмі

    алг  Зик-зак программасы

    алг  (а[i,j],s,i,j бүт)

         басы

               әзір  S<=64

                 Цб

                     j үшін 1дейін 8 қадам

                       Цб

                          a[i,j]:=S; S:=S+1;

                        Цс

                            i:=i+1;

                              j үшін 1дейін 8 қадам

                                   Цб

                                     a[i,j]:=S; S:=S+1;

                                   Цс

                                       i:=i+1;

                   Цс

                      шығару a[i,j]

         соңы

 

   

 
 
 
 
 
 
 
 
 

3.3 Тапсырманың блок-сызбасы

 

                                      3.4  Программаның идентификатор кестесі

    Зик-зак программасының идентификаторлық кестесі

идентификатор Тағайындалуы Деректер типі Диапазоны
a[i,j] Екі өлшемді массив Integer -32768  32767
i Индекс типі,

Цикл параметрі

Integer -32768  32767
j Индекс типі,

Цикл параметрі

Integer -32768  32767
S Аинымалы Integer -32768  32767

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