Матрицамен Жұмыс

 

 

 

Мазмұны

 

 

 

Кіріспе

 

Берілген бағдарлама матрицамен жұмыс жасауды қарастырады. Курстық жұмыста квадратты матрица берілген. Матрица массивтермен берілетіндіктен, күрделі типтегі есепке жатады.

Күрделі типке – массивтер, жиындар, жазулар, жолдар және файлдар жатады. Күрделі типтің элементтері қарапайым немесе күрделі типтер болуы мүмкін. Күрделі типті енгізу бағдарламаны күшейтеді және күрделі есептерді шешуге мүмкіндік береді.Тұрмыста тізбектелген сандарды, кестелерді, фамилия тізімдерін көп пайдаланамыз, олар бір өлшемді (жатық немесе тік жол), екі өлшемді (матрица) массив болуы немесе жиын болуы мүмкін. Тапсырманы орындамас бұрын, оның алгоритмін құрып алдым.

Мәліметтерді өңдеу  үшін іріктеу жүргіземіз. Іріктеу  деп белгілі ережеге сәйкес массив элементтерін бөлуді айтады. Менің курстық жұмысымда массивті элементінің өсуі және кемуі бойынша іріктеу жүргізілді. егер 1 элемент 2 элементтен кіші болса, олар орындарымен ауысады. бұл процес көрші элементтер арасында қайталанады. осылай барлық элементтер өңделеді. басқа оын ауыстырулар болмаса, алгоитм өз жұмысын аяқтайды.

Бағдарлама жазуда «алгоритм» ұғымы басты роль атқарады. Алгоритм – орындаушыға белгілі бір  мақсатқа, нәтижеге жетуге арналып  жазылған нұсқаулардың жүйеленген, әр қадамында бір әрекетті іске асыратын нұсқау оператор болып табылады. Команда бірнеше операторлар қоспасынан да тұруы мүмкін. Есептерді шығарғанда, алгоритм құрғанда белгілі бір ЭЕМ мен бағдарламалау тілінің мүмкіндіктерін ескеру керек. Бағдарлама бірнеше бөлімнен құралып жазылады: сипаттау бөлімі, процедуралар мен функциялар бөлімі, негізгі бөлім. Паскаль тіліндегі бағдарламада арнайы стандартты процедуралар қолданады . Процедура - аты бойынша қатынас құруға болатын операторлар тізбегі.Writeln процедурасы Паскальдың стандартты немесе тіркелген процедурасына жатады . Бағдарламалаушы идентификатор ретінде мыналарды қанағаттандыратын кез-келген символдар тізбегін пайдалана алады :

- Латын алфавитінің  әріптері цифрлар астын сызу белгілері .

-  Идентификатор цифрдан басталмайды .

-  Хордағы сөздік  идентификатор ретінде қолдануға болмайды .

- Идентификатор ұзындығын еркін таңдауға болады . Әріптердің үлкен кішісінің ешқандай роль атқармайды .

Бағдарламаның жұмыс істеу нәтижесінде  экранда өзгергенге дейінгі және кейінгі матрицаны айқын көруге болады, траектория бойынша дұрыс өтуін және іріктеудің дұрыстығын тексеруге болады. Сонымен қатар бағдарлама text.txt файлға түрленген нәтижелер жазуын жүргізеді. Оның көмегімен бағдарламаның орындалу нәтижесін қарауға, басып шығаруға болады.

Курстық жұмыс екі  бөлімнен, кіріспеден, қорытындыдан, пайдаланған  әдебиеттер тізімінен және қосымшалардан  тұрады.

Бұл курстық жұмыстың мақсаты:

1) Паскаль тілінде екі өлшемді массивпен жұмыс;

2) бағдарламалау тілінің элементтеріне шолу;

3) берілген тапсырма бойынша бағдарламаға сипаттама беру ;

4) берілген тапсырма  бойынша құрылымдық және функционалдық  сұлбалар құру;

5) модульдерді, процедуралар  мен функцияларды сипаттау.

Жұмыстың териялық базасы Заурбеков Н.С., Жұмажанов Б.Ж., Наумова А.Н.,Фаронов, Культин ,Халыкова К.З. еңбектері болып табылады.

