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



Жоспар

І. Кіріспе ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .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. Белов, Теориев, Графов, Москва, «Наука» 1968.
2. Нечепуренко М.И. Алгаритм и програмы решение задач на графах
и сетех.
-Новосибирск: Наука, 1990.
3.Оре .О. Теория графов. –М.:Наука,1980.
4. Кук Д. ,Бейз Г. Компьютерные математика.
-М.:Наука ,1990.
5. Романовский И.В. Алгоритм решение

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

Жоспар
І.
Кіріспе ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..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 ab then m:=a else m:=b;
if cm then m:=c;
writeln (‘Максимум=’,m);
readln;
end.
Процедураны қолдану арқылы оны көшіреміз:
Program Max2;
var a,b,c,m:integer;
procedure FindMax;
begin
if ab then m:=a else m:=b;
if cm 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 n1n2 then max:=n1 else max:=n2;
if n3max 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 n1n2 then m:=n1 else m:=n2;
if n3m 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.
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
процедурасы тек мәтіндік файл үшін қолданылады.
Append процедурасында қолданылатын бағдарламаға мысал келтіру.

Program Append __my__file;
Var T:Text;
Begin
Assign (T,’my__ file. txt’);
Append(Т);{келесі жазуды соңында хабарлары бар қисынды файл ашылады}
end.

Close процедурасы ([файлдық өзгергіш]);
Өзгергіш файлмен қоса ашық физикалық файл сақталады және жабылады.
Анықтамада белгіленгендегі файл жабылмастан бұрын ашылуы тиіс.Егер шығатын
файлдарда өзгерістер енсе,онда информацияларды сақтау үшін олар міндетті
түрде Close процедурасы әр түрлі файлдар типтерінде қолданылады. Егер әр
түрлі процедуралармен жүйелі файлды ашсақ,онда бұл процедуралардың арасында
Close операторы автоматты түрде болады.Егерде бірінші Rewrite процедурасын
жазу үшін файлды ашсақ,ал содан соң Reset процедурасын оқу үшін ашсақ,онда
Reset процедурасы автоматты түрде Close операторы арқылы сақталып жабылады.
Close процедурасында қолданылатын программаларға мысал:

Program Close __my__file;
Var T:Text;
Begin
Assign (T,’my__ file. txt’);
Append(Т);
Close(Т): {текістік файлды сақтаймыз әрі жабамыз Т}

Erase процедурасы ([файлдық өзгергіш]);
Erase процедурасы –өзгергіш файлмен байланысып, физикалық файлды жояды.
Өзгергіш файлмен байланысқан, физикалық файл болуы тиіс, өйткені кезінде
Erase процедурасында файл болмауы уақытша қате тудырады.
Erase процедурасында қолданылатын программаларға мысал:

Program Erase __my__file;
Var T:Text;
Begin
Assign (T,’my__ file. txt’);
Erase (Т)
Erase(Т); {файлды кетіреміз my__ file. txt}.
end.

Read процедурасы ([файлдық өзгергіш],[енгізу тізімі]);
Өзгергішті файлмен байланысқан файлдық бір немесе бірнеше мағыналарын
иемденеді.Енгізу тізімінде бір өзгергіш немесе бірнеше өзгергіш,арқылы
саналуы мүмкін.Енгізу үшін өзгергіш мәтіндік файлда мынадай типтер арқылы
болуы мүмкін:
— Берілген символдық тип (Char).
— Берілген жол типі(String)
— Берілген бүтін санды тип(Integer,LongInt,Word,Byte).
— Берліген өзгергішті заттық ... жалғасы

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