Delphi программалау тілінде есепті реализациялау

Мазмұны

 

Кіріспе

1 Теориялық негізі және ақпаратпен жабдықталуы

   1.1. Объектілі бағыттылған программалау ортасының мүмкіндіктері

   1.2. Delphi тілінде айнымалыларды  түрлендіру функциялары 

   1.3 Матрицаларды өңдеуде қолданылатын компоненттер

2  Массив элементтерін ЕНГІЗУ ЖӘНЕ ШЫҒАРУ

   2.1  Массивтерді сипаттау

   2.2  Массив элементтерін өңдеу

   2.3  Екі өлшемді массивтерді өңдеу алгоритмі

3 dELLLPHI ОРТАСЫНДА есептерді шешу және талдау

   3.1 Delphi программалау тілінде есепті реализациялау

    3.2  Есептің нәтижесін талдау

ҚОРЫТЫНДЫ

ҚОЛДАНЛҒАН ӘДЕБИЕТТЕР

ҚОСЫМША

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Кіріспе

 

Ақпараттық коммуникациялық технологиялардың қарқынмен дамып, күнделікті тұрмысқа енуіне байланысты соңғы кездері программалауға деген қызығушылықтың  арта түскені белгілі. Қазіргі уақытта компьютерсіз қандай да бір жұмыс істейтін адамға қандай да бір ұмтылысты тудыруы мүмкін.

Есептеуіш техниканың қарқынмен дамуы тиімді программалық құралдарды жасау – объектілі бағдарланған программалау жүйелерінің жасалуына әкелді. Жылдам құру жүйесінің негізіне (RAD-Rapid Application Development –қосымшаларды жылдам құру ортасы)визуалды жобалау  мен оқиғалы объектілі бағдарланған программалау технологиясы алынған. Мұндай программалаудың мәні – программа жасаушы құрал жұмыстың көп бөлігін өзі атқарып, программистке диолог терезелерін құрастыру мен оқиға  өңдеушіні құру жұмыстарын қалдырады. RAD жүйелерінің ішінде Borland Delphi және Visual Basic орталары әртүрлі программалар құруға мүмкіндік береді: қарапайым бір терезелік қосымшалардан бастап, үлестірілген мәліметтер қорын басқару программаларына дейін. Borland Delphi ортасындағы программалау тілі Object Pascal тілі.

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

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

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

Бұл ұсынылып отырған оқу құралдарында объектілі бағдарланған программалау жүйелерінің негіздері берілген. Оқу құралын  Delphi ортасында программалауға қажетті теорилық материалдар мен мысалдар келтірілген. Әрбір тараудың соңында теориялық материалдарды бекітуге арналған бақылау сұрақтары мен жаттығулар берілген.

 

 

 

 

 

 

 

 

 

 

1 Теориялық негізі және ақпаратпен жабдықталуы

 

1.1. Объектілі бағыттылған  программалау ортасының мүмкіндіктері 

 

Delphi тіліндегі қолданбалы программалар  немесе қосымшалар интеграцияланған IDE (Integrated Development Environment) ортасында жасалады. Ол компьютердің программалаушымен қарым-қатынасын ұйымдастырады және әр түрлі басқару элементтерінен құрылған бірнеше терезелерден тұрады. IDE интеграцияланған ортасының құралдарын қолдана отырып, қосымшаның интерфейстік бөлігін жобалауға, программалық код жазуға және оны басқару элементтерімен байланыстыруға болады. Бұл жағдайда, программа кодын жазу, оны түзету және орындау сияқты барлық әрекеттер IDE ортасында орындалады.

Delphi-дің интеграцияланған ортасы  көптерезелі жүйе болып саналады. Ол төмендегі терезелерден тұрады: Негізгі терезе (Delphi 7- Project1.dpr) Объектілер ағашын шолу терезесi (Object Tree View) Объектілер бақылаушысының терезесі (Object Inspector) Форма құрастырушыcының терезесі (Form1. dfm) Код редакторының терезесі (Unit1. pas) Код сілтеушісінің терезесі (Exploring Unit.pas) Дельфиде дайындалатын программа жоба деп аталады. Жоба форма терезінде орындалады (қалыпты жағдайдағы аты- Form1).