Курстық жұмыс өзіне  үш негізгі бөлімді, кіріспе, қорытынды  және қолданылған әдебиеттер тізімін  қосады.

Курстық жұмыс көптеген отандық және шетелдік авторлардың  әдебиеттері мен басылымдарына  сүйене отырып жазылды

 

 

1 Жалпы бөлім

1.1 Пәндік аумақты сипаттау

 

Паскаль тілінде матрица негізгі екі өлшемді массивпен беріледі. Матрицаны қарастырмас бұрын массивтерге тоқталайық.

Массив дегеніміз – бір типтегі берілгендер жиыны. Басқаша айтқанда, массив – бір атауға біріктіріліген айнымалылардың реттелген тізбегі. Айнымалылардың – массив элементтерінің типтері бірдей болады. Массив бір ғана атпен беріледі. Сөйтіп, Паскаль тіліндегі массив ұғымы алгоритмдік тілдегі кесте ұғымына сәйкес келеді. [1, б 201-203]

Индекс типі стандартты, бүтін немесе нақты тип бола алмайды. бағдарламада «индекс» және «индекстің типі» . Ғымдарын шатастыруға болмайды.

Индекс типі массивті бейнелегенде пайдаланылса, индекс массив элементтерін белгілеу үшін операторлық  бөлікте пайдаланылады. Индексті бейнелегенде қандай тип берілсе, индекс сол типте ғана болуы тиіс.

Индекс өрнек, айнымалы немесе тұрақты болып берілуі  мүмкін.

Сондықтан да көп жағдайларда  массивтерді индексті айнымалылар  деп те атайды. Ал индекссіз айнымалыларды  массивтерден ажырату үшін қарапайым айнымалылар дейді. Базалық типтегі айнымалыларға қандай амалдар қолданылса, массив элементтеріне де сондай амалдар қолдануға болады.

Егер массив атауында бір ғана индекс болса, онда ол массивті бір өлшемді, ал екі индекс болса  – екі өлшемді және т.с.с. n инедексті болса, n өлшемді массив дейді. Бір өлшемді массив элементтері вектор, ал екі өлшемді массив элементтері матрица деп аталады.

Массив элементтерін кездейсоқ сандармен де енгізуге болады. Массивтерде қолданылатын амалдар:

- массивті толтыру;

- массив элементтерін алмастыру;

- массив элементтерін өшіру;

- массивке элементтер қосу;

- массив элементтерін сұрыптау;

- массивтерді түрлендіру. 

ЭЕМ-нің жадында сандардың бір-бірімен  байланысқан көптеген мәндерін сақтау үшін индексті айнымалылар, яғни массивтер қолданылады. Массив дегеніміз – бірыңғай шамалар тізбегінің бір атаумен аталып реттелген жиыны. Математикадағы вектор, матрица осы массивке мысал бола алады. Тізбектің айнымалылары бір индексті элементтерден тұрса, онда бір өлшемді массив болады. Олардың индекстері сандармен немесе белгілі бір әріптермен жақша ішінде жазылады, мысалы: А(1), С(12), К(100). Массивпен жұмыс істеу үшін оның әр элементінің мәні белгілі болуы тиіс. Сондай-ақ массивтің идентификаторы /аты/ да жай айнымалының идентификаторы сияқты белгіленеді.

Паскаль тілінде массивтің номері /индексі/ тік жақшаға алынып, жазылады, мысалы: 1,6; 4,9; 5; 8,9; 0,47 – мәндерінен тұратын  А массивін былай жазамыз: А[1]=1,6; А[2]=4,9; А[3]=5; А[4]=8,9; А[5]=0,47. Егер есептеу барысында А1, А2, А3, ... А25 массиві кездессе, онда оны бағдарлама барысында А[25] түрінде жазамыз. Мұндағы А-массив аты болады, 25-оның индексінің қабылдайтын ең үлкен мәні болып есептеледі. [2, б 123-126 ]

