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

МАЗМҰНЫ

 

КІРІСПЕ

ТАРАУ 1. ЖИЫНДАР

    1. Жиындар туралы түсінік.
    2. “ Жиын ” типті типтелген константалар.
    3. Жиынның қасиеттері.
    4. Жиындарға амалдар қолдану.
    5. Жиында қолданылатын процедуралар.

ҚОРЫТЫНДЫ

ҚОЛДАНЫЛҒАН ӘДЕБИЕТТЕР

ҚОСЫМША

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

КІРІСПЕ

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

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

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

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

Информатика курсындағы түйінді мәселелердің бірі – зерттелінетін процестің алгоритмін компьютерде жүзеге асыратын осы программа құру болып табылады.

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

Соңғы отыз жыл көлемінде кең таралған программалау тілдерінің арасында өзінің танымалдылығымен Паскаль тілі ерекшеленеді.

Паскаль тілін 1970 жылы швейцарияның Цюрих қаласындағы жоғары техникалық училищесінің профессоры Никлаус Вирт ұсынған. Ол бұл тілді дүние жүзінде алғаш болып есептеу машинасын ойлап жасаған ұлы француз ғалымы Блез Паскальдің құрметімен атаған.

1979 жылы қабылданған стандартты  Паскаль тілі басқа тілдерден  қалыспайды. Сондықтан да қазіргі  кезде Паскаль тілі кез-келген  саладағы күрделі есептерді шешу үшін қолданады.

Қазіргі кезде көп тараған қуатты програмалау жүйелерінің бірі – Турбо Паскаль жүйесі болып есептеледі. Бұл програмалау жүйесінің негізі ретінде Паскаль программалау тілінің компиляторы алынған, сонымен қатар жүйе құрамына қолданушыға программаларды теріп жазғанда, өңдегенде ыңғайлы болу үшін сервистік қызмет көрсететін қабықша (орта ) енгізілген. Бұл жүйедегі компилятор көмегімен жүзеге асыратын Паскаль программалау тілін - Турбо Паскаль программалау тілі, ал сервистік қабықшаны Турбо Паскаль ортасы деп атау келісілген.

Турбо Паскаль программалау жүйесіндегі қолданылатын мәліметтердің типтері ішіндегі құрылымдық типтерді программалауда кең қолданамыз. Олар: массивтер, жиындар, жазулар, файлдар болып табылады. Курстық жұмысымды осы құрылымдық типтердің ішіндегі “ жиын” тақырыбына арнадым.

Программалауда «жиын» термині оның математикалық түсінігіне ісбеттес қолданылады. Оның айырмашылығы Турбо Паскальда жиындар тек реттелген  типті элементтерді қосады. Кез келген нақты жиынның элементі (айнымалы немесе типтелген тұрақтылар) базалық тип деп аталатын бір типке тиісті болу қажет.  Базалық типті жиынның максималды саны - оның қуаты деп аталады. Турбо Паскальда базалық тип ретінде қуаты 256 элементтен аспайтын реттелген типтер қолданылуы мүмкін. Оның диапазоны [ 0..255] болып есептеледі.

Жиын туралы нақты әрі толық мәліметтерді курстық жұмысымның келесі бөлімдерінде қарастырдым.

ТАРАУ 1. ЖИЫНДАР

1.1. Жиындар туралы түсінік.

Құрылымдық типтердің біріне жататын жиындық типтер де массив, жазу, файл  сияқты басқа типтерден құралады.

Жиын – бұл бір типке жататын және логикалық мағынасына қарай біріктірілген элементтердің немесе объектілердің жиынтығы.

Турбо Паскальда жиындық типтердегі элементтердің саны 0-ден 255-ті қоса алғанға дейін өзгереді.

Жиын элементтері үшін базалық тип ретінде WORD, INTEGER, SHORTINT, LONGINT бүтін типтерден басқа барлық реттелген типтерді алуға болады. Ал бүтін сандардан тұратын жиындық тип үшін базалық тип ретінде BYTE типі алынады және мұнын себебі жиындық типтердегі элементтердің саны 0-ден 255-ті қоса алғанға дейін ғана өзгеретіндігімен түсіндіріледі.

Турбо Паскальдағы программада жиындарды TYPE типер бөлімінде сипаттауға болады. Программадағы жазылуы :

TYPE

<жиынның аты>= SET OF<базалық  тип>;

мұндағы <жиынның аты> – дұрыс идентификатор.

SET OF- қызметші немесе резелвтелген  сөздер (жиыннан алынғын).

<базалық тип>- BYTE, CHAR, саналатын  типтер және осылардың кез  келгенінен құралған диапазон  типтердің біреуі болуы мүмкін.

Мысалы:

TYPE

ZIFR= SET OF 0..9;

Егер жиынның өзі TYPE типтер бөлімінде анықталса, онда оның элементтері VAR бөлімінде сипатталуы керек.

Мысалы:

TYPE

ZIFR=SET OF 0..9;

VAR

S1,S2,S3:ZIFR;

Сондай-ақ, жиындық типтерді программаның  VAR бөлімінде бірден де хабарлауға болады. Мұндай жағдайда жоғарыдағы қарастырылған мысалды төмендегідей түрде қысқаша жазуға болады:

VAR

1,S2,S3: SET OF 0..9;

 

Типтерді сипаттаудың синтаксистік диаграммалары.


Жиынның

          типі


Реттелген


        тип






 

 


Интервалды тип


 

 

Саналмалы тип


 

 

 

 

Идентификаторлар


тізімі




 

 

1.2. “ Жиын ” типті  типтелген константалар.