Жоба құру үшін формаға Компоненттер палитрасынан түрлі компоненттер орналастырылады. Компоненттер палитрасы негізгі терезеде негізгі мәзірдің оң жақ төменгі бөлігінде орналасқан. Компонент- қосымша формасы жасалатын құрастыру блогы болып табылады. Барлық компонент әрбіреуі жеке парақта орналасқан топтарға бөлінген, ал әрбір компонент шартбелгімен берілген. Компонент палитрасы келесі парақтардан тұрады: Standard – стандарт компоненттер Additional- қосымша компоненттер 111Win32- Windows-тың 32 разрядты инсерфейсі System- жүйелік функцияларды қосу Data Access- деректер қоймасындағы ақпаратпен жұмыс Data Сontrols- деректерді басқару элементін жасау т.с.с.

Программадан объект қасиеті мен әдістеріне қатынау қалай жүзеге асыратынын қарастырайық. Объект қасиетін көрсету келесі форматта жүзеге асырылады: . Объект атауынан кейін бос орынсыз нүкте белгісі қойылады да, төмен қарай ашылатын тізімнен қажетті қасиет атауы таңдалады.

Мысалы: Label1. Caption:=’Delphi тілі’;

Кейде объект қасиетінің өзі объект болуы мүмкін. Онда бұл қасиетке сілтеу арасына нүкте қойылған объектілер тізбекшесі арқылы көрсетіледі. Мысалы: Label1.Font.Color:=clRed;

Нәтижеде Label1 объектісіндегі жазу түсі қызыл болады. Қосымша интерфейсін жасау кезінде әрбір компонент үшін екі операция орындалады:

1. Компоненттер палитрасынан компонентті  формаға орналастыру.

2. Қойылған компоненттің қасиетін орнату. Компонент қасиеті экранның сол жақ төменгі бөлігінде орналасқан Объект бақылаушысының терезесі арқылы өзгертіледі. Ол екі астарлы беттен тұрады:

Properties (Қасиеттер) және Events (Оқиғалар).

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

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

Жобаның сипаттамасы Delphi ортасында жасалған қосымша біріктірілген бірнеше элементтен тұрады. Олар бірге төменде көрсетілген:

жоба файлы (.dpr)

форманы сипаттау файлы (.dfm)

форма фодулінің файлы (.pas)

модульдер (.pas)

жоба параметрлері (.dof)

ресурсты сипаттау (.res)

Жоба файлы. Дельфиді іске қосқан кезде автоматты түрде Project1.dpr атты жаңа жоба жасалады. Бұл жобаның Form1 атты формасы болады. Жоба файлы жобаның орталық файлы болып табылады және оның жеке программасы болады.

1 формадан тұратын қосымша үшін  жоба файлының түрі былайша  болады:

 

program Project1;

uses Forms, Unit1 in 'Unit1.pas' {Form1};

{$R *.res} begin

Application.Initialize;

Application.CreateForm(TForm1, Form1);

Application.Run;

end.

 

Бұл файл мазмұнын экранға шығару үшін келесі командалар тізбегі орындалады: View Units Project1 (немесе CTRL+F12).

Форма файлдары Жоба құрамындағы әрбір форма үшін автоматты түрде форманы сипаттау файлы (.dfm) және модуль файлы (.pas) жасалады. Форманы сипаттау файлы форманы және оның компоненттерін сипаттаудан тұрады. Формаға компонент қойып, оның қасиеттерін өзгерткен кезде форманы сипаттау файлында автоматты түрде сәйкес өзгерістер енгізіледі.Бұл файлдың мазмұнын экранға шығару үшін форманың контекстік мәзірінен View as Text пунктін шерту қажет. Керісінше, формаға өту үшін контекстік мәзірден View as Form командасы таңдалады.

 

 

 

1.2. Delphi тілінде айнымалыларды түрлендіру функциялары

 

