Автор работы: Пользователь скрыл имя, 09 Апреля 2014 в 10:19, курсовая работа
Программалау тілдерінің саны көп болуына байланысты олардың біршене классификациясы бар. Оның ішінде негізгі 2 түрге: фукционалдық мәніне (қызметі) және қолданылатын программалау технологиясына байланысты бөлінеді. Программалау тілдері фукнционалдық мәніне байланысты 4 үлкен классқа бөлінеді:
1) программалауға үйретуші;
2) жалпы мәнді;
3) проблемалық-бағытталған;
4) параллель программалаушы.
Қазіргі жоғары деңгейлі тілдерді осы классификацияға сәйкес қарастырамыз.
КІРІСПЕ....................................................................................................................2
ПРОГРАММАЛАУ ТЕХНОЛОГИЯЛАР.............................................................3
ОБЪЕКТІ – БАҒЫТТАЛҒАН ПРОГРАММАЛАУ.............................................4
ЛОГИКАЛЫҚ ПРОГРАММАЛАУ.......................................................................5
КӨМЕКШІ БАҒДАРЛАМАЛАР...........................................................................6
ҚОРЫТЫНДЫ.......................................................................................................22
ПАЙДАЛАНЫЛҒАН ӘДЕБИЕТТЕР.................................................................23
Процедураның құрылымы:
(тақырыбы:)
PROCEDURE аты (формальды параметрлер типтері);
Сипаттамалар бөлімдері; (бұл бөлімдер болмауы да мүмкін)
BEGIN Операторлар; (процедура денесі)
END;
Программада процедураны
PROCEDURE SUMMA (N,M,X:INTEGER);
Онда процедуранв програмада
мынадай жолмен шақыруға
Summa (19,A,50);
Жақшадағы 19 Ф 50-нақты параметрлер болып табылады. Нәтижеснде процедурадағы формальды параметрлер мынадай мәндерге ие болады:
N=19, M=A, X=50.
Процедура шақыру процесінде
формальды параметрлердің
Процедураның параметрлері мәндік және айнымалы болып екіге өлінеді. Мәндік (аргументтік) параметрлер тек қана нақты параметрлердің мәнін өзіне қабылдайды да, қайтып оларға өзінің мәнін бере алмайды. Процедураның бір орындалу барысында негізгі программаның бірден бірнеше идендификаторлары жаңа мән қабылдай алады. Айнымалы параметрлердің алдына VAR қызметші сөзі қойылып жазлады.
Мысалы:
PROCEDURE Misal (A,B:Integer; VAR X,Y: Longint);
Var S: Integer;
Begin S:=A+5*B;
X:Sqr(S); Y:Sqr(X); END;
Бұл процедураны программалық текстте төмендегідей жазып шақыруға болады:
Misal (10,5,K,l);
Проограмма орындалу барысында
Misal (10,5,K,l) шақыру идендификаторын
оқып, басқаруды Misal процедурасына жібереді
де, төмендегідей әрекеттер
1.процедураның А, В, Х, Ү формальды параметрлері (10,5,K,l) нақьы параметрледің мәнін қабылдайды:
А=10, В=5, Х=K, Ү=I,;
2.Процедура денесіндегі операторлар орындалады;
S=10+5*5=35, X=35*35=1225,
Y=1225*1225=1500625;
3.VAR қызметші сөзінен кейінгі жазылған формальды Х және Ү параметрлері процедураның орындалу барысында меншіктеген өздерінің жаңа мәндерінің нақты К-мен І параметрлеріне бергеннен кейін, басқару Misal (10,5,K,l) шақыру идендификаторынан кейін тұрған операторға өтеді;
К=X=1225, I=Y=1500625
4. әрі қарай программаның есептеулерінде К және І айнымалылары жаңа меншіктеген мәндерімен қатысады.
Процедура құру мысалдары.
Қатеттері бойынша үшбұрыштың ауданы мен гипотенузасын табу процедурасын құру.
Дұрыс құралған процедура мысалдары:
А) PROGRAM Proced 1;
VAR A, B, C, S: Real;
PROCEDURE Ushbur (M,N:Real; Var T, Q: Real);
Begin T:=M*N/2
Q:=Sqrt (Sqr (M)+Sqr(N));END;
BEGIN Readln (A,B);
(негізгі программадан Ushbur процедурасын шақыру:)
Ushbur (A, B, S, C);
Writeln (‘gip=’,C:4:2); Writeln (‘aud=’, S:4:2);
Readln End.
Ә) PROGRAM Proced 2;
VAR A, B, C, S: Real;
PROCEDURE Ushbur (M,N:Real; Var T:Real, Q: Real);
Begin T:=M*N/2
Q:=Sqrt (Sqr (M)+Sqr(N));END;
BEGIN Readln (A,B);
Ushbur (A, B, S, C);
Writeln (‘gip=’,C:4:2);
Writeln (‘aud=’, S:4:2);
Readln End.
Б) PROGRAM Proced 3;
VAR A, B, C, S: Real;
PROCEDURE Ushbur;
Begin
S:=A*B/2; C:=Sqrt(SQRT(A)+SQRT(B)); END;
BEGIN Readln (A,B);
Writeln (‘gip=’,C:4:2);
Writeln (‘aud=’, S:4:2);
Readln End.
Дұрыс құралмаған процедура мысалдары:
А) PROGRAM Proced 4;
VAR A, B, C, S: Real;
PROCEDURE Ushbur (M,N:Real; Var T, Q: Real);
Begin T:=M*N/2
Q:=Sqrt (Sqr (M)+Sqr(N));END;
(бұл процедура S пен С –ға жаңа мән қайтармайды)
BEGIN Readln (A,B);
Writeln (‘gip=’,C:4:2);
Writeln (‘aud=’, S:4:2);
Readln End.
Ә) PROGRAM Proced 5;
VAR A, B, C, S: Real;
PROCEDURE Ushbur(A,B:Real; Var S:Real, C: Real);
Begin S:=A*B/2
C:=Sqrt(SQRT(A)+SQRT(B)); END;
(бұл процедура S-кежаңа мәе қайтарады, ал С –ға қайтармайды)
BEGIN Readln (A,B);
Ushbur (A, B, S, C);
Writeln (‘gip=’,C:4:2);
Writeln (‘aud=’, S:4:2);
Readln End.
Б) PROGRAM Proced 6;
VAR A, B, C, S: Real;
PROCEDURE Ushbur (S,C:Real; Var A, B: Real);
Begin
S:=A*B/2
C:=Sqrt (Sqr (A)+Sqr(B));END;
(бұл бұрышта параметрлер
BEGIN Readln (A,B);
Ushbur (A, B, S, C);
Writeln (‘gip=’,C:4:2);
Writeln (‘aud=’, S:4:2);
Readln End.
Екі санның үлкенін табатын процедура.
PROGRAM Maxsan;
Var A,B, Max: Real;
PROCEDURE Maxsim (K, I:Real; VAR S:Real); (Махім процедурасы)
Begin If K>I Then S:=K
Else S:=I; End; (екі санды салыстырып үлкенді салыстыру)
BEGIN Write(‘2 сан енгіз:’); Readln(A,B); (негізгі программа)
Maxim(A,B,Max); Writeln(‘Max=’,Max:4:1); Readln End.
Екі санның үлкенін табатын процедураны қолданып,
берілген үш және төрт
санның үлкенін табу
PROGRAM Maxsan2;
Var A,B,С,D, Max: Real;
PROCEDURE Maxsim (K, I:Real; VAR S:Real); (Махім процедурасы)
Begin If K>I Then S:=K Else S:=I; End;
(екі санды салыстырып үлкенді салыстыру)
BEGIN Write(‘4 сан енгіз:’); Readln(A,B,С,D,); (негізгі программа)
Maxim(A,B,Max);
(процедураның орындалуы
Maxim(Мах,С,Max);
(процедураның орындалуы
Writeln(‘A,B,C сандарының:’,Max:4:1);
Maxim(Мах,D,Max);
(процедураның орындалуы нәтижесінде Мах А,В,С,D Сандарының үлкенін меншіктейді)
Writeln(‘A,B,C,D сандарының:’,Max:4:1);
Readln End.
N-нен М-ге дейінгі бүтін
табу проедурасы.
PROGRAM Proc7;
Var N,M,K: Integer; S:Longint;
PROCEDURE Sum (N, M:Integer; VAR X:Longint); (сандардың енгізу проуедурасы)
Begin X:=0; For K:= N To M Do X:=X+K; End;
BEGIN Readln (N,M);
Sum (N,M,S);
Writeln(‘SUM=’,S);
Readln END.
Бүтін Х санның бүтін Ү дәрежесін табу процедурасын құру.
PROGRAM Proc7;
Var X,Y: Integer; S:Longint;
PROCEDURE Inp (VAR A,B:Integer); (сандардың енгізу проуедурасы)
Begin Write(санды енгіз:); Readln (A);
Write (‘дәрежесін енгіз:’); Readln (B) End;
PROCEDURE Dar (A,B: Integer; VAR S: Longint);
VAR K: Byte;
Begin S:=1;
For K:=1 To B Do S:=S*A; End;
PROCEDURE Out (S:Longint); (нәтиже шығару процедурасы)
Begin Writeln (X,’ санның ‘, Y’, дәрежесі=’,S) End;
BEGIN Inp (X,Y); Dar (X,Y,S); Out(S);
Readln End.
N санның цифрларының санын шығар
PROGRAM Proc8;
Var N:Longint;
PROCEDURE San; (Sаn проуедурасы)
Var K:Integer;
Begin K:=0
Repeat
K:=K+1; N:= N Div 10; Until N=0;
Writeln(‘N санының цифрларының саны=’,K) End;
Begin Readl (N); San;
Readln END. (негізгі программа)
N санының цифрларының жұп-
PROGRAM Proc9;
Var N: Integer; K,I:Longint;
PROCEDURE San (I:Longint); (san проуедурасы)
Begin K:=0;
Repeat K:=K+1;
I:=I Div 10; Until I=0; End;
PROCEDURE Dar (I: Integer; VAR S: Longint); (dar процедурасы)
VAR J: Ineger; (онның І дәрежесін есептеу)
Begin P:=1;
For J:=1 To I Do P:=P*10; End;
PROCEDURE Jup (N:Longint); (Jup процедурасы)
Var X,D:Longint;
Begin (санның цифрларының жұп-
For I:=1 To K do Begin
Dar (K-I,D); (D идендифткаторы Dar поцедурасының орындалу нәтижесінде 10-ның К-І дәрежесін меншіктейді)
X:=N Div D; (Х идендификаторы І=1 болғанда санның бірінші цифрін, І=2 болғанда 2-ші цифрын,... І=K болғанда Л цифрын меншіктейді )
Writeln (I’, цифр =’,x);
N;=N Mod D; ( келесі циклге қалатын санның шамасы)
If X Mod 2=0 ( цифрлардың жұп-тақтығын салыстыру)
Then Write(‘бұл цифр жұп’)
Else Write (‘бұл цифр тақ’);
BEGIN Readl (N); San (N); Jup (N); (негізгі программа)
Readln End.
Массив элементтерін өндіру, шығару процедурасын құру мысалдары.
А) массив элементтерінің
PROGRAM Massiv 1;
CONST N=5;
Type Mas =Array[1…N] Of Integer;
VAR A,B:Mas; S,P,K: Integer;
PROCEDURE Inp (N:Integer; Var X: Mas);
Begin For K:=1 To N Do Read (X[K]); End;
PROCEDURE Out (N: Integer; VAR X: Mas; VAR S,P:Integer);
BEGIN S:=0; P:=1;
For K:=1 To N Do Begin S:=S+X[K];
P:=P*X[K] End End;
BEGIN Inp (N,A); Out (N,A,S,P); (негізгі программа)
Writeln (‘қосындысы=’,S); Writeln (‘Көбейтінді’,P);
Inp (N,B); Out (N,B,S,P); (‘қосындысы=’,S);
Writeln (‘Көбейтінді’,P);
Readln END.
ә) массив элементтерінің
PROGRAM Massiv 2;
CONST N=5;
VAR X,A,B:Array; [1…N] Of Integer; S,P,K: Integer;
PROCEDURE Inp
Begin For K:=1 To N Do Read (X[K]); Writeln End;
PROCEDURE Out
BEGIN S:=0; P:=1; For K:=1 To N
Begin S:=S+X[K]; P:=P*X[K] End End;
BEGIN Inp Out; (негізгі программа)
Writeln (‘қосындысы=’,S); Writeln (‘Көбейтінді’,P);
Inp; Out;
Writeln (‘қосындысы=’,S); (‘Көбейтінді’,P);
Readln END
Б) массив элементерінің
PROGRAM Proce 11;
LABEL 1;
VAR N:Longint; K:Integer;
PROCEDURE Parol;
Begin Writeln(‘пароль дұрыс емес қайтадан еңгізіңіз:’);
Readln(N); If K=3 Then Halt; K:=K+1; End;
PROCEDURE Mas;
CONST A: Array[1..5] Of Integer=(15,150,-80,50,60);
VAR S:Integer;
Begin S:=0;
For K:=1 To 5 Do S:=S+A[K];
Writeln (‘S=’, S) End;
BEGIN K:=1; (негізгі программа)
Writeln (‘пароль еңгізіңіз:’); Readln (N);
1:IF N < > 123456 Then Begin Parol; Goto 1 End;
Mas; Readln END.
Футбол чемпионатына қатысқан 12 команданың алған ұпайлары бойынша, алғашқы 3 және соңғы 5 орын алған командалар тізімін шығару поцедурасын құру.
PROGRAM Futboll;
USES Crt;
TYPE M=Array[1..12] Of Integer; N=Array [1..12] Of String;
VAR K,I,P:Integer; A:N; B:M;
PROCEDURE Engiz ( VAR B:M; VAR A:N);
Begin For K:=1 To 12 Do Begin Writeln (K’,команданың аты:’);
Readln (A[K]); Writeln (‘Оның алған ұпайы:’); Readln (B[K]) End;
End;
PROCEDURE Kemu (B:M; VAR A:N);
VAR Max,F:Integer; M:String;
BEGIN For K:=1 To 11 Do Begin
Max:=B[12]; F:=12; M:=A[12];
For I:=12 Downto K Do
If B[I] > Max Then Begin F:=I; Max:= B[I]; M:=A[I]; End;
B[F]:= B[K]; B[K]:=Max; A[F]:=A=[K]; A[K]:=M; End;
Writeln; End;
PROCEDURE Autsaider(B:M; VAR A:N);
Begin Kemu (B,A); Writeln;
Writeln (‘Артта қалған командалар:’);
For K:=8 To 12 Do Write (A[K]:7); End;
PROCEDURE Juldeger (B:M; A:N);
Begin Writeln;
Writeln (‘Жүлдегер командалар:’);
For K:1 To 3 Do Write(A[K]:7); End;
BEGIN Clsrcr; Engiz(B,A); (негізгі программа)
Autsaider (B,A); Juldeger (B,A); Readln; END
Космос кораблі Күн
PROGRAM Planeta;
USES Crt;
VAR M:Set Of 1..10;
A:Array[1..10] Of Integer;
B:Array[1..10,1..10] Of Integer;
N,X,C,D,K,I,Y,Min: Integer;