Паскаль тілінде массивті бағдарламада қолдану үшін алдымен оларды міндетті түрде арнаулы ARRAY /ағылшын тілінен аударғанда - массив/ - операторы арқылы сипаттап жазу керек. Ол айнымалы – VAR немесе TYPE – тип бөлігінде көрсетіледі. VAR арқылы жазылуы:

VAR массив аты: ARRAY [бастапқы номері...соңғы номері] OF типі;

Көп жағдайда массивтің  номері /индексі/ 1-ден басталады, бірақ  бұл міндетті емес. Сондай-ақ массив символдық типтен де тұрады. Символдық  жол – STRING үшін массив келесі түрде өрнектеледі:

TYPE

STRING: ARRAY [0..255] OF CHAR;

Массивтің номерінің  санына қарай қанша элементті массив екенін байқауға болады. Егер бірнеше массивтер бір ыңғай типті және элементтер саны тең болса, онда оларды бағдарламада бір жолда сипаттауға болады, мысалы:

VAR A, B, C: ARRAY [1..25] OF REAL;

Мұнда А, В, С – массивтерінің мәндері 25 элементтен тұратын нақты сандар.

A[1], A[2], A[3], … , A[25],

B[1], B[2], B[3], … , B[25],

C[1], C[2], C[3], … , C[25].

Паскаль тілінде массивтер  арасында «тең», «тең емес» немесе «меншіктеу операторы» амалдарын қолдануға  болады. Мысалы, егер А және В массиві  былай берілсе:

VAR

A, B: ARRAY [1..10] OF REAL;

Бұған үш амалды қолданғанда  төмендегідей нәтиже береді:

 

Кесте 1 - Амалдарды қолдану

 

Өрнек

Нәтиже

А=В

Егер әрбір А массиві  элементінің мәні сәйкес В массиві  элементтерінің мәніне тең болса.

А<>B

Егер А массиві элементінің  ең болмағанда бір мәні сәйкес В  массиві элементінің мәні тең  болмаса.

A:=B

В массиві элементінің  барлық мәні сәйкес массиві элементінің  мәні меншіктеледі. В массиві элементінің  мәндері өзгеріссіз қалады.


 

Көп тапсырмалар мәліметердің көпөлшемді массивтерін өңдеумен байланысты. Ең көп таралғаны екі өлшемді массивтер. [3, б.265-269]

Математикада екі өлшемді  массивтер матрица түрінде:

 

 

немесе қысқаша беріледі,

 

,

 

мұнда n – матрицаның жол саны, m – бағандар саны, i, j - Қиылысында элементі жататын ағымдағы жол мен баған индекстері.

Мәліметтердің басқа  объектілері сияқты, матрица да var бөлімінде бейнеленеді. Оның бейнеленуі вектордан айырмашылығы квадрат жақшада диапазонның екі операторы жазылады. Олар матрицаның сәйкес жолы мен бағанын көрсетеді.

var Матрица Аты: array

  [n1..n2, m1..m2]  of  Тип;

Мұнда n1..n2 – жол нөмірінің мән диапазоны, n1 и n2–бүтін санды константалар, m1..m2 - баған нөмірінің мән диапазоны,  m1 және m2 – бүтін сандар.

Векторлар сияқты матрицалар мәліметтер типінің кез келген тілінің  элементтерінен болуы мүмкін.

n жол және m баған матрицасынан столбцов  n*m*k байт өлшемдегі жады аймағы ерешеленеді, мұнда k – бір элементтің байтпен берілген өлшемі. Бұл өлшемді арнай кестеден білуге болады. Оперативті жадыда матрица үнемі жолмен(построчно) сақталады.

Мысалы, A матрицасы үшін оператор жазған түрі

var A:array [1..5,1..4] of real;

Жадының  20 ұяшығы 6 байттан  бөлінеді және келесі A1,4 элементінен ұяшықта A2,1 элементінің мәні сақталады.

Матрицаның жеке элементіне нұсқау екі индексі бар айнымалы көмегімен жүзеге асырылады, мысалы:

ai,j   a[i,j]

a2,1   a[2,1]

a2n,k   a[2*n,k]