Массив дегенiмiз индексi бүтiн сан арқылы белгiленген индекстi айнымалылардың тiзбегi, мысалы n элементтен тұратын  А бiр өлшемдi массивiнiң элементтерi а1, а2, . . ., аn арқылы анықталады, мұндай массивтi қысқаша , A(n) немесе түрiнде жазуға болады.

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

Массивпен жұмыс iстеу үшiн оның әр элементiнiң мәнi белгiлi болуы тиiс. Оның жалпы түрi :VAR бөлiмiнде осылай сипатталады. Массив аты ARRAY [n,m] of type.

 Массивтi сипаттауға ARRAY of  сөздерi қолданылады. Массивте әр элементің  нөмiрiн элементтiң индексi деп атаймыз. Индекстердiң саны - массивтiң өлшемi. Индекстiң мүмкiн мәндерi оның диапозоны деп аталады. Диапозон мен өлшемi массивтiң формасы деп саналады.

Содан соң массив типінің айнымалылары программаның VAR бөлімінде сипатталады. Массив  сияқты айнымалыларды суреттеу осы айнымалыларды суреттеу кезінде болады, массив типін алдын-ала суреттеусіз, мысалы:

VAR A:ARRAY[1….10] OF REAL;

Массив типi  - күрделi тип. Ол бiр типтi шамалардың бiр ғана ат берiлiп, реттелген тiзбегi. Массивтi бiр қалыпты анықталатын (регулярлық) тип деп те атайды.  Массив екi жолмен сипатталуы мүмкiн. Бiрiншiсiнде программаға енгiзiлетiн типтер бөлiмiнде  массив <тип атауы> арқылы сипатталады. Сипаттау үлгiсi:

type<тип атауы>=array [T1] of  T2;

var<массив атауы>:<тип атауы>;

Мұндағы: array [T1] of T2 - массивтi анықтау; T2 - массив элементтерiнiң типi (оны негiздiк тип деп те атайды); Т1 - индекстiң типi (ол INTEGER, REAL типтерiнен басқа кез келген жай тип болуы мүмкiн. Әдетте ол үшiн аралық тип алынады);

тип атауы - типтi (массивтi) анықтайтын кез келген белгiлеме(айнымалы);

массив атауы - типi тип атауынан тұратын айнымалы;

TYPE (тип), ARRAY (массив), OF - қызметшi сөздер

Программаға TYPE бөлiмiн енгiзбей, массивтi VAR бөлiмiнде сипаттау да мүмкiн. Мысалы, a, b массивтерiн мынадай  түрде сипаттауға болады:   var a, b : array [1..10, 1..10] of real;

Бірақ күрделi типтердi TYPE бөлiмiнде анықтау программаны оқуды көп жеңiлдетедi және ол программалаудың жақсы тәсiлi.

Кездейсоқ сандармен жұмыс Форма модулінің файлы unit қызметші сөзінен басталады да, одан кейін модуль аты жазылады. Қалыпты жағдайда бірінші модуль үшін оның аты Unit1, екіншісі үшін Unit2 т.б. болады.

Модуль мәтіні екі негізгі бөлімнен тұрады: interface — модульдің ашық интерфейсі және implementation — модульді жүзеге асыру.

Interface бөлімінде uses сөзінен кейін  программаға қосылатын стандарт  модульдер және қолданушының  кітапханалық модульдерінің тізімі  жазылады. Бұл бөлімнің форматы:

Uses , ,… ;

Мысалы:

interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;

Қосылған модульдер тізіміндегі SysUtils модулінде жолдармен жұмыс жасаудың келесі функциялары анықталған.

IntToStr (Value:Integer): String; - Value бүтін санды өрнегінің мәнін жолға түрлендіру.

StrToInt (const S: String): Integer; - S жолын бүтін санға түрлендіру.

FloatToStr (Value:Extended): String; - Value нақты санды  өрнегінің мәнін жолға түрлендіру.

StrToFloat (const S: String): Extended; – S жолын нақты санға түрлендіру

DateToStr(Date:TDateTime) : String; - Date өрнегіндегі  дата мәнін жолға түрлендіру.

