Енгізу және шығару функциялары мен процедуралары


Тақырыбы:

“Енгізу және шығару функциялары мен процедуралары ”.

Жоспар

І. Кіріспе . . . 3

ІІ. Негізгі бөлім.

1 Енгізу шығару процедурасы. Турбо -Паскаль

функциялары . . . 9

а) Енгізу шығару процедурасы . . . 10

б) Сандық параметрлердің функциялары . . . 20

ІІI. Қорытынды . . . 21

Қолданған әдебиеттер . . . 22

Кіріспе

Турбо-Паскальда екі процедура типі бар:процедура типі, және функция-типі,

Процедура типін жариялау үшін процедураның тақырыбы немесе атсыз функция қолданылады.

Мысал:

type Proc1=Procedur(a, b, c:integer; x:real) ;

Proc2=Procedur( var a, b) ;

Proc2=Procedur;

Func1=function:real;

Func2=function(n:integer) :boolean;

Типтердің өзгергіштігін бейнелеп түсіндіруге болады. Мысалы: var p1, p2: Proc1; f1, f2: Func2; Өзгергішті процедуралық типтерді қолдануға болады. Мұндай кезде стандартты процедураларды және функцияларды қолдануға болмайды.

Сондай меншіктеуден кейін өзгергіш процедура типі атының синонимі ретінде В. А болады. Өзгергішті процедуралар типі сондай -ақ бағдарламадағы параметрлер типіне тапсырылады. Осының арқасында алгоритмдердің қосалқы иілгіштерді жасуға мүмкіншілігі болады.

І. Процедура және функциялар.

1. Процедура -қандай да болмасын атпен аталған әрекеттердің жүйелілігі. Бұл жүйелілікті орындау үшін, программаның лайықты орнына оның атын көрсету керек. (Мысалға экранды тазалау үшін графикамен жұмыс барысында мынаны көрсетеміз. Clear Dtvice; ) Сонымен қатар процедураны қолданғанда программалар қысқа әрі түсінікті болады. Процедураны программаның әр түрлі жерінен шақыруға болады.

Процедураға кіретін әрекеттер басты программаларда былайша жазылады:

program…

const…

type…

var…

procedure My Proc;

begin

{әрекеттер}

end;

begin

{негізгі программа}

end.

Максималды үш санды табу мысалын қарап шығайық.

Program Max1;

var a, b, c, m:integer;

begin

write(‘a:енгізіңіз’) ; readln(a) ;

write(‘b:енгізіңіз’) ; readln(b) ;

write(‘c:енгізіңіз’) ; readln(c) ;

if a>b then m:=a else m:=b;

if c>m then m:=c;

writeln (‘Максимум=’, m) ;

readln;

end.

Процедураны қолдану арқылы оны көшіреміз:

Program Max2;

var a, b, c, m:integer;

procedure FindMax;

begin

if a>b then m:=a else m:=b;

if c>m then m:=c;

end;

begin

write(‘a:енгізіңіз’) ; readln(a) ;

write(‘b:енгізіңіз’) ; readln(b) ;

write(‘c:енгізіңіз’) ; readln(c) ;

FindMax;

writeln (‘Максимум=’, m) ;

readln;

end.

Бұл түрді жақсартуға болады. Әзірше біздің процедурамыз тек нақтылы өзгергіш мағыналардың а, b және с ішіндегі минимумын таба алады. Оны үш бүтін санның минимал мәнінің арасында және нәтижені бізге керек айнымалыға орналастырамыз.

Бұндай процедуралардың пайдасын көру үшін, мына сандардың a+b, b+c, және a+c барынша толық іздеуге арналған программаны мысалға алайық:

Program Max3;

var a, b, c, m:integer;

procedure FindMax(n1, n2, n3: var max:integer) ;

begin

if n1>n2 then max:=n1 else max:=n2;

if n3>max then max:=n3;

end;

begin

write(‘a:енгізіңіз’) ; readln(a) ;

write(‘b:енгізіңіз’) ; readln(b) ;

write(‘c:енгізіңіз’) ; readln(c) ;