Бірінші индекс математикадағыдай  жол нөмірін көрсетеді, ал екінші –баған нөмері.

Жадының адресациясы  әрдайым сызықты болатындықтан, матрицаны мәліметтердің құрылымдық түрі(тип) деп түсінуге болады. Жеке  жағдайда матрицаны қолдану сонша элементі бар вектормен алмастырылуы мүмкін: так An,m матрицасына n*m элементінен b векторы үнемі қойылуы мүмкін, ал  жол мен бағанды бірлікпен нөмерлеу кезінде  A[i,j] элементіне бағыттау  b[(i-1)*m+j] элементіне бағыттаумен алмастырылуы мүмкін..

Вектордың кез келген кезекті өңдеуі for циклінде орындалады, матрицаны өңдеу for екі циклінде жүзеге асады:

 

for i:=1 to n do

for j:=1 to m do

{A[i,j] элементін өңдеу}

Бүтін циклдарды орындау  ережесі бойынша j айнымалы екілік циклде i айнымалысына қарағанда жылдам өзгереді. Осылайша, матрицаның барлық элементтерін өңдеу баған бойынша орындалатын болады. Баған бойынша матрицаның барлық элементін кезекті өңдеу үшін i және j бойынша цикл орындарын ауыстыру жеткілікті:

for j:=1 to m do

for i:=1 to n do

{ A[i,j] элементін өңдеу}

Теория жүзінде бұл  тапсырманы матрицаның элементіне (A[i,j] орнына A[j,i] қолданып) бағыттауда индекстердің орындарын ауыстырумен шешуге болады, алайда түсінбестіктер болмас үшін олай істеу талап етілмейді. [3, б 265-269]

Матрицаны өңдеудің базалық алгоритмдерін  шартты түрде екі типін қарастыруға болады:

- алгоритмдер матрицаның барлық элементтерін өңдеу кезінде жүзеге асады;

- алгоритмдер матрицаның жеке жолдарын және жеке бағандарын өңдеу кезінде жүзеге асады;.

Бірінші жағдайда вектордан екі  цикл болғандықтан ерекшеленеді.

1. бірінші типтегі алгоритмге мысал келтірейік

A матрицасында 4*4 өлшемінде оның оң элементтерінің қосындысын және екі шаманың қатынасын табу керек. Мәндері [2, 10] интервал арасында жаты.

var a:array [1..4,1..4] of real;

i,j:integer;

s,p,z:real;

begin

{енгізу циклі }