TimeToStr(Time:TDateTime) : String; - Time өрнегіндегі  уақыт мәнін жолға түрлендіру.

StrToDate (const S: String ) : TdateTime; - S жолын датаға түрлендіру.

StrToTime (const S: String ):TdateTime; - S жолын уақытқа түрлендіру.

 

 

1.3 Матрицаларды өңдеуде қолданылатын компоненттер

 

Кесте жасаудың StringGrid компоненті

Кесте жолдар мен бағандардан құралған деректерді бейнелеуге мүмкіндік береді. Delphi-де кестемен жұмыс істеу үшін StringGrid компоненті қолданылады. Бұл компонент мәтіндік деректерді редакциялау үшін арналған. Кесте өлшемін longint типті ColCount және RowCount қасиеттері анықтайды, олар сәйкес кестедегі жол және баған санын береді. Қалыпты жағдайда олардың саны 5- ке тең және ол өлшемі 6х6 кестеге сәйкес келеді. Кестенің шеткі сол жақ бағаны мен жоғарғы жолын бекітілген етуге болады. Жол мен бағанды бекіту әдетте, тақырыпты безендіруде қолданылады. Кестедегі бекітілген олдар мен бағандар санын integer типті сәйкес FixedRows және FixedCol қасиеттері анықтайды. Қалыпты жағдайда бұл қасиеттің мәні 1- ге тең. Бекітілген элементтер ерекше түспен көрінеді және кестедегі ақпаратты айналдыру кезінде қозғалыссыз қалады. Бекітілген ұяшықтар фонының түсі FixedColor қасиеті арқылы анықталады. Ал кестенің түсі Color қасиеті арқылы анықталады. Программаның орындалу барысында кесте деректерін редакциялауды жүзеге асыру үшін Объект инспекторындағы Options қасиетінің goEditing мәнін true етіп қою керек. Кестенің жеке ұяшығының мәніне қатынау үшін String типті Cells[ACol, ARow:integer] қасиеті қолданылады. AСol индексі кестенің бағанын , ARow индексі жолын көрсетеді. Бұл қасиет екі өлшемді массив ролін атқарады.

Ескерту!  StringGrid компонентінде жол және баған индексі 0-ден басталады.

Мысалы: Label1.Caption:=StringGrid1.Cells[5,9];

       StringGrid1.Cells[1,2]:=’Hello’;

Label1 комонентіне StringGrid1 кестесінің  алтыншы бағаны мен 10- жолының  қиылысында орналасқан ұяшық  мазмұны шығады және кестенің 3- жолының 2- бағанына “Hello” сөзі шығады.

Мысал113: Кесте жасау мысалын қарастырайық. Кестенің төмендегі қасиеттерін орнатамыз:

 

Қасиет

Мәні

FixedCols

0

FixedRows

1

Options\goEditing

true


 

Сурет 55. StringGrid компоненті


Edit компоненті - - символдар жолын енгізуге жане жөндеуге арналған.

Name – компонент аты.

Text – енгізу жане жөндеу өрісінде орналасатын мәтін.

Top – компоненттің жоғарғы шекарасынан форманың жоғарғы шекарасына дейінгі қашықтық.

Left – компоненттің сол жақ шекарасынан форманың сол жақ шекарасына дейінгі қашықтық.

        Width - өрістің ені.

        Height - өрістің биіктігі.

Visible – компоненттің кӛрінуін немесе көрінбеуін басқарады.

Enabled – енгізу өрісінде мәтінді өзгерту мүмкіндігін шектеу үшін пайдаланылады.

Font – мәтінді шығару ҥшін пайдаланылатын қаріп.

 

Button компоненті – оқиғаға жауапты қалыптастыратын командалық батырма болып табылады.


Name – компонент қасиетіне кіру мүмкіндігін алу ҥшін пайдаланылатын компонент атауы.

Caption – батырманың үстіне орналасатын мәтін.

Top – батырманың жоғары шекарасынан  форманың жоғары шекарасына дейінгі  қашықтық.

