Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
UMK_ASDiP_25-06-2012_kz.doc
Скачиваний:
81
Добавлен:
13.03.2015
Размер:
1.79 Mб
Скачать

Бұл нұсқау көп жағдайда қайталаудың саны белгiсiз болған жағдайда, пайдаланады. Оның жалпы түрi:

Repeat

<қайталау денесi>

Until <логикалық өрнек>

Оның орындалуы: қашан логикалық өрнектiң мәнi ақиқат болғанша, цикл денесi қайталана бередi. Алгоритмдiк тілде бұл қайталауды “Цикл денесi” дейдi, оның жоғарыда көрсетiлген “Цикл – әзiр”-ден өзгешелiгi, мұнда қайталанатын цикл денесi кемiнде 1-рет орындалады. Демек, бұл қайталауда алдымен цикл денесi орындалады да, одан соң шарт тексерiледi.

Негізгі әдебиет: 1[37-43], [97-99], 2[123-132], 3[42-59], 4[7-11].

Қосымша әдебиет: 2[95-106].

Бақылау сұрақтары

  1. Қандай жағдайда FOR, WHILE, Repeat циклдық операторлары пайдаланылады?

  2. WHILE және Repeat операторларының айырмашылығы қандай?

  3. FOR циклдық операторындағы қадамының мәні қандай?

  4. Қандай процедура арқылы циклдан шығуға болады?

  5. Қандай цикл операторы ен кемінде бір рет орындалады?

3–дәріс. Мәліметтер типтері. Мәліметтер типтерінің құрылымы.

Программадағы мәлiметтердiң мәндерi Паскаль тiлiндегi келiсiмдi мәлiметтердiң бiр түрiне жатуы тиiс. Айнымалының типi осы айнымалының мәндер жиынын соған қолданатын операциялар жиынын және сол операциялардың орындалуы нәтижесiнiң типiн анықтайды.

Реттік типтер өзiне тән мәндердiң (бүтiн, символдық, логикалық және т.б. типтерге) реттелген жиынын анықтайды.

2-кесте. Бүтiн типтер.

Типтiң аты

Мәндер диапазоны

Өлшемі

Жады

Byte

0..255

8-bit

1 байт

Word

0..65535

16-bit

2 байт

Shortint

-128..127

8-bit

1 байт

Integer

-32768..32767

16-bit

2 байт

Longint

-2147483648..2147483648

32-bit

4 байт

/integer – бүтiн сан, shortint – қысқа бүтiн, longint – ұзын бүтiн сан/

Бүтiн типтегi мәлiметтермен келесi амалдар орындалады

  1. арифметикалық

+ - қосу,

– - азайту,

* - көбейту,

div – бүтiн сандық бөлу,

mod – бүтiн сандық бөлгендегi қалдық,

/ - нақты бөлу.

Соңғы үш амалды түсiндiрейiк:

3 div 5=0; 25 div 9=2; -25 div 9=-2; 25 div(-9)=-2; -25 div (-9)=2;

3 mod 5=3; 25 mod 9=7; -25 mod (-9)=-7; 25 mod (-9)=7;

Бүтiн типтi айнымалыларды анықтау үшiн айнымалыларды баяндау бөлiмiнде стандартты идентификаторлар (мысалы integer) пайдаланылады.

Мысалы: Var i,j,k:integer;

(*, div, mod) операциялары (+, -) операцияларымен салыстырғанда жоғарғы приоритетке жатады. Бiрдей приоритетке жататын операциялар солдан оңға қарай орындалады. Нәтижелерi бүтiн типтi болатын стандартты функциялар – кестеде көрсетiлген.

3-кесте. Символдық тип (char).

Тип аты.

Мәндер диапозоны

Жады

Char

Компьютер алфавитiнiң

1 байт

String

0 ... 255 литерден тұратын жол

256 байт

Компьютер мүмкiншiлiгiмен анықталған таңбалар жиынының элементтерi таңбалық типтi мәндер болатын сан. Таңбалық типтi айнымалыларды анықтау үшiн Var ctr1,ctr2: char;

Тырнақша жақшаға алынған таңба таңбалық типтi константа құрайды. Латын алфавитiнiң бас әрiптерiнiң төмендегiдей орналасуы олардың реттелгенi деп қабылданған. Бұл жиын байланысты болуы мiндеттi емес.

“A”<”B”<”c”...<”y”<”2”.

Олай болса әрiптердiң арасында басқа таңбалар кездесуi мүмкiн. Ал цифрлардың келесi түрде “0”<”1“<”2”<...<”9” орналасуын цифрлар жиынының реттелгенi дейдi.

4-кесте. Логикалық тип (boolean).

Тип аты

Мәндер диапозоны

Өлшемі

Жады

Boolean

False,true

8 bit

1 байт

Логикалық типтi айнымалылар тек екi мәнде ғана анықталған: true (ақиқат) немесе false (жалған). Олар төмендегiдей реттелген false<true. Логикалық типтi айнымалыларды баяндау үшiн Var бөлiмiнде стандартты идентификатор Boolean пайдаланады, мысалы:

Var a,b,c:Boolean;

Логикалық типтi операндтарға келесi буль амалдар анықталған:

Not – керi (терiстеу);

And – және (конъюнкция);

Or – немесе (дизъюнкция);

Xor – тең мәндiгi терiстеу амалы (“немесенi терiстеу”);

In – мәлiметтiң жиынға жататындығын көрсететiн амал.

Бұл операциялардың нәтижелерi логикалық типке жатады.

Not амалы (логикалық терiстеу). Not А өрнегiнiң мәнi А мәнiне керiсiнше болады.

Салыстыру амалдарының (=, <>, <, >, >=) нәтижелерi логикалық типке жатады. Аталған амалдардың приоритетi төмендегiдей ретпен орындалады: not, and, or. Логикалық типке келесi стандартты функциялар қолданылады: Odd(x), eoln(x), eof(x).

Егер X бүтiн тақ сан болса Odd(x) логикалық функциясының мәнi true, ал керiсiнше false. Егер Х кез келген текстi файлдық жолының соңын белгiлейтiн символ болса логикалық функция eoln(x)=true. Егер Х кез келген файлдың соңын бiлдiретiн символ болмаған жағдайларда Eof(x) логикалық функциясы false мәнiн қабылдайды.

Түгенделетiн тип.

Программаға программистiң өзiне қолайлы түгенделетiн типтi енгiзуiне болады. Түгенделетiн тип реттелген индентификатор жиынында анықталады.

Түгенделетiн тип типтер бөлiмiнде былай баяндалады: TYPE NT = (W1, W2, ... , WN). Мұнда NT – анықталатын типтiң идентификаторы (атауы). W1, W2, ... , WN – константты идентификаторлар, олар NT типтi айнымалы қабылдайтын нақтылы мәндер. Бұл мәндер реттелген, реттелу тәртiбi типтi баяндайтын идентификаторлардың мынандай орналасуымен анықталады: W1, W2, ... , WN.

Барлық реттік типтi айнымалыларға келесi стандартты функциялар қолданылады: Succ(x),Pred(x),Ord(x).

Succ(x) – функциясы реттелген тiзбекте Х-ке жалғас келесi элементтi анықтайды, мысалы: Алфавит бойынша реттелген әрiптердiң тiзбегi берiлсiн. Онда Succ(x) функциясының мәнi Х әрпiнен кейiнгi әрiпке тең: Succ(b)=c; succ(m)=n.

Pred(x) – функциясы реттелген тiзбектегi Х-тiң алдындағы элементтi анықтайды. Pred(m)=l, Pred(жұма)=бейсенбi.

Ord(x) – функциясы реттелген тiзбектегi Х-элементiнiң нөмірiн анықтайды: ORD(A)=0; ORD(D)=3; ORD(жұма)=5.

Шектелген типтер

Реттік типтi аинымалыға ол қабылдай алатындай мәндердiң әр түрлi iшкi жиынын анықтауға болады. Айнымалының осындай түрiн анықтағанда шектелген немесе түгенделетiн типтердiң көмегiмен баяндалады: Var A: min..max;

Мұнда А-айнымалысы, min-төменгi және max-жоғарғы шектерiмен шектелген, iшкi жиында анықталған. Жиынның шектерi (шекаралары) екi нүктемен бөлiнедi. А-айнымалының негiзгi типiн анықтайтын жиынды min және max типiне сәйкес, мысалы: I-айнымалысы 1900-1995 жиынының мәндерiн қабылдау үшiн баяндау бөлiмiнде келесiдей анықталады: VAR I:1900..1995;

i-айнымалысының негiзгi типi integer, яғни жиынның шегi бүтiн константалар. Шектелген типтердi символдық және түгенделетiн типтерде де анықтауға болады. Мысалы:

Type апта =дүйсенбi, сейсенбi, сәрсенбi, бейсенбi, жұма, сенбi, жексенбi;

Var жұмыс_күнi: дүйсенбi..жұма;

жұмыс_күнi айнымалысы – Апта типiне сәйкес, дүйсенбiден жұмаға дейiнгi күндердiң мәндерiн қабылдай алады.

5-кесте. Нақты типтер.

Тип аты

Мәндер диапозоны

Цифрлар саны

Жады

Single

1.5E-45..3.4E38

7-8

4 байт

Real

2.9E-39..1.7E38

11-12

6 байт

Double

5.0E-324..1.7E308

15-16

8 байт

Extended

3.4E-4932..1.1E4932

19-20

10 байт

Comp

-9.2E18..9.2E18

19-20

8 байт

Single – нақты қысқа сан;

Real – нақты сан;

Double – single типiне қарағанда екiлiк дәлдiктегi нақты сан

Extended – ұзартылған дәлдiктегi нақты сан

Comp – композициялық нақты сан. Компьютердiң мүмкiншiлiгiмен анықталатын барлық нақты сандардың iшкi жиыны нақты типтi мәндер облысы болып белгiленедi. Нақты типтi айнымалыларды баяндау үшiн Var бөлiмiнде стандартты идентификатор real пайдаланады. Мысалы: var x,y,z:real;