writeln (4*4'өлшемдегі матрицаны енгізу);

for i:=1 to 4 do

for j:=1 to 4 do read (a[i,j]);

{өңдеудің бастапқы мәні және циклі}

s:=0;

p:=1;

for i:=1 to 4 do

for j:=1 to 4 do begin

if a[i,j]>0 then s:=s+a[i,j];

if (a[i,j]>=2) and (a[i,j]<=10)

then p:=p*a[i,j];

end;

{нәтижені шығару}

writeln ('Сумма=',s:6:2);

writeln ('Туынды=',p:6:2);

if p<>0 then begin

z:=s/p;

writeln ('Қатынас=',z:6:2);

end

else writeln ('p=0, қатынас ',

'бөлу мүмкін емес');

reset (input); readln;

end.

Шартында матрица түрі айтылмағандықтан, «жалпылау» түрі real.таңдалған. енгізу әдісі де үнсіз таңдалған. Ізделінген суммасы, туындысы, бөлімі сәйкесінше s, p и z белгіленген..

2 Екінші типтегі алгоритмді жүзеге асырудың мысалын қарастырып көрейік. Айырмашылығы есептеу және іздеу алгоритмі әрбір амал үшін ішкі циклде қайтадан жүзеге асырылады, осылайша екілік циклде ізделініп отырған шама ішкі циклдің әрбір қадамында қайтадан мәнге ие болады.

334 өлшемдегі С матрицасы берілген. Жолдың нөмерін, максималды элементтердің суммасын табу керек. [4, б. 118-122]

Бұл жағдайда матрицаны  кездейсоқ сандармен толтырамыз. Кезекті жолдың элементтерінің суммасын s белгілейміз, max –максимальды сумма. Ізделініп отырған жолдың нөмірі ретінде imax бүтін санды айнымалыны енгіземіз, оған ағымдағы i бағанының нөмерін енгізетін боламыз, егер s>max қатынасы орындалса. s айнымалысын i бойынша ішкі циклдің әрбір қадамында инициализациялау (өйткені элементтердің суммасы әрбір жолда қайтадан ізделінеді)керек, сонда, max айнымалысы сияқты барлық матрица үшін ізделінеді және екіінші циклға дейін бір рет инициализацияланады.

var c:array [1..3,1..4] of real;

i,j,imax:integer;

s,max:real;

begin

{Матрицаны оның шығысымен қалыптастыру}

writeln;

write (' C матрицасы');

for i:=1 to 3 do begin

writeln;

for j:=1 to 4 do begin

c[i,j]:=random*10

{0-ден 10 дейінгі натурал сандар};

write (c[i,j]:6:2);

end;

end;

{Бағана нөмерін іздеу және нәтижені шығару}

max:=-1e30;

for i:=1 to 3 do begin

s:=0;

for j:=1 to 4 do s:=s+c[i,j];

if s>max then begin

max:=s;

imax:=i;

end;

end;

writeln;

writeln ('Жол нөмері=',imax);

end.

 

Матрицаның бағанында типтік алгоритмдер жоғарыда көрсетілгенге ұқсас жүзеге асуы мүмкін, ол үшін i және j бойынша циклдердің орындарын ауыстырса жеткілікті.

Бағдарламада белгілі бір қайталанатын іс-әрекеттерді, атау бойынша бөлек жазып, атауы арқылы бір немесе бірнеше рет іске қосуға болатын бағдарламаның бөлігін қосалқы бағдарлама деп атайды. [5, б 173-178]

Қосалқы бағдарламаларды қолдану арқылы бағдарламаларды ықшамдауға болады.

Тurbo Pascal бағдарламалау тілінде қосалқы бағдарламаның екі түрі қолданылады:

*Процедура;

*Функция.

Тurbo Pascal бағдарламалау тілінде айнымалыларды негізгі бөлімде сипаттау түрі – ауқымды айнымалылар деп аталады. Егер айнымалылар қосалқы бағдарламада сипатталса, онда олар жергілікті айнымалылар деп аталады. Сондай-ақ негізі бағдарламада қосалқы бағдарламаны шақыруда қолданылатын айнымалыларды нақты айнымалылар деп атайды. Ал қосалқы бағдарламаның атауында берілген айнымалыларды формалды айнымалылар деп атайды.

Әрбір қосалқы бағдарламаның атауы болады және олар айнымалыларды сипаттау бөлімінен құралып, операторлық жақшаларда операторлық жақшаларда орналасқан командалар жиынынан тұруы мүмкін. Көмекші бағдарламалар. Тұрмыста бағдарлама құрған кезде кейбір нұсқаулар жүйесі орындайтын және белгілі бір беретін іс-әрекеттер бағдарламаның орындалу барысында бір, не бірнеше рет пайдаланылуы мүмкін. Әрине, бұл әрекеттер тобын қанша рет пайдалансақ сонша рет бағдарламамызға қайталап жазуымызға болады, әрине, ол тиімді болмас еді. Осы іс-әрекеттерді топтап, бірақ рет жазып, Паскальда көмекші құрал, бағдарлама ретінде беруге болады екен. Қажет кезінде осы көмекші бағдарламаны шақырып, бағдарламамыздың кез келген жеріне пайдалана аламыз.[6, б 325-230]

Кез келген бағдарлама жазушы күрделі бағдарламаларды кішігірім  іс-әрекеттерге бөліп, оларды жалпы  соңғы нәтижеге жетуге бейімдеп, жүйелеп, көмекші бағдарламалар тобын жасап, соңынан оларды негізгі бағдарламаға біріктіріп пайдаланады.

Көптеген операторлар  арқылы жазылған бағдарламаны монолиттік бағдарлама деп, ал функциялар мен процедуралар арқылы берілген бағдарламаларды модульдік бағдарлама дейміз.

Практикалық есептерге  бағдарлама құрғанда үлкен бағдарламаның белгілі бір бөлігін әр түрлі мәндер бойынша бірнеше рет қайталап пайдалануға тура келеді. Мұндай бір типтер бағдарлама бөлігін бағдарламаның әр бөлігінде қайталап жаза бермеу үшін оны жеке қосалқы бағдарлама ретінде бөліп жазған ыңғайлы.

Жеке бағдарлама түрінде бөлек жазылған, қажетті кезінде оған оралып, оны пайдаланып отыруға болатын негізгі бағдарламаның арнайы бөлігін қосалқы бағдарлама, подбағдарлама дейді. Қосалқы бағдарламаға автоматты түрде енуге және одан солай шығуға да болады. [7, б 131-135]

Қосалқы бағдарламаны пайдаланудың төмендегідей мүмкіндіктері бар:

- негізгі бағдарламаның көлемі кішірейеді;

-негізгі бағдарламада пайдаланылған айнымалыларды қосалқы бағдарламада да пайдалауға болады;

- қосалқы бағдарламаға берілген жады ұяшықтарын ол орындалмай тұрғанда бос ұяшық ретінде, бос айнымалы ретінде пайдалануға болады;

- қосалқы бағдарламаны пайдалану құрылымдық бағдарламалауға мүмкіндік береді.

Паскаль тілінде алгоритмдік тіл тәрізді қосалқы бағдарламаның екі түрі пайдаланылады. Олар: процедура және функция.

Бір бағдарламада бір немесе бірнеше процедура және функция пайдаланылуы мүмкін.

Паскаль тілінде процедуралар мен функциялар бағдарламаның басында айнымалылар белгіленіп болғаннан кейін жазылады.

1.2 Бағдарламалау тілінің элементтеріне шолу

 

 

Бағдарламалау элементтеріне  модульдер, айнымалылар, тұрақтылар, операторлар, жазбалар кіреді.

Модуль деп бағдарламашы жаңа бағдарламлар жасау үшін қолдана алатын, қосалқы бағдарламаның алдын ала компилирленген кітапханаларын айтады. Паскаль тілінде бағдарлама жасағанда модульдер *.tpu (Turbo Pascal Unit) типке ие арнайы кітапханалық файлдардан қосылады. Модуль өздігінен орындалатын бағдарлама болып табылмайды, бірақ оның қосалқы бағдарламалары басқа бағдарламалармен қолданылады.

Модуль құру үшін *.pas кеңейтілген файлды жазу керек. Модулдің жалпы құрылымын кеңінен қарастырайық.

unit Модуль Аты;

Модуль аталған басымен (заголовок) ашылады. Сондықтан модуль аты бағдарламадан uses ИмяМодуля операторымен қосылуы мүмкін. Атаулары қарапайым тіл ережесіне сай құрылады. Паскаль құрамына стандартты модульдер қатары кіреді. Солардың кейбіреуіне тоқтала кетейік:

- dos -- dos модулінде  операциялық жүйе мен файлды өңдеумен байланыстағы қосалқы бағдарламалар болады;

- strings – модулі нөл байтпен аяқталатын символды бағанның болуын қамтамасыз етеді;

- graph – модулінде әртүрлі геометриялық фигураларды салуға арналған 50 астам графикалық қосалқы бағдарламадан тұратын  кітапхана болады;

- crt – модулінің қосалқы бағдарламалары клавиатура кодымен, түсімен, терезе жіне дыбысымен кеңейтілген экранның текстік режимін бақылауды қамтамасыз етеді;

- printer – принтерге бағдарламаны шығару үшін қызмет ететін модуль.

Осы айтылған модулдердің кез келгенін қолдану үшін uses операторымен  қосу жеткілікті.

Бұл курстық жұмыста бағдарлама Crt модулін қолданғандықтан, кеңінен қарастыруды жөн көрдім.

Crt модулі  текстік режимде консоли экранымен жұмыс істеуге арналған продецура мен функциядан тұрады. Басқа стандартты модулдер сияқты crt компиляторға біріккен және turbo.tpl файлында тұрады.

Текстік режимдегі экран жеке жолдарға бөлінеді, ал әрбір жол –позицияға бөлінеді және әрбір позицияға ASCII жиынынан 1 символ ғана орналасуы мүмкін. [8, б 182-187]

Crt модулінің ерекшелігі барлық экранмен ғана емес, онда белгіленген тіктөртбұрышты тереземен де жұмыс істеуге үмкіндік береді. Сонымен қатар тексттің барлық кірісі, шығысы, айналуы терезе шегінде жүреді.  Үнсіздікпен терезе өлшемдері экран өлшемдерімен сәйкес келеді, бірақ оларды Window стандартты процедураларына қарасты анық бекітуге болады. (x1,y1,x2,y2);, где (x1, y1) и (x2, y2) – сәйкесінше терезенің сол жақ жоғары және оң жақ төменгі бұрыштары.

Әрбір файлмен жұмыс жасау үшін text типтегі айнымалы бейнеленеді.

var f:text;

 

 

1-сурет. Текстік файл

Оны файлдық айнымалы деп атайды. Егер бағдарлама бірнеше  файлды бір уақытта өңдейтін болса, олардың әрқайсысына сондай айнымалы бейнеленеді. Олар тізбектеле өңделетін  және әрбір келесі файл алдығы файлмен жұмысты аяқтағаннан кейін ашылатын болса, бірнеше файлдарға бір айнымалыны қолдануға болады. Файлмен барлық жұмыс файлдық айнымалымен жүреді, файл аты төмендегі оператормен тек бір ғана көрсетіледі:

assign (f,'файл аты');

мұнда f – алдында бейнеленген файлдық айнымалы. Бұл оператор файлдың ашылуын қадағалайды және қатты немесе иілгіш дискте файлы бар айнымалыны байланыстырады. Файл аты ретінде қатты немесе ауыстырмалы дисктегі файлға абсолютты немесе қатысты жол көрсетілуі мүмкін.

assign (f,'data.txt');

ағымдағы папкадан data.txt аты бар файл ашылатын болады;

assign (f,'a:\my.dat');

дискетаның түпкі пакасынан my.dat аты бар файл ашылатын болады.

Файл аты қолданушымен клавиатурадан енгізілуі мүмкін.

var name:string; f:text;

begin

writeln ('Файл  атын енгізіңіз:');

readln (name);

assign (f,name);

Соңында файл атын командалық жолдың параметрімен бағдарламаға жіберуге болады. [9, б 147-152 ]

Байланыстырғаннан кейін файлды ашу  керек. әрбір файл үш режимнің бірінде  ғана – мәліметтерді оқу үшін, жаңа мәліметтерді (егер файл болған болса, оның бұрынғы мазмұны өшірілетін болады)жазу үшін немесе файл соңына мәліметтерді толтыруда ашылуы мүмкін. Егер файлдан мәліметтерді алдымен оқып, кейін осы файлды қайта жазу керек болса, файлды оқу үшін ашу керек,оқығаннан кейін оны жауып және қайтадан жазу үшін ашу керек. Файлды ашу үш оператордың біреуімен орындалады:

reset (f); -- оқу үшін ашу;

rewrite (f);  -- жазу үшін ашу;

append (f);  -- толықтыру үшін ашу.

Мәліметтерді оқу немесе жазу read, readln, write және writeln операторларымен жүзеге асады, бірақ бұл стандартты процедуралардың алғашқы параметрі болып файлдық айнымалының аты көрсетіледі. [10, б 345-347]

129-132]