“Жиын” типтің константасы базалық типтің кез келген элементтер жиынтығын береді. Жиын элементтерін беру үшін жиын конструкторы деп аталатын ұғымды пайдаланамыз. Яғни тізімдегі базалық типті жиын элементтері бір бірінен үтір арқылы ажыратылады және тізім тік жақшаға ( [] ) алынып жазылады.

“Жиын” типті тителген константалардың синтаксистік сипатталуы келесі ережелер бойынша анықталады:


жиын константасы






элемент


константасы


 


 

“Жиын” типті конструкторлардың әрбір компоненттері сәйкес типтің бөлек константасы немесе ( .. ) қос нүкте символымен ажыратылып тұратын екі константалы интервалды мән болуы мүмкін.

Мысалдары:

TYPE

Days = set of 1..31;

Digc = set of ‘0’..’9’;

Error = set of 1..24;

Const

WorkDays : days = [1..5,8..12,15..19,22..26,29,30];

EvenDigits : digc = [‘0’,’2’,’4’,’6’,’8’];

ErrorFlag : error = [ ];

  

 

1.3. Жиындардың қасиеттері.

 

1. Егер бірінші жиынның элементтері екінші жиынның элементтерімен сәйкес келсе, онда олар (жиындар) тең болып есептелінеді.

Мысалы: [1..5] және [1,2,3,4,5] жиындары тең.

 

2. Егер бір жиынның элементі екінші жиынға енетін болса, онда бірінші жиын екінші жиынға енеді деп аталады.

Мысалы: ['C','E'] жиыны [‘A’..’Z’] жиынына енеді.

 

3. Егер төменгі шегі жоғарғы шегінен үлкен болса, онда жиын бос болып табылады.

Мысалы: [5..1] – бос жиын, яғни [ ] эквивалентті.

 

4. Жиынның массив пен жазудан айырмашылығы, ол элементтер тұрақсыздығынды.

 

 

 

 

 

 

1.4. Жиынға амалдар қолдану.

Турбо Паскальдағы жиындық типтерге математикадағы жиындарға сияқты келесі амалдарды және қатынас амалдарды қолдануға болады. Бұлар жиындар теориясы ережесі бойынша орындалады.

   Амалдардың белгілену кестесі.                

Математикалық белгіленуі

Borland Pascal – да белгіленуі

Іс - әрекеті

Нәтиже типі

Мысал

Ç

*

Қиылысу

Set of

С=АÇВ

         С:=А*В                

È

+

Бірігу

Set of

С=АÈВ

С:=А+В                          

\

-

Шегеру

Set of

С=А\В

                С:=А-В                

Î

In

Тиістілікті анықтау

boolean

                       

            XÎA

  If x in A then

Ì (Í)

É (Ê)

<=

>=

Жиынға енетіндігін тексеру

boolean

АÉВ   (ВÌА)

 

 

~

=

Эквиваленттікті

 Анықтау

boolean

А~В

В=А

~

< >

Эквивалент

Еместігін

 Анықтау

boolean

А~В

           В< >А


 

1. Біріктіру амалы. Яғни  жиындардың элементтерін біріктіру.

А+Б екі жиынның бірігуі С жиынын береді. С жиыны өзіне А және Б жиындарының барлық элементтерін қосады.


2. Шегеру (айырма) амалы. Яғни  азайғыш жиынның азайтқыш жиынға кірмейтін элементтерін беру. А-Б жиындарының айырмасы С жиынын береді. Бұл С жиыны өзіне А жиынындағы Б жиынына тиісті емес элементтерін алады.

3. Қиылысу амалы. Яғни  екі жиында да бар болатын  ортақ элементтерді табу. Егер болмаса, онда құр жиын ( [] ) мәнді береді. А*Б жиындарының қиылысу нәтижесіндегі С жиыны өзіне А және  Б жиындарының ортақ элементтерін алады.

Егер  реттік мәндердің ең кішісі А, ал ең үлкені Б жиынға қолданатын амалдардың нәтижелері болып табылса, онда нәтиженің типі SET OF А..Б, яғни типі жиын типті болады.

4. Эквиваленттікті анықтау. Егер А және Б жиындары тең  болса, онда А=Б логикалық өрнектің  нәтижесі – TRUE болады. Кері жағдайда  – FALSE.

5. Эквивалент еместігін  анықтау. Егер А және Б екі жиын тең болмаса, онда А<>Б логикалық өрнек нәтижесі – TRUE, ал кері жағдайда – FALSE болады.

6. Жиынға енетіндігін  тексеру.

  а) Егер Б жиынының барлық элементі  А жиынының элементтері болып  табылса, онда А>=Б логикалық  өрнегінің нәтижесі - TRUE болады да, кері жағдайда - FALSE болады.

  ә) Егер А жиыны Б жиынға  енетін болса, А<=Б логикалық  өрнек TRUE мәнді береді, кері жағдайда False болады.

7. Бөлек элементтің жиынға  тиістілігін анықтау үшін IN операциясын  қолданамыз. IN белгісінің сол жағында базалық типтін операнды жазылады. Ал оң жағында – жиын тұрады.

Егер Х кез келген Т реттелген типті А жиынының элементі болса, онда Х IN A тиістілікті тексеру операциясының нәтижесі TRUE болады.

 

Мысалдар:

Өрнектер

Нәтижелер

[1,2,3,4]+[3,4,5,6]

[1,2,3,4,5,6]

[1,2,3,4]-[3,4,5,6]

[1,2]

[1,2,3,4]*[3,4,5,6]

[3,4]

[1,2,3]=[1,2,3,4]

False

[1,2,3]<>[1,2,3,4]

True

[1,2,3]<=[1,2,3,4]

True

[1,2,3]>=[2,3,4]

False

4 in [3,4,5,6]

True


   

Сонымен қатынас амалдардың нәтижесі типі 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);

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