Left - батырманың сол жақ шекарасынан  форманың сол жақ шекарасына  дейінгі қашықтық.

       Width – батырманың ені. Height – батырманың биіктігі.

Visible – батырманың көрінуін немесе кӛрінбеуін басқарады.

Enabled – батырманың пайдаланылу  мҥмкіндігін көрсетеді, егер оның қасиетінің мәні ақиқат болса, онда батырма пайдаланылады, кері жағдайда пайдаланылмайды.

Hint – командалық батырмаға курсор  келгенде тышқанның көрсеткішінің қасында нұсқау-мәтін пайда болады.

Show Hint – егер мән ақиқат болса, нұсқау көрінеді, кері жағдайда кӛрінбейді.

Memo компоненті –   бірнеше жолдан тұратын, мәтінді жӛндеу элементі болып табылады. Экранға нәтижені шығару ҥшін, тҥсіндірме шығару ҥшін пайдаланылатын компонент.


Name – компонент қасиетіне кіру мүмкіндігін алу үшін пайдаланылатын компонент атауы.

Text – Memo өрісінде орналасатын мәтін.


Combobox компоненті –       Combobox компоненті тізімдер редакторына пернетақтадан мәліметтерді енгізіп, бағдарламаның орындалу барысында енгізілген тізімнен бір элементті таңдау мҥмкіндігін береді.

Name – компонент қасиетіне кіру  мҥмкіндігін алу ҥшін пайдаланылатын компонент атауы.

Text – енгізу ӛрісінде орналасатын мәтін. Items – тізім элементтері – жолдар жиыны. Count – тізім элементтерінің саны

ItemIndex – тізімде таңдалған элемент  нөмірі.

Sorted – тізімге кезекті элементті  қосқаннан кейінгі автоматты  сұрыптау қажеттілігін көрсетеді.

DropDownCount – ашылған тізімде бейнеленетін  элементтер өлшемі.

Top – компоненттің жоғары шекарасынан форманың жоғары шекарасына дейінгі қашықтық.

Left - компоненттің сол жақ шекарасынан  форманың сол жақ шекарасына  дейінгі қашықтық.

 

 

 

2 Массив элементтерін ЕНГІЗУ ЖӘНЕ ШЫҒАРУ

 

2.1  Массивтерді сипаттау

 

Паскаль тілінде жеке-дара мәліметтермен қатар, қандай да бір жүйеде жиналыстырылған олардың топтарын да қарастыруға болады. Осындай топтардың бірі - құрылымдық типті ARRAY (массив) мәліметтері.

Массив дегеніміз - бір типті шамалардың реттелген белгілі бір тобы. Массивке кіретін айнымалыларды массивтің элементтері дейіді, олардың саны сипаттама бөлімінде жарияланып анықталады да, программаның орындалу барысында өзгермейді. Массив элементтерінің типі файлдан басқа кез келген (бүтін, нақты, символдық, жолдық, массивтік т.б.) типті бола алады. Яғни Паскаль тілінде жолдар массивін, символдар массивін, массивтер массивін т.с.с. қарастыруға мүмкіншілік бар. Массив элементтерінің типін массивтің негізгі базалық типі деп атайды.

Массив тұтасымен бір атпен аталады, ал элементтерінің реті индекс арқылы көрсетіледі. Индекс массивтің идентификаторынан соң тік жақшаға алынып жазылады, мысалға: a[1], a[2], a[3],… a[i],… a[n]. Индекстің типі массив элементтерінің ретінің өзгеру аралығын көрсетеді де, шектелген жай типтердің (байттық, логикалық, аралық, атау) бірімен беріледі. Массивтің типін анықтау үшін Array … of (тұратын массив) қызметші сөздері қолданылады. Массив алдын ала типтерді сипаттайтын Type тарауында жарияланады немесе айнымалылар Var тарауында аталады.

Жазылуының жалпы түрі:

Type

<Массив аты>=array[<индекстер типі>]: of<элементтер типі>;

Var

<айнымалылар>:<типтің аты>;

Мұндағы: индекстер типі - 1-индекс, 2-индекс, ...

