Фании Информатика

Массивҳо

Массивҳо

Массив – ин сохтори маълумоте, ки ба худ дастаи тағирёбандаҳои типи якхеладоштаро гирифта номи умумӣ дорад. Масивҳоро барои сабти информатсияи якҷинса истифода бурдан қулай аст. Масалан, таблитсаҳо ва руйхатҳо.

1.Эълони массив

Массив ба монанди тамоми тағирёбандаҳое, ки дар программа истифода бурда мешаванд, пеш аз истифодабарӣ бояд дар қисми эълони тағирёбандаҳо эълон карда шавад.

Дар намуди умуми инструксияи эълони массив чунин аст:

Ном: array [индекси поёни..индекси болои] of тип

дар ин ҷо:

  • ном – номи массив;
  • array – калимаи эҳтиётии забон буда, массивро мефаҳмонад;
  • индекси поёни ва индекси болои — ададҳое бутуне, ки ченаки массивро мефаҳмонанд. Дар ин ҷо мо метавонем руйхати индексҳоро, ки бо якдигар бо вергул ҷудоанд, истифода барем;
  • тип – типи элементҳои массив.

Мисоли эълони массивҳо шуда метавонанд:

tem:arrayҳ1..31] of real;

коf:arrayҳ0. .2] of integer;

name:arrayҳ1..30] of stringҳ25];

Барои эълони массив доимиҳои номдорро истифода бурдан қулай аст. Доимиҳои номдор дар қисми эълони доимиҳо эълон карда мешаванд, ки онҳо одатан пеш аз қисми эълони тағирёбандаҳо ҷойгиранд. Қисми эълони доимиҳо бо калимаи const сар мешавад. Баъди эълон кардани доимиҳои номдор онро ҳамчун доимии рамзӣ дар программа истифода бурдан мумкин аст.

Мисол:

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. Амалиётҳо бо массивҳо

Амалиётҳо бо масивҳо инҳо шуда метавонанд:

  1. хориҷкунии массив;
  2. дохилкунии массив;
  3. ҷустуҷӯ намудани элементи минималӣ ва максималии массив;
  4. ҷустуҷӯи элементи массиве, ки дода мешавад;
  5. сортировканамоии массив.

Ҳар яки инро дар алоҳидаги дида мебароем:

  1. Хориҷкунии массив;

Дар зери мафҳуми «хориҷкунии массив» дар экрани монитор (дар окнои диалогӣ) баровардани элементҳои массивро фаҳмидан мумкин аст.

Агар дар программа баровардани тамоми қиматҳои элементҳои массив зарур бошад, онгоҳ барои ин кор инструксияи 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 имконият медиҳад, ки матнҳои аз якчанд сатр иборатбударо дохил кардан мумкин аст.

Барои ҳамин ин компанентро барои дохил намудани массивҳои символӣ(рамзӣ) одатан истифода мебаранд. Компоненти Memo – ро аз вкладкаи Standard – и истифода бурдан мумкин аст (дар форма).

Мо дар поён баъзе аз хосиятҳои (свойства)- и компаненти Memo -ро дида мебароем.

Хосиятҳои компоненти Memo

ХосиятМаълум мекунад
NameНоми компонент. Дар программа барои роҳхат ба хосияти компанент истифода бурда мешавад.
TextМатне, ки дар майдони Memo ҷойгир аст.
LinesСатрҳои матни дар майдони Memo ҷойгирбуда.
Lines .CountМиқдори сатрҳои матн дар майдони Memo.
LeftФосила аз тарафи чапи сарҳади майдон то сарҳади чапи форма.
TopФосила аз болои сарҳади майдон то болои сарҳади форма.
HeightБаландии майдон.
WidthПаҳмии майдон
FontШрифт барои инъикоси матни дохилкардашуда.

Истифодабарии компоненти Memo барои дохил намудани қимати ҳар як элементи массив дар сатри алоҳида дохил карда мешавад, ки баъди дохил кардани ҳар як элемент клавиши <Enter> пахш карда мешавад.

Барои дастрас кардани қимати сатри майдон аз хосияти Lines (дар қавси квадрати номери сатри заруриро нишон диҳед) истифода бурдан мумкин аст (сатри аз нол сар мешавад).

Сикли асосии проседураи дохил намудани массиви символӣ ба компанента Memo чунин аст:

for i:=l to SIZE do

a ҳ i ]:= Memol.Linesҳi];

дар ин ҷо:

SIZE — доимиҳои номдор, ки андозаи массивро муайян мекунад;

а — массив;

Memol — номи компоненти Memo;

Lines — хосияти компоненти Memo, ки ба худ массивро мегирад (ҳар як элементи он ба худ як сатри дар майдони Memo ҷойгир бударо мегирад).

Хулоса ва мустаҳкамкунии дарс

Донистани массив барои донишҷӯен зарур мебошад, чунки баъзе аз масъалаҳо талабот ба истифодабарии «массив» — ро дорад. Бояд қайд карда, ки барои баъзе масъалаҳо агар мо «массив» — ро истифода набарем, мо барномаи он масъаларо навишта наметавонем. Дар забони Delphi 7 массив ҷои махсусро ишғол мекунад. Дар фазои консолӣ ва дар фазои формавӣ.

Main Aditor

Здравствуйте! Если у Вас возникнут вопросы, напишите нам на почту help@allinweb.info

Саҳифаҳои монанд

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *