Автор работы: Пользователь скрыл имя, 31 Января 2013 в 13:25, реферат
Паскаль тілі бұрын құрылған (Фортран, Алгол және т.б.) программалау тілдерінен маңызды ерекшелігі ол құрылымдық программалау идеясын өмірге біртіндеп енгізу. Паскаль тілінің тағы бір ерекшелігі ол деректер құрылымының концепциясының алгоритм түсінігімен қатар программалаудың негізінде жатқан фундаменталды түсініктер қатарына кіруі.
КІРІСПЕ...................................................................................................................3
І. БІР ӨЛШЕМДІ МАССИВКЕ СИПАТТАМА
1.1. Массив туралы жалпы түсінік...............................................................5
1.2. Бір өлшемді массив................................................................................8
ІІ. ЕКІ ӨЛШЕМДІ МАССИВТІҢ ПРОГРАММАЛАУДА ҚОЛДАНЫЛУЫ
2.1. Екі өлшемді массив.............................................................................14
2.2. Мәтіндік файлға мәліметтер жазу және оқу......................................15
2.3. Массивтерді сорттау және іздеу........................................................22
2.4. Масссив элементтерін пайдалана отырып есептер шығару............24
ҚОРЫТЫНДЫ......................................................................................................29
ПАЙДАЛАНЫЛҒАН ӘДЕБИЕТТЕР..................................................................31
reset(Fileln);
readln(Fileln,Sanau);
for i:=1 to Sanau do
read(Fileln,San[i]);
close(Fileln);
Дәл осындай, егер өлшемдері белгілі болса, мәліметтерді екі өлшемді массивтен оқу да онша қиыншылық туғызбайды. `MayFile.in5` файлынан мәліметтерді оқитын программадан үзінді мысалға келтірейік:
procedure lnit;
{массив өлшемдерiн оқу, курсорды жаңа жолға көшiру}
Мынаған көңіл аударыңыз, массив элементтерін оқу кезінде, Readln() процедурасын қолданбай, тек қана Read() процедурасы қолданылды. Бұл мүмкін еді, себебі массив элементтерін оқу үшін оның өлшемдері алдын ала белгілі болды. Егер мәтіндік файлдағы элементтер жазбалар саны алдын ала белгісіз болса, онда қайталану саны белгісіз цикл операторларын қолдануға тура келеді.
Тапсырма
Қолданбалы программаларда массивтерге байланысты операциялардың екі түрі кездеседі:
Массивтерді сорттаудың қарапайым вариантын қарастырып көрелік (таңдап сорттау). n элементті массив болсын дерлік; ең алдымен оның ішінен элементтер арасынан 2,3,...n нөмірлі кішілерін тауып аламыз да, бірінші элементпен орнын ауыстырамыз, соңынан 3,4,...n нөмірлі элементтер ішінен кішісін тауып алып, екіншісімен ауыстырамыз және т.с.с. Нәтижесінде біздің массив өсу деңгейіне қарай өздігінен сортталған болып шығады.
program SelectSort;
const n = 10;
var a: array [1..n] of integer;
i,j,jmin,buf: integer;
{jmin – ең кіші элемент номері,
buf екі элемент мағыналарын өзгерткенде пайда болады}
begin
for i:=1 to 10 do begin
write(' элемент номерін енгізу ',i,' -> ');
readln(a[i]);
end;
for i:=1 to n-1 do begin
jmin:=i;
for j:=i+1 to n do
if a[j]<jmin then jmin:=j;
buf:=a[i];
a[i]:=a[jmin];
a[jmin]:=buf;
end;
write('Нәтиже: ');
for i:=1 to 10 do write(a[i],' ');
readln;
end.
Енді басқа әдісті қарастырып көрелік — көбікті сорттау, ол алдыңғы әдіске қарағанда жылдамырақ жұмыс істейтін болады. Алғашқы этапта біз n-ші элементтен бастап 2-шіге дейін қозғалатын боламыз және оның әрқайсысын алдыңғысынан кіші ме деп тексереміз; егер кіші болса, онда соңғысын алдыңғысымен ауыстыра саламыз. Нәтижесінде алғашқы элемент массивтегі ең кішісі болады. Екінші этапта сондай-ақ n-ші элементтен 3-ге дейін жүреміз, үшіншісінде — n-шіден 4-ге,дейін және осылай жалғаса береді. Қорытындысында массив өсу ретіне қарай сортталған болып шығатынын байқаймыз.
program BubbleSort;
...
var i,j: integer;
buf: integer;
begin
...
for i:=2 to n do
for j:=n downto i do
if a[j]<a[j-1] then begin
buf:=a[j];
a[j]:=a[j-1];
a[j-1]:=buf;
end;
end.
2.4. Масссив элементтерін пайдалана отырып есептер шығару
А) массив элементтерінің қосындысын мен көбейтіндісін табу:
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.
В) Массивтің теріс элементтерінің қосындысын шығару.
' PROGRAM PR1;
CONST N=20;
VAR K:INTEGER;X:ARRAY [1..N] OF REAL;
S:REAL;
BEGIN FOR K:=1 TO N DO REFD (X[K]);
S:=0; FOR K:=1 TO N DO IF X [K]<0
THEN S:=S+X [K];
WRITELN (Теріс элементтер ќосындысы',S:7:2); END.
ҚОРЫТЫНДЫ
Курстық жұмысты жазу барысында Turbo Pascal бағдарламасымен жұмыс жасауда мол тәжірбиеге ие болдым. Turbo Pascal - дағы масивтермен жұмыс істеуді және қойылған мaқcaтты шешу, шарттарды жазуды, жөңдеуді, мәтінді экранға шығару жолдарын үйрендім.
Қорытындылай келе, Массив дегеніміз – белгілі бір атауға біріктірілген бір типті шамалардың реттелген тізбегі.
Массив және оның түрлері туралы мол мағұлмат ала отыра мен осы курстық жұмысты жазу барсында өз мақсатыма жеттім. Қазіргі ақпараттық технологиялар баспасөз бен электронды арналардың дамуына да игі әсерін тигізіп келеді және болашақта да шешуші мәнге ие болады. Сонымен қатар, газет-журнал редакциялары, телерадиоарналар менеджмент және маркетинг құралдарымен қатар қаруланса, әлемде жинақталған озық тәжірибелерді басшылыққа алса, мамандардың біліктілігі мен шеберлігін арттыруға көңіл аударып, осы мақсатқа жаңа технологияларды пайдаланса, оқырманы мен көрермені, тыңдарманы мен жанашырлары да ұтар еді, әрі табысты іс жүргізер еді. Сондықтанда Турбо Паскаль программасын күнделікті дербес компьютерді пайдалану жұымысымды жеңілдетері сөзсіз.
Менің курстық жұмысымда массив және массив элементтері туралы жазылды. Сонымен қорытындылай келе, элементтерінің саны алдын-ала белгілі бір типті индексті айнымалылардың жиынтығын массив деп атайды. Массивтің типі күрделі болып табылады. Массивтерді бағдарламада қолдану үшін, оларға белгілі бір атау беріледі. Содан соң бағдарламаның VAR немесе TYPE ARRAY қызметші сөзімен сипаттап, компьютердің жадынан массив элементтеріне орын бөлінеді. Массивтердің жалпы жазылуы түрі мынадай болып келеді:
TYPE «Массив атауы»= ARRAY[X1]OF X2;
VAR «Массив атауы»:ARRAY[X1]OF X2;
«Массив атауы»= массивті белгіленген идентификатор Х, А, Маs т.б
ARRAY- массив ұғымын білдіретін
қызметші сөз болып табылады.
Кез-келген массив өсу ретіне қарай сортталған болып шығады.
ПАЙДАЛАНЫЛҒАН ӘДЕБИЕТТЕР
Информация о работе Мәтіндік файлға мәліметтер жазу және оқу