элементтер типі - массивті құрайтын негізгі элементтерінің типі.

Немесе массив айнымалылар тарауында анықталуы:

Var

<Массив аты>:array[<индекстер типі>]:of<элементтердің типі>;

 

Бір өлшемді массивтердің жариялануын көрсететін мысал.

Бірінші түрі.

Var

    M1:array[1..10] of integer; - 10 бүтін саннан тұратын массивті жариялау.

Осы жариялау арқылы келесі айнымалылар келтіріледі:

M1[1]    M1[2] M1[3] …M1[10]

Тура осылай басқа да типті элементтерден тұратын массивтерді жариялауға болады, мысалға:

M2:array[1..14] of Char; - 14 символдан тұратын массив.

M3:array[1..100] of Real; - 100 нақты саннан  тұратын массив.

M4:array[1..5] of string; - 5 тестік жолдан тұратын массив.

M5:array[1..7] of Boolean; - 7 логикалық типті элементтерден тұратын массив.

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

Екінші түрі.

Жоғарыда көрсетілген мысалдарда массив тікелей айнымалылар Var тарауында анықталуы қарастырылады, бірақ бұрынырақ айтқанымыздай массив көбінесе Type тарауында жарияланады да, кейін айнымалылар Var тарауында осы жарияланған типті айнымалылар аталады, мысалға,

Type

R1: array [1..10] of integer;

R2: array [1..6] of Char;

R3: array [1..3] of real;

R4: array [1..8] of string;

R5: array [1..5] of Boolean;

Бұл жағдайда, массивтердің типтері алдын ала типтер тарауында анықталғандықтан, айнымалылар тарауында массивтер жариялануы келесі түрде болады:

Var

M1 : R1;

M2 : R2;

M3 : R3;

M4 : R4;

M5 : R5;

Массивті Type тарауында жариялаудың басымдылығын келесі нақты мысалдан көруге де болады.

Type

Gruppa=(G1,G2,G3,G4);

Famil=array(byte) of char;

AI=(I,II,III,IV,V,VI,VII,VIII,IX,X,XI,XII);

Var

B2:Famil;

N2:array[1..60] of integer;

M3:array[‘a’..’d’] of gruppa;

Vector:array[1..10] of real;

M5:array[AI] of 28..31;

LOG: array[boolean] of integer;

B2 бұл мысалда типтер тарауында жарияланған Famil типімен сипатталған, мұнда индекстің типі байттық (byte) болғандықтан, B2 массиві char типті 255 элементтен (В2[0],B2[2],…B2[255]) тұрады.

N2 бірден айнымалылар тарауында сипатталған integer типті 60 элементтен (N2[1],N2[2],…N2[60]) тұрады.

M3 бірден сипатталған G1,G2,G3,G4 мәндерінің бірін қабылдай алатын 4 элементтен (M3[‘a’]), (M3[‘b’]), (M3[‘c’]), (M3[‘d’])

Vector real типті 10 элементтен (Vector[1], Vector[2], …, Vector[10]) тұрады.

M5 массивінің индексінің типі AI аталу типімен берілген, яғни элементтері: M5[I],M5[II], M5[III],… түрінде көрсетіледі де, 28, 29, 30, 31 сандарының бірін қабылдайды.

LOG массиві индексінің типі логикалық, яғни екі бүтін саннан тұратын массив. (LOG(True):=9; LOG(False):=4).

Массивтің индексі мен элементтерінің мәндерін ажырата білу керек: индекстің көмегімен элементтің мәнін табамыз. Мысалға М5 массивінің элементтерінің орналасуын схема түрінде көрсетейік.

31

28

31

30

31

30

31

30

31

30

31

30

I

II

III

IV

V

VI

VII

VIII

IX

X

XI

XII


 

Жоғарыда бірінші жолдың ұяшықтарында массив элементтерінің мәндері, ал екінші жолда массив элементтерінің индекстері келтірілген, яғни М5[I]=31, М5[II]=28,… М5[VII]=31.

Егер массивтің негізгі (базалық) типі массивтік болса, онда қарастырып отырған массивтің өлшемі жоғарылайды.

