Массивтер. Символдық айнымалылар және жолдар
МАЗМҰНЫ
КІРІСПЕ 3
І. МАССИВТЕР
1.1. Бір өлшемді массивтер 4
1.2. Екі өлшемді массивтер 8
ІІ. СИМВОЛДЫҚ АЙНЫМАЛЫЛАР ЖӘНЕ ЖОЛДАР 13
2.2.Символдық типтер 13
2.2.Символдық шамалармен жұмыс процедуралары мен функциялары 15
ІІІ. ЖИЫНДАР 18
ІV. ЖАЗБАЛАР 22
ҚОРЫТЫНДЫ 26
ҚОЛДАНЫЛҒАН ӘДЕБИЕТТЕР 27
ҚОСЫМША 28
КІРІСПЕ 3
І. МАССИВТЕР
1.1. Бір өлшемді массивтер 4
1.2. Екі өлшемді массивтер 8
ІІ. СИМВОЛДЫҚ АЙНЫМАЛЫЛАР ЖӘНЕ ЖОЛДАР 13
2.2.Символдық типтер 13
2.2.Символдық шамалармен жұмыс процедуралары мен функциялары 15
ІІІ. ЖИЫНДАР 18
ІV. ЖАЗБАЛАР 22
ҚОРЫТЫНДЫ 26
ҚОЛДАНЫЛҒАН ӘДЕБИЕТТЕР 27
ҚОСЫМША 28
КІРІСПЕ
Паскаль тілін 1973 жылы швейцар математигі Никлаус Вирт жасап шығарады да, атақты француз математигі, физигі, философы және алғашқы есептеу машинасы - арифмометрді /1641/ жасаған Блез Паскальдің құрметіне "Паскаль" деп ат қойды.
Паскаль тілі оқып үйренуге жеңіл, түрлі салалық информациямен жұмыс істеуде нәтижелі болғандықтан, дүние жүзінде көп тараған тілдердің бірі болып табылады.
Паскаль тілі:
• алгоритм құрылымын сақтап құрылған;
• жоғары деңгейлі программалау тілдерінің жақсы қасиеттерін жинақтаған;
• қазіргі замандағы көптеген программалау тілдерінің негізі болып саналады;
Сондықтан бұл тілдің нақты ЭВМ - нің мүмкіндігіне байланысты бірнеше түрлері бар.
Паскаль тілінде программа жазғанда мынадай мәселелерді ескеру керек:
Басқа тілдердегідей Паскаль тілінде де "қызметші сөздер " бар. Мысалы: begin, end т.б. Олардың атын басқа мақсаттарға пайдалануға болмайды. Оларды басқа символдардан ажырату үшін ерекше әріптермен жазады, ал жазбаша программа құрған кезде олардың астын сызып отырады.
Паскальдың кейбір варианттарында бас әріптер мен кіші әріптер өзара ажыратылмайды. Мысалы: А, а әріптері бірдей таңба болып есептеледі.
Программаның көпшілігінде айнымалылар, константалар, процедуралар бір-бірімен бірінші алты немесе сегіз символ арқылы ажыратылады. Сондықтан ұзындығы 6-8 символдан көп айнымалылардың, константалардың
Паскаль тілін 1973 жылы швейцар математигі Никлаус Вирт жасап шығарады да, атақты француз математигі, физигі, философы және алғашқы есептеу машинасы - арифмометрді /1641/ жасаған Блез Паскальдің құрметіне "Паскаль" деп ат қойды.
Паскаль тілі оқып үйренуге жеңіл, түрлі салалық информациямен жұмыс істеуде нәтижелі болғандықтан, дүние жүзінде көп тараған тілдердің бірі болып табылады.
Паскаль тілі:
• алгоритм құрылымын сақтап құрылған;
• жоғары деңгейлі программалау тілдерінің жақсы қасиеттерін жинақтаған;
• қазіргі замандағы көптеген программалау тілдерінің негізі болып саналады;
Сондықтан бұл тілдің нақты ЭВМ - нің мүмкіндігіне байланысты бірнеше түрлері бар.
Паскаль тілінде программа жазғанда мынадай мәселелерді ескеру керек:
Басқа тілдердегідей Паскаль тілінде де "қызметші сөздер " бар. Мысалы: begin, end т.б. Олардың атын басқа мақсаттарға пайдалануға болмайды. Оларды басқа символдардан ажырату үшін ерекше әріптермен жазады, ал жазбаша программа құрған кезде олардың астын сызып отырады.
Паскальдың кейбір варианттарында бас әріптер мен кіші әріптер өзара ажыратылмайды. Мысалы: А, а әріптері бірдей таңба болып есептеледі.
Программаның көпшілігінде айнымалылар, константалар, процедуралар бір-бірімен бірінші алты немесе сегіз символ арқылы ажыратылады. Сондықтан ұзындығы 6-8 символдан көп айнымалылардың, константалардың
Пән: Информатика, Программалау, Мәліметтер қоры
Жұмыс түрі: Курстық жұмыс
Тегін: Антиплагиат
Көлемі: 34 бет
Таңдаулыға:
Жұмыс түрі: Курстық жұмыс
Тегін: Антиплагиат
Көлемі: 34 бет
Таңдаулыға:
МАЗМҰНЫ
КІРІСПЕ 3
І. МАССИВТЕР
1.1. Бір өлшемді массивтер 4
1.2. Екі өлшемді массивтер 8
ІІ. СИМВОЛДЫҚ АЙНЫМАЛЫЛАР ЖӘНЕ ЖОЛДАР 13
2.2.Символдық типтер 13
2.2.Символдық шамалармен жұмыс процедуралары мен функциялары 15
ІІІ.ЖИЫНДАР 18
ІV. ЖАЗБАЛАР 22
ҚОРЫТЫНДЫ 26
ҚОЛДАНЫЛҒАН ӘДЕБИЕТТЕР 27
ҚОСЫМША 28
КІРІСПЕ
Паскаль тілін 1973 жылы швейцар математигі Никлаус Вирт жасап
шығарады да, атақты француз математигі, физигі, философы және
алғашқы есептеу машинасы - арифмометрді 1641 жасаған Блез Паскальдің
құрметіне "Паскаль" деп ат қойды.
Паскаль тілі оқып үйренуге жеңіл, түрлі салалық информациямен
жұмыс істеуде нәтижелі болғандықтан, дүние жүзінде көп тараған
тілдердің бірі болып табылады.
Паскаль тілі:
( алгоритм құрылымын сақтап құрылған;
( жоғары деңгейлі программалау тілдерінің жақсы қасиеттерін
жинақтаған;
( қазіргі замандағы көптеген программалау тілдерінің негізі
болып саналады;
Сондықтан бұл тілдің нақты ЭВМ - нің мүмкіндігіне
байланысты бірнеше түрлері бар.
Паскаль тілінде программа жазғанда мынадай мәселелерді ескеру керек:
Басқа тілдердегідей Паскаль тілінде де "қызметші сөздер " бар. Мысалы:
begin, end т.б. Олардың атын басқа мақсаттарға пайдалануға болмайды. Оларды
басқа символдардан ажырату үшін ерекше әріптермен жазады, ал жазбаша
программа құрған кезде олардың астын сызып отырады.
Паскальдың кейбір варианттарында бас әріптер мен кіші әріптер өзара
ажыратылмайды. Мысалы: А, а әріптері бірдей таңба болып есептеледі.
Программаның көпшілігінде айнымалылар, константалар, процедуралар бір-
бірімен бірінші алты немесе сегіз символ арқылы ажыратылады. Сондықтан
ұзындығы 6-8 символдан көп айнымалылардың, константалардың, процедуралардың
қажеті шамалы.
І. МАССИВТЕР
1.1. Бір өлшемді массивтер
Массив – алдын ала саны белгілі бір типті компоненттен (элементтен )
тұратын, индекспен жабдықталған жиын. Массивтер бір өлшемді және екі
өлшемді болып келеді. Кәзіргі қарастырып отыратын массивімз бір өлшемді.
Барлық массивтер атын атап шақыру үшін, оның массивтегі алатын орнын
(позициясын) білу керек. Элементтің алатын орнын индексі көрсетеді. Мысалы,
массив А, М, N, P, Q элементтерінен тұрады делік. Массивтің аты жиын
болсын. Массивтің Р элементін шақыру үшін, (4(-ті жазса болғаны, яғни
массивтің атынан кейін жиын (4(, N жиын (3( т.с.с.
Компоненттің типі кез-келген, ал индекстің типі скалярлы, REAL басқа
(нақты сандардан басқа), кез келген скаляр болуы мүмкін. Барлық скалярлық
типтер реттелген, сондықтан массивтің элементтері де реттелген. Массивтің
типін сипаттау операторларды сипаттау бөлімінде беріледі:
TYPE массивтің аты=ARRAY (индекстер типі( OF базалық тип;
Мысалы:
1. TYPE R=ARRAY (1...30( OF REAL;
R – структурлы тип, 30 элементтен тұрады, әрбір компонент типі - REAL
2. TYPE CH=ARRAY (1...20( OF CHAR;
CH массиві 20 символдық элементтерден тұрады.
3. TYPE температура (-9...21( OF REAL;
Айнымалылар бөлімінде массивтер былай жазылады:
VAR A:R;
B:CH;
C: Температура;
VAR A : ARRAY [1 ... 30] OF REAL ;
B:ARRAY [1 ... 20] OF CHAR ;
C : ARRAY [-9 ... 21] OF REAL ;
Қарастырылған массивтер бір индексті, Паскальда бірнеше индексті массивтер
болады. Бір индексті массив бір өлшемді деп аталады. А массивін машинаның
жадына енгізу READ (A [i]) операторы арқылы іске асырылады, мұндағы A [i].
Барлық массивті енгізу үшін FOR I : = 1 TO N DO READ (A [I]) ;
Параметрлі цикл пайдалынылады. Мұндай жағдайда массив элементтері жол
бойымен орналастырылады, элементтердің барлығы – N. Егер массив
элементтерін бағана бойымен орналастыру керек болса, READLN операторы
пайдалынылады.
Массивті баспаға беру WRITE (A [I]) немесе WRITELN операторлары
көмегімен параметрлі цикл арқылы жүзеге дасырылады.
Мысал, 10 элементтен тұратын CHAR типті массивті енгізу – шығару
программасы былай жазылады.
PROGRAM MASS;
USES CRT;
VAR A : ARRAY [1 ... 10] OF CHAR ;
I: INTEGER ;
Begin CLRSCR;
FOR I: = 1 TO 10 DO
READ (A [i]);
FOR I:=1 TO 10 DO
WRITE (A [i])
END.
Мысал. 100 элементтен тұратын массивте неше бірдей көршілес символдар
кездесетіндігін анықтайтын программа жазыңдар. Бірдей көршілес элементтер
сәйкес келетін шарт: Sim [I] = Sim [I+1] болады.
PROGRAM MАS;
VAR Sim: ARRAY [1:100] of integer;
I,N: INTEGER;
BEGIN
FOR I:= 1 TO 100 DO
READ (Sim[i]);
N:=0;
FOR I:=1 TO 100 DO
IF Sim[I] = Sim [I+1];
THEN N:= N+1
WRITE (N)
END.
Мысал. Сандар массиві берілген. Ең үлкен элементтің мәнін табыңдар.
Егер олар бірнешеу болса олардың санын тап:
program Max;
const m=100;
var mas : array[1..m] of integer;
i , мах, K,N: integer;
begin
write('Массив өлшемін енгіз');
readln (n);
write ('Массив элементін енгіз');
readln ( mas [1]);
Max:= mas [1];
K:=1;
For I:=2 TO n do
begin
write ( ‘Массив элементін енгіз ');
readln (mas [I]);
if max mas [i] then
begin
max:= mas[i];
К:=1
end.
else
if max =mas [i] then К:=K+1;
end.
writeln( ‘мax =', max,' ол элементтер', К)
End.
Есепті шығару үшін:
* программа денесін қалыптастырып және айнымалыларды сипаттаймыз;
* массивтің ұзындығын N, массив элементінің мәнін енгіземіз және ол мах
бастапқы мәнін бірінші сан бойынша тағайындаймыз.
* элементтерді сыпыра қарап өтеміз, және егер кезекті mas(i) мах –дан
үлкен болса, онда мах:=X және К:=1 меншіктейміз;
*егер mаs[i] =max болса К-ны бір бірлікке арттырамыз.
*нәтижені шығарамыз;
1.2. Екі өлшемді массивтер
Екі индексті массив екі өлшемді деп аталады. Екі өлшемді массивті
шартты түрде матрица (кесте) түрінде көрсетуге болады.Есеп шығару кезінде
массивті интерпретациялау ыңғайлы: массивтің бірінші индексіне әдеттегідей
массивтің жолы, екінші индексіне бағанасы сәйкес қойылады.
Егер А массиві мына түрде берілсе:
1 - 3 4 А [2,3]= -7
6 - 8 -7 онда A [1,3]= 4
0 2 1 A [3,2]= 2 сәйкес қойылады.
Екі өлшемді массивтің сипатталуы:
Var A: ARRAY [1..3, 1..3] of INTEGER;
Егер бір типті бірнеше массивтер сипатталатын болса, олардың атары үтір
арқылыбөлінеді де, соңғысының соңына қос нүкте қойылады, мысалы, жазылуы:
Var A,B,C: ARRAY [1..10, 1..20] OF CHAR;
A, B, C массивтерінің компонент типі мен индекс типі бірдей екендігін
білдіреді:
Мысал. Натурал сандардан тұратын N*M матрицасы берілген. Одан ең кіші
элементті және оның алатын орнын табыңдар. Мұндай элементтер бірнешеу
болса, онда экранға әрқайсысының алатын орнын шығарыңдар.
Бұл есептің шешуінің бірнеше жолы бар. Айталық, массив элементтеріне
параллель баруға және бірнеше рет қарап шығуға болады, матрицаны екі рет
қарап шығуды да ұйымдастырылуы да мүмкін. Бір қарағанда ең кіші элементті
табамыз, егер осындай элементтер бірнешеу болса, онда екінші қарап шығарда
олардың орнын анықтаймыз.
PROGRAM MATTR 8:
CONST t=100; s=100;
VAR A :ARRAY [1..T,1..S] OF INTEGER;
N,M, IM,JM,I,J,MIN,K:INTEGER;
BEGIN
WRITE( ‘Жол санын енгіз’);
READLN(N);
WRITE(‘Бағана санын енгіз’);
READLN (M);
FOR i=1 TO N DO
BEGIN
WRITELN (‘Сандарды бос орын арқылы енгіз’,M);
FOR j:=1 TO M DO
READ(A[i,j])
END;
MIN:=A[1,1];
IM:=1;JM:=1;K:=O ;
FOR i:=1 TO N DO
FOR j:=1 TO M DO
IF MIN (A[i,j] THEN
BEGIN
k:=1; im:=i; jm:=j
min:=A[i,j]
END
ELSE
If min =A[i,j] THEN k:=k+1;
If k=1 THEN
BEGIN
WRITELN (‘матрицада бір ең кіші элемент =’,min);
WRITELN (‘B’,im,’жол,B’,jm,’бағана’)
END
ELSE
BEGIN
WRITELN (‘матрица’,k,’ ең кіші элемент =’,min);
FOR i:=im TO N DO
FOR j:=1 TO M DO
IF min=A[i,j] THEN WRITELN(‘жолда’,i,’бағанада’, j)
END;
END.
Есепті шешу үшін:
* айнымалыларды сипаттаймыз;
* А массив ұзындығы мен массив элементтерінің мәнін енгіземіз
* массив элементтеріне қарап, ең кіші мәнін іздейміз және мәнін индекс
есіне сақтаймыз;
* ең кіші элементтер санын есептейміз;
Барлық ең кіші элементтер туралы информацияны шығару үшін:
* К-нің санына қарай не бір ғана ең кіші элемент туралы информацияны
шығарамыз, не А массивін қайта қарауды ұйымдастырамыз;
Айнымалылар:
А – екі өлшемді массив;
N,M- массивтің жолдары мен бағаналар саны;
I,J-(массивтің) циклдің айнымалылары;
К- ең кіші элементтер саны;
IM,JN-ең кіші элементтің жолы мен бағанасы;
MIN-ағымдағы минимум;
Осы есепті матрицаны бір қарап өтіп те шешуге болады. Мұндай жағдайды
көмекші екі сөйлемді массив енгізу қажет. Массивке ең кіші элементтердің
жолдары мен бағандардың мәні енгізіледі;
program MATTRS-2;
const t=100; s=100;
var A: ARRAY[1..t,1..S] of integer;
B: ARRAY[1..t*s,1..2] of integer;
N,M,IM,JM,i,j,min, K:integer;
begin
write(‘жол санын енгіз’);
readln(N);
write (‘бағана санын енгіз’);
readln (M);
for i:=1 to N do
begin Writeln(‘сандарды енгіз’,M);
for j:=1 to M do
read (A[i,j])
end;
Min:=A[1;1];
K:=1
for i:=1 to N do
for j:=1 to M DO
if min A[i,j] then
begin
K:=1;
Â[1,1]:=i;
B[1,2]:=j;
Min: =A[i, j]
end
else
if min =A[i, j] then
begin
K:=K+1;
B[K,1]:=i;
B[K,2]:=j
end
if K=1 then
begin
writln (' жол’,im,’бағана, jm);
end
else
begin
writln ('матрицада‘,k,’минимумдер MIN=',MIN);
for i:=1 to K do
writln ('жол',B[1,1], 'бағана', b[1,2])
end;
end.
Есепті шешу үшін:
* айнымалыларды сипаттаймыз;
* А массив ұзындығы мен массив элементтерінің мәнін енгіземіз
* массив элементтеріне қарап, ең кіші элементтерін іздейміз және көмекші В
массивтің индекс мәндерін есте сақтаймыз;
* ең кіші элементтер санын есептейміз;
* К-ға қарай не бір ғана ең кіші элемент туралы информацияны шығарамыз, не
барлық ең кіші элементтер туралы информацияны шығару үшін В массивін қайта
қарауды ұйымдастырамыз;
Айнымалылар:
А – екі өлшемді массив;
В – көмекші массив;
N,M- массивтің жолдары мен бағаналар саны;
I,J-(массивтің) циклдің айнымалылары;
К- ең кіші элементтер саны;
IM,JN-ең кіші элементтің жолы мен бағанасы;
MIN-ағымдағы минимум;
ІІ. СИМВОЛДЫҚ АЙНЫМАЛЫЛАР ЖӘНЕ ЖОЛДАР
2.2. Символдық типтер
Паскаль 7.0 тілінде CHAR атты мәліметтірдің стандарт типі символдық
шамалар. Бұл тип реттік болып табылады және символдық айнымалылардың
мәндерін өзара салыстыруға болады. Латын әріптері (‘A’,’B’,...,’Z’ кіші
‘a’,’b’,’c’,...’z’), цифрлар ‘0’,’1’,’2’,...’9’, тыныс белгілер, түрлі
жақшалар, орыс әріптері символдық айнымалыларға жатады. Программаларда
олардың мәндері апострофқа алынып жазылады. Әрбір осындай қатардың
символдарының коды реттелген:
‘A’’B’’C’...’Z’ ’А’’Б’’В’...’Я’
‘a’’b’’c’...’z’ ‘а’’б’’в’...’я’
‘0’’1’’2’...’9’
Барлық кіші әріптердің кодтары барлық бас әріптердің кодтарынан кіші.
Осындай типті реттелген мәліметтермен жұмыс жасау үшін аргументтері
символды шама болып келген функциялар пайдаланылады:
PRED( ) – алдыңғы мән, мысалы PRED(‘B’)=’A’;
SUCC( ) келесі мән, мысалы SUCC(‘a’)=’b’;
ORD( ) – кодтың сан мәні, мысалы ORD(‘7’) - ORD(‘0’)=7
Символдық айнымалылар циклдің айнымалылары ретінде де пайдаланылады,
мысалы
FOR I:=’z’ DOWNTO ‘A’ DO немесе FOR I:=’A’ TO’Z’ DO
Апострофқа алынған символдар қатары жол деп аталады және STRING типімен
сиппатталады:
‘PASCAL’, ‘pascal’ т.т.
Бір ғана символдан тұратын жолды символдық константалар деп атайды.
Тип – жолдардың өлшемі көрсетілуі мүмкін (1-ден 255-ке дейін ).
Жол салыстыру операциясыорындалады (,,=,=), мысалы ‘VIV’’VIVA’ және
конкатенация (тіркестіру) операциясы да орындалады ’ма’+’ма’=’мама’.
Іс жүзінде ұзындығы К жол К+1 символдарадан тұратын массив болып
табылады, мұнда нөль элементі жол ұзындығының мәнін сақтайды:
STRING [K] = ARRAY [0..K] OF CHAR
Жолдың ұзындығын анықтау үшін LENGTH(JOL) функциясы жиі пайдаланылады.
2.2. Символдық шамалармен жұмыс процедуралары мен функциялары
Паскальда жолмен жұмыс істеу үшін арнайы функциялар мен процедуралар
қондырылған:
CONCAT() – жолдарды біріктіру;
COPY() - жолдың бөлігін көшіреді;
LENGTH() – жолдың ұзындығы;
POS() – жол ішіндегі жолдың бөлігін іздейді;
DELETE() – жолдан жол ішіндегі жол бөлігін жояды;
INSERT() – жолға жол бөлігін орналастырады;
STR() – сандардыжол айнымалыларына түрлендіреді;
VAL() – символдың айнымалы шамасының цифр түріндегі мәнін екілік сан мәніне
айналдырады.
Бұл функциялары мен процедуралары форматы төменгі таблицада
көрсетілген:
Функция Қызметі мен форматы
CONSAT CONSAT(str1,str2) жолдарды біріктіріп қайырады. str1,
str2-конкатенацияланатын жолдар.
COPY COPY(str, i,j). Str жолдың I орнынан бастап саны j
(болатын) символдан тұратын ішкі жолының көшірмесін
қайырады .
LENCTH Str length(str) жолдың ұзындығын қайтарады.
DELETE DELETE(str i,j) str j жолдан i орнынан бастап str j
символын жояды.
POS Str жлындағы орналасқан context ішкі жолының басталатын
орнының нөмірін қайтарады. POS(context, str).
INSERT Str жолына i орнынан бастап context жол бөлігін
орналастырады. INSERT(context, str, i).
STR N санынан жол айнымалыларына айналдырады. STR(N,STR).
VAL STR жолды екілік санға Х айналдырады, мұндағы
CODE-VAL(STR, X, CODE) дұрыс емес символдың коды.
Символдар арасындағы апострофқа алынып жеке көрсетілген бір немесе бірнеше
позициялық ашық жерлер де текст қатарына жатады.
Мысал. A BB CCC... ZZ... Z бір жолға енгізіңіз.
program JAZ;
uses crt;
var
i:char; k, j: integer;
begin
clrscr;
k:=1;
for i:=’A’ to ‘Z’ do
begin
for j:=1 to k do
write(i);
k:=k+1;
end;
writeln
end.
Есепті шешу үшін:
* айнымалыларды сипаттаймыз;
* FOR I:=’A’ to ‘Z’ do циклі қандай әріпті баспаға берілетіндігін
анықтайды;
* FOR J:=1 to k do циклі әріптер неше рет басылатындығын анықтайды;
* барлық әріптерді шығарғаннан кейін жолды writeln операторымен жабамыз;
Айнымалылар:
I –цикл айнымалысы; қандай әріпті шығаратындығын анықтайды;
К -әріпті қайталау саны;
J – цикл айнымалысы;
Мысал. ZZZ... AA... A бір жолға енгізіңдер.
program JAZ ;
uses crt;
var i:char; k, j:integer;
begin clrscr;
k:=1;
for i:=’Z’ downto ‘A’ do
begin
for j:=1 to k do
write(i);
k:=k+1;
end;
writeln
end.
ІІІ. ЖИЫНДАР
Жиын - жай құрылымның түрі. Жиын деп белгілі бір
ерекшеліктері бойынша байланысқан алуан түрлі объектілерді
айтады. Жиын құрайтын объектілердің әрқайсысын оның элементтері
деп айтады. Жиынның элементтерінің түрі, нақты сандардан басқа,
кез -келген дискретті тип болуы мүмкін.
Жиынды сипаттау құрылымы:
аты = SET OF түрі
Мысал:
type
Гүлдер = (Інжугул, шегіргул, қалампыр, раушан, түймедағы, көктіген);
(* аталған дискретті тип ГҮЛДЕР *)
ШОҚ = SET OF гүлдер ;
(* жиын түрі шоқ *)
var інжигул, шегиргул; шоқ;
(* айнымалы түрлер шоқ *)
Гүлдер түрі үшін ШОҚ түрі - туынды жиын, ал ГҮЛДЕР -ШОҚ
түрі үшін базалық түр.
Жиын тізбектелген өрнектер түрінде жазылады да бір - бірінен
үтір арқылы ажыратылады және барлық тізбек квадрат жақшаға
алынады.
Мысалы:
[‘À’, ‘N’], [Y], [1,3,5]. [3,4,5,6,7]-нің орнына [3,,7] немесе
[інжігүл,шегіргүл қалампыр]-дың орнына [інжугул ,қалампыр] деп те
жазуға болады. Бос жиын [ ] таңбасымен белгіленеді.
Жиын элементтеріне біріктіру(+) , қиылысу(*) және айырылым(-)
амалдарын қолдануға болады.
Мысалы:
[інжигул , шегиргул]+[қалампыр] =[ інжигул , шегиргул, қалампыр]
[інжигул , шегиргул]*[ қалампыр]=[ ]
( інжигул , шегиргул (-(шегургул( = (інжугул(
Жиындарды салыстыру үшін ((,,=,=) қатынас белгілері
қолданылады. Мысалы.
[інжигул , шегиргул] [қалампыр];
[інжигул , шегиргул қалампыр] = [қалампыр, шегіргул інжугул]
[інжигул , шегиргул қалампыр] = [шегіргул інжугул],
[шегіргул інжугул =[ шегіргул інжугул қалампыр].
in – элементтің кіретіндігін тексереді.
in амалы көбінесе шартты операторларында қолданылады. Мысалы.
A өрнек қорытынды
( If A in [1,3,4] then... False
‘с’ If A in [’а’..‘z’] then.. true
х If A in [x0, x1, x2] then False
Екі жиынға біріктіру, қиылсу және айырым амалдарын қолданғандағы
қорытынды жиын.
А+В біріктіру амалы
А В А+В
[1,(,3] [3,4] [1,(,3,4]
[‘A’ .. ‘D’] [‘E’..’z’] [‘A’.. ‘z’]
[‘A’.. ‘В‘.. ‘С’] [ ] [‘A’, ‘B’, ‘C’]
[ ] [ ] [ ]
Екі жиынға (А+В) біріктіру амалын қолданғанда қорытынды осы екі
жиынның элементерінен тұратын үшінші жиын шығады.
А*В қиыстыру амалы
А В А*В
[1,(,3] [(,3,4,5] [(,3]
[‘A’ .. ‘Z’] [‘A’..’R’] [‘A’.. ‘r’]
[1,4,5] [] []
[‘A’, ‘B’, ‘C’] [‘D’, ‘E’, ‘K’] []
Екі жиынды қиыстыру (А*В) кезінде шыққан жиын тек сол екі жиынға
ортақ элементерден тұрады.
А-В айырым амалы
А В А-В
[1,2,3,4] [3,4,5,6] [1,2]
[‘a’.. ‘z’] [‘d’..’z’] [‘a’..’c’]
[] [‘a’,'z’] [ ]
[x1, x2, x3] [x5, x2, x7] [x1, x3]
Екі жиынға айырым (А-В)амалын қолданғанда шыққан жиын В жиынында жоқ А
жиынының элементерінен тұрады.
Егер А- айнымалы жиы,ал В жиындар өрнегі болатын болса,онда А:=В;
меншіктеуген болады операторын тек В өрнегінің түрі А айнымалы жиынының
түріндей болғанда ғана қолдануға болады.
Жиындарды өте күрделі шартты оперторды қарапайым түрге келтіру
қолданады.
Мысалы:
If (C=’A’) or (C=E’) or (C=’E’) or (C=’O’) or (C=’U’) then А
Операторын қысқаша былай жазуға болады.
If c in [‘A’,’E’,’O’,’U’] then А.
If (c=’A’) AND (c=’z’) then былай алмастыруға if cin [‘A’.. ‘Z’]
болады.
Мысал. х тізбегіне S жиынын қалыптастыратын, жиынның М
элементтерінің санын есептейтін және оларды баспаға шығаратын
программа жазыңдар.
program тіз саны (INPUT, OUTPUT);
const N=20;
type T=1.. 20;
SS=SET of T;
T1:=0..20;
var x: T1; S:SS; M:T1;
begin
M:= 0; S:=[];
read (x);
if x 0; then repeat
if not (x in s)
then begin
M:=M+1;
S:=S+[x]
end;
read (x)
until X=0;
write (M)
end.
Егер 7 7 7 7 7 23 2 7 7 4 5 6
7 9 11 12 13 7 8 3 0 енгізсек, нәтижесі 12 болар
еді. (мұндағы 0-тізбек соңының белгісі).
ІV. ЖАЗБАЛАР
Әдетте әртүрлі типті объектілер құрамымен (комбинациясымен) жұмыс
істеуге тура келеді. Айталық, сынып аты сан (оқу жылы) мен
әріптен, багаж бүтін сан (заттар саны) мен нақты саннан (жалпы
салмағы), ал мектеп оқушысы туралы мағлүмат екі әріптер тізбегін
(фамилиясы, аты) мен сынып атынан тұрады. Көріп отырмыз, бірнеше
типті элементтер топтасып тек бір ғана объектіні бейнелеп тұр.
Мұндай программаны Паскаль тілінде "жазбаулар" арқылы сипаттайды.
Әртүрлі типті объектілердің құрамы (комбинациясы) Паскальда
жазбаулар болып табылады. Жазбаулар объектінің ішіндегі құрамын
оның алаңы (поле) дейді. Жазбауларда әрбір алаңның өзінің меншікті
аты болады. Жазбалау элементтерімен әрекет жасау (шақыру, бару,
қарау) оның тиісті алаңының аттары арқылы іске асырылады. Егер
алаң аты ретінде оқу жылы мен әріп алынса және х қайсыбір
жазбалау болса, онда жазбалау алаңдары оқу жылы және х, әріп
болып белгіленеді. Бұл жазуда х пен оқу жылы (х пен әріп)
ортасына нүкте қойылады. Алаңдар саны, әрбір алаңның типі мен өзі
тиісті жазбауларда анықталып белгіленеді. Сынып= record оқу жылы:
integer; әріп: char end, түріндегі анықтаманың аты сынып. Сынып
типті объектілердің жазбалануы екі алаңнан тұрады: біреуінің типі
integer, екіншісіне char.
var x: сынып,’..
х айнымалысы программада сынып типті айнымалысы ретінде
сипатталсын дейік. Онда программада орындалғанда х мәні 2 тең
алаңдар болады. Х айнымалысы сынып типтес айнымалы.
Оқу жылы - х, әріп сәйкес integer және char типтес айнымалылыр
болады. х, оқу жылы айнымалысымен кәдімгі integer типті
айнымалысымен, ал әріп кәдімгі char типті айнымалысымен қалай
айналыссақ солай айналысуға болады. Сынып ... жалғасы
КІРІСПЕ 3
І. МАССИВТЕР
1.1. Бір өлшемді массивтер 4
1.2. Екі өлшемді массивтер 8
ІІ. СИМВОЛДЫҚ АЙНЫМАЛЫЛАР ЖӘНЕ ЖОЛДАР 13
2.2.Символдық типтер 13
2.2.Символдық шамалармен жұмыс процедуралары мен функциялары 15
ІІІ.ЖИЫНДАР 18
ІV. ЖАЗБАЛАР 22
ҚОРЫТЫНДЫ 26
ҚОЛДАНЫЛҒАН ӘДЕБИЕТТЕР 27
ҚОСЫМША 28
КІРІСПЕ
Паскаль тілін 1973 жылы швейцар математигі Никлаус Вирт жасап
шығарады да, атақты француз математигі, физигі, философы және
алғашқы есептеу машинасы - арифмометрді 1641 жасаған Блез Паскальдің
құрметіне "Паскаль" деп ат қойды.
Паскаль тілі оқып үйренуге жеңіл, түрлі салалық информациямен
жұмыс істеуде нәтижелі болғандықтан, дүние жүзінде көп тараған
тілдердің бірі болып табылады.
Паскаль тілі:
( алгоритм құрылымын сақтап құрылған;
( жоғары деңгейлі программалау тілдерінің жақсы қасиеттерін
жинақтаған;
( қазіргі замандағы көптеген программалау тілдерінің негізі
болып саналады;
Сондықтан бұл тілдің нақты ЭВМ - нің мүмкіндігіне
байланысты бірнеше түрлері бар.
Паскаль тілінде программа жазғанда мынадай мәселелерді ескеру керек:
Басқа тілдердегідей Паскаль тілінде де "қызметші сөздер " бар. Мысалы:
begin, end т.б. Олардың атын басқа мақсаттарға пайдалануға болмайды. Оларды
басқа символдардан ажырату үшін ерекше әріптермен жазады, ал жазбаша
программа құрған кезде олардың астын сызып отырады.
Паскальдың кейбір варианттарында бас әріптер мен кіші әріптер өзара
ажыратылмайды. Мысалы: А, а әріптері бірдей таңба болып есептеледі.
Программаның көпшілігінде айнымалылар, константалар, процедуралар бір-
бірімен бірінші алты немесе сегіз символ арқылы ажыратылады. Сондықтан
ұзындығы 6-8 символдан көп айнымалылардың, константалардың, процедуралардың
қажеті шамалы.
І. МАССИВТЕР
1.1. Бір өлшемді массивтер
Массив – алдын ала саны белгілі бір типті компоненттен (элементтен )
тұратын, индекспен жабдықталған жиын. Массивтер бір өлшемді және екі
өлшемді болып келеді. Кәзіргі қарастырып отыратын массивімз бір өлшемді.
Барлық массивтер атын атап шақыру үшін, оның массивтегі алатын орнын
(позициясын) білу керек. Элементтің алатын орнын индексі көрсетеді. Мысалы,
массив А, М, N, P, Q элементтерінен тұрады делік. Массивтің аты жиын
болсын. Массивтің Р элементін шақыру үшін, (4(-ті жазса болғаны, яғни
массивтің атынан кейін жиын (4(, N жиын (3( т.с.с.
Компоненттің типі кез-келген, ал индекстің типі скалярлы, REAL басқа
(нақты сандардан басқа), кез келген скаляр болуы мүмкін. Барлық скалярлық
типтер реттелген, сондықтан массивтің элементтері де реттелген. Массивтің
типін сипаттау операторларды сипаттау бөлімінде беріледі:
TYPE массивтің аты=ARRAY (индекстер типі( OF базалық тип;
Мысалы:
1. TYPE R=ARRAY (1...30( OF REAL;
R – структурлы тип, 30 элементтен тұрады, әрбір компонент типі - REAL
2. TYPE CH=ARRAY (1...20( OF CHAR;
CH массиві 20 символдық элементтерден тұрады.
3. TYPE температура (-9...21( OF REAL;
Айнымалылар бөлімінде массивтер былай жазылады:
VAR A:R;
B:CH;
C: Температура;
VAR A : ARRAY [1 ... 30] OF REAL ;
B:ARRAY [1 ... 20] OF CHAR ;
C : ARRAY [-9 ... 21] OF REAL ;
Қарастырылған массивтер бір индексті, Паскальда бірнеше индексті массивтер
болады. Бір индексті массив бір өлшемді деп аталады. А массивін машинаның
жадына енгізу READ (A [i]) операторы арқылы іске асырылады, мұндағы A [i].
Барлық массивті енгізу үшін FOR I : = 1 TO N DO READ (A [I]) ;
Параметрлі цикл пайдалынылады. Мұндай жағдайда массив элементтері жол
бойымен орналастырылады, элементтердің барлығы – N. Егер массив
элементтерін бағана бойымен орналастыру керек болса, READLN операторы
пайдалынылады.
Массивті баспаға беру WRITE (A [I]) немесе WRITELN операторлары
көмегімен параметрлі цикл арқылы жүзеге дасырылады.
Мысал, 10 элементтен тұратын CHAR типті массивті енгізу – шығару
программасы былай жазылады.
PROGRAM MASS;
USES CRT;
VAR A : ARRAY [1 ... 10] OF CHAR ;
I: INTEGER ;
Begin CLRSCR;
FOR I: = 1 TO 10 DO
READ (A [i]);
FOR I:=1 TO 10 DO
WRITE (A [i])
END.
Мысал. 100 элементтен тұратын массивте неше бірдей көршілес символдар
кездесетіндігін анықтайтын программа жазыңдар. Бірдей көршілес элементтер
сәйкес келетін шарт: Sim [I] = Sim [I+1] болады.
PROGRAM MАS;
VAR Sim: ARRAY [1:100] of integer;
I,N: INTEGER;
BEGIN
FOR I:= 1 TO 100 DO
READ (Sim[i]);
N:=0;
FOR I:=1 TO 100 DO
IF Sim[I] = Sim [I+1];
THEN N:= N+1
WRITE (N)
END.
Мысал. Сандар массиві берілген. Ең үлкен элементтің мәнін табыңдар.
Егер олар бірнешеу болса олардың санын тап:
program Max;
const m=100;
var mas : array[1..m] of integer;
i , мах, K,N: integer;
begin
write('Массив өлшемін енгіз');
readln (n);
write ('Массив элементін енгіз');
readln ( mas [1]);
Max:= mas [1];
K:=1;
For I:=2 TO n do
begin
write ( ‘Массив элементін енгіз ');
readln (mas [I]);
if max mas [i] then
begin
max:= mas[i];
К:=1
end.
else
if max =mas [i] then К:=K+1;
end.
writeln( ‘мax =', max,' ол элементтер', К)
End.
Есепті шығару үшін:
* программа денесін қалыптастырып және айнымалыларды сипаттаймыз;
* массивтің ұзындығын N, массив элементінің мәнін енгіземіз және ол мах
бастапқы мәнін бірінші сан бойынша тағайындаймыз.
* элементтерді сыпыра қарап өтеміз, және егер кезекті mas(i) мах –дан
үлкен болса, онда мах:=X және К:=1 меншіктейміз;
*егер mаs[i] =max болса К-ны бір бірлікке арттырамыз.
*нәтижені шығарамыз;
1.2. Екі өлшемді массивтер
Екі индексті массив екі өлшемді деп аталады. Екі өлшемді массивті
шартты түрде матрица (кесте) түрінде көрсетуге болады.Есеп шығару кезінде
массивті интерпретациялау ыңғайлы: массивтің бірінші индексіне әдеттегідей
массивтің жолы, екінші индексіне бағанасы сәйкес қойылады.
Егер А массиві мына түрде берілсе:
1 - 3 4 А [2,3]= -7
6 - 8 -7 онда A [1,3]= 4
0 2 1 A [3,2]= 2 сәйкес қойылады.
Екі өлшемді массивтің сипатталуы:
Var A: ARRAY [1..3, 1..3] of INTEGER;
Егер бір типті бірнеше массивтер сипатталатын болса, олардың атары үтір
арқылыбөлінеді де, соңғысының соңына қос нүкте қойылады, мысалы, жазылуы:
Var A,B,C: ARRAY [1..10, 1..20] OF CHAR;
A, B, C массивтерінің компонент типі мен индекс типі бірдей екендігін
білдіреді:
Мысал. Натурал сандардан тұратын N*M матрицасы берілген. Одан ең кіші
элементті және оның алатын орнын табыңдар. Мұндай элементтер бірнешеу
болса, онда экранға әрқайсысының алатын орнын шығарыңдар.
Бұл есептің шешуінің бірнеше жолы бар. Айталық, массив элементтеріне
параллель баруға және бірнеше рет қарап шығуға болады, матрицаны екі рет
қарап шығуды да ұйымдастырылуы да мүмкін. Бір қарағанда ең кіші элементті
табамыз, егер осындай элементтер бірнешеу болса, онда екінші қарап шығарда
олардың орнын анықтаймыз.
PROGRAM MATTR 8:
CONST t=100; s=100;
VAR A :ARRAY [1..T,1..S] OF INTEGER;
N,M, IM,JM,I,J,MIN,K:INTEGER;
BEGIN
WRITE( ‘Жол санын енгіз’);
READLN(N);
WRITE(‘Бағана санын енгіз’);
READLN (M);
FOR i=1 TO N DO
BEGIN
WRITELN (‘Сандарды бос орын арқылы енгіз’,M);
FOR j:=1 TO M DO
READ(A[i,j])
END;
MIN:=A[1,1];
IM:=1;JM:=1;K:=O ;
FOR i:=1 TO N DO
FOR j:=1 TO M DO
IF MIN (A[i,j] THEN
BEGIN
k:=1; im:=i; jm:=j
min:=A[i,j]
END
ELSE
If min =A[i,j] THEN k:=k+1;
If k=1 THEN
BEGIN
WRITELN (‘матрицада бір ең кіші элемент =’,min);
WRITELN (‘B’,im,’жол,B’,jm,’бағана’)
END
ELSE
BEGIN
WRITELN (‘матрица’,k,’ ең кіші элемент =’,min);
FOR i:=im TO N DO
FOR j:=1 TO M DO
IF min=A[i,j] THEN WRITELN(‘жолда’,i,’бағанада’, j)
END;
END.
Есепті шешу үшін:
* айнымалыларды сипаттаймыз;
* А массив ұзындығы мен массив элементтерінің мәнін енгіземіз
* массив элементтеріне қарап, ең кіші мәнін іздейміз және мәнін индекс
есіне сақтаймыз;
* ең кіші элементтер санын есептейміз;
Барлық ең кіші элементтер туралы информацияны шығару үшін:
* К-нің санына қарай не бір ғана ең кіші элемент туралы информацияны
шығарамыз, не А массивін қайта қарауды ұйымдастырамыз;
Айнымалылар:
А – екі өлшемді массив;
N,M- массивтің жолдары мен бағаналар саны;
I,J-(массивтің) циклдің айнымалылары;
К- ең кіші элементтер саны;
IM,JN-ең кіші элементтің жолы мен бағанасы;
MIN-ағымдағы минимум;
Осы есепті матрицаны бір қарап өтіп те шешуге болады. Мұндай жағдайды
көмекші екі сөйлемді массив енгізу қажет. Массивке ең кіші элементтердің
жолдары мен бағандардың мәні енгізіледі;
program MATTRS-2;
const t=100; s=100;
var A: ARRAY[1..t,1..S] of integer;
B: ARRAY[1..t*s,1..2] of integer;
N,M,IM,JM,i,j,min, K:integer;
begin
write(‘жол санын енгіз’);
readln(N);
write (‘бағана санын енгіз’);
readln (M);
for i:=1 to N do
begin Writeln(‘сандарды енгіз’,M);
for j:=1 to M do
read (A[i,j])
end;
Min:=A[1;1];
K:=1
for i:=1 to N do
for j:=1 to M DO
if min A[i,j] then
begin
K:=1;
Â[1,1]:=i;
B[1,2]:=j;
Min: =A[i, j]
end
else
if min =A[i, j] then
begin
K:=K+1;
B[K,1]:=i;
B[K,2]:=j
end
if K=1 then
begin
writln (' жол’,im,’бағана, jm);
end
else
begin
writln ('матрицада‘,k,’минимумдер MIN=',MIN);
for i:=1 to K do
writln ('жол',B[1,1], 'бағана', b[1,2])
end;
end.
Есепті шешу үшін:
* айнымалыларды сипаттаймыз;
* А массив ұзындығы мен массив элементтерінің мәнін енгіземіз
* массив элементтеріне қарап, ең кіші элементтерін іздейміз және көмекші В
массивтің индекс мәндерін есте сақтаймыз;
* ең кіші элементтер санын есептейміз;
* К-ға қарай не бір ғана ең кіші элемент туралы информацияны шығарамыз, не
барлық ең кіші элементтер туралы информацияны шығару үшін В массивін қайта
қарауды ұйымдастырамыз;
Айнымалылар:
А – екі өлшемді массив;
В – көмекші массив;
N,M- массивтің жолдары мен бағаналар саны;
I,J-(массивтің) циклдің айнымалылары;
К- ең кіші элементтер саны;
IM,JN-ең кіші элементтің жолы мен бағанасы;
MIN-ағымдағы минимум;
ІІ. СИМВОЛДЫҚ АЙНЫМАЛЫЛАР ЖӘНЕ ЖОЛДАР
2.2. Символдық типтер
Паскаль 7.0 тілінде CHAR атты мәліметтірдің стандарт типі символдық
шамалар. Бұл тип реттік болып табылады және символдық айнымалылардың
мәндерін өзара салыстыруға болады. Латын әріптері (‘A’,’B’,...,’Z’ кіші
‘a’,’b’,’c’,...’z’), цифрлар ‘0’,’1’,’2’,...’9’, тыныс белгілер, түрлі
жақшалар, орыс әріптері символдық айнымалыларға жатады. Программаларда
олардың мәндері апострофқа алынып жазылады. Әрбір осындай қатардың
символдарының коды реттелген:
‘A’’B’’C’...’Z’ ’А’’Б’’В’...’Я’
‘a’’b’’c’...’z’ ‘а’’б’’в’...’я’
‘0’’1’’2’...’9’
Барлық кіші әріптердің кодтары барлық бас әріптердің кодтарынан кіші.
Осындай типті реттелген мәліметтермен жұмыс жасау үшін аргументтері
символды шама болып келген функциялар пайдаланылады:
PRED( ) – алдыңғы мән, мысалы PRED(‘B’)=’A’;
SUCC( ) келесі мән, мысалы SUCC(‘a’)=’b’;
ORD( ) – кодтың сан мәні, мысалы ORD(‘7’) - ORD(‘0’)=7
Символдық айнымалылар циклдің айнымалылары ретінде де пайдаланылады,
мысалы
FOR I:=’z’ DOWNTO ‘A’ DO немесе FOR I:=’A’ TO’Z’ DO
Апострофқа алынған символдар қатары жол деп аталады және STRING типімен
сиппатталады:
‘PASCAL’, ‘pascal’ т.т.
Бір ғана символдан тұратын жолды символдық константалар деп атайды.
Тип – жолдардың өлшемі көрсетілуі мүмкін (1-ден 255-ке дейін ).
Жол салыстыру операциясыорындалады (,,=,=), мысалы ‘VIV’’VIVA’ және
конкатенация (тіркестіру) операциясы да орындалады ’ма’+’ма’=’мама’.
Іс жүзінде ұзындығы К жол К+1 символдарадан тұратын массив болып
табылады, мұнда нөль элементі жол ұзындығының мәнін сақтайды:
STRING [K] = ARRAY [0..K] OF CHAR
Жолдың ұзындығын анықтау үшін LENGTH(JOL) функциясы жиі пайдаланылады.
2.2. Символдық шамалармен жұмыс процедуралары мен функциялары
Паскальда жолмен жұмыс істеу үшін арнайы функциялар мен процедуралар
қондырылған:
CONCAT() – жолдарды біріктіру;
COPY() - жолдың бөлігін көшіреді;
LENGTH() – жолдың ұзындығы;
POS() – жол ішіндегі жолдың бөлігін іздейді;
DELETE() – жолдан жол ішіндегі жол бөлігін жояды;
INSERT() – жолға жол бөлігін орналастырады;
STR() – сандардыжол айнымалыларына түрлендіреді;
VAL() – символдың айнымалы шамасының цифр түріндегі мәнін екілік сан мәніне
айналдырады.
Бұл функциялары мен процедуралары форматы төменгі таблицада
көрсетілген:
Функция Қызметі мен форматы
CONSAT CONSAT(str1,str2) жолдарды біріктіріп қайырады. str1,
str2-конкатенацияланатын жолдар.
COPY COPY(str, i,j). Str жолдың I орнынан бастап саны j
(болатын) символдан тұратын ішкі жолының көшірмесін
қайырады .
LENCTH Str length(str) жолдың ұзындығын қайтарады.
DELETE DELETE(str i,j) str j жолдан i орнынан бастап str j
символын жояды.
POS Str жлындағы орналасқан context ішкі жолының басталатын
орнының нөмірін қайтарады. POS(context, str).
INSERT Str жолына i орнынан бастап context жол бөлігін
орналастырады. INSERT(context, str, i).
STR N санынан жол айнымалыларына айналдырады. STR(N,STR).
VAL STR жолды екілік санға Х айналдырады, мұндағы
CODE-VAL(STR, X, CODE) дұрыс емес символдың коды.
Символдар арасындағы апострофқа алынып жеке көрсетілген бір немесе бірнеше
позициялық ашық жерлер де текст қатарына жатады.
Мысал. A BB CCC... ZZ... Z бір жолға енгізіңіз.
program JAZ;
uses crt;
var
i:char; k, j: integer;
begin
clrscr;
k:=1;
for i:=’A’ to ‘Z’ do
begin
for j:=1 to k do
write(i);
k:=k+1;
end;
writeln
end.
Есепті шешу үшін:
* айнымалыларды сипаттаймыз;
* FOR I:=’A’ to ‘Z’ do циклі қандай әріпті баспаға берілетіндігін
анықтайды;
* FOR J:=1 to k do циклі әріптер неше рет басылатындығын анықтайды;
* барлық әріптерді шығарғаннан кейін жолды writeln операторымен жабамыз;
Айнымалылар:
I –цикл айнымалысы; қандай әріпті шығаратындығын анықтайды;
К -әріпті қайталау саны;
J – цикл айнымалысы;
Мысал. ZZZ... AA... A бір жолға енгізіңдер.
program JAZ ;
uses crt;
var i:char; k, j:integer;
begin clrscr;
k:=1;
for i:=’Z’ downto ‘A’ do
begin
for j:=1 to k do
write(i);
k:=k+1;
end;
writeln
end.
ІІІ. ЖИЫНДАР
Жиын - жай құрылымның түрі. Жиын деп белгілі бір
ерекшеліктері бойынша байланысқан алуан түрлі объектілерді
айтады. Жиын құрайтын объектілердің әрқайсысын оның элементтері
деп айтады. Жиынның элементтерінің түрі, нақты сандардан басқа,
кез -келген дискретті тип болуы мүмкін.
Жиынды сипаттау құрылымы:
аты = SET OF түрі
Мысал:
type
Гүлдер = (Інжугул, шегіргул, қалампыр, раушан, түймедағы, көктіген);
(* аталған дискретті тип ГҮЛДЕР *)
ШОҚ = SET OF гүлдер ;
(* жиын түрі шоқ *)
var інжигул, шегиргул; шоқ;
(* айнымалы түрлер шоқ *)
Гүлдер түрі үшін ШОҚ түрі - туынды жиын, ал ГҮЛДЕР -ШОҚ
түрі үшін базалық түр.
Жиын тізбектелген өрнектер түрінде жазылады да бір - бірінен
үтір арқылы ажыратылады және барлық тізбек квадрат жақшаға
алынады.
Мысалы:
[‘À’, ‘N’], [Y], [1,3,5]. [3,4,5,6,7]-нің орнына [3,,7] немесе
[інжігүл,шегіргүл қалампыр]-дың орнына [інжугул ,қалампыр] деп те
жазуға болады. Бос жиын [ ] таңбасымен белгіленеді.
Жиын элементтеріне біріктіру(+) , қиылысу(*) және айырылым(-)
амалдарын қолдануға болады.
Мысалы:
[інжигул , шегиргул]+[қалампыр] =[ інжигул , шегиргул, қалампыр]
[інжигул , шегиргул]*[ қалампыр]=[ ]
( інжигул , шегиргул (-(шегургул( = (інжугул(
Жиындарды салыстыру үшін ((,,=,=) қатынас белгілері
қолданылады. Мысалы.
[інжигул , шегиргул] [қалампыр];
[інжигул , шегиргул қалампыр] = [қалампыр, шегіргул інжугул]
[інжигул , шегиргул қалампыр] = [шегіргул інжугул],
[шегіргул інжугул =[ шегіргул інжугул қалампыр].
in – элементтің кіретіндігін тексереді.
in амалы көбінесе шартты операторларында қолданылады. Мысалы.
A өрнек қорытынды
( If A in [1,3,4] then... False
‘с’ If A in [’а’..‘z’] then.. true
х If A in [x0, x1, x2] then False
Екі жиынға біріктіру, қиылсу және айырым амалдарын қолданғандағы
қорытынды жиын.
А+В біріктіру амалы
А В А+В
[1,(,3] [3,4] [1,(,3,4]
[‘A’ .. ‘D’] [‘E’..’z’] [‘A’.. ‘z’]
[‘A’.. ‘В‘.. ‘С’] [ ] [‘A’, ‘B’, ‘C’]
[ ] [ ] [ ]
Екі жиынға (А+В) біріктіру амалын қолданғанда қорытынды осы екі
жиынның элементерінен тұратын үшінші жиын шығады.
А*В қиыстыру амалы
А В А*В
[1,(,3] [(,3,4,5] [(,3]
[‘A’ .. ‘Z’] [‘A’..’R’] [‘A’.. ‘r’]
[1,4,5] [] []
[‘A’, ‘B’, ‘C’] [‘D’, ‘E’, ‘K’] []
Екі жиынды қиыстыру (А*В) кезінде шыққан жиын тек сол екі жиынға
ортақ элементерден тұрады.
А-В айырым амалы
А В А-В
[1,2,3,4] [3,4,5,6] [1,2]
[‘a’.. ‘z’] [‘d’..’z’] [‘a’..’c’]
[] [‘a’,'z’] [ ]
[x1, x2, x3] [x5, x2, x7] [x1, x3]
Екі жиынға айырым (А-В)амалын қолданғанда шыққан жиын В жиынында жоқ А
жиынының элементерінен тұрады.
Егер А- айнымалы жиы,ал В жиындар өрнегі болатын болса,онда А:=В;
меншіктеуген болады операторын тек В өрнегінің түрі А айнымалы жиынының
түріндей болғанда ғана қолдануға болады.
Жиындарды өте күрделі шартты оперторды қарапайым түрге келтіру
қолданады.
Мысалы:
If (C=’A’) or (C=E’) or (C=’E’) or (C=’O’) or (C=’U’) then А
Операторын қысқаша былай жазуға болады.
If c in [‘A’,’E’,’O’,’U’] then А.
If (c=’A’) AND (c=’z’) then былай алмастыруға if cin [‘A’.. ‘Z’]
болады.
Мысал. х тізбегіне S жиынын қалыптастыратын, жиынның М
элементтерінің санын есептейтін және оларды баспаға шығаратын
программа жазыңдар.
program тіз саны (INPUT, OUTPUT);
const N=20;
type T=1.. 20;
SS=SET of T;
T1:=0..20;
var x: T1; S:SS; M:T1;
begin
M:= 0; S:=[];
read (x);
if x 0; then repeat
if not (x in s)
then begin
M:=M+1;
S:=S+[x]
end;
read (x)
until X=0;
write (M)
end.
Егер 7 7 7 7 7 23 2 7 7 4 5 6
7 9 11 12 13 7 8 3 0 енгізсек, нәтижесі 12 болар
еді. (мұндағы 0-тізбек соңының белгісі).
ІV. ЖАЗБАЛАР
Әдетте әртүрлі типті объектілер құрамымен (комбинациясымен) жұмыс
істеуге тура келеді. Айталық, сынып аты сан (оқу жылы) мен
әріптен, багаж бүтін сан (заттар саны) мен нақты саннан (жалпы
салмағы), ал мектеп оқушысы туралы мағлүмат екі әріптер тізбегін
(фамилиясы, аты) мен сынып атынан тұрады. Көріп отырмыз, бірнеше
типті элементтер топтасып тек бір ғана объектіні бейнелеп тұр.
Мұндай программаны Паскаль тілінде "жазбаулар" арқылы сипаттайды.
Әртүрлі типті объектілердің құрамы (комбинациясы) Паскальда
жазбаулар болып табылады. Жазбаулар объектінің ішіндегі құрамын
оның алаңы (поле) дейді. Жазбауларда әрбір алаңның өзінің меншікті
аты болады. Жазбалау элементтерімен әрекет жасау (шақыру, бару,
қарау) оның тиісті алаңының аттары арқылы іске асырылады. Егер
алаң аты ретінде оқу жылы мен әріп алынса және х қайсыбір
жазбалау болса, онда жазбалау алаңдары оқу жылы және х, әріп
болып белгіленеді. Бұл жазуда х пен оқу жылы (х пен әріп)
ортасына нүкте қойылады. Алаңдар саны, әрбір алаңның типі мен өзі
тиісті жазбауларда анықталып белгіленеді. Сынып= record оқу жылы:
integer; әріп: char end, түріндегі анықтаманың аты сынып. Сынып
типті объектілердің жазбалануы екі алаңнан тұрады: біреуінің типі
integer, екіншісіне char.
var x: сынып,’..
х айнымалысы программада сынып типті айнымалысы ретінде
сипатталсын дейік. Онда программада орындалғанда х мәні 2 тең
алаңдар болады. Х айнымалысы сынып типтес айнымалы.
Оқу жылы - х, әріп сәйкес integer және char типтес айнымалылыр
болады. х, оқу жылы айнымалысымен кәдімгі integer типті
айнымалысымен, ал әріп кәдімгі char типті айнымалысымен қалай
айналыссақ солай айналысуға болады. Сынып ... жалғасы
Ұқсас жұмыстар
Пәндер
- Іс жүргізу
- Автоматтандыру, Техника
- Алғашқы әскери дайындық
- Астрономия
- Ауыл шаруашылығы
- Банк ісі
- Бизнесті бағалау
- Биология
- Бухгалтерлік іс
- Валеология
- Ветеринария
- География
- Геология, Геофизика, Геодезия
- Дін
- Ет, сүт, шарап өнімдері
- Жалпы тарих
- Жер кадастрі, Жылжымайтын мүлік
- Журналистика
- Информатика
- Кеден ісі
- Маркетинг
- Математика, Геометрия
- Медицина
- Мемлекеттік басқару
- Менеджмент
- Мұнай, Газ
- Мұрағат ісі
- Мәдениеттану
- ОБЖ (Основы безопасности жизнедеятельности)
- Педагогика
- Полиграфия
- Психология
- Салық
- Саясаттану
- Сақтандыру
- Сертификаттау, стандарттау
- Социология, Демография
- Спорт
- Статистика
- Тілтану, Филология
- Тарихи тұлғалар
- Тау-кен ісі
- Транспорт
- Туризм
- Физика
- Философия
- Халықаралық қатынастар
- Химия
- Экология, Қоршаған ортаны қорғау
- Экономика
- Экономикалық география
- Электротехника
- Қазақстан тарихы
- Қаржы
- Құрылыс
- Құқық, Криминалистика
- Әдебиет
- Өнер, музыка
- Өнеркәсіп, Өндіріс
Қазақ тілінде жазылған рефераттар, курстық жұмыстар, дипломдық жұмыстар бойынша біздің қор #1 болып табылады.
Ақпарат
Қосымша
Email: info@stud.kz