Курстық жұмыс: Экономика | Паскаль программасындағы функциялар мен процедуралар
Мазмұны
1. ТURBO PASCAL ТІЛІНДЕГІ ПРОГРАММА…………………………………….3
1.1 Программа құрылымы…………………………………………………………………..3
1.2 Программа бөлімдері………………………………………………………………………3
2. ФУНКЦИЯЛАР ЖӘНЕ ПРОЦЕДУРАЛАР…………………………………………7
2.1 Функциялар…………………………………………………………………………………….7
2.2 Процедуралар…………………………………………………………………………………10
2.3 Параметрсіз процедуралар…………………………………………………………….12
Қолданылған әдебиеттер…………………………………………………………………………13
1.1 Программа құрылымы
Программа — белгілі бір программалау тілінің синтаксистік ережелеріне сәйкес жазылған нұсқаулар тізбегі. Демек, ТuгЬо Раsсаl тілінде программа жазу үшін программалаушы оның жазылу ережесін жақсы білуі қажет.
ТuгЬо Раsсаl тіліндегі программа жалпы мына түрде жазылады:
Программа тақырыбы;
Сипаттау бөлімі;
Ьеgіn
Орындалатын бөлімі;
End.
• Программа тақырыбы рrоgrаm қызметші сөзінен басталады. Ол программа атынан және параметрлерден тұрады. Мысалы:
Ргоgram еsер1 (іnрut, оutput);
Мүндағы esep1 — программаға берілген атау. Программалаушы программа атын өз қалауынша бере алады.
Программа атауы оларды екінші бір программадан ажыратуға қажетті көрсеткіш.
ЕСКЕРТУ! Программа атауының оның мазмұны сақталынған файл атауына еш қатысы жоқ.
Іnput, оutput — стандартты енгізу, шығару файлы.
• Сипаттау бөлімінде программада кездесетін барлық берілгендердің атауы, типі, мүмкін болатын мәндері, т.б. хабарланады.
• Орындалатын бөлімде Ьеgіn және епй қызметші сөздері арасына операторлар тізбегі жазылады. Сол себепті, веgіn (ашылатын) және еnd (жабылатын) қызметші сөздерін операторлар жақшасы деп атаса да болады. Оператор -нүсқаулардың машиналык тілде жазылуы. Сонда әрбір оператор орындалуға қажетті әрекетті машинаға түсінікті түрде сипаттайды. Программаның бір жолына бірнеше операторларды жазуға болады. Олардың арасына (;) нүктелі үтір таңбасы, ал программаның соңын көрсететін епсі сөзінен кейін (.) нүкте қойылады. Программаның орындалатын бөлімінде жазылған операторлар тізбегін — программа денесі деп атаймыз.
1.2 Программа бөлімдері
ТuгЬо Раsаl тіліндегі программа төмендегі бөлімдерден түрады:
• Программа тақырыбы;
• Берілгендерді сипаттау:
• Белгілерді хабарлау бөлімі;
• Тұрақтыларды хабарлау бөлімі;
• Типтерді хабарлау;
• Айнымалыларды сипаттау бөлімі;
• Процедура-функцияны хабарлау бөлімі;
• Орындалатын бөлім:
Веgіn
Программа денесі (операторлар тізбегі);
End.
Сонда, программа қүрылымы мына түрде болады:
Рrоgrаm программа аты;
Uses
Модуль аты;
Label
Белгі;
Const
Түрақты атауы=тұрақты мәні;
Туре
Тип атауы = тип сипаттамасы;
Var
Айнымалылар атауы: типі;
{Пайдаланушылар процедурасын және функциясын хабарлау};
Begin
Операторлар тізбегі;
End.
Uses бөлімінде стандартты және пайдаланушылар модулі жарияланады. Мысалы,
Uses crt;
Begin clrscr; {экранды тазалауды іске қосу}
• Кез келген операторды белгілей отырып, gоtо операторы арқылы программаның орындалу ретін өзгертіп, белгіленген операторға тікелей көшуге болады. Белгі атауы символдар тізбегі және бүтін оң сандармен қойылады. Оператор мен белгі арасына (:) кос нүкте таңбасы жазылады. Белгілерді хабарлау бөлімі ІаЬеІ кызметші сөзінен басталады. Программада кездесетін барлық белгі ІаЬеІ бөлімінде хабарлануы қажет.
ЬаЬеІ белгі, белгі2, белгіЗ;
Мысалы,
ЬаЬеІ 1, 15, SUM,АС;
‘ • Тұрақтыларды сипаттау бөлімі соnst (латынның соnstants — тұракты деген сөзінің қысқартылуынан алынған) қызметші сөзінен басталады. Бұл бөлім программада төмендегідей жазылады:
Сonst!
Тұрақты атауы=тұрақты мәні;
Мысалы,
Сonst
G=9.8;
• Туре бөлімде пайдаланушылар тарапынан анықталған типтер хабарланады. ТuгЬо Раsсаl-да программалаушы стандартты типтер арқылы жана типті құруға мүмкіндігі бар. Мұндай типтерді қолдану программаның құрылымын күрделендіреді. Сол себептен tуре бөлімі қарапайым программада кездеспейді. Бірақ, пайдаланушылар типі программадағы қателіктерді тез табуға септігін тигізеді. tуре бөлімінің жалпы жазылуы:
Туре
Тип атауы= сипаттамасы;
Мысалы,
Туре
Маtris = аrray[1..3, 1..2] оf геаІ;
Бұл мысалда тип атауы –Маtris кесте берілген, оның жол бойынша 3, ал бағана бойынша 2 элементі бар. Кестенің элементтерінің тегі нақты — геаl.
Программада кездесетін барлық айнымалы vаг (ағылшынның vагіаЫе- айнымалы деген сөзінің қыс-қартылуы) бөлімінде хабарлануы керек. Vаг бөлімінде айнымалының атауы, типі хабарланады. Программанын орындалуы барысында, айнымалы оған тағайындалған атауы бойынша шақырылады. Айнымалының мәні ұаг бөлімінде анықталмағандыктан оған бастапқы мән берілуі кажет.
Егер, программада типтері әр түрлі бірнеше айнымалы болса, үаг деп бірнеше рет жазудың қажеті жок. Яғни, vаг сөзі бірақ рет жазылып, айнымалылардың тізімдері толык көрсетіледі. Айнымалылар бөлімінің жазылуы:
Vаг
Айнымалылар атауы: типі;
Мысалы,
Vаг
a,b,c: integer;
D,х1,х2: геаl;
у:сһаr;
flag: boolean;
Мүндағы а,Ь,с — айнымалылар атаулары, олардың типтері бүтін(integer). Ал, D,х1,х2 — нақты(геаl), у — символдық (сһаr),
flag -логикалық (Ьооlеап) айнымалылар.
• Программалауды жеңілдетуде бір программаны бірнеше кішкене бөліктерге бөлуге болады. Программаның осындай бөліктері — көмекші программа (ішкі программа немесе подпрограмма) деп аталады. Көмекші программа екіге бөлінеді: процедуралар және функциялар. Процедуралар мен функциялардың екі түрі бар: стандартты және пайдаланушылар. Стандартты функциялар мен процедуралардың атауы, аткаратын қызметтері алдын-ала анықталғандықтан, оларды программаның басында хабарлаудың қажеті жоқ. Ал, пайдаланушылар процедурасы мен функцияларын программаның арнайы бөлімінде хабарлау керек. Бұл бөлімде пайдаланушы процедурасы мен функцияларына атау беріледі. Оларды осы атауы бойынша программаның негізгі бөлімінде шақыруға болады.
Процедураны хабарлау бөлімінің жалпы жазылуы;
Procedure атауы (формальды көрсеткіштері);
Begin
Процедураның орындалатын бөлімі;
End;
Функцияны хабарлау бөлімінің жалпы жазылуы:
Function функция атауы (формальды көрсеткіштері) :
нәтиже типі;
Веgin
Функцияның орындалатын бөлімі;
End;
Процедуралар және функциялар туралы толығырақ келесі тарауларда берілген.
• Программанын орындалатын бөлімін — операторлар бөлімі деп атаймыз. Операторлар бөлімі — программаның негізгі бөлімі. Бұл бөлімде программаның сипатгау бөлімінде хабарланған тұрақтыларға, айнымалыларға, функция мәндеріне түрлендіру операциялары қолданылып, қойылған мақсатта программа жазылуы керек.
Операторлар бөлімі Ьеgіn қызметші сөзінен басталып, орындалатын операторлар (нұсқаулар) бірінен кейін бірі жазылады. Программаньвд бір жолына бірнеше операторларды жазуға болады. Олардың арасын ; (нүктелі үтір) таңбасымен бөлеміз. Бұл бөлімді епсі қызметші сөзі аяқтайды. Бүл сөзден кейін . (нүкте) таңбасы койылып, программаның соңын көрсетеді.
Операторлар бөлімінің жазылуы:
Begin
1-оператор;
2-оператор;
…
n-оператор
End.
Операторлар жазылу реті бойынша жоғарыдан төменге қарай орындалады. Жазылуы көлемді болатын оператор бірнеше экранның жолын алуы мүмкін.
2. Функциялар мен процедуралар
Әдетте циклден тыс кейбір әрекеттер тізбегін программаның бірнеше жерінде қайталауға тура келеді. Оларды қайта жазып көшіруге көп уақыт кетірмеу үшін Паскальда функциялар мен процедураларды қолданады. Процедуралардың циклден айырмашылығы, олар программаның әр жерінде оператор тізбегі өзгермей, тек бір ғана рет қайталаннып отырады, яғни әр пайдалану кезінде бір рет қана орындалады.
Паскаль тілі бірнеше рет орындалатын кез келген операторларды процедуралар мен функциялар деп аталатын өзіндік көмекші прграммаға біріктіреді. Жұмыстың нәтижесі бір ғана мән болатын процедура функция деп аталады. Ал негізінде процедура бірнеше нәтиже алуға мүмкіндік береді. Функцияның және процедураның жұмыс істеуі үшін берілген бастапқы мәліметтер, яғни нақтылы параметрлер қажет.
Функциялар мен процедуралар VAR бөлімінен кейін сипатталады және оның өзінің параметрлі тақырыбы бар.
2.1 Функциялар.
Функция деп жұмыс нәтижесінде бір ғана мәнді анықтайтын операторлар тізбегін айтамыз. Функцияның сипаттамасы немесе оның тақырыбы Function (функция) деп аталатын түйінді сөз бен одан кейін жақша ішінде формальды параметрлер деп аталатын аргументтер мен солардың типтерінен тұрады. Тақырыптың соңында нәтиженің типі, яғни функцияның мәнінің түрі көрсетіледі.
Одан кейінгі келесі қатарлар, барлық программалардағы сияқты белгі таңбаларының анықтамаларынан, тұрақтылардан және айнымалыларды сипаттаудан тұрады. Функцияның негізгі қызметін BEGIN және END сөздерінің арасында орналасқан операторлар атқарады да, ең соңында “;” қойылады.
1-мысал. Берілген екі санды дәрежелеп, олардың қосындысын табуда дәрежелеуді функция арқылы есептеу керек болсын
у = а +b ,
мұндағы a, b, m, n – пернелерден енгізілетін бүтін оң сандар. Осы функцияны анықтау және у-ті табу үшін программасы төмендегідей болады.
Program darege (input, output);
label k;
var y,a,b,m,n,: integer;
t: char;
function dar (a, n: integer): integer; {функцияның тақырыбы}
{a,n – формальды параметрлер, типі бүтін сан,
функция нәтижесінің де типі бүтін сан}
var an, i: integer;
begin
an:=1;
for i:=1 to n do an:=an*a;
dar:=an
end; {функцияның соңы}
begin {программаның негізгі бөлімінің басы}
k:write (`бос орын арқылы a,m,b,n сандарын енгізіңіз:`);
reading (a,m,b,n);
y:=dar(a,m)+dar(b,n); {a,m,b,n-нақты параметрлер}
writeln (`y=`, y:10);
write (`тағы да енгізесіз бе? “Y”-иә, “N”-жоқ`);
reading (t);
if t=`Y` then goto k
end.
Функцияның есептелетін параметрлері нақты деп, ал функцияның сипатттамасында көрсетілген параметрлер формальды деп аталады. Біздің мысалымызда a мен n-формальды параметрлер, ал сол функцияны пайдаланған кездегі a,m және b,n- нақты параметрлер. Нақты параметрлердің типі формальды параметрлердің типімен сәйкес келуі тиіс. Нақты параметрлер тұрақтылардан, айнымалылардан және өрнектерден тұруы мүмкін. Мысалы, келтірілген dar функциясын пайдаланған кезде негізгі программада төмендегідей операторларды да жазуға болады:
C:=dar(2,5);
D:=dar(2+m,m-1)+dar(a+b,m+n);
2-мысал.k!-ды есептейтін функцияны анықтайтын және соның негізінде n элементті m-нен орналастырулар санын
C =
табатын программа құру керек.
Program orn(input, output);
label k;
var ncm,m,n: integer;
function fakt(k:integer): integer;
var p,i: integer;
begin
p:=1
for i:=1 to k do p:=p*i;
fakt:=p
end;
begin
k:write(`m және n енгізіңіз, mb then max2:=a else max2:=b
end;
function max4(a,b,c,d:real): real;
begin
max4:=max2(max2(a,b),max2(c,d))
end;
begin {программаның негізгі бөлімінің басы}
write (`8 сан енгізіңіз:`);
readln (a,b,c,d,e,f,g,h);
m1=max4(a,b,c,d);
writeln (`1-і төртеудің max-ы`, m1:8:3);
m2=max4(e,f,g,h)
writeln (`2-і төртеудің max-ы`, m2:8:3);
writeln (`8 санның max-ы`, max2 (m1,m2):8:3);
writeln (`қосынды max-ы`, max4(a+e, b+f, c+g, d+h):8:3)
writeln (`айырма max-ы`, max4(a-e, b-f, c-g, d-h);8:3);
end……