var a,b,c:real; f1,f2:text;

begin

assign (f1,'read.txt');

assign (f2,'write.txt');

reset (f1);  

{read.txt файлын оқу үшін аштыңыз,}

rewrite (f2);

{ал write.txt файлы жазу үшін}

read (f1,a,b);

{read.txt файлынан 2 санды оқыдыңыз}

c:=(a+b)/2;

writeln (f2,c:6:2); {c мәнін және

write.txt файлына жолды аударуды жаздыңыз}

файлмен барлық операция аяқталғаннан кейін оны жабу керек, әсіресе, мәліметтерді жаз және толықтыру жүрген болса.

close(f);

— f.файлды айнымалымен байланысқан файлды жаптыңыз. Міне, осылай файлмен жұмыс істеуге болады.

Турбо Паскальда оператор екіге бөлінеді: қарапайым және құрылымдық.

Қарапайым операторға мыналар  жатады:

- Меншіктеу операторы (:=);

- Шартсыз өту операторы (go to);

- Процедура кіретін оператор (функция).

Құрылымдық оператор келесі операторлардан тұрады:

- Құрама оператор (ол begin деген сөзден басталып,  еnd сөзімен аяқталады);

- Шартты оператор (if, case);

- Қайталау оператор (repeat, while, for);

- Біріктіру операторы (with);

