Автор работы: Пользователь скрыл имя, 03 Января 2014 в 22:41, курсовая работа
Бағдарлама жазуда «алгоритм» ұғымы басты роль атқарады. Алгоритм – орындаушыға белгілі бір мақсатқа, нәтижеге жетуге арналып жазылған нұсқаулардың жүйеленген, әр қадамында бір әрекетті іске асыратын нұсқау оператор болып табылады. Команда бірнеше операторлар қоспасынан да тұруы мүмкін. Есептерді шығарғанда, алгоритм құрғанда белгілі бір ЭЕМ мен бағдарламалау тілінің мүмкіндіктерін ескеру керек. Бағдарлама бірнеше бөлімнен құралып жазылады: сипаттау бөлімі, процедуралар мен функциялар бөлімі, негізгі бөлім. Паскаль тіліндегі бағдарламада арнайы стандартты процедуралар қолданады. Процедура - аты бойынша қатынас құруға болатын операторлар тізбегі.Writeln процедурасы Паскальдың стандартты немесе тіркелген процедурасына жатады.
КІРІСПЕ 4
1 ЖАЛПЫ БӨЛІМ 6
1.1 Пәндік аумақты сипаттау 6
1.2 Бағдарламалау тілінің элементтеріне шолу 12
2 АРНАЙЫ БӨЛІМ 18
2.1 Тапсырманың жалпы қойылымы 18
2.2 Құрылымдық және функционалдық сұлбалар 19
2.3. Модульдерді, процедуралар мен функцияларды сипаттау 25
2.4 Идентификатор кестесі 29
ҚОРЫТЫНДЫ 31
ПАЙДАЛАНҒАН ӘДЕБИЕТТЕР ТІЗІМІ 32
ҚОСЫМША А 33
ҚОСЫМША Б 35
ҚОСЫМШ В 36
Жалпы түрі:
Мұндағы бастапқы мән және соңғы мән сан немесе өрнек болуы мүмкін.
For-do қадам оң болғанда,
For-downto қадам теріс болғанда
а) диапазон арқылы басқарушы айнымалы мәні ауыспалы және бір уақытта қайталау саны цикл ішіне жинақталады;
б) ауыспалы мән өзгеріп отырады (өспелі немесе кемімелі);
в) жеке құбылыс әрбір итерацияда орындалады (цикл операторының ішінде).
Үшін цикліне келесі жай мысалды қарастырайық:
For i:=1 to 10 do M[i]:=i*2
Берілген мысалда қайталау циклі 10-ды меншіктейді, сонымен бірге і басқарушы айнымалы 1,2, ..., 9, 10 мәндерін қабылдайды.
Үшін циклдің құрылымдық диаграммасы көрсетілген:
Үшін циклінің операторы:
Диапазон
Басқарушы айымалыны қолдану кезінде төмендегіше шек қойылады:
Басқарушы айнымалыны әрқашан бастапқы мәнді инициализациялайды. Кей жағдайда to қызметші сөзі әрбір басқарушы айнымалының қайталау бірілігінде қолданылады. Егер бастапқы мән соңғы мәннен үлкен болса, онда for операторы ішінде бағдарлама орындалмайды. Кейде цикл операторында downto қызметші сөзін қолданса,онда басқарушы айнымалы мәні әрбір қайталау бірлігінде кемиді. Егер бастапқы мән мен соңғы мән тең болса, онда for операторы ішінде бағдарлама орындалады.
Сонымен қортындылайтын болсақ, тапсырманы шешу үшін оны құрайтын элементтерді қолдана білу керек. Ол элементтердің мүмкіншілктері мен шектеуліктерін білу керек.
1. Енгізілген мәліметтерді бақылай отырып, массив өлшемін пернетақтадан енгізу;
2. Масивтегі көрсетілген аумақтың орнын ауыстыру және өңделген матрицаны экранға шығару;
3. Көрсетілген траектория бойынша өту және пайда болған нәтижені матрица жол түрінде шығару;
4.Матрицадағы ең кіші және ең үлкен мәндерді шығару.
ai,j=xk;
xk=f(xk-1);
x0=-p;
f(x)=cos2(x+6)
2-суретте матрицада айналып өтудің аймағы мен траектория сұлбасы көрсетілген.
2-сурет. Матрицада айналып өтудің аймағы мен траектория сұлбасы
Өлшемді енгізгеннен
кейін бағдарлама экранға белгілі
заңдылық бойынша автоматты түрде
толтырылған бастапқы матрицаны
шығарады. Матрицада берілген аймақтардың
алмасуын жүргізеді және экранға
өзгертілген матрицаны
Кейін бағдарлама бір
өлшемді массивке(жол-массив) мәнді
жазумен берілген траектория бойынша
матрицада айналып өтуді
Құрылымдық сұлба арқылы бағдарламаның жалпы сипатымен танысуға болады.
1 Тапсырманың құрылымдық сұлбасы
Сипаттау бөлімі |
Program P1......;{тақырыбы, бағдарлама атауы} {¥} Uses………..; {*tpu кеңейтілуі бар ішкі модулдердің қосылуы} {¥} Var..................;{ Procedure Pr1…… ; {процедураларды сипаттау} {¥} Function F1……….; {функцияларды сипаттау} {¥} |
Негізгі бағдарлама |
Begin {негізгі бағдарлама басы} {+} ………{негізгі бағдарлама денесі} {¥} End {негізгі бағдарлама соңы} {+} |
Ескерту. {+} – бағдарламаның негізгі бөлігі, {¥} – бағдарламаның негізгі емес бөлігі.
Функциональды сұлбаны бағдарламаларға аудару үшін Паскаль тілінің басқару құрылымына (операторлар) бөлу қажет. Одан кейін бірінші оператордан бастап, синтаксисті сақтай отырып жазамыз.
Бірінші блок схемада орындалатын есептің жалпы түрі келтірілген. Мұнда тапсырма бойынша максимум мен минимум табу жолы көрсетілген.Есептің басы, денесі, аяғы.
Блок –схемаға сәйкес бағдарламаның толық тексті:
Program matrix;
Uses crt;
var a:array[1..100,1..100] of real;
t,i,j,n:Integer; {Бүтін сан}
tmp:real; {Нақты сан}
b:array[1..100] of real;{бұл массив траектория элементімен толтырылады}
f:text;
{+----- Массив өлшемін енгізу -----------+}
Екінші блок-схемаға түсініктеме:
Блок –схемаға сәйкес бағдарламаның толық тексті:
Procedure Input;
begin
Write(' Матрица өлшемін енгізігіз ');Readln(n);
if n mod 2 = 0 then begin
Writeln(' Қате: өлшем жұп сан болуы керек ');
input;
end;
end;
{+----- Массивті толтыру-----------------+}
Үшінші блок схема:
Бағдарламаның толық тексті:
Procedure Out(var n:Integer);
begin
append(f);
writeln(f);
for i:=1 to n do begin
for j:=1 to n do
if a[i,j]<0 then begin
write(f,a[i,j]:3:3,' ');
write(a[i,j]:3:3,' ');
end
else begin
write(f,' ',a[i,j]:3:3,' ');
write(' ',a[i,j]:3:3,' ');
end;
Writeln(f,' ');
writeln;
end;
Close(f);
end;
{+----- Көрсетілген аймақтар орын алмастыру ---+}
Төртінші блок схема:
Бағдарламаның толық тесті:
Procedure obmen(var n:integer);
Var p:Integer;
begin
p:=n div 4+1;
for i:=n div 4+1 to n div 2+1 do begin
p:=p-1;
for j:=(n div 2+1)+p to n-p do begin
tmp:=a[i,j];
a[i,j]:=a[i+(n div 2),j-(n div 2)];
a[i+(n div 2),j-(n div 2)]:=tmp;
end;
end;
end;
{+-----Берілген траектория бойынша айналып өту ------+}
Бесінші блок-схема:
Бағдарламаның толық тексті:
Procedure Obhod (var n :integer);
begin
t:=1;
append(f);
writeln(f);
j:=n div 4;
for i:=n div 4+1 downto 1 do begin
j:=j+1;
b[t]:=a[i,j];
t:=t+1;
end;
for i:=2 to n div 4+1 do begin
j:=j+1;
b[t]:=a[i,j];
t:=t+1;
end;
for i:=n div 4 +2 to n div 2+1 do begin
j:=j-1;
b[t]:=a[i,j];
t:=t+1;
end;
for i:=n div 2 downto n div 4+2 do begin
j:=j-1;
b[t]:=a[i,j];
t:=t+1;
end;
Writeln(' Берілген траектория бойынша айналып өту :');
for i:=1 to t-1 do begin
write(f,b[i]:3:3,' ');
write(b[i]:3:3,' ');
end;
close(f);
end;
{+----- Өсу бойынша іріктеу ---------+}
Алгоритмді бірден бағдарлама түрінде жазу алгоитмнің құрылуының өзін қиындататындықтан, функционалдық сұлбаны қолдану тиімді.
Сипаттау бөлімі
Program (Өзіміз қоятын бағдарлама аты жазылады)
Uses (Кітапханалар аттары жазылады)
Label (Бағдарламада қолданылатын белгілер бөлімі)
Const (Тұрақты шамалар жазылады)
Type (Өзіміз анықтайтын айнымалылар көрсетіледі)
Var (Құратын бағдарламамызға қажетті барлық айнымалылар түрі көрсетіліп жазылады)
Процедуралар мен функциялар бөлімі
Procedure (Процедура мәтіні толық жазылады)
Function (Функция мәтіні толық жазылады)
Негізгі бөлім
Begin
Бағдарлама денесі, яғни негізгі нәтижеге жету үшін пайдаланылатын нұсқаулар тізбесі жазылады.
End.
Қарапайым сәлемдесу бағдарламасын құралық:
Program Hello_CHIKO;
Var Name: String; {Мәтіндік шама Name}
BEGIN
Write(‘Толық атыңыз кім?’) {Сұрақты экранға жазып шығарады}
ReadLn(Name);
Writeln(‘Сәлем,’,Name,’!’); {Сәлемдесуді экранға шығару}
ReadLn
END.
Бұл мысалдан мынаны байқауға болады:
1Сипаттау бөліміндегі
түйінді сөздердің қажеттісін
ғана пайдалануға ғана
2Бағдарламаның әр
нұсқауының соңы нүктелі
3Соңғы END түйінді сөзінің соңына нүкте қою керектігін.
Program түйінді сөзінен кейін бағдарлама шартына байланысты өзіміз таңдап алған атты тек латын әліпбиі әріптерін пайдаланып жазамыз.
Сипаттау бөліміндегі
түйінді сөздерден кейінгі
Uses Crt, Graph, Printer, Overlay; т.б. кітапхана аттарының қажеттісі үтірмен ажыратылып жазылады. Кітапхананы өзіміз де жасауымызға болады.
Const Pi=3.14159; g=9.81; Тұрақты шамалар аты, содан соң теңдік таңбасы және мәні беріледі. Аралары нүктелі үтірмен ажыратылып жазылады. [12, б 98-102; 13, б 326-328]
Var A, B, C: integer; құратын бағдарламамызға қажетті барлық айнымалылар аттары және олардың қандай шама екенін көрсететін түрі жазылады. Әр түрлі шамалар бөлек-бөлек жазылып, бір тектес шамалар аттары бірнешеу болса аралары үтірмен бөлінеді де, одан соң қос нүкте (:) қойылып, түрі көрсетіледі. [14, б 256-260]Турбо Паскальда стандартты: integer, real, char, boolean сияқты шама түрлері болады.Сондай-ақ Паскальда шамалар түрлерін өзіміз анықтап, жаңа айнымалылар түрлерін көрсетуге де болады.