Массивҳо
Related Articles
- Эълони массив
- Амалиётҳо бо массивҳо
- Дохилкунии массив
Хулоса ва мустаҳкамкунии дарс
Адабиёт
1. Зелковиц М., Шоу А., Гэннон Дж. Принципы разработки программного
обеспечения / Пер. с англ. — М.: Мир, 1982. — 386 с., ил.
2. Фокс Дж. Программное обеспечение и его разработка / Пер. с англ. — М.: Мир,
1985. – 368 с., ил.
3. Фаронов В.В. Система программирование Delphi. – СПб.: БВХ Петербург, 2003.
– 912 с.: ил.
4.http://gluk.webhost.ru/delphi.html
5. Язык компьютера. Пер. с англ, под ред. и с предисл. В. М. Курочки-на. — М.: Мир, 1989. – 240 с., ил.
Массивҳо
Массив – ин сохтори маълумоте, ки ба худ дастаи таѓирёбандаҳои типи якхеладоштаро гирифта номи умумb дорад. Масивҳоро барои сабти информатсияи якҷинса истифода бурдан қулай аст. Масалан, таблитсаҳо ва руйхатҳо.
1.Эълони массив
Массив ба монанди тамоми таѓирёбандаҳое, ки дар программа истифода бурда мешаванд, пеш аз истифодабарb бояд дар қисми эълони таѓирёбандаҳо эълон карда шавад.
Дар намуди умуми инструксияи эълони массив чунин аст:
Ном: array ҳиндекси поёни… индекси болои] of тип
дар ин ҷо:
- ном – номи массив;
- array – калимаи эҳтиётии забон буда, массивро мефаҳмонад;
- индекси поёни ва индекси болои – ададҳое бутуне, ки ченаки массивро мефаҳмонанд. Дар ин ҷо мо метавонем руйхати индексҳоро, ки бо якдигар бо вергул ҷудоанд, истифода барем;
- тип – типи элементҳои массив.
Мисоли эълони массивҳо шуда метавонанд:
tem:arrayҳ1..31] of real;
коf:arrayҳ0. .2] of integer;
name:arrayҳ1..30] of stringҳ25];
Барои эълони массив доимиҳои номдорро истифода бурдан қулай аст. Доимиҳои номдор дар қисми эълони доимиҳо эълон карда мешаванд, ки онҳо одатан пеш аз қисми эълони таѓирёбандаҳо ҷойгиранд. Қисми эълони доимиҳо бо калимаи const сар мешавад. Баъди эълон кардани доимиҳои номдор онро ҳамчун доимии рамзb дар программа истифода бурдан мумкин аст.
Мисол:
program Project2; ҳ$APPTYPE CONSOLE}
const
m=10;
var
a:arrayҳ1..m] of integer;
n,i:integer;
s: real;
begin
readln(n);
s:=0;
for i:= 1 to n do
begin
readln(aҳi]);
s:=s+aҳi];
end;
writeln(s);
readln;
end.
uses
SysUtils;
begin
ҳ TODO -oUser -cConsole Main: Insert code here }
end.
2. Амалиётҳо бо массивҳо
Амалиётҳо бо масивҳо инҳо шуда метавонанд:
- хориҷкунии массив;
- дохилкунии массив;
- ҷустуҷў намудани элементи минималb ва максималии массив;
- ҷустуҷўи элементи массиве, ки дода мешавад;
- сортировканамоии массив.
Ҳар яки инро дар алоҳидаги дида мебароем:
- Хориҷкунии массив;
Дар зери мафҳуми «хориҷкунии массив» дар экрани монитор (дар окнои диалогb) баровардани элементҳои массивро фаҳмидан мумкин аст.
Агар дар программа баровардани тамоми қиматҳои элементҳои массив зарур бошад, онгоҳ барои ин кор инструксияи for – ро истифода бурдан мумкин аст. Дар ин ҷо инструксияи for барои индекси элементҳои массив истифода бурда мешавад.
Барои фаҳмо шудан мисоли зеринро меорем.
Массивро истифодабурда руйхати додашудаи зеринро
Matematika, Informatika, Adib, Hona, Omma.
дар Label 1 бароред.
Компанентҳои зеринро истифода мебарем:
Компонентхо | Ба сифати чи таъинкуни карда мешавад. |
Label 1 | баровардани «руйхат» дар форма |
Button 1 | Кнопкаи хисобкунии «руйхат» |
Button 2 | кнопкаи «баромад» |
Кнопкаи «Руйхат» -ро ду бор пахш намуда коди программаро менависем.
ҳ$R *.dfm}
const
NT = 5;
var
foot: arrayҳ1..NT] of stringҳ10] =
(‘Matematika’,’Informatika’,’Adib’,’Hona’,’Omma’);
procedure TForm1.Button1Click(Sender: TObject);
var
st:string;
i:integer;
begin
for i:=1 to NT do
st := st + IntToStr(i)+ ‘ ‘ + footҳi] + #13;
Label1.Caption := st;
end;
end.
Кнопкаи «Баромад» -ро ду бор пахш намуда коди зеринро менависем.
procedure TForm1.Button2Click(Sender: TObject);
begin
close;
end;
end.
Натиҷаи программа:
3. Дохилкунии массив
Дар зери мафҳуми «дохилкунии массив» рафти бадастовардани қиммати элементҳои массивро дар вақти кор кардани программа аз тарафи истифодабаранда фаҳмидан мумкин аст. Дар поён ду варианти «дохилкунии массив» бо истифода аз компанентҳои StringGrid ва Memo оварда шудааст.
Истифодабарии компоненти StringGrid
Барои дохилкунии массив компоненти StringGrid –ро истифода бурдан қулай аст. Компоненти StringGrid дар вкладкаи Additional ҷойгир аст. (ҷадвали 1).
Расми *. Компоненти StringGrid
Компоненти StringGrid ба худ таблитсаеро мегирад, ки ячейкаҳои он сатри символҳоро мегирад. Дар ҷадвали1 руйхати баъзе аз хосиятҳои (свойства) компоненти StringGrid оварда шудааст.
Ҷадвали 1. Хосиятҳои компоненти StringGrid
Хосият | Маълум мекунад |
Name | Номи компонент. Дар программа барои роҳхат ба хосияти компанент истифода бурда мешавад. |
ColCount | Миқдори катакҳои ҷадвал |
RowCount | Миқдори сатрҳои ҷадвал |
Cells | Ячейкаҳои ҷадвал, ки дар буриши сутуни номери col ва сатри номери row ҷойгиранд элементи cells ҳcol, row] -ро ташкил медиҳанд. |
FixedCols | Миқдори катакҳои аз чап бақайдгирифташудаи ҷадвал. Катакҳои бақайдгирифташуда бо ранг ҷудо карда мешавад ва ҳангоми гардондани прокруткаи горизонтали дар ҷояш меистад. |
FixedRows | Миқдори сатрҳои аз боло бақайдгирифташудаи ҷадвал.. Сатрҳои бақайдгирифташуда бо ранг ҷудо карда мешавад ва ҳангоми гардондани прокруткаи вертикали дар ҷояш меистад. |
Options. goEditing | Оид ба таҳриркунии символҳо дар ячейкаҳои ҷадвал буда. Агар true бошад, программа таҳриркуниро иҷозат медиҳад, дар акси ҳол яъне false иҷозат намедиҳад. |
Options. goTab | Барои истифодадаи клавиши <Таb> дар ячейка таблитса гузариш аз як ячейка ба дигараш. True – ичозат медиҳад ; False – иҷозат намедиҳад. |
DefaultColWidth | Паҳмии колонокаи таблитса |
DefaultRowHeight | Баландии сатри таблитса |
Left | Фосилаи аз чапи сарҳади майдони таблитса то сарҳади чапи форма. |
Top | Фосилаи аз болои сарҳади майдони таблитса то сарҳади болоии формаРасстояние от верхней границы поля. |
Height | Баландии майдони таблитса |
Width | Паҳмии майдоин таблитса |
Font | Шрифт ин барои инъикоси маълумоти дохили ячейкаи таблитса пешбини шудааст. |
Истифодабарии компоненти Memo
Дар якчанд ҳолатҳо барои дохил намудани массив компаненти Memo –ро истифода бурдан мумкин аст. Компоненти Memo имконият медиҳад, ки матнҳои аз якчанд сатр иборатбударо дохил кардан мумкин аст.
Барои ҳамин ин компанентро барои дохил намудани массивҳои символb(рамзb) одатан истифода мебаранд. Компоненти Memo – ро аз вкладкаи Standard – и истифода бурдан мумкин аст (дар форма).
Мо дар поён баъзе аз хосиятҳои (свойства)- и компаненти Memo -ро дида мебароем.
Хосиятҳои компоненти Memo
Хосият | Маълум мекунад |
Name | Номи компонент. Дар программа барои роҳхат ба хосияти компанент истифода бурда мешавад. |
Text | Матне, ки дар майдони Memo ҷойгир аст. |
Lines | Сатрҳои матни дар майдони Memo ҷойгирбуда. |
Lines .Count | Миқдори сатрҳои матн дар майдони Memo. |
Left | Фосила аз тарафи чапи сарҳади майдон то сарҳади чапи форма. |
Top | Фосила аз болои сарҳади майдон то болои сарҳади форма. |
Height | Баландии майдон. |
Width | Паҳмии майдон |
Font | Шрифт барои инъикоси матни дохилкардашуда. |
Истифодабарии компоненти Memo барои дохил намудани қимати ҳар як элементи массив дар сатри алоҳида дохил карда мешавад, ки баъди дохил кардани ҳар як элемент клавиши <Enter> пахш карда мешавад.
Барои дастрас кардани қимати сатри майдон аз хосияти Lines (дар қавси квадрати номери сатри заруриро нишон диҳед) истифода бурдан мумкин аст (сатри аз нол сар мешавад).
Сикли асосии проседураи дохил намудани массиви символb ба компанента Memo чунин аст:
for i:=l to SIZE do
a ҳ i ]:= Memol.Linesҳi];
дар ин ҷо:
SIZE — доимиҳои номдор, ки андозаи массивро муайян мекунад;
а — массив;
Memol — номи компоненти Memo;
Lines — хосияти компоненти Memo, ки ба худ массивро мегирад (ҳар як элементи он ба худ як сатри дар майдони Memo ҷойгир бударо мегирад).
Хулоса ва мустаҳкамкунии дарс
Донистани массив барои донишҷўен зарур мебошад, чунки баъзе аз масъалаҳо талабот ба истифодабарии «массив» – ро дорад. Бояд қайд карда, ки барои баъзе масъалаҳо агар мо «массив» – ро истифода набарем, мо барномаи он масъаларо навишта наметавонем. Дар забони Delphi 7 массив ҷои махсусро ишѓол мекунад. Дар фазои консолb ва дар фазои формавb.