Основы Массива

Автор работы: Пользователь скрыл имя, 13 Марта 2014 в 21:31, реферат

Краткое описание

Көптеген жылдар бойы алгоритмге деген қызығушылық өсу үстінде .Ол ғылыми зертеулерде, техникада, эконмикада және т.с.с. көптеген салаларда есептеуіш машиналарда қолданумен байланысты. Бұл есептеуіш машиналары берілген алгоритмдерге сәйкес оның кейбір өлшемдерінің құрылымен дәл орындайды. Бұл мүмкіндіктің тартымды болу себебі, айтып кеткен зертеулер көлеміндегі зерттелінетін процестер көп жағдайда математикалық функция, теңдеулер жүйесі, теңсіздіктер көмегімен сипатталады және осы зерттелінетін процестердің нақты мәліметтерін алу үшін математикалық объектіде кейбір іс - әрекеттер жасау қажет. Адамға тек, керекті түрлендірулер мен есептеулердің алгоритмдерін сипаттаса болғаны, қалғанын есептеуіш машинасы өзі орындайды. Есептеуіш машиналары тек сандық алгоритмдерді орындайды деп ойламау керек. Сонымен қатар бұл машиналар алгебралық формулалар, текстер және т.б. символдарының нәтижелерін түрлендіре алады.

Содержание

КІРІСПЕ
ТАРАУ 1. ЖИЫНДАР
Жиындар туралы түсінік.
“ Жиын ” типті типтелген константалар.
Жиынның қасиеттері.
Жиындарға амалдар қолдану.
Жиында қолданылатын процедуралар.
ҚОРЫТЫНДЫ
ҚОЛДАНЫЛҒАН ӘДЕБИЕТТЕР
ҚОСЫМША

Прикрепленные файлы: 1 файл

Азамат реферат жиын.doc

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

   

Сонымен қатынас амалдардың нәтижесі типі Boolean логикалық типті болады.

> және < қатынас амалдары жиындар  үшін анықталмаған.     

 

 

 

 

 

 

 

 

 

 

 

 

1.5. Жиынға қолданылатын  процедуралар.

       Турбо Паскальда жиындық типтер үшін төмендегі стандартты процедуралар қолданылады.

       INCLUDE – бұл процедура жиынға жаңа элементті тіркеу немесе жалғау үшін қолданылады.

Программадағы жазылуы немесе шақырылуы:

  INCLUDE ( S, i ) 

Мұндағы, S – жиын;

                  i – жалғанатын немесе тіркелетін  элемент.

INCLUDE (S,i) конструкциясы S:=S+[i] өрнегімен сәйкес  келеді, бірақ INCLUDE процедурасы ықшамдырырақ кодты генерациялайды.

EXCLUDE – бұл процедура  жиыннан элментті шығару немесе  алып тастау үшін қолданылады.

Программадағы жазылуы немесе шақырылуы:

EXCLUDE (S,i);

Мұндағы, S-жиын;

                  i - жиыннан шығатын элемент.

Осы процедураларды қолданғанда S жиынды құрайтын базалық тип пен i элементтің типі сәйкес болуы қажет.

 

 

 

 

 

 

 

 

 

 

 

ҚОРЫТЫНДЫ.

Кез келген прогроммист жүйемен практикалық жұмысқа кірісуде, алдымен  Турбо Паскаль ортасымен соқтығысады. Себебі, жоғарыда айтып кеткендей, Паскаль тілі кез-келген саладағы күрделі есептері шешу үшін пайдалануға болатын кең таралған стандартты программалау тіліне айналды.

Турбо Паскальда бір типке жататын бірнеше элементтерден тұратын объектілерді де пайдалануға болады. Осындай бір типке жататын элементтерден құрылған құрылымдық типке “жиындар” жатады.

Жоғарыда жазылған курстық жұмысымда “жиынды” негізгі тақырып ретінде ала отырып қарастырдым.

Алдымен кіріспе бөлімінде алгоритм, программалау тілі деген ұғымдарға түсініктеме беріп кеттім. Программалау тілдері ішіндегі Паскаль тілінің даму тархына тақталдым.