Егер операндтың бiреуi нақты типке жатса, онда келесi операциялардың нәтижелерi де нақты типке жатады:

(+), (-), (*), (/). Бөлу операциясында ғана екi операнд та бүтiн типке жатады. Көбейту және бөлу операциялары қосу және азайту операцияларымен салыстырғанда жоғарғы приоритетке жатады. Стандартты функциялар кестеде көрсетiлген.

Жиындар. Жиын типінің сипаттамасы. Жиындарға амалдар қолдану.

Математикада жиын деп, бiрдей типтегi элементтердiң тобын айтады, ал Паскаль тiлiнде типтерi реттелмеген әр түрлi элементтер тобын – жиын деп атайды.Жиынға бiр ғана ат қойылады.

Жиындар типiн баяндау.

Жиын типi Set, of – түйiндi сөзiмен, одан кейiн жиынды айқындайтын негiзгi типiмен баяндалады;

Var бөлiмiнде: Var жиын_аты: Set of негiзгi_тип;

Мысалы: Var c: set of char;

Type бөлiмiнде: Type

Тип_атауы = set of негiзгi_тип;

Var жиын_аты: тип_аты;

Мысалы: Type A=set of негiзгi_тип;

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

Мысалы: A1:=[1,3,5,25];

B1:=[ ]; {бос жиын};

C1:=[ ‘A‘,‘B‘,‘D‘];

Фигура:=[круг, ромб, квадрат];

Жиынның негiзгi типi ретiнде – кез келген қарапайым типiн қолдануға болады, бiрақ нақты сандар (real) типiн пайдалануға болмайды. Жиынның негiзгi типiне, бүтiн сандар (integer) типiнiң шектелген типiмен де анықтауға болады. Жиын элементтерiнiң саны – Паскаль тiлiнiң нұсқауымен анықталады. Ал жалпы элементтерiнiң саны: 64 пен 256 арасында. Жиындар элементтерi үтiр арқылы бөлектенiп, квадрат жақшаға алынып жазылады. Бос жиынды элементi көрсетiлген квадрат жақшаға алып белгiлейдi. Бос жиын бiреу және ол жиындардың кез келген типтерiне жатады.

Мысалы: Type сандар = set of 1..5;

Var сан_жиыны : Сандар;

[], [1], [1,2], [1,2,3], [1,2,3,4], ..., [1,2,3,4,5];

Жиындарға қолданылатын амалдар

  1. Жиындардың бiрлестiгi(қосу амалы) Жиын1+Жиын2 =Жиын3;

Мысалы: A:=[1,2,3]; B:=[1,7];

C:=A+B; C:=[1,2,3,7];

2)Жиындардың қиылысуы (көбейту амалы). Бұл амалдарда кездесетiн ортақ элементтердi құрайды. Мысалы A:=[1,2,3]; B:=[3];

C:=A*B; C:=[3];

3)Жиындар айырымы(алу амалы).

Мысалы: A:=[1,2,3,4,5,6,7];

B:=[1,2,3]; C:=A – B; C:=[4,5,6,7];

Бұл мысалдан туындаған жиынға, В жиынында кездеспеген А жиынының барлық элементтерi енедi.

4) Жиындардың теңдiгi мен теңсiздiгi

Жиындар типiмен анықталған айнымалыларға төмендегi салыстыру амалы қолданылады;

= екi жиынның теңдiгiн анықтау үшiн

<> екi жиынның теңсiздігі

<= сол жақ операндыдағы жиындысы екенiн көрсетедi

>= керiсiнше, оң жақтағы жиындысы екенiн көрсетедi.

Мысалы: A:=[1,2,3]; B:=[1,2,3]; A=B C:=(A=B);

A1:=[1,2]; A<>A1 C1:=(A>=A1);

A1<=A C1:=(A1<=A); A>=A1 C1:=(A>=A1);

5) In – жиынында бiр – бiрiне жатуын тексеру амалы;

А:=[1,2,3]; B:=[1,2]; A in B жауап false

B in A жауап true

Мысал: Символдық типтегi 3 жиын берiлген

Y1:=[‘A‘,‘B‘,‘D‘,‘R‘,‘H‘]; Y2=[‘R‘,‘A‘,‘H‘,‘D‘];

Y3:=[‘A‘,‘R‘];

Негізгі әдебиет: 1[108-112], 1[90-118]

Қосымша әдебиет: 6қос[81-83], 7[322-338],8[30-42].

Бақылау сұрақтары

1. Қандай типтер реттік типтерге жатады?

2. Реттік типтерге қандай функциялар пайдаланылады?

3. Түгенделетін тип қалай анықталады?

4. Түгенделетін типті айнымалылардың пайдалануының ерекшеліктері қандай?

5. Диапазон типін пайдалану мысалдарын келтіру керек.

6. Жиындарға қандай амалдар анықталған?

7. Жиын элементтерінің типі қандай болуы мүмкін?

4–дәріс. Массивтер. Бірөлшемді және екіөлшемді сандық массивтерді өңдеу.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]