INTERFACE USES <қосылатын модульдер тізімі>; TYPE <осы модульде анықталып, басқа модульдерден қол жеткізуге болатын типтердің сипаттамасы >;
248
CONST < осы модульде анықталып, басқа модульдерден қол жеткізуге болатын тұрақтылардың сипаттамасы >; VAR < осы модульде анықталып, басқа модульдерден қол жеткізуге болатын айнымалылардың сипаттамасы >;
PROCEDURE <осы модульде анықталып, басқа модульдер-ден қол жеткізуге болатын процедуралар тақырыбы >;
FUNCTION < осы модульде анықталып, басқа модульдерден қол жеткізуге болатын функциялар тақырыбы >;
IMPLEMENTATION USES < қосылатын модульдер тізімі >; TYPE < осы модульде анықталып, басқа модульдерден қол жеткізуге болмайтын типтердің сипаттамасы >;
CONST < осы модульде анықталып, басқа модульдерден қол жеткізуге болмайтын тұрақтылардың сипаттамасы >;
VAR < осы модульде анықталып, басқа модульдерден қол жеткізуге болмайтын айнымалылардың сипаттамасы >;
PROCEDURE < осы модульде анықталып, басқа модульдер-ден қол жеткізуге болатын процедураларды іске асыру >;
FUNCTION < осы модульде анықталып, басқа модульдерден қол жеткізуге болатын функцияларды іске асыру >; PROCEDURE < осы модульде анықталып, басқа модульдер-ден қол жеткізуге болмайтын процедуралардың тақырыбы жəне іске асыру >; FUNCTION < осы модульде анықталып, басқа модульдерден қол жеткізуге болмайтын функциялардың тақырыбы жəне іске асыру >; BEGIN <бұл түйінді сөз инициализациялау секциясында операторлар бар болғанда ғана қажет >
<Модульдің міндетті емес бөлімі> END. Интерфейстік жəне орындалу бөлімдері бос болуы мүмкін, міндетті түрде модуль құрамында болуы керек. Модуль іске қосылғанда алдымен инициализациялау секциясының оператор-лары (бар болса) орындалады, сонан кейін осы модуль қосылған бас программаның негізгі блогының операторлары орындалады.
Мысал қарастырайық. Вектор көлемі жəне оның элементтері енгізіліп, бүтін сандардан тұратын бір өлшемді жиымның эле-менттерін өсу реті бойынша сұрыптайтын процедураны шақы-
17–1618 249
ратын негізгі программа жазу керек. Жиым элементтерінің саны 100-ден аспауы тиіс. Процедураны модуль түрінде ұйымдас-тырайық.
USES CRT,MODSORT;
VAR A:MAS;
I:BYTE;
N:BYTE;
BEGIN
WRITELN('ВВОД ИСХОДНЫХ ДАННЫХ:');
READLN(N);
FOR I:=1 TO N DO
READLN(A[I]);
SORT(A,N);
FOR I:=1 TO N DO
WRITELN(A[I]);
READKEY
END.
Программаның бірінші сөйлемі Uses. Мұнда стандартты Crt модулі жəне сұрыптау процедурасы жазылған Modsort модулі көрсетілген. Жиымды сипаттайтын тип негізгі программада емес модульде көрсетілген.
UNIT MODSORT;
INTERFACE
TYPE MAS=ARRAY[1..100] OF INTEGER; PROCEDURE SORT(VAR A:MAS; N:BYTE);
IMPLEMENTATION PROCEDURE SORT; VAR I,J:BYTE;
X:INTEGER;
BEGIN
FOR J:=1 TO N-1 DO
FOR I:=1 TO N-J DO
IF A[I]>A[I+1] THEN
BEGIN
X:=A[I]; A[I]:=A[I+1]; A[I+1]:=X END;
END;
END.
250
Модульдің интерфейстік бөлімінде mas типі сипатталған жəне сұрыптау процедурасының тақырыбы көрсетілген. Uses сөзінің көмегімен модуль іске қосылған кезде процедура мен типтерге кез келген программадан қол жеткізуге болады. Бұл негізгі про-граммада көрсетілген.
Ішкі программаның Pascal программасынан негізгі айырмашылығын атаңыз.
Параметрсіз процедуралар қалай шақырылады?
Кіріктірілген ішкі программалар дегеніміз не?
Ауқымды жəне жергілікті айнымалылар дегеніміз не?
Ішкі программаны қолданудың артықшылықтарын атаңыз.
Процедура мен функцияны сипаттаудың негізгі айырмашылық-тарын атаңыз.
Программада функцияны шақыру қалай іске асырылады?
Қандай жағдайларда параметрсіз процедураны қолданған ың-ғайлы?
Параметрлі процедуралардың артықшылығы неде?
Нақтылы жəне формальды параметрлердің айырмашылығы неде?
Формальды параметрлер тобы қалай сипатталады? Нақтылы параметрлер тобы ше?
Параметр-мəндерді берудің ережесі қандай?
Параметр-айнымалыларды берудің ережесі қандай?
Параметр-тұрақтыларды берудің ережесі қандай?
Бір ішкі программада əр типті бірнеше параметр-айнымалыны қолдануға бола ма?
Тапсырмалар
Экранға биіктігін 8 жол етіп өз атыңызды шығарыңыз. Əр əріптің бейнесі жеке процедура көмегімен жазылуы керек жəне түстері əртүрлі болсын.
Түрлі стильдегі, түсі жəне қалыңдығы əртүрлі сызықтарды қолданып экранға өзіңіздің фамилияңыздың, атыңыздың жəне тегіңіздің бас əріптерін шығарыңыз. Əр əріптің бейнесі жеке про-цедура көмегімен жазылуы керек.
Экранға көлемдері бірдей əр түсті 7 жұлдыз тізбегін салыңыз.
Калькулятор программасын жазыңыз. «+», «-», «*», «/» опера-цияларының орындалуын жеке процедура ретінде құрастырыңыз.
251
10 бүтін саннан тұратын жиымды өңдейтін программа жазыңыз. Жиымның элементтерінің қосындысын, арифметикалық ортасын жəне ең үлкен элементін анықтаңыз. Программаның əр логикалық блогын процедура ретінде құрастырыңыз.
15 əр түсті дұрыс сегізбұрыштардан тұратын экран «диагоналін» сызыңыз.
36 əр түсті дұрыс бесбұрыштардан тұратын дөңгелек суретін салыңыз. Кез келген пернені басқанда программа өз жұмысын аяқтайтын болсын.
Əр түсті жəне əр түрлі өрнектермен өрнектелген, көлемдері бірдей алтыбұрыштардан құрастырылған пирамида салыңыз. Пирамиданың ең төменгі қатары 20 алтыбұрыштан тұрады.
Үшбұрыштардан құрастырылған бірнеше шыршалар қатарынан тұратын орман суретін салыңыз.
Іштері боялған əртүрлі кіші ромбтардан үлкен ромб құрастырыңыз. Үлкен ромб диагоналі 10 кіші ромбтан тұрады.
Ішінде өз атыңыз жазылған тікбұрыш салыңыз. Координаталар мен түсті процедура параметрі ретінде беріңіз. Осы процедураны параметрлерді өзгертіп бірнеше рет шақыру керек.
Іші боялған жұлдызшалармен синусоида салыңыз.
Экранға іші боялған дұрыс көпбұрыш салыңыз. Көпбұрыштың бұрыштарының саны, түсі жəне толтыру стилі пернетақтадан енгізілсін.
252
Келесі пернелерді басқанда сəйкес есептеулерді орындайтын про-грамма құрыңыз. F1 – шеңбердің ұзындығын есептеу;