Негізгі бөлімде жиындарға толық түсініктеме беріп, оның қасиеттеріне, оған қолданылатын операциялар мен процедураларға тоқталдым. Сонымен қатар жиындарды қолданып бірнеше есептер қарастырып, оған программалар құрдым. Есептерге түсініктемелер берілді.

Сонымен, қорыта келгенде жиындар көптеген есептерді шешуде икемді де көрнекті механизм болып табылатындығын білдік. Және оларды жеке жағдайда жолдар мен тексттерді өңдеуге қолдануға ыңғайлы. Дегенмен, Турбо Паскальда оның өлшемінің қуаты шектеулі болғандықтан, оны N>255 мәні үшін қолдануға болмайтынын ескерген жөн.  

 

 

 

 

 

 

 

ПАЙДАЛАНҒАН ӘДЕБИЕТТЕР

 

1. Абрамов С. А., Зима Е.В. Начало программирования на языке  Паскаль. М, 1987.

2. Епанешников А. М., Епанешников В. П. Программирование в среде Турбо Паскаль. Диалог мифе ,1996.

3. Зубов В.С.  Турбо Паскаль.

4. Лапчик М.П. Вычисление. Алгоритмизация. Программирование.

5. Марченко   Турбо Паскаль 7.0

6. Мұқашева М.Ө.  Турбо Паскаль тілінде программалау негіздері.

7. Фаронов Турбо Паскаль 7.0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ҚОСЫМША

Есептердің берілуі.

Жиындарды қолданып, бірнеше есептерді қарастырайық.

 Есеп 1.

Символдар жолы берілген. Осы жолдың ішіндегі  тыныс белгілер санын анықтау керек (. _ , ; : ! * ?).  Программада символды типті элементтерінен тұратын жиын константасы қолданылған. IF операторында (S[i]='.') or (S[i]='_') және т.б. ұзақ логикалық өрнекті жазып, бұл есепті жиынсыз да қолдануға болады.  Жиынды қолдану арқылы жазу қысқарылады.

  Есеп 2.

Тек жолдық латын әріптерінен тұратын екі символды жолдар берілген. Алфавит тәртібімен және қалауынсыз S1 және S2-ге ортақ символдар кіретін S3 жолды құру керек.

  1. Алдымен MS:=[] деп аламыз.
  2. Циклді пайдаланып, бастапқы MS жиынына S жолының символдарын қосып, жиынды толықтырып отырамыз.
  3. SM процедурасы көмегімен S1, S2 символдар жолынан MS1 және MS2 жиындарын құрамыз.
  4. Құрылған жиындардың қиылысуынан MS3 жиынын аламыз.
  5. Соңғы қадамдарда MS3 жиынынан С символының тиістілігін тексереміз. Егер MS3 жиынына С тиісті болса, онда S3:=S3+С.
  6. Бұл операция ‘a’..’z’ дейін орындалады.  

  Есеп 3.

Символдар жолы берілген. Берілген жол идентификатор болыып табылатынын я табылмайтынын анықтайтын праграмма құру керек. Программада жиынның базалық типі CHAR болып табылады. Сондықтан элементтін жиынға тиістілігін тексеру амалын орындауда IN амалының оң жақтаңы элементі CHAR типін талап етеді. Символдарды бөліп шығаратын COPY функциясы STRING типті нәтиже беретіндіктен, жолдан символды бөліп шығару үшін индекстеу қолданылады. Ал бұл жиын үшін мүмкін емес.

  Есеп 4.

2..N-ге (1<N<255) дейінгі натурал сандардан барлық жай сандарын анықтайтын программа құру керек. Бұндай типті есепті шешу үшін «Решето Эратосфен» деп аталатын танымал алгоритм бар. Онығ мәнісі мынада:

  1. Сандар қатарынын минималды мәнді таңдаймыз. Ол жай сан болады.
  2. Қатардан таңдалған санға бөлінетін барлық сандарды шығарамыз.
  3. Егер шығарудан кейін қатар бос болып қалмаса, онда 1-ші пункттің орындалуына қайтып келеміз.