Мысал.

Type

Vector=array[1..3] of integer;

Matrix=array[1..5] of vector;

Var

A: matrix:

Мұндағы А - екі өлшемді массив болып табылады, элементтері А[1][2] немесе А[1.2] түрлерінің бірімен көрсетіледі.

А массивін былайша сипаттауға да болатын еді:

Var

A: Array[1..3, 1..5] of integer;

Осылай кез келген өлшемді массивтерді сипаттауға болады. Паскаль тілінде массивтің өлшеміне шек қойылмайды, ол тек падаланатын компьютер жадының сыйымдылығымен шектеледі.

Іс жүзінде бір және екі өлшемді массивтер жиі қолданылады. Жалпы бір өлшемді массив элементтерін вектор, ал екі өлшемді массив матрица ұғымдарымен парапар болып саналады.

Массивті сипаттау үшін алдына ала анықталған тұрақтылар да пайдаланады:

Const

T1 = 4; T2 = 6;

Var

Tab1Y: array[1..T1, 1..T2] of real;

Массив элементтері жадыда жүйелі түрде бірінен соң бірі орналасады. Мысалы M: array[1..3,1..3] of integer массивінің элементтері жадында индекстерінің өсуі бойынша келесі түрде орналасады:

M[1,1] M[1,2] M[1,3] M[2,1] M[2,2] M[2,3] M[3,1] M[3,2]M[ 3,3]

 

 

2.2 Массив элементтерін өңдеу

 

Массив жарияланған соң оның әр элементі массив идентификаторы арқылы шақырылып, өңдеу процесіне қатыса береді. Мысалы келесі жазу Fam[3] болсын, онда Fam массивінің үшінші элементін, ал Tabl[2,3] - екі өлшемді Tabl массивінің 2-жолы мен 3-бағанасының қиылысқан элементін шақыруға мүмкіндік береді.

Массив элементтерін өңдеу операцияларына мысалдар қарастырудан бұрын келесі үш массивке және төрт қосымша айнымалыға сипаттамасын келтірейік:

Var

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

   B : array [1..10,1..15] of integer;

   I,J,K : integer;

        S : real;

Массив элементтеріне бастапқы мәндерін меншіктеу. Бұл ұғым массивтің әр элементіне базалық типке сәйкес болатын бір мәнді меншіктеуді білдіреді. Бұл операцияның For операторы арқылы орындалуы тиімді болады:

For I:= 1 to 4 do A[I]:=0;

Екі өлшемді массив элементтеріне бастапқы мәнді меншіктеу үшін бірінің ішіне бірі орналасқан For операторлары арқылы ұйымдастырған жөн:

For I:= 1 to 10 do

        For J:= 1 to 15 do

B[I,J]:=0;

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

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

For I:=1 to 4 do Readln(A[I]);

Ал екі өлшемді массив үшін:

For I:=1 to 15 do

       Readln(B[I,J]);

Программада Readln операторын пайдалануға байланысты енгізілетін әр шама жаңа жолдан бастап жазылады.

Массив элементтерін экранға немесе баспаға шығару үшін енгізуге ұқсас программалар жазылады, бірақ Read, Readln орнына Write немесе Writeln операторлары пайдаланылады:

For I:=1 to 4 do

         Writeln (A[I]); {А массивінің элементтерін шығару}

Ал екі өлшемді массив үшін:

For I:=1 to 10 do

For J:=1 to 15 do

         Writeln (B[I,J]); {B массивінің элементтерін шығару}

Массив элементтерін көшіру үшін бір массивтің барлық элементтерінің мәндерін екінші массивтің элементтеріне меншіктеу керек, қойылған мақсатқа жету үшін программада бір меншіктеу операторы А:=D немесе For операторынан құрылған операторлық жол жеткілікті:

For I:=1 to 4 do A[I]:=D[I];

Екі жағдайда да D массивінің элементтері өзгеріссіз қалады, ал А массивінің элементтерінің мәндері D массивінің элементтерінің мәндеріне тең болады.

Delphi программалау тілінде есепті реализациялау