FindMax(a+b, b+c, a+c, m) ;

writeln (‘соммаларда барынша толық =’, m) ;

readln;

end.

Жақшаларда процедура атынан кейін аталатын дәл осындай параметрлер жазылған. Бұл жазу процедура ішінде бүтін сандар қолдануға болатынын көрсетеді(көрсетілгендер n1, n2 және n3) санымен қатар процедуралар ішінде max деп аталынады. Параметрде сақталатын сандар (n1, n2, n3) параметрлі- мағыналы деп аталады; Ол өзгергішті білдіретіндер (max) -параметрлі-өзгергішті.

Олардың алдында var сөзі қолданылады. Процедура ішінде сілтемесі болатын процедуралар (n1, n2, n3, max) формалдық деп аталады, нақты шақыру алдында қолданылатыны (a+b, b+c, a+c, m) -нақтылары.

Соңғы процедуралардың түрі жеткілікті ыңғайлы болады. Мұндай процедураларды бір рет жазуға болады. Бұндай процедураларға мысал ретінде Турбо-Паскальға қоса салынғандар процедурасын алуға болады.

Біздің мысалымызда программаны басқаша көшіруге болады. Математикалық тілмен айтқанда үш санды функциясы келеді.

Функция ұғымы сонымен қатар Паскальда да бар. Мұндай программаны қарап шығайық:

Program Max3;

var a, b, c, m:integer;

fuction Max (n1, n2, n3; integer) ;

var m:integer;

begin

if n1>n2 then m:=n1 else m:=n2;

if n3>m then m:=n3;

end;

begin

write(‘a:енгізіңіз’) ; readln(a) ;

write(‘b:енгізіңіз’) ; readln(b) ;

write(‘c:енгізіңіз’) ; readln(c) ;