Бұндай алгоритмнің жұмысы N=15 тең болғандағы мысалы (таңдалған жай сандардың астары сызылған):

2 3 4 5 6 7 8 9 10 11 12 13 14 15

5 7 9 11 13

3 5 7 9 11 13 15

7 11 13

11 13

13

Есеп 5.

1..n – ға дейінгі сандар  берілген. Осы сандардың ішінен  екіге және үшке бөлінетін  сандарды бір бөлек, төртке бөлінетін  сандарды бөлек экранға шығару.

          Бұл  есепті шешудің  программасы төмендегі  алгоритм бойынша құрылады:

  1. Берілген жиынды g деп белгілейді және оның мәні [ 2..50 ] болады. Бірінші элементін n1 : = 1 ге меншіктеп аламыз.
  2. Осы жиыннан екіге, үшке, төртке бөлінетін сандарды    жеке – жеке жиындарға саламыз. Бұл жиындарды g2, g3, g4 деп белгілейміз.
  3. Бұл қадам g жиыны [  ] болғанша орындалады.
  4. Келесі қадамда g3 жиыны мен g2 жиынын g жиынына біріктіреміз.
  5. Сонымен қатар g және g4 жиынынан i жиын элментінің тиістілігін тексеріп, екіге және үшке бөлінетін сандарды бір бөлек, төртке бөлінетін сандарды бір бөлек экранға шығарамыз.

 

Есеп 6.

Кез келген берілген сандардан m элементен құрылған кездейсоқ жиынды құру программасын жазу керек.

Бұл есепті шешу үшін келесі алгоритмдерді қолдануға болады. Жиынның бірінші элементін S1 деп ал соңғы элементін Sn  деп белгілейік.

  1. [ S1,…,Sn-m+1] жиынынан кездейсоқ әдіспен Si элементін таңдап аламыз және оны S : = [ Si ] меншіктейміз.
  2. [ S1,…,Sn-m+2] жиыннан кездейсоқ әдіспен Sj элементін таңдап аламыз. Егер бұл элемент алдыңғы таңдап алынған элементтен өзгеше болса, онда S : = [ Sj ]  меншіктейміз, әйтпесе S :  = S+[ Sn –m-2] меншіктейміз.
  3. [ S1,…,Sn-m+3] жиынынан кездейсоқ әдіспен Sк элементін таңдап аламыз. Егер бұл элемент құрылған S жиынға тиісті емес болса, онда оны S :  = S+[ Sк] меншіктейміз, әйтпесе    S :  = S+[ Sn –m-3]- ке саламыз.
  4. Әзірге ізделінді жиын құрылғанша осы қадамдарды жалғастыра береміз. Бұл программада қолданушы берген char_set жиындық тип қолданылады. Бұл үшін print процедурасын пайдаланамыз.

 

 

 

 

 

 

 

 

 

ПРОГРАММА ПАРАҒЫ.

 

                                  Листинг 1. Символды жолдан тыныс  белгілер санын анықтау программасы.

Program esep1;

Var

    S: string;

    I,K: byte;

Begin

    ReadLn(S); K:=0;

    For I:=1 To Lengtn(S) Do

      If S[I] In [‘.’,’_’,’,’,’:’,’;’,’!’,’*’,’?’]

      Then K:=K+1;

WriteLn(‘тыныс белгілер саны мынаған тең ‘, K);

End.

 

                                   Листинг 2. Латын әріптерінен тұратын  екі символды                                     жолдардың ортақ символдарынан  жаңа

 жолды құру программасы.

Program esep2;

Type

       Mset=Set of ‘a’..’z’;

Var  S1, S2, S3: string;

        MS1, MS2, MS3: Mset;

        C: Char;

Procedure SM(S:string; Var MS: Mset );

{процедура S жолының барлық символдарын қамтитын MS жиынын құрады }

Var I: byte;

Begin

       MS:=[];

       For I:=1 To Length(S) Do

             MS:= MS+[S[I]];

End;

Begin

{жолдарды енгізу}

       ReadLn(S1); ReadLn(S2);