Паскальда  шартсыз  өту операторын go to  операторы  және break, continue, exit, halt процедуралары  кіреді. Шартсыз өту операторы бағдарламада жиі қолданылады.

Шартсыз өту операторы (go to) қарапайым оператор. Ол бағдарлама жұмысын өзгертіп тұрады. Шартсыз өту операторының жалпы түрі мынандай:

GO TO <таңба>

Мұндағы GO TO – Турбо Паскаль тілінде келесі шартты орындайды, ал <таңба> - идентификатор немесе 0 ден 9999 дейінгі бүтін сан. Егер бағдарламада бұл оператор болса, онда келесі Label-ға өтеді. Таңбадан кейін қос нүкте қойылады (<таңба>:).

Жалпы алғанда таңбаларды бағдарламада қолданбаған жөн. Ал егер қажет болған кезде келесі екі ережені есте сақтау керек:

1)Таңбаларды бағдарламаның орындалу ретін тек алға қарай (төмен қарай) орындалуы керек. Ал бағдарламаның ретін кері қарай орындалуы қажет болса циклді қолдану керек.

2)Таңба мен бағдарламаның орындалу ретін өзгертетін оператор ара қашықтығы жақын болуы тиіс. Олар бір бетте немесе бір экранда орналасқаны жөн.

