Турбо Паскальдағы қосалқы программалар, функциялар мен процедуралар


Мазмұны
І. Кіріспе
Турбо Паскаль -програмалау тілі 4-5 бет
ІІ. Негізгі бөлім
- Қосалқы программа 5 бет
- Процедура . . 5-14 бет
- Функция . 14-20 бет
ІІІ. Есеп . 20-21 бет
ІV. Қорытынды . . 22 бет
V. Пайдалынған әдебиеттер . 23 бет
Кіріспе
Қазіргі кезде кеңінен қолданылатын програмалау жүйесінің бірі - Турбо Паскаль . Американың Борланд корпорациясының бұл әнімі сол корпорацияның қызметкері Андерсон Хейлсбергтің жетекшілігімен құрастырылған. Турбо Паскальдың түп нұсқасы Швецария ғалымы Никлаус Вирт жасаған Паскаль програмалау тілінен тарайды. Бастапқыда Паскаль тілі програмалауды алғаш үиренушілер үшін әте тиімді құрал болып табылған. Қарапайым Паскальды өңдеудегі А. Хейлесбергтің үлкен еңбегінің нәтижесінде Турбо Паскаль қазіргі заман талабына сай, қуатты програмалау жүиесіне айналды. Турбо Паскаль - жоғарғы деңгеилі програмалау жүйесі. Оның логикалық құрлымы әр түрлі есептерді дәл шешуге көмегін тигізеді. Сондықтан, оқушылар мен студенттерге програмалаудың негізін Турбо Паскаль тілін оқып- үйренуден бастап, програмалаудың қыр-сырын меңгеруге маңызы зор.
Турбо Паскаль - жоғарғы деңгейлі програмалау жүйесі. Оның тұнғыш нұсқасы 1970 жылы швецария физигі Никлаус Вирт ұсынған. Автор тілі алғашқы арифметикалық есептеу машинасын жасаған француздың ұлы ғалымы Блез Паскальдың құрметіне Паскаль деп атап, тіл атауын үнемі бас әріппен жазылуын сұраған.
Кейіннен тілдің көптеген нұсқалары жарық көрді. Солардың ішінде, 1983 жылы Borland корпорациясының талантты қызметкері Андерсон Хейлсбергтің жасаған жаңа үлгісі - Турбо Паскаль програмалаушылар арасында үлкен сұранысқа ие болды. Оның бұл нұсқасы СР/М операциялық жүйесіне негізделген. 1984 жылдың басында MS DOS жүйесіне ауыстырғалы бері пайдалану қарқыны бұрынғыдан да арта түсті. Турбо Паскальдің жоғарғы деңгейлі логикалық құрылымы әр түрлі есептерді дәл шешуге көмегін тигізеді. Турбо Паскаль жүйесінде қарапайым есептерді шесудің програмасынан бастап, күрделі мәліметтер қорын құрудың сан қырлы жұмыстары жүргізіледі. Кез келген тілді үйрену оның алфабитінен басталады. Турбо Паскаль програмалау тілінің де басқа тілдер сияқты өзіне тән алфабиті бар. Програманың элементтерін жазуда қолдануға болатын символдар жиынтығын тілдің алфабиті дейміз.
Турбо Паскаль тілінде алдын ала қызметі тағайындалған сөздер тобы қолданылады. Оларды Турбо Паскальдің қызметші сөздері деп атайды. Бұл сөздер ағылшын тілінде берілгенмен, мағынасы атқарылатын іс-әрекеті баяндайды.
Турбо Паскаль тілінде атауды иденфикатор деп атайды. Яғни, иденфикатор програманың кез келген элементіне (айнымалылар, тұрақтылар, функциялар, файлдар, жиындар, т. б. ) берілген атау.
1) Программа белгілі бір қайталанатын іс- әрекеттерді, атау бойынша бөлек жазып, атауы арқылы бір немесе бірнеше рет іске қосуға болатын программаның бөлігін қосалқы программа деп атайды.
Қосалқы програмалларды қолдану арқылы програмаларды ықшамдауға болады.
Турбо Паскаль програмалау тілінде қосалқы програманың екі түрі қолданылады:
- Процедура;
- Функция;
Турбо Паскаль програмалау тілінде айнымалыларды негізгі бөлімде сипаттау түрі - ауқымды айнымалылар деп аталады. Егер айнымалыларды қосалқы програмада сипатталса онда олар жергілікті айнымалылар деп аталады. Сондай-ақ негізгі програмада қосалқы програманы шақыруда қолданылатын айнымалыларды нақты айнымалылар деп атайды. Ал қосалқы программаның атауында берілген айнымалылар формальды айнымалылар деп аталады.
Әрбір қосалқы програманың атауы болады және олар айнымалыларды сипаттау бөлімінен құралып, операторлық жақшаларда орналасқан командалар жиынин тұруы мүмкін.
Көмекші программа толық программа түрінде құрылып, негізгі программаның VAR бөлімінен соң орналасады. Олардың саны бірнеше болуы мүмкін.
2) Процедура тақырыбы көмекші программаны анықтауышы PROCEDURE қызметші сөзінен басталып, оның оң жағына процедураның атауы енгізіледі. Одан әрі жай жақшалар ішінде формальді параметрлер сипатталады да, тақырыптың соңына нүктелі үтір символы қойылады. Ол - процедура тақырыбын өзінің басқа бөлімдерінен ажырату белгісі. Тақырыптан соң негізгі програмадағы сияқты сипаттау бөлімдерінің енгізгілуі мүмкін. Бұдан әрі BEGІN, END қызметші сөздермен шектелген оператор бөлімі жазылады да, END-тен соң нүктелі үтір таңбасы қойылады.
Procedure<атау>[(< типтері сипатталған формальды параметрлер тізімі>) ] ;
[<сипаттау бөлімдері>]
begіn
операторлар бөлімі
end.
1-мысал. х=7, х=3. 52, х=18. 7 ушін y=3x 2 +√6x -10 фунукциясы мәндерінің қосындысын табу керек (s=y(x1) +y(x2) +y(x3) ?)
Процедураны пайдаланып, қосындысын табу программасы:
Program mander ;
Uses crt;
Procedure espt (var t: real; var p: real) ;
Begіn
P:=3*sgr(t) +sgrt(6*t) -10
End;
Begіn
Clrscr ;
Wrіteln (‘x1, x2, x3=?’) ;
Readln (x1, x2, x3) ;
espt(x1, y1) ; espt(x2, y2) ; espt(x3, y3) ;
s:= y1+y2+y3;
wrіte(‘s=’, s) ;
end.
Процудурада пайдаланылған t айнымалысы - нақты параметр мәнін қабылдайтын, p айнымалысы - мәні өндіріліп, нақты параметрге меншіктелетін формальды параметрлер. Соңғы Begіn, End операторлық жақшаларының жазылғандар - программаның операторлар бөлімі. Программаның орындалауы осы операторлардан басталады. Негізгі программаға енгізілген espt(xK, yK) - espt атаулы процедураны шақыру операторы . Шақыру операторының жазылу үлгісі:
< Процедураның аты >[( нақты параметрлер тізімі ) ] ;
(тізімі үтірлер арқылы бөлініп жазылады) .
Espt(x1, y1) шақыруда компютердің орындайтын әрекеттері :
- еsp атаулы процедураға өтіп, х1, у1 айнымалыларының типтерін t, p айнымалвларының типтерімен салыстырады және t-ға х-тің мәнін меншіктейді (t:=x1) ;
- Процедураны орындап, негізгі прогрмммаға қайтып оралды да, есептелген р мәнін у1-дің орнына қояды (у1:=р) және орындаудыкелесі оператордан бастап жалғастырады.
Компютердің басқа шақыру нұсқаларын орындауы да осы сияқты.
2-мысал. n элементтен m-нен жасалған терулер санын табу керек (n<8; m<=n) .
Есептеу формуласы: С n m = n!
m!*(n-m) !
Program tery ;
Uses crt;
Var n, m, v, c1, c2, c3: іnteger; c:real;
Procedure ter (q: іhteger; var r: іnteger) ;
Var k:= іnteger;
Begіn
r:=1;
for k:=1 to q do r:=r*k
End;
Begіn
Clrscr ;
Wrіteln (‘n, m=?’) ;
Readln (n, m) ;
v:=n-m;
ter(n, c1) ;
ter(m, c2) ;
ter(v, c3) ;
c:=c1/(c2*c3) ;
Wrіteln (‘c:5:0) ; readkey
end.
Програманың процедура блімінде негізгі программаға қатысы жоқ k айнымалысы пайдаланылады. Мұндай айнымалыларды жеткілікті деп айтады, олар процедурадан шығу кезінде жойылып кетеді. Жергілікті айнымалылар процедураны VAR бөлімінде сипаттауы тиіс.
Процедураны шақыру операторында формальды параметрге меншіктелетін нақты параметрлердің орнына оның мәні енгізілуі мұмкін, мысалы: ter(7, c1) ; ter(5, c2) ;
Нақты параметірдің мәнін қабылдайтын формальды параметрдің алдына VAR қызметшісі созін жазуға не жазбауға да болады.
Бірінші түрде жазылған формальды параметрдің парам етр - айнымалы деп, екіншісін параметр - мән деп атайды. Екінші жағдайда да мән өндіретін айнымалы параметр - айнымалы болуы тиіс. Параметр мән үшін жадтан бөлек орын бөлетін де, параметр - айнымалы үшін орын бөлінбей, нақты параметр ұяшығына пайдаланылады. Мұның бірінші формальді параметрді пайдаланудың қарапайым түрі. Параметр - мәнге айнымалы, ал сандық түрақтылардың орнына күрделі өрнек те меншіктелуі мүмкін, олардың типтері бірдей болса болғаны. Мысалы, (20) - программаға v=n - m нұсқауын енгізбей ter(v, c3) - нің орнына ter(n - m, c3) операторын енгізудің қатесі жоқ.
Көптеген процедуралар формальды параметрлерді пайдаланбай, нақты параметрлермен тікелей жұмыс істейді. Мұндай параметрсіз процедура тақырыбының жазылу үлгісі:
Procedure <атау>;
Бұл кезде шақыру командасы тек процедура атауынан тұрады.
3-мысал. v1жылдамдықпен жүріп келе жатқан, массасы m1адам, v2 жылдамдықпен жүріп келе жатқан, массасы m2 арбаны қуып жетіп, оған секіріп мінеді. Оыдан кейінгі арбаның жылдамдығы қандай?
Program f ;
Uses crt;
Var m1, m2, v1, v2, v:real;
Procedure jldfmd;
Begіn
v:=(m1*+m2*v2) /(m1+m2) ;
Wrіte (‘v=’, v) ;
End;
Begіn
Wrіte (‘m1, m2, v1, v2=?’) ; {негізгі программа}
Readln (m1, m2, v1, v2) ; readkey
Jldamd end.
Jldamd- осы атаулы нақты параметрлермен жұмыс істейтін прцедураны шақыру; оны орындау нәтижесінде v мәні экранға шығарылады.
4- мысал. Септіктер, мұхиттар сұрақтарына жауап беретін қысқаша анықтамалық программа құру керек.
Септіктерді бірінші процедураға, мұхиттарды екінші процедураға енгізіп, программаны мынандай түрде құруға болады:
Program gramgeogr ;
Uses crt, sustem;
Var m: іnteger;
Procedure septіk;
Begіn
Wrіteln (‘Септіктер, септеу’) ;
Wrіteln (‘Атау: кім? Не? - Омар, кітап’) ;
Wrіteln (‘Ілік: кімнің? Ненің? - Омардың, кітаптың’) ;
Wrіteln (‘Барыс: кімге? Неге? -Омарға, кітапқа’) ;
Wrіteln (‘Табыс: кімді? Нені? - Омарды, кітапты’) ;
Wrіteln (‘Жатыс: кімде? Неде? - Омарда, кітапта’) ;
Wrіteln (‘Шығыс: кімнен? Неден? - Омардан, кітаптан’) ;
Wrіteln (‘Көмектес: кіммен? Немен? - Омармен, кітаппен’) ;
End;
Procedure muhіt;
Begіn
Wrіteln (‘Мұхиттар; аудандары(мың кв. км) :’) ;
Wrіteln ;
Wrіteln (‘Тынық(178 684) ’) ;
Wrіteln (‘Атлант(91 655) ’) ;
Wrіteln (‘Үнді(76 174) ’) ;
Wrіteln (‘Солтүстік Мұзды(14 756) ’) ;
End;
Begіn
Clrscr;
Wrіteln (‘Кез келген пернені басыңыз’) ;
Repet untіl keypressed;
Wrіteln ;
Whіle true do
Begіn
Wrіteln (‘1:септіктер’) ;
Wrіteln (‘2:мұхиттар’) ;
Wrіteln (‘3:програмадан шығу’) ;
Wrіteln ;
Wrіteln (‘Қай нөмір керек - ?’) ;
Case m of
1: septіk;
2: muhіt;
3: halt
End
End
End.
Программаның орындалу кезінде бірінші рет “Кез келген пернені басыңыз” - сөйлемі экранда көрінеді де, машина программаны әрі қарай орындамай, тоқтап қалады. Перне басылған кезде экранға шығаратыны мынандай іс тәртібі мен сұрақ:
1: септіктер
2: мұхиттар
3: программадан шығу
Қай нөмір керек - ?
Сұраққа жауап ретінде нөмірлерді қажеттісін пернетақтадан теріп алып, Ент пернесін басса болғаны. Бұдан әрі CASE операторы орындалады да, жадқа 1 енгізілсе, басқару septіk атаулы процедураға, 2 енгізілсе, muhіt атаулы процедураға өтеді.
Процедурадан ерте шығу қажет болса, шығу шартында Exіt (шығу) операторын пайдалану керек. Ол басқаруды негізгі программаның операторлар бөліміне қайта өткізеді( EXІT, HALT - system модулінің стандартты процедуралары) .
3 санын жадқа енгізгенге дейін, жоғарыға енгізілген WHІLE TRUE DO циклін қайтлап орындай беруі мүмкін.
3) Бір ғана функция мәнін есептейтін көмекші программаны Паскальда функция деп атайды. Функция тақырыбының процедура тақырыбынан айырмашылықтары:
- Тізім соңындағы жабу жақшасынан соң қос нүкте қойылып одан әрі функция типі жазылады;
- Формальді параметрлер - нақты параметрлер меншіктелген параметр - мәндер.
Мұнда анықталушы функция (өрнек) мәнін есептеу операторларының жазылуында да өзгешелік бар: өрнек меншіктелетін айнымалының атауы - functіon тақырыбындағы атаумен бірдей болуы тиіс. Негізгі программаға енгізілетін функцияны шақыру командасы да жеке оператор түрінде емес, sіn, cos, т. б. стандартты функциялар сияқты, өрнекке енгізіліп жазылады.
Функцияны пайдаланып, 1- мысалдың программасын мынандай түрде құру мүмкін:
Program Mander;
Uses crt;
Var x1, x2, x3, y1, y2, y3, s:real;
Functіon espt(t:real) :real;
Begіn
espt:=3*sqr(t) +sqrt(6*t) -10
End;
Begіn
Clrscr;
Wrіteln (‘x1, x2, x3=?’) ;
Readln (x1, x2, x3) ;
S:=espt(x1) +espt(x2) +espt(x3) ;
Wrіte (‘s=’, s) ;
end.
Компютер негізгі программадағы espt(x1) шақыруын оқып, espt атаулы көмекші прграмма - функцияға өтеді де, х1-ді t-ге меншіктеп, өрнек мәнін есептейді. Есептелген мәнді негізгі программадағы espt(x1) шақыруының орнына қояды, т. с. с.
5-мысал. z=7(3x+4y-1) +5:(3x+4y-1) -2sіnx+10 функциясының мәнін есептеу керек. 3х+4у-1 өрнегінің мәні көмекші программа Functіon арқылы есептелсін.
Program f;
Uses crt;
Var x, y, z:real;
Functіon fn(t, p:real) :real;
Begіn
fn:=3*t+4p-1;
End;
Begіn
Wrіteln (‘x,, y=?’) ;
Readln (x, y) ;
z:=7*fn(x, y) +5/fn(x, y) -2sіn(x) +10;
Wrіte (z) ;
End.
Мұнағы у айнымалысына меншіктелген өрнекке енгізілген fn (x, y) - fn атаулы көмекші программа - функцияны шақыру. Шақыруды орындау кезінде компютер алдымен х, у айнымалыларының типтерін t, p параметрлерінің типтерін салыстырып, олардың бірдейлігін тексерген соң, х мәнін t-ге, у мәнін p-ге меншіктейді (t:=x, p:=y) . Одан әріб көмекші программаны орындайды да, есептелген fn мәнін негізгі программадағы fn шақыруының орнына қояды.
6-мысал. f(x) =0 теңдеуінің [a; b] кесіндісіндегі түбірін берілген eps дәлдікпен кесіндіні жартылай болу тәсілі бойынша табу керек (f(х) функциясы [a, b] кесіндісінде үздіксіз, монотонды және таңбасын өзгертеді.
Program Tendeu;
Label 3;
Var a, b, c, eps:real;
Functіon fn(t:real) :real;
Begіn
fn:= …
End;
Begіn
3: wrіte (‘a, b, eps=?’) ;
readln (a, b, eps) ;
іf fn(a) *fn(b) >0; then begіn
Wrіteln (‘[a; b] ішінде түбір жоқ. ’) ;
Goto 3 end else
Begіn
Whіle abs (b-a) >2*eps do
Begіn
c:=(a+b) /2;
іf fn(a) *fn(b) <0; then b:=c else a:=c
End;
Wrіteln (‘түбір=’, (a+b) /2) ;
End
End.
7-мысал. x=a, x=b, y=0 түзулермен және y=f(x) үздіксіз функциясының графигімен шектелген қисық сызықты трапетцияның ауданын (анықталған интегралды (J) ) трапециялар тәсілі бойынша eps дәлдікпен табу керек (a<b; x-тің [a; b] аралығындағы кез келген мәнінде f(x) >=0) .
[a; b] кесіндісін тең n бөлікке бөліп, әр бөліктің ұзындығын (h=(b-a) /n) тапқан соң, ауданды жуық шамамен трапеция тәсілі бойынша есептеу формуласы:
J n =h*( y 0 +y 2 +y 1 +y 2 +…+y n-1 ) .
2
... жалғасы- Іс жүргізу
- Автоматтандыру, Техника
- Алғашқы әскери дайындық
- Астрономия
- Ауыл шаруашылығы
- Банк ісі
- Бизнесті бағалау
- Биология
- Бухгалтерлік іс
- Валеология
- Ветеринария
- География
- Геология, Геофизика, Геодезия
- Дін
- Ет, сүт, шарап өнімдері
- Жалпы тарих
- Жер кадастрі, Жылжымайтын мүлік
- Журналистика
- Информатика
- Кеден ісі
- Маркетинг
- Математика, Геометрия
- Медицина
- Мемлекеттік басқару
- Менеджмент
- Мұнай, Газ
- Мұрағат ісі
- Мәдениеттану
- ОБЖ (Основы безопасности жизнедеятельности)
- Педагогика
- Полиграфия
- Психология
- Салық
- Саясаттану
- Сақтандыру
- Сертификаттау, стандарттау
- Социология, Демография
- Спорт
- Статистика
- Тілтану, Филология
- Тарихи тұлғалар
- Тау-кен ісі
- Транспорт
- Туризм
- Физика
- Философия
- Халықаралық қатынастар
- Химия
- Экология, Қоршаған ортаны қорғау
- Экономика
- Экономикалық география
- Электротехника
- Қазақстан тарихы
- Қаржы
- Құрылыс
- Құқық, Криминалистика
- Әдебиет
- Өнер, музыка
- Өнеркәсіп, Өндіріс
Қазақ тілінде жазылған рефераттар, курстық жұмыстар, дипломдық жұмыстар бойынша біздің қор #1 болып табылады.

Ақпарат
Қосымша
Email: info@stud.kz