{ S1 және S2 символдар жолдарынан MS1 және MS2 жиындарын құру }

       SM(S1,MS1); SM(S2, MS2);

{жиындардың қиылысуы – ортақ элементтердің MS3 жиынына бөлініп шығуы}

        MS3:=MS1*MS2;

        S3:=’’;  { S3 нәтижелік жолының құрылуы}

        For C:=’a’  To ‘z’ Do

        If C In MS3 Then S3:=S3+C;

         WriteLn(‘нәтиже:’, S3);

End. 

 

                               Листинг 3. Енгізілген символды жолдың  идентификатор бола ма екендігін 

анықтайтын программа.

Program esep3;

Var Sim: Char;

       Fl: Boolean;

       S: String[127];

        I,L: Byte;

Bеgin

        ReadLn(S);

        L:=Length(S);

        Sim:=S[I];

        If Not ( Sim In [‘A’..’Z’]) Then Fl:=False

        Else Fl:=True;

         I:=2;

         While (I<=L) and Fl Do

            Begin

                    Sim:=S[I];

                     IF Not ( Sim In [‘A’..’Z’, ‘0’..’9’, ‘_’])

                     Then Fl:=False else I:=I+1;

                End;

             If  Fl Then WriteLn(‘идентификатор’) else WriteLn(‘нет’);

End. 

      

                            Листинг 4.  Натурал сандардан  жәй сандарды анықтайтын программа.

Program Erotosfen;

Const N=201;

{ 1<N<256 аралығындағы кез  келген мәнді алуға болады}

Var A, B: SET OF 2..N;

        I, P: Integer;

Begin

        A:=[2..N]; B:=[ ];  P:=2; {A жиынның құрылуы, В жай сандардың ізделінді жиыны, бастапқысы бос жиын}

        Repeat

{A жиынынан минималды санды іздеу}

            While Not (P In A )  Do P:=P+1;

             B:=B+[P]; {табылған санды В жиынға қосу}

              K:=P;

{ P-болінетін сандарды А- дан шығару}

             While K<= N Do

              Begin

                  A:=A-[K];

                  K:=K+P;

              End;

              Until A:=[ ]              

{нәтижені шығару, яғни В жиынынан барлық сандарды өсу ретімен шығару}

               For P:=2 To N Do

               If  P In B Then  WriteLn(P):

End.

 

                                                   Листинг 5. 1..n-ге дейінгі сандар  жиынынан екіге, үшке, төртке бөлінетін сандарды

 экранға шығаратын  программа.

Program esep5;

Uses crt;

Const n=50;

Type

     Tupe1= Set  of  1..n;

Var

      g, g2, g3, g4: type;

       n1, i: Byte;

Begin  clrscr;

        g:=[2..50]; n1:=1

        While g<>[ ]  Do  Begin

             If  n1 mod 3=0 Then  Include(g3, n1);  { санның 3-ке бөлінетіндігін тексеру}

             If  n1 mod 4=0 Then  Include(g4, n1);  { санның 4-ке бөлінетіндігін тексеру}

             If  n1 mod 2=0 Then  Include(g2, n1);  { санның 2-ге бөлінетіндігін тексеру}

              n1:=n1+1;

              Exclude (g, n1); 

              End;

          g:=g3+g2; { g3 және g2 жиындарын g жиынға біріктіру}

          WriteLn (‘3-ке және 2-ге бөлінетін сандар:’);

          For i:=1 To n Do

           If  I In g  Then  Write(i:3, ‘,’);

         WriteLn; WriteLn;

          WriteLn( ‘4-ке бөлінетін сандар:’);

          For i:=1 To n Do

          If i In g4 Then WriteLn( i:3, ‘,’);

End.

 

                                     Листинг 6. Латын алфавиті әріптерінің  жиынынан кездейсоқ құрылған жиынның программасы.

Program  random_subsets;

Uses crt;

Type

       Char_set=Set of Char;

Var

        S: Char_set;

        i, j, k: Integer;

        first, last, ch, stop: Char;

Procedure print (name: String; S: Char_set);

Информация о работе Основы Массива