Құрылысына қарай күрделі болып саналатын операторлардың (тармақталу, таңдау, қайталау) бірі тармақталу операторына тоқталайық.

Тармақталу операторы  көрсетілген шартқа байланысты құрамына кіретін операторлардың орындалу орындалмауын қамтамасыз етеді. Паскаль тілінде шартты көшу операторы if операторы арқылы беріледі.

Жалпы түрі:

If  <шарт>  then  <1-операторы>  else  <2-операторы>;

Мұнда еlse қызметші сөзінің  алдына “;” қойылмайды.

Қысқа түрі:

If  <шарт>  then  <операторы>;

Шартты оператордың  синтаксистикалық диаграммасы төменде  көрсетілген.

 

 

 


 

 

 

 

 

Берілген оператор келесі бейнеде орындалады. Алдымен if қызметші сөзімен шарт тексеріледі. Нәтижесі бульдік тип болуы шарт. Егер шарт мәні true  болса, онда then қызметші сөзінен кейінгі оператор орындалады. Егер шарттың есептеу нәижесі false болса, онда else қызметші сөзінен кейінгі оператор орындалады. Егер else қызметші сөзінен кейін шарт орындалмаса, онда басқару шарттан кейінгі операторға беріледі. Шарт қатынас немесе логикалық өрнектер түрінде жазылады. [9, б 147-152 ]

Қайталанатын  операторлар тобы циклдің денесін  құрайды. Паскальда циклдің үш түрі бар:  for (үшін циклі), while (әзір), repeat (дейін). Қайталау саны белгілі болған жағдайда үшін циклін пайдаланған жөн. Ал қайталау саны белгісіз болғанда әзір, дейін циклдерін қолданамыз, бірақ циклге кіру немесе циклден шығу шарттары белгілі жағайда қолданылады. Біздің тапсырма үшін циклін қолданатын болғандықтан, толығырақ қарастырайық.

For-do циклі қайталау  саны алдын ала белгілі болған  жағдайда қолданылады. 

Матрицамен Жұмыс