writeln (‘Mаксимум=’, Max (a+b, b+c, a+c) ;

readln;

end.

Бізге программадан функцияны шақыру белгілі. (мысалға sqrt, sin т. б) .

Функцияның өрнектелуін қарайық. Ол процедураға өте ұқсас, деп екі ерекшелігі бар:

  1. Функция атынан кейін және параметрлердің тізімін кейін қос нүкте белгісі жазылады.

2. Функция денесінде операторлар арасында ең маңыздыларымен функция мағыналары меншіктеу операторлары келеді. (біздің оқиғамызда мынау Max:= m; ) .

Функциядан жоғары жазылғанға жергілікті өзгергіш m қолданылады, яғни өзгергіш. Тек біздің функцияда қолданылады, ал қалған процедураларды және функцияларды басты программа ол «көрінбейді». Жергілікті өзгергіштерден басқа Турбо-Паскальда жергілікті тұрақтылар және үлгілер арқылы анықтауға болады.

Процедуралармен функцияларға басқа бір мысал келтірейік.

1. Функцияны Паскальда жазайық y=x Equation. 3 .

fuction Cube (x:real) :real;

begin

Cube:=x*x*x;

end;

2. Үшбұрыштың ауданды жақтардың ұзындықтары арқылы есептеу. Мұнда Герон формуласы қолданылады: , мұндағы р-үшбұрыштың жартылай периметрі.

a, b, c-жақтардың ұзындығы.

fuction Square(a, b, c:real) :real;

var p:real;

begin

p:=(a+b+c) /2;

Square:=sqrt(p*(p-a) *(p-b) *(p-c) ) ;

end;

3. Квадрат теңдеу шешіміне арналған процедура. теңдеу коэффициенттерін мына процедураға тапсырамыз, ал ол өз жұмыс нәтижелерін береді. Үш параметрлі-өзгергіштік. Бірінші қисынды үлгіден кейін заттың түбірлердің бар екендігін, екеуін ол түбірлер өздері беретіндігін процедура хабарлайды.

procedure SqEquation (a, b, c:real) ; var RootExist: boolean;

var x1, x2: real; var d:real;

begin

d:=sqr(b) -4*a*c;

if d>=0 then begin

RootExist:=true;

x1:=(-b+sqrt(d) ) /(2*a) ;

x2:=(-b-sqrt(d) ) /(2*a) ;

end

else RootExist:=false;

end;

Процедураның орнына функцияны жазуға болады. Қисынды мағынамен түбірлердің бар жоқтығын анықтаймыз. Процедурадағы сияқты түбірлер өзі беріледі.

аuction EqHasRoots(a, b, c:real; var x1, x2:real) :boolean;

var b: real;

begin

d:= sqr(b) -4*a*c;

if d>=0 then begin

EqHasRoots:=true;

x1:=(-b+sqrt(d) ) /(2*a) ;

x2:=(-b-sqrt(d) ) /(2*a) ;

end

else EqHasRoots:=false;

end;

Бұндай процедураны қолдану өте ыңғайлы.

if EqHasRoots(1, 2, 1, r1, r2) then writeln(r1, ’’, r2)

else writeln (‘түбірі жоқ’) ;

ІІ. Енгізу-шығару процедуралары. Турбо-Паскаль функциялары.

Енгізу-шығару продурасы. Әр бір бағдарлама пайдаланушымен тиісті қатынасу қажет. Яғни экранға өз жұмысының нәтижелерін шығару және клавиатуралар арқылы қолданушылар мүмкіндік бермеу. Мүмкін болу үшін Турбо-Паскальді арнайы процедура бар. Оны енгізу-шығару процедурасы деп атайды. Біздің программамызда процедураны жұмыс ісеуі болдыру үшін оның атын жазу керек. Процедураның информациялық қортындысын экран бетінде мәтін арқылы шығады. Бұл процедураларды сипаттайық.

write(p1, p2, …pn) ; -экран бетіне айтылулардың мағынасы шығады. Айтылулар сандық, жолдық, символдық және қисынды болады. Мысал ретінде заттық типке write(r+s:10:5) ; қалған типке write(p:10) ; Қортынды экран бетінің оң жақ бөлігінде шығарылады.

write(p1, p2, …pn) ; -ұқсас write p1, p2, …pn мағыналарын шығарады. Кейін жаңа жолға курсор аударады. Параметрлердің мәні сол қалпында қалады. Ескерту формат шығару күші сол қалпында қалады. Writeln; нұсқауы курсорды жаңа жолға көшіру мағынасында.

readln. (v1, v2, …vn) ; -өзгергіш мағыналарын клавиатураға енгізу. v1, …vn. өзгергіштер жолдық символдық немесе сандық белгіде бола алады.

read(v1, v2, …vn) ; - readln тағайындаумен ұқсас.

Мысал:бағдарлама пайдаланушыдан клавиатураға екі бүтін санды енгізуді және экранда олардың соммасын оқуды сұрайды:

Program PrintSum;

var a, b:integer;

begin

write(‘екі санды енгізіңіз’) ;

readln. (a, b) ;

writeln(‘a және b соммасы тең’, a+b) ;

readln;

end.

Сандық параметрлердің функиялары.

Аты
Мағынасы
Аты: abs(x)
Мағынасы: модуль Х
Аты: cos(x)
Мағынасы: косинусХ
Аты: frac(x)
Мағынасы: Х бөлшекті бөлім
Аты: int(x)
Мағынасы: Х бүтін бөлімі
Аты: pi
Мағынасы: саны
Аты: round(x)
Мағынасы: х бүтін санға дейін дөңгелектенген
Аты: sin(x)
Мағынасы: синус х
Аты: sqr(x)
Мағынасы: квадрат х
Аты: sqrt(x)
Мағынасы: Х квадрат түбірі
Аты: trunc(x)
Мағынасы: БөлшекХ-тің бөлімінен алынған саны

процедураның типі

Assign процедурасы ([Файлдық өзгергіш], [файл аты] ;

Файлмен жұмыс істегенде екінші маңызды әрекеттің бірі болып « байластыру» өзгергіштің физикалық файлымен табылады. Бұл әрекетті Assign процедурасы міндетті болып табылады. Сол физикалық файлмен бірнеше өзгергішті файлмен әртүрлі физикалық файлдарды байланысты-

руға болады.

Енгізу және шығару стандартты мәтіндік файл Input және Output автоматты түрде стандартты енгізу және шығару құрылғысымен байланысады. Яғни екі оператор Assign (Input, ‘CON’) ; үнсіз орындалады оларды жазу керек емес.

Assign процедурасында қолданатын бағдарламаларға мысал келтірейік:

Program Assign __my__file;

Var T:Text; {текстік өзгергіштің бейнесі}

Begin

Assign (T, ’my__ file. txt’) ; {сыртқы текістің мәтінімен салыстыру

my__ file. txt өзгергіштік текістік Т}

end.

Assign процедурасы барлық файлдардың типімен жұмыс істейді.

Reset процедурасы ([файлдық процедура] ) ;

Оқуға арналған қисынды файл ашылады. Оқуға арналған кіріс файлы ашу қажет. Reset процедурасы ашылғаннан кейін файл элементіне курсор қойылады да файлдан хабарды салыстырып оқуға болады. Егер мәтіндік файл бос болса, онда бірінші символ EOF-#26.

Reset процедурасында қолданылатын бағдарламаларға мысал келтірейік.

Program Reset__my__file;

Var T:Text;

Begin

Assign (T, ’my__ file. txt’) ;

Reset(T) ; {файлды оқуға ашу}

end.

Input файлы автоматты түрде ашылады.

Rewrite процедурасы ([файлдық өзгергіш] ) ;

Оған келесі жазуды өзгергішті файлмен сыртқы физикалық файл байланысымен құрылады және ашылады. Жаңа құрылған файл бос болады және курсор файлдың ең басында тұрады.

Егер Assign процедурасында сыртқы файл жазылған болса, онда ол өшіріледі және қайтадан құрылады. Rewrite процедурасында қолданысынан кейін жазу үшін құрылған файл шығатын файл болып табылады.

Rewrite процедурасы барлық файл типімен қолданыста болады.

Rewrite процедурасында қолданылатын бағдарламаға мысал келтіру.

Program Rewrite __my__file;

Var T:Text;

Begin

Assign (T, ’my__ file. txt’) ;

Rewrite (T) ; {жаңа файл құрады. T, my__ file. txt келесі жазуға арналған}

end.

Стандартты мәтіндік файл Output жазу бағдарламаға үшін автоматты түрде ашылады. Яғни Rewrite (Output) жазу қажет емес.

Append процедурасы ([файлдық өзгергіш] ) ;

Өзгергішті файл сыртқы физикалық мәтіндік файлмен байланыса жазылу үшін ашылады. Бірақ Rewrite процедурасынан айырмашылығы жазу файлдың соңында жүреді. Append процедурасы сыртқы мәтіндік файлдарды ашу үшін қолданылады. Файл ашылғаннан кейін курсор файлдың соңында тұрады. Append процедурасы тек мәтіндік файл үшін қолданылады.

... жалғасы

Сіз бұл жұмысты біздің қосымшамыз арқылы толығымен тегін көре аласыз.
Ұқсас жұмыстар
Паскаль тілінің функцияларымен процедураларын қолдану
Экранға мәтін шығару процедуралары
Паскаль тіліндегі модульдер
Типтелген файл
MS DOS операциялық жүйелерімен жұмыс модульдері
Турбо Паскаль тілінің графикалық режимнің мүмкіндіктері
Турбо паскаль программалау тілі жөнінде негізгі ұғымдар
Turbo pascal тілінің негізгі элементтері туралы
Текстік режимде жұмыс
Модульдік бағдарламалау - Модульдердің құрылымы
Пәндер



Реферат Курстық жұмыс Диплом Материал Диссертация Практика Презентация Сабақ жоспары Мақал-мәтелдер 1‑10 бет 11‑20 бет 21‑30 бет 31‑60 бет 61+ бет Негізгі Бет саны Қосымша Іздеу Ештеңе табылмады :( Соңғы қаралған жұмыстар Қаралған жұмыстар табылмады Тапсырыс Антиплагиат Қаралған жұмыстар kz