READ (A);
І:= І+1
END;
WRITELN;
WRITELN (‘I=’,I)
END.
Мәндер бос орын арқылы ажыратыла отырып енгізіледі, яғни 3 5 7 9 11 тізбегі берілсе, дисплей экранына I=5 шығады.
Е с к е р т у. WHILE NOT EOLN DO операторының алдында
міндетті түрде READLN; операторы тұруы қажет.
WRITE (al, а2, аЗ,..., an), WRITELN(al, а2, аЗ,...,ап) операторлары және параметрсіз шығару операторы сандарды шығару операторына ұқсас. Мұндағы al, a2, a3,..., an параметрлері мәндері бүтін, нақты, логикалық және символдық тұрақтылар болуы мүмкін.
Шығару операторындағы мәліметтердің пішімін жазып көрсетуге де, көрсетпеуге де болады. Нәтиже деректердің типіне байланысты болады, егер ол нақты және бүтін типте болса, оған 13 орын, символдық типте болса, 1 орын, ал логикалық типте болса, 4 (TRUE) немесе 5 орын (FALSE) беріледі.
Шығатын нәтиже алдында бос орын қалдыру үшін ‘ ’ белгісі пайдаланылады. Мысалы, WRITE (‘ ‘:5, А: 3, ‘ ‘:7, В: 4) болса, онда нәтиже былай беріледі: 5 бос орыннан соң А-ның мәні үш орын алуы тиіс, одан соң 7 бос орын қалдырылады да, В-ның мәні 4 орынға жазылады.
Символдық тұрақтылар апостроф ішіне қалай жазылса, солай шығарылады.
Turbo Pascal тілінде мәтіндік ақпараттарды өңдеу
Мәтін әр түрлі символдардан тұратын жолдар тізбегінен тұрады. Әдетте, мәтіндермен жұмыс істегенде, тек символдық шамаларды пайдалану тиімсіз, өйткені көбінесе жеке символдарды емес, олардың тізбегін— сөз тіркестерінен тұратын мәтін жолдарын өңдеу қажет болады.
Turbo Pascal тілінде символдар тізбегінен тұратын тіркесттік айнымалылар кең қолданылады, олардың типін көрсету үшін алдымен айнымалы атауы, одан кейін тік жақша ішінде жолдың ең ұзыны көрсетілген string түйінді сөзі пайдаланылады.
Тіркестік айнымалының типі программаның типтерді сипаттау бөлімінде немесе тікелей айнымалыны сипаттау бөлімінде де орналаса береді. Оның айнымалы бөлімінде сипатталуы:
VAR
<айнымалы атауы>: string [жолдың ұзындығы];
Мысалы: VAR
TEX1 : string [29];
ATJ : string [40];
АТАҮ : string [275];
A : string;
Мұндағы соңғы АТАҮ-дағы символдар ұзындығы дұрыс көрсетілмеген, себебі 275>255, сондықтан мұнда компьютер «өте» деген хабарлама береді. Егер жолдың ұзындығы (символ саны) сипаттау кезінде көрсетілмесе (А айнымалысы), онда оның ұзындығы 256 символ деп кабылданады. Сөз тіркесіндегі (мәтін жолының) символдардың нөмірі 1- ден бастап оның ең үлкен мәніне дейін өзгереді.
Апостроф ішінде орналасқан тіркестік айнымалылар мәндерінің мағынасының болуы немесе болмауы шарт емес. Мысалы, К =’’, А := ‘Алматы’, В =’Т?АВ’, B1 =’1999АВ’, т.б., мұнда сөз тіркестерінің ұзындығы символдар санына сәйкес: 0, 6,4, 6 байтқа тең болып есептеледі.
Сонымен, жолдың компьютер жадында орналасу схемасы төмендегідей түрде көрсетуге болады, мұнда Ү — бірінші байт:
Ү —жолдың ағымдағы К ұзындығы сақталады;
Ү+1-де жолдың 1-символы,
Ү+2-де жолдың 2-символы,
...
Ү+А-да ағымдағы жолдың соңғы символы,
Ү+А+1 — бос ұяшық,
Ү+М — осы сөз тіркесіне берілген ұзындықтың ең үлкен мәні.
Мұндағы Ү — жад ұяшығының алғашқы байты, К—ағымдағы сөз тіркесінің ұзындығы, М — осы сөз тіркесі үшін қабылданған ең үлкен ұзындық, яғни оның ең үлкен мәнінің ұзындығы.
Тіркестік өрнектер. Тіркестік өрнек деп амал белгілері, тіркеспейтін, айнымалылар және функция атауларынан құралатын, ұзындығы 256 символдан артпайтын тізбекті айтады.
Алгоритмдік тілдерде тіркестік өрнектерді литерлік өрнектер деп те атайды. Литерлік шамалардың мәндері алгоритмдік тілдерде тырнақша ішіне алынып жазылса, Паскаль тілінде апостроф ішінде жазылады.
Тіркестік өрнектерде біріктіру және салыстыру амалдары пайдаланылады.
Біріктіру немесе конкатенация амалы, ол қарапайым «+» белгісімен белгіленеді. Бұл амал бірнеше символдардан немесе сөз тіркесінен жаңа мәтін жолын кұру үшін пайдаланылады.
Программа мәтініндегі сөз тіркесінен тұратын тұрақтылар бір жол бойына жазылуы тиіс, егер оның бөлігін келесі жолға тасымалдап жазатын болсақ, қате болады. Сондықтан программа жазу кезінде бір жолға сыймайтын сөз тіркесін біріктіру амалы арқылы былай орналастыру қажет:
Mekeme := ‘Республикалык білім беруді ақпараттандыру ғылыми’ + ‘-әдістемелік орталығы’;
Сөз тіркестерін біріктіру амалын Concat() функциясы арқылы да орындауға болады, мысалы:
Strl := "Әйтеке"; Str2 := "би"; Ctr3 := Concat(Strl, Str2);
Мұның нәтижесі: Str3 := "Әйтеке би"; болады, негізінде, былай жазған дұрыс: Str3 := Concat(Strl, ‘ ‘, Str2);
Салыстыру амалдары, олар: =, <>, >, >=, <, <= белгілерімен белгіленеді. Сөз тіркестерін салыстыру олардың символдарының кодтарын солдан оңға қарай біртіндеп бір-бірімен салыстыру арқылы жүзеге асырылады. Егер тіркестің алғашқы символдары бірдей болса, онда қай жолдың символы көп болатын болса, сол үлкен деп есептеледі. Егер өрнекте біріктіру мен салыстыру амалдары болса, ең алдымен біріктіру амалы, содан соң салыстыру амалы орындалады. Сөз тіркестерін салыстыру амалының нәтижесі логикалық шама (TRUE немесе FALSE) болады.
Мәтін ұзындығын анықтау операциясы. Бұл операция алгоритмдік тілде ұзын (длина — length) түйінді сөзі арқылы орындалады. Мәтін ұзындығы оны құрайтын символдар санымен анықталады. Мысалы: алгоритмдік тілде ұзын («информатика») = 11, ал Паскаль тіліндегі ұзындығы LENGTH (‘информатика’) = 11.
Бір де бір символы жоқ мәтін бос мәтін болып саналады. Оның ұзындығы 0-ге тең: Ұзын («») = 0, яғни мұндай мәтін алгоритмдер мен программаларда 0 рөлін атқарады.
Көп жағдайларда өрнек құрамына тіркестік тұрақтылар, айнымалылар, тіпті символдар да енуі мүмкін.
Мысалы:
PROGRAM BK1;
VAR L :CHAR;
S : STRING[5]; R :STRING [25];
BEGIN
WRITELN(‘L,S мәндерін енгізіңдер:’);
READLN (L,S);
R:=L+S + "біздікі”;
WRITELN (R)
END.
7-ДӘРІС. Көмекші программалар.
-
Көмекші программа-процедуралар.
-
Идентификаторлардың көріну аймағы.
-
Формальды және нақты параметрлер.
-
Параметрлер мәндер, параметрлер-айнымалылар және типтік емес параметрлер.
-
Көмекші программа-функциялар.
СТАНДАРТТЫ ПРОЦЕДУРАЛАР
Turbo Pascal тілінде көптеген стандартты процедуралар бар. Олар алдын ала ішкі программа түрінде жасалып стандартты модульге жинақталып қойылған. Ең қарапайым мысал ретінде Read, ReadLN (пернетақтадан енгізу) және Write, Writeln (экранға шығару) процедураларын алуға болады. Алдыңғы дәрістерде осындай стандартты процедуралармен танысатын боламыз.
СТАНДАРТТЫ ФУНКЦИЯЛАР
Turbo Pascal тілінде алдын ала программалары жасалып стандартты модульге жинақталып қойылған, қажет кезінде пайдалануға болатын объектілер бар. Солардың бірі стандартты функциялар болып табылады. Олар жиі кездесетін математикалық және басқа да функцияларды есептеу үшін қолданылады. Стандартты функцияны жазу үшін міндетті түрде функцияның аты және жақшаның ішінде аргументі көрсетілуі қажет.
Стандартты функциялар: abs(x) — санның абсолют шамасы, sqr(х)— х-тің квадраты, sin(x), cos(x), arctan(x), еxр(x), ln(x) — элементар функциялар, sqrt(x) — х-тің квадрат түбірі, frас(x) — санның бөлшек бөлігі, int(x) — санның бүтін бөлігі, рі (3.14159) — саны т.б. Функцияны есептеу барысында аргумент пен функция типтерінің әр уақытта сәйкес келе бермейтінін есте сақтаған жөн.
Енді программаларда жиі пайдаланылатын функцияларды қарастырайық.
-
Арифметикалық функциялар. Арифметикалық функцияларда бүтін және нақты шамалар пайдаланылады.
-
Типтерді өзгерту функциялары. Бұл функциялар шамалардың типтерін өзгерту үшін пайдаланылады. Мысалы, нақты санды бүтін санға, цифрлар түрінде берілген символдар тізбегін бүтін санға т.б. аударады. Олар:
Сhr(х) — х санын (кодын) символға аударады. Мұнда аргументтің типі (0...255) аралығындағы бүтін сан болуы қажет.
High(x) — шаманың максимум мәнін береді. Мысалы, шаманың мәні жиым түрінде болса, онда бұл функция индекстің ең жоғарғы (максимум) мәнін, ал шаманың мәні сөз тіркесі түрінде болса, онда сипатталған тіркес өлшеміндегі символдар санының үлкен мәнін береді.
Low(x) — шаманың минимум мәнін береді.
Ord(x) — саналатын (реттелген) типті бүтін типке көшіреді. Мысалы, аргумент реттелген типте (логикалық, символдық, саналатын) болса, онда нәтиже типі Longint болады.
Round(x) — нақты санды бүтін санға дөңгелектейді.
Тrunc(x) — нақты санның бүтін бөлігін береді.
3. Реттелген типтегі шамаларга пайдаланылатын функциялар. Бұл функциялар реттелген типтегі шамалар үшін пайдаланылады. Мысалы, элементтің алдындағы немесе соңындағы элементті анықтау т.б. Олар:
Odd(х) — х сандық шамасының тақ екендігін тексеру. Мұнда аргумент типі Longint түрінде, ал сан тақ болса, нәтиже true (ақиқат), жұп болса false (жалған) болады.
Pred(х) — реттелген мәндер тізбегіндегі х-тің алдындағы элементін табу.
Succ(х) — реттелген х-тен кейінгі элементті табу. Егер бұл функция соңғы элементке пайдаланылса, қате кеткендігі туралы хабар шығады.
Шамаларға қолданылатын амалдар олардың типтеріне байланысты болады.
Бүтін сан түріндегі тип. Бүтін типтегі мәндерді қабылдайтын атаулар былай сипатталады:
Атау1, атау2, ..., атауп: тип; мұнда тип орнында бүтін типті көрсететін түйінді сөздің бірі жазылады. Мысалы, integer, byte,...
Бүтін типке мынадай амалдар қолданылады: +, -, *, /, div, mod. Төмендегі 4-кестеде осы операциялар және солардың операторлары мен нәтижелерінің типтері келтірілген.
4-кесте
Белгілер
|
Операциялар
|
Операндтар типі
|
Нәтиже типі
|
+
|
Қосу
|
Екеуі де бүтін, не
біреуі бүтін, біреуі нақты
|
Бүтін, нақты
|
-
|
Азайту
|
Екеуі де бүтін, не
біреуі бүтін, біреуі нақты
|
Бүтін, нақты
|
*
|
Көбейту
|
Екеуі де бүтін, немесе
екеуінің біреуі нақты
|
Бүтін, нақты
|
/
|
Бөлу
|
Бүтін немесе нақты
|
Нақты
|
Div
|
Бүтін бөлу
|
Бүтін
|
Бүтін
|
mod
|
Бүтін қалдық
|
Бүтін
|
бүтін
|
Қосу, азайту, көбейту, бөлу амалдары кәдімгі математикадағыдай орындалады, ал қалған екі амалға мысал келтірейік:
5 div 2 = 2, 5 mod 2 = 1
8 div 3 = 2 8 mod 3 = 2
7 div 2 = 3 7 mod 2 = 1
Төмендегі стандартты функциялар бүтін аргументтер үшін бүтін мән береді:
abs(x) — бүтін х санының абсолют шамасы;
sqr(х) — бүтін х санының квадраты;
trunc(х) — нақты х санының бүтін бөлігі (нәтиже дөңгелектенбейді), мысалы, trunc(52.9)=52;
round(х) — нақты х саны дөңгелектеніп бүтін нәтиже береді, мысалы: round(x) = round(x+ 0.5), х> = 0, round(x) = round(x-0.5), x< = 0;
succ(х) — х-тан кейінгі бүтін саңды береді, мысалы: succ(5) = 6;
pred(x) — х-тың алдындағы бүтін санды береді, мысалы: pred(5) = 4.
Нақты тип. Нақты типтегі мәндерді қабылдайтын атаулардың сипатталуы:
Атау1, атау2, ..., атауп: тип; мұндағы тип орнында нақты типті көрсететін түйінді сөздердің бірі жазылады, мысалы: real, single, ...
Жоғарыда айтылғандай бұл типтерге жатқан сәйкесінше 6 және 4 байттан орын қажет болады. Егер деректер мәні жоғарғы шектен асып кетсе, онда программаның орындалуы тоқтатылады да, қате туралы хабар шығады. Ал төменгі шектен төмен болса, онда айнымалы атауына нөл мәні меншіктеледі де программа орындала береді.
Нақты типтегі шамаларға: (+) қосу, (-) азайту, (*) көбейту, (/) бөлу амалдары қолданылады. Бұл амалдарда операндтар (аргументтер) бүтін сан болуы да мүмкін, бірақ нәтиже әрқашанда нақты сан болады, мысалы: 5/2 = 2.5, 12/6 = 2.0.
Төмендегі стандартты функциялар тек нақты мәндер береді: sin(x), cos(х), arctan(х), ln(х), ехр(х), sqrt(х). Ал егер х саны нақты болса, онда abs(х) және sqr(x) функциялары да нақты мән береді.
Логикалық тип. Бұл типтегі атаулар былай сипатталады: amayl, amay2,..., атауп: boolean;
Логикалық шамалар true (ақиқат) немесе false (жалған) мәндерінің бірін ғана кабылдайды.
Логикалық типтегі шамаларға мына амалдар қолданылады: and— (ЖӘНЕ), or — (НЕМЕСЕ), not—(EMEC), xor— (арифметикалық НЕМЕСЕ).
Бүтін сандарға not, or, shl, shr, and, xor амалдарын қолдану биттерге амалдар қолдану болып табылады.
NOT амалы. Бұл амалды пайдаланғанда әр битті 1-ден 0-ге, ал 0-ді 1-ге алмастырады, мысалы ондық кодта not 12=-13, ал сәйкес екілік кодта:
not 0000000000000110 - 1111111111111001.
AND (ЖӘНЕ) операциясы төмендегі ақиқаттық кестесіне сәйкес операндтардың (сандардың) логикалық көбейтіндісін табады:
1 AND 1 = 1 1 AND 0 = 0
0 AND 1 = 0 0 AND 0 = 0
Операндтар ондық түрде жазылады, бірақ орындалғанда олар екілік түрге түрлендіріледі. Нәтижесі ондық түрде көрсетіледі.
OR (НЕМЕСЕ) операциясы төмендегі ақиқаттық кестесіне сәйкес операндтардың (сандардың) логикалық қосындысын табады:
1 OR l = l 1 OR 0 = l
0 OR 1 = 1 0 OR 0 = 0
Операндтар мен нәтиже ондық түрде жазылады, бірақ орындалар кезде екілік түрде түрлендіріледі.
XOR (аралас НЕМЕСЕ) операциясы төмендегі ақиқаттық кестесіне сәйкес операндтардың (сандардың) қосындысын анықтайды:
1 XOR 1 = 1 1 XOR 0 = 1
0 XOR 1 = 1 0 XOR 0 = 0
Нәтижесі ондық түрде түрлендіріледі. Логикалық шамаларға бір ғана стандартты функция odd(x) қолданылады. Егер х саны тақ болса, онда оның мәні true, ал жұп болса, онда false болады.
Символдың тип. Символдық типтегі шамалар былай сипатталады:
amayl, атау2,... , атауп: char;
Жоғарыда айтылғандай символдың типтегі шамалардың мәндері апостроф ішіне алынып жазылады. Символдың айнымалылардың мәндері арифметикалық өрнектерде пайдаланылмайды. Әр символдың өзіне тән рет нөмірі коды (ASCII кодындағы) болады, олар символдардың орналасу реті бойынша өсіп отырады, мысалы:
0,1, ... , 9, А, В, С Z, а, b, с,...,z.
Символдың шамаларға қатынас амалдары: < ,<= ,=, <>, >, >= қолданылады. Бұл амалдар орындалғанда символдардың өздері емес олардың нөмірлері (кодтары) салыстырылады.
Символдың шамаларға төмендегі стандартты функциялар қолданылады:
ord(*) — х-тің символының реттік нөмірін (кодын) береді, мысалы: order(?) = 63, ord(5) = 53;
chr(х) — х-тің реттік номеріне сәйкес символды береді, мысалы: chr(53) = 5, chr (73)=І;
pred(x) — х символының алдындағы символды береді, мысалы: pred(M) = L;
succ(х) — x символынан кейінгі символды береді, мысалы: succ(M) = N.
Жоғарыда келтірілген стандартты функциялар олардың мәндерін автоматты түрде тез есептеуге мүмкіндік береді.
ӨРНЕКТЕР ЖӘНЕ ОЛАРДЫҢ ЖАЗЫЛУЫ
Өрнек деп арифметикалық амал таңбаларымен біріктірілген айнымалылардың, функциялардың, тұрақтылардың жиынтығын айтады. Өрнектегі арифметикалық амалдардың орындалуы олардың орналасу реті мен жақшалар аркылы өзгертіледі. Қарапайым жағдайда өрнек тек айнымалылардан, тұрақтылардан немесе функциялардан тұруы мүмкін.
Алгоритмдік тілдерде (Паскаль, Бейсик, Си т.б.) арифметикалық амалдардың орындалу тәртібі олардың математикадағы орындалу тәртібіне сәйкес келеді, яғни алдымен жақша ішіндегі амалдар, сонан соң көбейту, бөлу, қосу, азайту т.б. амалдар орындалады. Олар 5-кестеде көрсетілген.
5-кесте
Амалдар түрі
|
Амалдар немесе оның элементтері
|
Жақша ішіндегі өрнектер
|
( )
|
Функция мәндері
|
Функциялар
|
Унарлық амалдар
|
@, not, бірорынды + және -
|
Көбейту, бөлу түріндегі амалдар
|
*,/, div, and, shi,shr
|
Қосу амалдары
|
+, -, or, xor
|
Қатынас амалдары
|
=, <>,<, >, <=, >=, in
|
Өрнектердің алгоритмдік тілде және программалау тіліндегі жазылуы да бір-біріне сәйкес келеді. Паскаль тілінде өрнектер тек сызықты түрде жазылады.
ПРОЦЕДУРАЛАР МЕН ФУНКЦИЯЛАР
Қарастырылатын сұрақтар:
-
Ішкі программа ұғымы;
-
Процедураның сипатталуы;
-
Функциялардың сипатталуы;
-
Парметрлер.
Барлық күрделі есептерді оның шешімін жеңілдету үшін қарапайым ішкі есептерге бөлген тиімді. Егер есеп қандай-да бір кешенді есепті шешуге арналған болса, онда программаны қандай-да бір құрылымдық бірліктерге бөлу тәсілі болуы қажет. Программаның құрылымдық бірлігі – ішкі программалар.
Көбінесе, программаларда белгілі операторлар тізбегін бірнеше рет орындауға (циклдық емес) тура келеді. Әрине программаның сәйкес бөлігін қажетті жеріне көшіруге болады, дегенмен бұл жағдайда программа мәтіні үлкен көлемді және түсінуге қиын болып шығады. Сондықтан программа мәтінін қарапайымдату үшін және көшіру қажеттілігінен босату үшін ішкі программалар концепциясы қарастырылған.
Жеке атауы және жергілікті атауларға ие программаның функционалды өзбетінше бөлігі ішкі программа деп аталады. Ішкі программаны программаның кез-келген нүктесінен және бірнеше рет шақыртуға болады.
Программа мәтінін қысқартып, көшіруден босатудан басқа, ішкі программалар – бұл программаны құрылымдау құралы болып табылады. Оның мақсаты программа көп көлемді операторлардан тұрмай, әрбіреуінің жеке ролі бар салыстырмалы түрде өзбетінше бөліктерден тұруы қажет. Және де ішкі программалар басқа да ішкі программаларды қамти алады, яғни бірінің ішіне бірі салынған ішкі программалар жасалынады.
Ішкі программаны программада шақырту үшін ол программаның сипаттау бөлімінде сипатталуы қажет. Ішкі программаны жариялау – оның тақырыбын көрсетіп (онда қолданылатын формальды параметрлерімен), жергілікті айнымалыларды сипаттау және денесін көрсету.
Turbo Pascal тілінде ішкі программалардың екі түрі қарастырылған: функциялар мен процедуралар.
Процедураны сипаттау
Айталық, мәтіндерді редактрлау программасын жасалынып жатыр. Бұл программада редактрленетін мәтіннің бір бөлігін екіншісінен сызық (бірдей «минус» белгілерінен тұратын) арқылы бөлу қарастырылған болсын. Осы мүмкіндікті жүзеге асыру үшін редактор программада сәйкес процедураны жасауға болады. Схемалық түрде бұл процедуралы программа мынадай түрде болады:
Program editor;
…
{белгілерді, тұрақтыларды, типтерді және айнымалыларды сипаттау бөлімі}
...
Procedure Line;
Var symbol:integer;
Begin {процедура денесінің басы}
Write (‘{‘);
For symbol:=1 to 78 do
Write (‘-’);
Writeln (‘}’);
End; {процедура денесінің соңы}
…
Begin {программа денесінің басы}
…
Line; {процедураны шақыру}
…
End. {программа денесінің соңы}
Бұл editor программасында Line процедурасы сипатталған. Схемада процедураны сипаттау (бұл функцияға да қатысты) программа денесінің алдында жүргізілетіні көрініп тұр. Процедураның құрылымы программа құрылымын қайталайтыны көрініп тұр – мұнда да тақырыбы, сипаттау бөлімі және денесі бар. Процедура PROCEDURE резервтелген сөзінен басталады, содан кейін бос орыннан соң тақырыбы жазылады. Тақырып жолы міндетті түрде нүктелі үтірмен аяқталуы қажет. Осыдан кейін процедураның сипаттау бөлімі болады. Бұл мысалда тек бір ғана айнымалы сипатталған. Бірақ программадағыдай мұнда да белгілерді, тұрақтыларды, типтерді және айнымалыларды, сол сияқты Line процедурасының ішіне салынған процедуралар мен функцияларды сипаттауға болады.
Сипаттау бөлімінен кейін оның денесі көрсетіледі. Процедура денесі операторлық жақшаға (begin..end) алынған операторлар тізбегі жазылады. Line процедурасын шақыру үшін оның атауын қажетті жерге көрсетсе жеткілікті. Осы процедураны шақыру мысалы editor программасында көрсетілген. Осы процедура экранда 78 «минус» (-) символдарынан тұратын жолды шығарады. Ал егер өңделетін құжатта әртүрлі мәтін үзінділерін басқа символдар жолымен бөлу керек болса және де олардың ұзындығы да басқа болу қажет болса, онда программа денесіне қажетті ақпаратты (символ мен жол ұзындығын) енгізуге мүмкіндік беретін Read операторын қарастыру қажет болады. Бұл оператор қалай да бұл ақпаратты процедураға береді. Ақпаратты программа денесінен процедураға беру параметрлер механизмінің көмегімен жүзеге асады. Жоғарыда келтірілген программа схемасы төмендегідей өзгертілген:
Program editor;
…
{белгілерді, тұрақтыларды, типтерді және айнымалыларды сипаттау бөлімі}
...
Procedure Line(ch:char; ln:integer);
Var symbol:integer;
Begin {процедура денесінің басы}
Write (‘{‘);
For symbol:=1 to ln do
Write (‘ch’);
Writeln (‘}’);
End; {процедура денесінің соңы}
…
Begin {программа денесінің басы}
…
Read(a,b); {символ мен жол ұзындығы беріледі}
Line(a,b); {процедураны шақыру}
…
End. {программа денесінің соңы}
Екінші схема біріншісінен несімен ерекшеленеді? Процедура сипаттамасында тақырыбынан кейін формальды параметрлер берілген (ch:char; ln:integer). Олар таңдалынған символ (ch) мен жол ұзындығын (ln) программадан процедураға беруге арналған. Және де көрсетілген параметрлердің идентификаторлары процедура денесіндегі бекітілген мәндерді (78 және ‘-’) ауыстырды. Программа денесінде де екі өзгеріс болды. Біріншіден, кез-келген символ мен жол ұзындығын енгізуге мүмкіндік беретін жаңа оператор (Read(a,b)) қосылды. Екіншіден, процедураны шақыру операторы (Line(a,b)) енді нақты параметрлерге ие болды. Мәндері Read операторының көмегімен енгізіліп, содан кейін Line процедурасының сипаттамасында көрсетілген формальды параметрлерге берілетін a және b айнымалылары программаның сипаттау бөлімінде сәйкесінше char және integer типтері ретінде жариялануы керек.
Достарыңызбен бөлісу: |