Автор: Пользователь скрыл имя, 12 Сентября 2013 в 19:23, курсовая работа
Өрнектерді өңдеуде дәстүрлі Паскаль, Бейсик программалау тілдері жиі пайдаланылады.Қазіргі кезде кеңінен қолданылатын программалау жүйесінің бірі – Turbo Pascal. Turbo Pascal - жоғарғы деңгейлі программалау жүйесі.Оның тұңғыш нұсқасын 1970 жылы швейцария физигі Никлаус Вирт ұсынған.Автор тілді алғашқы арифметикалық есептеу машинасын жасаған французды ұлы ғалымы Блез Паскальдің құрметіне Паскаль деп атап,тіл атуын үнемі бас әріппен жазылуын сұраған.Кейіннен тілді көптеген нұсқалары жарық көрді.Солардың ішінде, 1983 жылы Борланд корпорациясының қызметкері Андерсон Хейлсбергтің қосқан үлесі өте зор болды.Оның жетекшілігімен құрылған программа үлгісі – Турбо Паскаль програмалаушыларының арасында үлкен сұранысқа ие. Андерсон Хейлсбергті жасаған нұсқасы СР / М операциялық жүйесіне негізделген. Турбо Паскаль-дің жоғарғы деңгейлі логикалық құрылымы әр түрлі есептерді дәл шешуге көмегін тигізеді.
Кіріспе............................................................................................................2
1.1.Турбо Паскаль туралы түсінік...............................................................2
1.2.ТП жүйесінің ерекшеліктері..................................................................2
1.3.ТП-да жұмыс істеу..................................................................................3
Негізгі бөлім.................................................................................................4
ТП-ғы типтердің жіктелуі..................................................................4
Массив.................................................................................................4
Массив элементтері үшін жазылатын өрнектер.............................8
Массивтерге мысал есептер...............................................................9
Екі өлшемді массивті сипаттау........................................................10
Екі өлшемді массивті енгізу және шығару....................................12
Екі өлшемді массивтерге мысал есептері.......................................13
Есеп 1................................................................................................................14
а) есептің берілгені......................................................................................14
ә) есептің алгоритімі...................................................................................14
б) программа бөлімі....................................................................................15
в)программа нәтитжесі ..............................................................................16
Есеп 2................................................................................................................17
а) есептің берілгені......................................................................................17
ә)есептің алгоритімі....................................................................................17
б) программа бөлімі....................................................................................18
в)программа нәтитжесі...............................................................................19
3. Қорытынды...................................................................................................20
4. Қолданылған әдебиеттер.............................................................................21
type т = аrrау [ 1..40 ] оf real ;
var а,б,с,д: т;
Мұның артықшылығы – программадағы типі т болатын бірнеше массив бір ғана жолмен ығайлы түрде сипатталып тұр.Массив типтер бөлігінде көрсетілмей, бірден айнымалылар бөлігінде былай да анықтала береді:
var < идентификатор, ... > : аrrау [ < индекс типі > ] оf < элемент типі > ;
Мысалдар:
Type
Klass= (k1, k2, k3, k4 );
Znak = array [1..255] of char;
Var
M1: znak; { Znak типі бөлігінде анықталған}
M2: array [1..60] of integer; {М2 массивін тікелей сипаттау}
M3: array [1..4] of klass;
Mas: array [1..4] of integer;
Lit: array [char] of real;
Ogr: array [5..15] of char;
Bol: array [boolean] of integer;
A: array [1..5] of real;
Aj: array [ қаңтар, .., желтоқсан ] of integer;
Бірөлшемді массивті көбінесе сызықтық массив деп атайды.Массивті жадқа ендіру мен оны экранға шығаруды бөлек циклдер бойынша орындаған дұрыс.Оларды тип бөлігіндегі сипаттаудың тағы да бірнеше мысалын қарастырайық:
Type S1= array [1..n] of real;
S2= array [1..m] of integer;
S3= array [1..k] of char;
S4= array [1..20] of Boolean;
Var A, B : S1;
L,G : S4;
C :S2;
D :S3;
Массивті сипаттағанда индекстің үлкен мәні үшін кез келген, яғни 255 символдан аспайтын санды алуға болады, бірақ програмада пайдаланылатын индекстің мәні оны берілген ең үлкен мәніне дейін болуы шарт емес.Мысалы, массивті сипаттағанда array [1..255] деп жазып, программаны орындағанда і<255 кез келген мәнді пайдалануға болады.Программада і-дің мәні массивті сипаттағандағы оның ең үлкен мәнінен ешқашан да аспауы қажет.
Индекс типі стандартты, бүтін немесе нақты бола алмайды.Сондықтан, сипаттауды былай жазуға болмайды:
Var A: array [5] of real;
Немесе
Var A: array [integer] of real;
Егер бірнеше массив
бірдей базалық және
Var A,В,С: array [1..10] of real;
Мұнда А,В,С – массивтер, олар нақты типтегі 10 саннан тұрады.
Программада «индекс»
және «индекс типі» ұғымдары
әр түрлі мағына береді.Индекс
типі массивті сипаттағанда
Сондықтан да көбінесе массивтерді индекстік айнымалылар деп те атайды.Ал индекссіз айнымалыларды массивтерден ажырату үшін қарапайым айнымалылар деп атайды.Базалық типтегі айнымалыларға қандай амал қолданылса, массив элементтеріне де сондай амал қолдануға болады.
Мысалы, программаның операторлық бөлігінде массив элементтері үшін мынадай өрнекер жазуға болады:
А[3]:= С[4]+5;
Р:= Х[3*і+1];
Паскаль тілінде массивтерге = (тең) , < > (тең емес) және меншіктеу амалдарын қолдануға болады.Ал масив элементтері үшін олардың типіне сәйкес кез келген амал орындала береді.
Мысалы, А және
В массивтері былайша
Var A,В: array [1..10] of real;
Онда пайдаланылған амалдар төмендегідей нәтиже береді.
Өрнек |
Нәтиже |
А = В
А < > В
А:=В |
А массивінің әр элементінің мәні В массивнің сәйкес элемементінің мәнін тең болса, онда нәтиже true болады.
А массивіні ең аз дегенде бір элементінің мәні В массивінің сәйкес элементінің мәніне тең болмаса, онда нәтиже true болады.
В массивінің барлық элементтері А массивінің сәйкес элементтеріне айналады. |
Массив элементтері өрнектерде read, readln, write, writeln тәрізді операторлардың параметрі міндетін атқара отырып, циклдік операторларда пайдаланылады немесе айнымалыларға басқа мән меншіктеуде операнд, яғни аргумент рөлін атқарады.
Мысалы,
А массиві элементтерін
For i:=1 to n do
Read(a[i]);
А массиві элементтерін экранға шығару үшін:
For i:=1 to n do
Write(a[i],’ ‘);
операторлары қолданылады.
Массивке мысал:
13 бүтін саннан
тұратын массивтің
Program Orta1;
Var x : array [1..13] of integer; i : integer; s : real;
begin
s:=0;
writeln (‘бос орын арқылы 13 сан енгізіңдер: ’);
for i:=1 to 13 do
begin
read (x[i]);
s := s+x[i];
end;
s := s/13;
writeln (‘s=’,s:8:4);
for i:= 1 to 13 do writeln (s-x[i])
end.
Массив элементтерімен көптеген есептерді шығаруға болады.Мысалы, массив элементтерінің ең кіші , ең үлкен элементтері табуға болады.Массив элементтерін өсу реті не кему реті бойынша орналастыруға болады. n элементтерінен тұратын массив элементтерін өсу реті боынша орналастыруды қарастырайық:
Program Ret1;
Var a:array [1..50] of real; k,I,j: integer; m:real;
Begin
Write (‘элементтер саны n-ді (n<50) енгізіңдер:’); Readln (n);
For k:=1 to n do
Begin
Write (k,’-элементті енгізіңдер:=’); readln (a[k]) ;
End;
For k:=1 to n do
Begin
i:=k;
for j:=k+1 to n do
if a[j] <a[i] then
begin
i:=j; m:= a[k]; a[k]:=a[i]; a[i]:= m;
end;
write (‘ ‘, a[k]:6:2);
end;
end.
Екі өлшемді массивтер
Турбо Паскаль
программалау тілі бір өлшемді
массивтермен қатар екі
Екі өлшемді массивті Var бөлімінде сипаттаудың жалпы түрі:
Var
массив атауы : array [ а1..аn, б1..бn] of элемент типі;
Мұнда айнымалылар бөлімінде осы типке жататын массивтер көрсетіледі.
Екі өлшемді массивті Type бөлімінде сипаттаудың жалпы түрі:
Type
массив типінің атауы = array [ а1..аn, б1..бn] of элемент типі;
Var массив атауы : массив типінің атауы ;
Мұндағы ,а1..аn,
б1..бn – екі қлшемді
а1 және аn – массив қатарыны алғашқы және соғы мәні;
б1 және бn – массив бағаныны алғашқы және соғы мәні.
А [n ,m] – массивін сипаттау жолы:
і
А массиві: 1 2 3 ... n
J 1
2
3
.
m
Var
a:array [1..n,1.. m] of integer;
Type бөлімінде екі өлшемді массивтерді сипаттау:
Type GR = array [1..n,1..m] of integer;
Var A : GR;
Мұнда индекстер әр типте сипатталып, одан соң массив элементтерінің базалық типі көрсетілген.Екі өлшемді массивтерді сипаттауды мынандай да жолдары бар:
Type GR = array [1..n] of array [1..m] of < элемент типі >;
Мысалы,
Type GR = array [1..2] of array [1..3] of іnteger ;
...
Var A : GR;
Мұнда алдымен жол индекстерінің [1..n] типі, одан со күрделі базалық тип көрсетілген: array [1..m] of < элемент типі >;
Егер көп өлшемді массив құратын кезде базалық тип ретінде басқа массив алынса, онда сипаттау бөлігі былай жазылады:
Type vector = array [1..4] of integer;
massiv = array [1..4] of vector;
var matr: massiv;
Мұнда massiv және matr массивтері екі өлшемді, яғни massiv [ 4,4 ] , matr [ 4,4 ] – олар 4 жол және 4 бағанадан тұратын кесте элементтерін бейнелейді.
Егер программада массивтің бағанасы мен жолын бөліп жазу қажет болса, онда оны былай сипаттау қолайлы:
Type Т1 = array [1..m] of < элемент типі >;
Т= array [1..n] of Т1;
Var В:Т; А:Т1;
Мұнда алдымен бағаны типі Т1 көрсетіледі де , одан соң ол жолдың типі арқылы матрицаның типі Т көрсетіледі.Айнымалылар бөлігінде екі өлшемді массив - В және бір өдшемді массив – А көрсетілген.
Екі өлшемді массивтерде жол мен бағанның қиылысуында орналасқан әрбір элементтің орны сол жол және баған номерімен анықталады. Сондықтан екі өлшемді массивті сипаттау үшін екі индекс қолданылады. Массивтің элементін жазу кезінде индекстер массивтің атынан соң тік жақша ішінде жазылады оларды арасынан үтір қойылады.Мысалы, натурал сандардан тұратын өлшемі N x M болатынекі өлшемді массивті сипаттау былай орындалады:
Var mas: array [1..n,1..n] of integer;
Индекс типіне
integer, real стандартты типтерден
өзге типтердің барлығын
Мысалы,
Type
Den = ( mo, tue, th, fr, sat, sum);
Rden = mo..fr;
Zadan = array [1..25, rden] of integer;
Var
A : array [den] of array [1..25] of char;
B : zadan;
C : array [1..365] of zadan;
Көп өлшемді
массивтермен жұмыс атқарғанда
бір цикл операторының ішінде
бірнеше цикл операторлары
For i:= 1 to n do
For j:=1 to m do
Read (A[i,j]) ;
Немесе экранға мәлімет шығару үшін:
For i:= 1 to n do
Begin
Writeln ;
For j:=1 to m do
Write (В[i, j]:8:3)
End.
Индекстері мен элементтерінің типтері бірдей массивтардың бірінің мәндерін екіншісіне көшіру үшін , мысалы А:=D; меншіктеу операторын немесе цикл операторы арқылы былай орындау мүмкіндігі бар:
For i:= 1 to 4 do А[і]:=D[і];