Тақырыбы:
“Енгізу және шығару функциялары мен процедуралары ”.
Жоспар
І. Кіріспе.................................................................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:
Сондай меншіктеуден кейін өзгергіш процедура типі атының синонимі
І. Процедура және функциялар.
1. Процедура –қандай да болмасын атпен аталған әрекеттердің
Процедураға кіретін әрекеттер басты
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
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
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.
Бұл түрді жақсартуға болады.Әзірше біздің процедурамыз тек нақтылы
Бұндай процедуралардың пайдасын көру үшін,мына сандардың a+b,b+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
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.
Жақшаларда процедура атынан кейін аталатын дәл осындай параметрлер
Олардың алдында var сөзі қолданылады.Процедура ішінде сілтемесі болатын
Соңғы процедуралардың түрі жеткілікті ыңғайлы болады.Мұндай процедураларды бір
Біздің мысалымызда программаны басқаша көшіруге болады.Математикалық тілмен айтқанда
Функция ұғымы сонымен қатар Паскальда да бар. Мұндай
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
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
Функцияның өрнектелуін қарайық. Ол процедураға өте ұқсас, деп
Функция атынан кейін және параметрлердің тізімін кейін қос
2.Функция денесінде операторлар арасында ең маңыздыларымен функция мағыналары
Функциядан жоғары жазылғанға жергілікті өзгергіш 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(p1,p2,…pn);-ұқсас write p1,p2,…pn мағыналарын шығарады.Кейін жаңа жолға курсор
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 процедурасында қолданатын бағдарламаларға мысал келтірейік:
Program Assign __my__file;
Var T:Text; {текстік өзгергіштің бейнесі}
Begin
Assign (T,’my__ file. txt’); {сыртқы текістің мәтінімен
my__ file. txt өзгергіштік текістік Т}
end.
Assign процедурасы барлық файлдардың типімен жұмыс істейді.
Reset процедурасы ([файлдық процедура]);
Оқуға арналған қисынды файл ашылады.Оқуға арналған кіріс файлы
Reset процедурасында қолданылатын бағдарламаларға мысал келтірейік.
Program Reset__my__file;
Var T:Text;
Begin
Assign (T,’my__ file. txt’);
Reset(T);{файлды оқуға ашу}
end.
Input файлы автоматты түрде ашылады.
Rewrite процедурасы ([файлдық өзгергіш]);
Оған келесі жазуды өзгергішті файлмен сыртқы физикалық файл
Егер Assign процедурасында сыртқы файл жазылған болса,онда ол
Rewrite процедурасы барлық файл типімен қолданыста болады.
Rewrite процедурасында қолданылатын бағдарламаға мысал келтіру.
Program Rewrite __my__file;
Var T:Text;
Begin
Assign (T,’my__ file. txt’);
Rewrite (T);{жаңа файл құрады.T, my__ file. txt келесі
end.
Стандартты мәтіндік файл Output жазу бағдарламаға үшін автоматты
Append процедурасы ([файлдық өзгергіш]);
Өзгергішті файл сыртқы физикалық мәтіндік файлмен байланыса жазылу
Append процедурасында қолданылатын бағдарламаға мысал келтіру.
Program Append __my__file;
Var T:Text;
Begin
Assign (T,’my__ file. txt’);
Append(Т);{келесі жазуды соңында хабарлары бар қисынды файл ашылады}
end.
Close процедурасы ([файлдық өзгергіш]);
Өзгергіш файлмен қоса ашық физикалық файл сақталады және
Close процедурасында қолданылатын программаларға мысал:
Program Close __my__file;
Var T:Text;
Begin
Assign (T,’my__ file. txt’);
Append(Т);
Close(Т): {текістік файлды сақтаймыз әрі жабамыз Т}
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).
Берліген өзгергішті заттық тип.(Real,Single,Double,Complex,Extended).
Кіріс файлдан хабар салыстырып оқуды тек қана,әр қашанда
Енді Read процедурасындағы берілген әр түрлі үлгілердің мағыналарын
1)Символдық тип. Char өзгергіш типінің енгізуі кезінде файлдегі
2)Егер CR және EOF символдары кездеспесе,онда процедура және
3,4)Енгізу кезінде Read процедурасы сандық өзгергіш алдымен жолма-жол
Айта кетсек,енгізуде Boolean өзгергіш типі процедураларды енгізілмейді. Стандарттық
Енгізу кезінде жұмыс алдында буфердің максималды ұзындығы клавиатурамен
Read процедурасы сандарды енгізуді керемет игереді.
Процедуралар ұсынылар алдында оған енгізу толық және заттық
Read процедурасын қолданылатын программаларға мысал:
Бізге кіріс файлы my__ file. txt келесі түрде
Sharifov Rustam 1987
Program Read_from_file;
Var
F,I:string [15];{өзгергіш F-фамилиясы, I-аты.файлдық енгізуде фамилиясы мен аты
D:Word;{өзгергіш D-туған жылы.туған жылы атынан кейін орналасқан}
Т:Text;
Begin
Assign (T,’my__ file. txt’);
Reset (Т);
Read (T,F,I,D); {енгізу файлынан Т салыстырп оқылады және
end.
Readln процедурасы([файлдық өзгергіш],[енгізу тізім]);
Бұл процедура Readln процедурасына ұқсас,тек одан мынаусы арқылы
Егер процедураны клавиатурадан оқу үшін қолданса онда Enter
Бізге енгізу файлы my__ file.txt берілген десек:
Sharifov
Rustam
1987
Program Read_from_file;
Var
F,I:string [15];
D:word;
Т:Text;
Begin
Assign (T,’my__ file. txt’);
Reset (Т);
Read (T,F,I,D); {енгізу файлында берілгендер жаңа жолда орналасуына
end.
Write процедурасы ([файлдық өзгергіш],[енгізу тізімі]);
Текістік файлға немесе оны логикалық орналасуға жіберу информацияны
символдық тип(Char).
жол типі(String)
бүтін сандар типі
заттық тип
Булевалық констант типі (Boolean).
Енгізу элементтер тізімі бір-бірінен үтір арқылы ерекшеленеді.Әр бір
Енгізулер-ерекшелену[:поляның ені[:ондық белгінің саны]].
[поляның ені]және [ондық белгінің саны]-бұл word типімен ерекшеленеді.
Параметр асты[ондық белгінің саны] ондық белгінің санын түбірлі
Егер енгізуде поля енінде көрсетілмесе,белгіленген элемент қандайда бір
Символдар мен жолдар шығу файлына атсыз беріледі.Енгізу кезінде
Аталған форматта заттық сан енгізіледі,егер параметр асты[ондық белгінің
—S#.# # # # # # # #
—пробел:
S–пробел оң мәндіге және белгі
«—»-теріс мәнді санға;
#-ондық сан;
*-белгі «+»немесе «-» белгіге байланысты ондық сандар тізімі.
Егер параметр асты поля енінен заттық саннан бос
Егер параметр асты санының ондық белгісі 0-ге
Егер параметр атының мағнасы поля еніне барлық толық
Стандартты текстік файлды толтырғанда оның мазмұны
Write процедурасында қолданылатын программаларға мысал
Program Write_into_my_file;
Var F:string {фамилия}
D: Word; {туған жылы}
T:Text;
Begin
Assign (T,’my__ file. txt’);
Rewrite (Т);
F:=’ Sharifov’;
D:= 1987;
Write (Т,F,’ Rustam’)
Write (Т,D);
Close (T);
End.
Writeln процедурасы ([файлдық өзгергіш],[енгізу тізімі]);
Бұл процедура WRITE процедурасында ұқсас,
Writeln тек текстік файлда қолданылады.
Writeln- ті шақыру алдында негізу параметірінің тізімін
WRITE процедурасында қолданылатын программаларға мысал
Program Write_into_my_file;
Var F:string {фамилия}
D: Word; {туған жылы}
T:Text;
Begin
Assign (T,’my__ file. txt’);
Rewrite (Т);
F:=’ Sharifov’;
D:= 1987;
Write (Т,F,’ Rustam’)
Write (Т,D);
Close (T);
End.
Есеп шығарудағы алгоритм процедурасы.
Есеп шығарудағы алгоритм процедурасы алты қадамнан тұрады:
қадам. Студент өзінің бос кезінде h формализацилық
Мынадай пән бойынша Р. Интерфейспен Wi (S)
Информациялық фунцияны (процедураны) қолдану арқылы Fsr : егер
2) қадам. Информациялық функцияны (процедураны ) Fsr қолдану
3) қадам. Информациялық функцияны (процедураны ) Fsr
4) қадам. Информациялық функцияны (процедураны ) Fpd қолдану
5) қадам. Информациялық функцияны (процедураны ) Fpd қолдану
6) қадам. Информациялық функцияны (процедураны ) Frs
ІІІ Қорытынды
Мен осы курстық жұмысты жаза тоырып процедуралармен
Онда әрбір бағдарлама пайдаланушымен тиісті қатынасу қажет, яғни
Қолданған әдебиеттер
Белов, Теориев, Графов, Москва, «Наука» 1968.
Нечепуренко М.И. Алгаритм и програмы решение задач на
и сетех.
-Новосибирск: Наука, 1990.
3.Оре .О. Теория графов. –М.:Наука,1980.
4. Кук Д. ,Бейз Г. Компьютерные математика.
-М.:Наука ,1990.
5. Романовский И.В. Алгоритм решение