Войти Регистрация

Docx

  • Рефераты
  • Дипломные работы
  • Прочее
    • Презентации
    • Рефераты
    • Курсовые работы
    • Дипломные работы
    • Диссертациии
    • Образовательные программы
    • Инфографика
    • Книги
    • Тесты

Информация о документе

Цена 15000UZS
Размер 635.4KB
Покупки 0
Дата загрузки 30 Сентябрь 2024
Расширение docx
Раздел Курсовые работы
Предмет Информатика и ИТ

Продавец

Bohodir Jalolov

Delphiда массивлар билан ишлаш

Купить
 
Delphiда массивлар билан ишлаш
РЕЖА:
1.Массивни эълон қилиш 
2.Массивни чиқариш 
3.Массивни киритиш 
4.StringGrid компонентидан фойдаланиш 
5.Memo компонентидан фойдаланиш 
6.Кўп ўлчовли массивлар 
7.Массивдан фойдаланишдаги хатолар 
8.XULOSA  
  1.Массивни эълон қилиш.
Массив бошқа ўзгарувчилар каби ўзгарувчиларни эълон қилинадиган қисмда 
эълон қилинади. Умумий кўриниши қуйидагича бўлади: 
Ном: array[пастки индекс.. юқори индекс] of тур 
Бу ерда 
• Ном- массив номи 
• Array- эълон қилинаётган ном массив эканлигини англатувчи калит 
сўз 
• пастки индекс. юқори индекс – массив элементлари сони, яъни 
массив элементлари индексининг ўзгариш диапазонини билдирувчи
бутун сонлар 
• тур- массив элементлари тури 
 
Массив эълон қилишга мисоллар: 
temper:array[1..31] of real; 
ко ef:array[0. .2] of integer; 
name:array[1..30] of string[25]; 
Массив эълон қилганда костанталардан фойдаланиш жуда ҳам қулайдир. 
Номланган константа ўзгарувчиларни эълон қилиш бўлимидан олдин 
константаларни эълон қилиш бўлимида тавсифланади. Константаларни эълон 
қилиш const сўзи билан бошланади. Номли константани эълон қилиш учун 
дастлаб константа номи ва тенг (=) белгисидан сўнг унга бериладиган қиймат 
ёзилади. Масалан қиймати 10 га тенг nt номли константани эълон қилиш учун 
const бўлимида nt=10 деб ёзиш керак. Константани эълон қилгандан сўнг уни 
дастурнинг ихтиёрий қисмида ундан фойдаланиш мумкин. Қуйида келтирилган
мисолда футбол чемпионатининг гурух – қатнашувчи массивини эълон 
қилишда константадан фойдаланилган: 
const 
NT = 18; //  гурух   сони  
SN = 25; //  номлар   узунлиги   чегараси  
team: array[1..NT] of string[SN]; 
Дастурда массив элементидан фойдаланиш учун унинг номи ва элемент 
индексини квадрат кавсга олиш керак. Индекс сифатида бутун типли константа 
ёки ифода қўлланилиши мумкин. Масалан: 
team [ 1] := 'Пахтакор'; 
d := koef[l]*koef[l]-4*koef[2]*koef[1];  ShowMessage(name[n+1]); 
temper[i] := StrToFloat(Edit1.text); 
Массивни   эълон   килаётган   пайтнинг   ўзида   унинг   қийматларини   бериб   ўтиш  
мумкин .  Массивни   эълон   килиш   жаранида   қийматларини   беришнинг   умумий  
кўриниши   қуйидагича : 
Ном :arrayp[ пастки   индекс .. юқори   индекс ] of  тур =( рўйхат ); 
Бу ерда: рўйхат-вергул билан ажратилган массив элементлари. Масалан : 
a: array [10] of integer = (0,0,0,0,0,0,0,0,0,0); 
Team: array[1..5] of String[10]= 
(' Пахтакор ',' Навбахор ',' Нефтчи ',' Хоразм ',' Термиз '); 
Массив   элементлари   ўлчами   билан   рўйхатдаги   элементлар   сони   бир   хил  
бўлишига   эътибор   беринг .  Аксхолда   компилятор   хатолик   хақида   хабар   беради : 
 Number of elements differs from declaration ( элементлар   сони   эълон  
қилингандагига   тўғри   келмайди ) 
 
Массив   бу   битта   ном   остида   бир   турга   мансуб   ўзгарувчилар   тўпламини   ўзида  
сақловчи   ўзгарувчидир .  Массивларни   маълумот   таркибига   қараб   битта   турдаги  
маълумотларни ,  масалан ,  жадвал   ва   рўйхатларга   нисбатан   қўллаш   жуда  
қулайдир . 
 
Массивлар устида амаллар 
Массивлар устида оддий амалларга қуйидагилар киради: 
• массивни чиқариш    массивни киритиш 
• массивнинг энг кичик энг катта элементини қидириш 
• массивнинг берилган элементини қидириш 
• массивни тартиблаш 
 
2.Массивни чиқариш. 
Массивни чиқариш деганда унинг элементлари қийматини монитор экранига 
(диалог ойнасига) чиқариш тушунилади. 
Агар дастурда массивнинг барча элементларини чиқариш керак бўлса, у холда 
for буйруғидан фойдаланган қулайдир ва бу буйруқнинг санагичи сифатида 
массив элементининг индекси олинади. Мисол тариқасида массив элементлари 
қийматларини белги майдонида чиқаришни кўрсатувчи дастурнинг кўриниши 
5.1 расмда келтирилган. Дастур номерланган гурухлари номларини  номерланган рўйхат қилиб чиқариб беради. Дастур матни 5.1 листингда 
келтирилган. 
 
 
 
5.1 расм. Массивни чиқариш дастурининг диалог ойнаси 
5.1 листинг. Массивни чиқариш 
дастури  unit outar_; interface uses 
Windows, Messages, SysUtils, Variants, 
Classes, Graphics, Controls, 
Forms, Dialogs, StdCtrls; type 
TForm1 = class(TForm) 
Button1: TButton; Label1: TLabel; 
procedure ButtonlClick(Sender: 
TObject); private 
{ Private declarations } 
public { Public 
declarations } end; var 
Form1:   TForm1;   implementation   ($R   *.dfm}   const   NT   =   5;   var   team:
array[1..NT] of string[10] =('Paxtakor', 'Neftchi', 'Navbaxor', 'Xorazm', 
'Guliston'); procedure TForml.ButtonlClick(Sender:
TObject); 
var 
st:string; //  командалар   рўйхати  i:integer;
//  индекс ,  массив   элементи   номери  
begin  //  формада   тасвирлаш   учун   рўйхатри  
расмийлаштириш  for i:=l to NT do st := st + IntToStr(i)+ ' 
' 
+ team[i] + #13; //  рўйхатни   чиқариш   
Label1.Caption :
= st; end; end. 
3. Массивни   киритиш . 
Массивни   киритиш   деганда   дастурнинг   ишлаш   мобайнида   фойдаланувчидан  
( ёкифайлдан )  массив   элементларини   кабўл   қилиш   жараёни   тушунилади . 
Массивнинг хар бир элементини киритиш учун киритиш майдонини яратиш 
зарур. Агар массив элементлари етарли даражада катта бўлса у холда бу ечим 
тўғри келмайди. Фараз қилинг 15 та киритиш майдонли формани. Кўриниб 
турибдики, сонлар кетма-кетлигини хар бир сон алохида катакчада 
жойлашадиган жадвал кўринишида киритган маъкул. Қуйида массив 
эелементларини компонентлар ёрдамида киритишни ташкил этишнинг 2 та 
усули куриб чикилади. StringGrid ва Memo ёрдамида. 
4.StringGrid компонентидан фойдаланиш. 
Массив элементларини киритишда StringGrid компонентидан фойдаланиш жуда
ҳам қулай бўлиб, бу компонент Additional сахифасида жойлашган(5.2 расм). 
5.2 расм StringGrid компоненти 
StringGrid компоненти ўзида хар бир катаги символлар сатридан иборат 
жадвални намоён килади. 5.1 жадвалда StringGrid компонентнининг баъзи 
хусусиятлари келтирилган: 
5.1 жадвал. StringGrid коипоненти хусусиятлари 
Х у су сият  Вазиф аси  
Name  Компонент  номи.  Компонент 
хусусиятларига 
ишлатилади  эгалик  қилиш  учун  ColCount  Жадвал устунлари сони 
RowCount  Жадвал каторлари сони 
Cells  Жадвалги мос 2 ўлчамли массив.
Col   номерли   устун   ва   row   номерли
каторда жойлашган жадвалнинг катак
элементи cells[row,col,] 
FixedCols  Жадвалнинг  чап  томонидаги 
устунлар сони бўлиб, уни горизонт 
буйлаб харакатлантирган пайтда уз 
жойида колади. 
FixedRows  Жадвалнинг  юқори 
қисмидагикаторлар сони бўлиб, уни 
вертикал  буйлаб  харакатлантирган 
пайтда уз жойида колади. 
Options . goEditing  Жадвал элементини ўзгартириш 
мумкинлигини  билдирувчи 
хусусият. Агар True бўлса 
ўзгартириш рухсат этилган, False бўлса 
ман қилинган. 
Options . goTab  Курсорни жадвал катаглари 
буйлаб харакат  килдириш 
учун  <Tab> тугмачасидан 
фойдаланишга  рухсат 
(True) ёки рухсат бермайди (False) . 
Options . 
GoAlwaysShowEditor  Компонентни   ўзгартириш
жараёни   мобайнида   топа   олиш
хусусияти.   Агар   хусусият   False   бўлса
катакчада   курсор   пайдо   бўлиши   учун
F2   тугмасини   босиб   ёки   сичконча
билан   битта   туртиб   матнни   ёзиб
бошлаш керак. 
DefaultColWidth  Жадвал устунлари кенглиги 
DefaultRowHeight  Жадвал каторлари баланлиги 
GridLineWidth  Жадвал  катаги  чегаралари  чизигининг калинлиги 
Left  форма  чап  чегарасидан 
жадвалнинг чап чегарасигача бўлган 
масофа 
Top  форма  юқори  чегарасидан 
жадвалнинг юқори чегарасигача 
бўлган масофа 
Height  Жадвал майдони баландлиги 
Width  Жадвал майдони кенглиги 
Font  Жадвал  элементини 
тасвирлаш учун ишлатиладиган 
шрифт 
ParentFont  Форма  шрифтининг  мерослик 
белгиси 
StringGrid компонентини ишлатишга мисол тарикасида массив элементлари 
қийматларини урта арифметигини хисобловчи дастурини куриб чикамиз. 5.3 
расмда диалог ойнаси кўрсатилган. Бунда StringGrid компоненти массивни 
киритиш учун, Label1 ва Label2 компонентлари хисоблаш натижаси ва 
тушунтирувчи матн чиқариш учн, Button компоненти натижани хисоблаш учун 
ишлатилган. 
5.3 расм. Массивни киритиш ва ка  йта ишлаш дастурининг 
ойнаси 
  StringGrid компоненти формага бошқа компонентлар каби кушилади. Ундан 
сўнг бу компонентни 5.2 жадвалда кўрсатилган каби созлаш керак. Дастур 
матни 5.2 листингда келтирилган. 
5.2 жадвал. StringGrid компоненти хусусиятлари 
Х у су сият  Қ ийм ат 
ColCount  5 
FixedCols  0 
RowCount  1 
DefaultRowHeight  24 
Height  24 
DefaultColWidth  64 
Width  328 
Options.goEditing  True 
Options.AlwaysShowEditing  True 
Options.goTabs  True 
Листинг 5.2. Массив бутун сонларини киритиш ва кайта 
ишлаш unit getar_; interface uses 
Windows, Messages, SysUtils, Variants, 
Classes, Graphics, Controls, Forms, Dialogs, Grids, StdCtrls; 
type 
TForm1 = class(TForm) 
Label1: TLabel; 
StringGridl: TStringGrid; 
Button1: TButton; Label2: TLabel; procedure
ButtonlClick (Sender: TObject); private 
{Private declarations} 
public 
{Public 
declarations} 
end; var 
Form1: TForml ; implementation {$R *.dfm} 
procedure TForml.ButtonlClick(Sender: 
TObject); var a : array[1..5] of integer; //  массив   summ: integer; //  элементлар   йигиндиси  sr: 
real; //  урта   арифметик  i: integer; //  индекс  
begin 
//  массивни   киритиш  
//  агар   массив   элементи   буш   бўлса ,  уни   ноль   деб  
оламиз  for i:= 1 to 5 do if Length(StringGridl.Cells[i-1, 
0]) <>0 then a[i] := StrToInt(StringGridl.Cells[i-1,0]) else 
a[i] := 0; 
//  массивни   кайта   ишлаш  
summ := 0; 
for i :=1 to 5 do summ := summ +
a[i]; sr := summ / 5; 
//  натижани   чиқариш  
Label2.Caption :=' Элементлар   йигиндиси : ' + IntToStr(summ)+ + #13+
' Урта   арифметик : ' + FloatToStr(sr); end; end. 
5.Memo  компонентидан   фойдаланиш . 
Айрим   холларда   массивни   киритиш   учун  Memo  компонентидан   фойдаланиш  
мумкин .  Бу   компонент   ката   сондаги   сатрлардан   иборат   матнни   киритишга  
имкон   беради   ва   уни   символли   массив   кўринишида   ишлатиш   жуда   қулайдир . 
Memo  компоненти   формага   одатдагидай   кушилади . Memo  компоненти   белгиси  
Standard  сахифасида   жойлашган  (5.4  расм ). 
5.4  расм . Memo  компоненти  
5.3  жадвалда  Memo  компонентининг   бир   канча   хусусиятлари   санаб   утилган . 
5.3 жадвал. Memo компоненти хусусиятлари 
Х у су сият  Вазиф аси  
Name  Компонент номи. Дастурда 
ушбу компонент хусусиятларига 
эгалик қилиш учун ишлатилади 
Text  Memo   майдонида жойлашган матн. Битта бутун деб
қаралади 
Lines  Memo майдонида 
жойлашган матн.  Сатрлар 
тўплами  деб қаралади ва 
хар бир сатрга мурожаат унинг 
номери буйлаб амалга 
оширилади 
Lines .Count  Memo майдонидаги сатрлар
сони 
Left  Форманинг   чап
чегарасидан   компонентнинг   чап
чегарасигача бўлган масофа 
Top  Форманинг  юқори 
чегарасидан  компонентнинг 
юқори  чегарасигача  бўлган 
масофа 
Height  Майдон баландлиги 
Width  Майдон кенглиги 
Font  Матннинг   кўринадиган
қисми   учун   ишлатиладиган
шрифт 
ParentFont  Форма   шрифтининг
мерослик белгиси 
Массив элементларини киритишда Memo компонентидан фойдаланган пайтда 
хар бир элемент қиймати алохида сатрда киритилиши керак, яъни хар бир 
массив элементи киритилгандан сўнг <Enter> тугмасини босиш керак. 
Memo майдонида жойлашган хар бир сатрга мурожаатни Lines хусусиятига 
квадрат қавс билан сатр номерини киритган холда амалга ошириш мумкин 
(сатрлар 0 дан бошлаб номерланади). 
5.5 листингда келтирилган матни келтирилган дастур символли массивни Memo
компоненти оркали киритишни намойиш килади. 
Memo компонентидан массив элементи қийматларини киритишнинг асосий 
цикли қуйидаги амалга оширилади:  for i:=l to SIZE do 
a [ i ]:= 
Memol.Lines[i]; 
бу ерда, 
• Size- массив ўлчамини аниқловчи номланган константа; 
• a- массив 
• Memo1- Memo компоненти номи 
• Lines- Memo компоненти хусусияти бўлиб, ўзида Memo 
майдонидаги матннинг хар бир сатрни сақлайди. 
Дастур формаси 5.5 расмда келтирилган. Memo майдони ёнида тугмача 
босилиши билан Memo майдонидан массив қийматини ўзлаштирадиган буйруқ 
тугмаси (Button1) мавжуд. 
5.5 расм. Массивни киритиш дастурининг диалог ойнаси. 
5.5 Листинг. Memo компоненти сатрларидан массивни 
киритиш unit fr_memo_; interface uses 
Windows, Messages, SysUtils, Classes, 
Graphics, Controls, Forms, Dialogs, Menus, StdCtrls; 
type 
TForm1 = class(TForm) 
Memo1: TMemo; 
Button1: TButton; Label1: TLabel; 
procedure ButtonlClick(Sender: 
TObject); private 
{ Private declarations } 
public  { Public 
declarations } 
end; var 
Forml: TForm1; implementation ($R *.DFM} 
procedure TForml .ButtonlClick(Sender: 
TObject); const 
SIZE=5; //  массив   ўлчови  
a:array[l..SIZE]of string[30]; // массив  n: 
integer; // Memo  майдони   сатрлари  
сони  
i:integer; //  массив   элементлари   индекси  
st:string; begin 
n:=Memo1.Lines.C
ount; if n = 0 then 
begin 
ShowMessage(' Дастлабки   маълумотлар  
киритилмаган !'); Exit; //  Ходисани   кайта   ишлаш  
жараёнидан   чикиш  end; 
// Memo  майдонида   матн  
мавжуд  if n > SIZE then begin 
ShowMessage(' Сатрлар   сони   массив   ўлчовидан  
ортик .'); n:=SIZE; //  Дастлабки  SIZE  та   сатрни  
киритамиз  end; 
for i:=1 to n do 
a[i]:=Form1.Memol.Lines[i-1];  //  Memo  сатри   нолдан  
бошлаб  
номерланади  
//  Массив   элементларини   хабар   дарчасида  
чиқариш  if n > 0 then begin 
st:=' Киритилган   массив :'+#13; for  i: =1 to n
do   st:=st+IntToStr(i)+'   '+   a[i]+f13;
ShowMessage(st); end; end; end.  5.6  расмда   массивни   киритиш   дастурининг   кўриниши   келтрилган . Киритиш  
тугмасини   босиш   билан   Мемо   майдон   оркали   киритилган   массив   элементлари  
қийматни   намойиш   этувчи   ойна   пайдо   бўлади  (5.7  расм ). 
 
5.6 расм. Массивни киритиш дастури ойнаси 
 
5.7 расм. Мемо майдонидан киритилган массив 
 
6.Кўп ўлчовли массивлар. 
Кундалик   турмушда   жадвал   кўринишдаги   маълумотлар   билан   тез   –   тез
ишлашга   тўғри   келади.   Масалан,   автомобил   савдоси   билан   шугулланувчи
бирор   бир   фирманинг   иш   фаолияти   5.7   жадвалда   кўрсатилгандай
тасвирланиши мумкин. 
5.7 жадвал 
             
 
Январь Ф евраль Март  ...  Ноябрь Дек абр
ь
ВA 3 
2106             
ВA 3              2107 
ВA 3 
2108             
ВA 3 
2109             
ВА З 
2110             
ВА З 
2111             
             
Жадвалнинг устунлари ва сатрлари коида буйича бир турдаги маълумотлардан 
иборат. 
Шунингучунжадвалбиланишкурадигандастурлардамассивларданфойдаланишж
удақ улай. Демак, 
юқоридакелтирилганжадвалниқуйидагибирўлчовлимасиивлартўпламиёрдамида
тасв ирлашмумкин: 
vaz2106: array [1..12] of integer; 
vaz2107: array [1..12] of integer; 
vaz2108: array [1..12] of integer; 
vaz2109: array [1..12] of integer; 
vaz2110: array [1..12] of integer; 
vaz2111: array [1..12] of integer; 
Хар бир массив ўзида мос ойда мос маркадаги аавтомобилдан сотилган 
автомобил сонини сақлайди. 
Бу жадвални қуйидаги кўринишда ҳам массив яратиш мумкин: 
jan: array [1..6] of integer; 
feb: array [1..6] of integer; 
mar: array [1..6] of integer;
dec: array [1..6] of integer;
Бундайхолдахарбирмассив
зхарбиройдасотилганавтом
обилларсонинисақлашгаму
лж алланган,  яънихарбирмассивэлементибиттамаркаданканчаавтомобилсотилганлигинихақи
дама ълумотсақлайди. 
  Агар жадвал бита турдаги маълумотни масалан, бутунсонларни 
сақласа у холда бундай жадвални 2 ўлчовли массив кўринишида 
тасвирлаш мумкин. 2 ўлчовли массивни эълон қилишнинг умумий 
кўриниши қуйидаги кўринишда бўлади: 
Ном: array[пастка чегар1..юқори чегара1, пастки чегара2..юқори 
чегара2] of тур 
Бу ерда 
  Ном- массив номи 
Array- эълон қилинаётган ном массив эканлигини англатувчи Delphi нинг калит 
сўзи 
Пастка чегара1..юқори чегара1, пастки чегара2..бкори чегара2- массив индекси 
оралиги ва мос холда массив элеменлари сонини англатувчи бутун 
константалар 
Тур- массив элементи тури 
5.7 жадвал 2 ўлчовли массив кўринишида қуйидагича тасвирланиши мумкин: 
itog: array [1..12, 1..6] ofinteger 
2 ўлчовли массив элементлари сонини қуйидагм формула оркали хисоблаш 
мумкин: (ЮЧ1-ПЧ1+1)х(ЮЧ2-ПЧ2+1) 
Бунда 
• ЮЧ1 ва ЮЧ2- биринчи ва иккинчи индексларнинг юқори чегараси 
• ПЧ1 ва ЧП2- биринчи ва иккинчи индексларнинг пастки чегараси. 
Шундай экан itog массиви integer турдаги 60 элементдан иборат 
экан. 
Массив элементини ишлатиш учун шу элементнинг индекслари кўрсатилиши 
керак. Одатда биринчи индекс жадвалнинг катор номерига, иккинчи индекс эса 
устун номерига мос келади. Демак, itog[2,3] элементида март ойида (3 чи ой) 
ВАЗ 2107 маркали автомобилдан (ВАЗ 2107 автомобилидан сотилган 
автомобиллар хақидаги маълумот 2 каторда жойлашади) канча сотилганлиги 
хақида маълумот сақланади. 
Жадваллар (массивлар) билан ишлаганда for буйруғидан фойдаланиш қулай. 
Масалан, битта маркадаги автомобилдан йил буйича канча автомобил 
сотилганлигини аниқлайдиган дастур қисми қуйидагича: 
s := 0; for 
j := 1 to 12 
do s := s + 
itog[2,j];  Кейинги   дастур   қисми   эса   йил   буйича   сотилган   барча   автомобиллар  
сонини   хисоблаб   беради : s:=0; 
for i := 1 to 6 do //  автомобилнинг  6  тамаркаси  
for j := 1 to 12 do //12  ой  
s :=  s + itog[i,j]; 
Мисол   тарикасида  2000  йил   Сиднейда   бўлиб   утган   ёзги   олимпиада  
мусобакаларининг   натижаларини   кайта   ишловчи   дастурни   курибчикамиз . 
Дастлабки маълумотлар 5.8 жадвалда келтирилган. 
5.8 жадвал. 200 йил Сидней олимпиадаси натижалари 
Давлат  
Олти
н  
К у м у
ш  
Бронза  
А встра лия  16  25  17 
Белару сь  3  3  11 
Велик  
тания  обри 11  10  7 
Г ерм а ния  14  17  26 
Италия  
13  8  13 
К итай   28  16  15 
К орея  8  9  11 
К у ба  11  11  7 
Нидер 
ы   ланд 12  9  4 
Россия  32  28  28 
Ру м ы н ия  11  6  9 
США   39  25  33 
Ф ранц ия  13  14  11 
Япония  
5  8  5 
Дастур хар бир давлат томонидан кулга киритилган медаллар сонининг умумий
сонини медалга мос баллга кура яъни хар бир олтин медал учун 7 балл, кумуш 
учун 
6 балл ва бронза учун 5 балл билан хисоблаши керак. Дастурнинг диалог 
ойнасининг кўриниши 5.20 расмда келтирилган.  5.20 расм Олимпиада натижалари дастури диалог ойнаси 
 
Дастлабки маълумотларни киритиш ва тасвирлаш учун StringGrid 
компонентидан фойдаланилган ва унинг хусусиятлари 5.9 жадвалда 
келтирилган. 5.9 жадвал. StringGrid компоненти хусусиятлари қиймати 
Х у су сият  Қ ийм ат 
Name  Tab1 
ColCount   6 
Row Count   14 
FixedCols  0 
FixedRow s  1 
Opt ions . goEdit ing  TRUE 
Default ColWidt h  65 
Default Row Height   14 
GridLineWidt h  1 
Жадвалнинг биринчи катори жадвал устунларини номлаш учун хизмат килади. 
Формани яратаётган пайтда cells массиви элементлари қийматини урнатиш 
мумкин эмас, факат дастур бажарилаётган пайтдагина массив элементларига 
мурожаат қилиш мумкин. Шунинг учун Cells массиви элементларини яъни 
жадвалнинг биринчи каторини Форма фаоллашган пайтда содир бўладиган 
OnActivate ходисани кайта ишловчи процедурасида урнатиш лозим. Бундан  ташкари бу процедурада жадвалнинг биринчи устуни яъни олимпиадада 
катнашган давлатлар номи ҳам киритилади. 
Листинг 5.11.жадвални ишга тушириш 
procedure TForml.FormActivate(Sender: TObject); 
begin tab1.Cells[0,0] ='Давлат'; tab1.Cells[1,0] 
='Олтин'; tab1.Cells[2,0] ='Кумуш'; tab1.Cells[3,0] 
='Бронза'; tab1.Cells[4,0] ='Жами'; tab1.Cells[5,0] 
='Балл'; tab1.Cells[0,1] ='Австралия'; 
tab1.Cells[0,2] ='Белоруссия'; tab1.Cells[0,3] 
='Великобритания'; tab1.Cells[0,4] ='Германия'; 
tab1.Cells[0,5] ='Италия'; tab1.Cells[0,6] ='Китай'; 
tab1.Cells[0,7] ='Корея'; tab1.Cells[0,8] ='Куба'; 
tab1.Cells[0,9] ='Нидерландия'; 
tab1.Cells[0,10]— 'Россия'; 
tab1.Cells[0,ll]:='США'; 
tab1,Cells[0,12]:='Франция'; 
tab1.Cells[0,13]:='Япония'; end; 
БерилганжадвалмаълумотлариникайтаишлашбуйруқтугмасиНатижаларнибосга
ндан кейинчиқарилади (5.12 листинг). 
5.12 листинг. 2 ўлчовли массивни кайта ишлаш 
procedure TForml.ButtonlClick(Sender: TObject); var 
c,r:integer; //жадвалнинг устун ва катор номерлари 
s:integer; // гурухнинг медаллар сони р:integer; // 
гурух балли m:integer; // энг кўп балли гурух катор 
номери buf:array[0..5] of string; // каторни 
алмаштириш буфери i:integer; // катор номери. 
Тартиблашда фойдаланилади begin 
for r:=l to tab1.rowcount do //  барча   каторни   кайта   ишлаш  
begin s:=0; 
//  жами   балларни   хисоблаймиз  
for   c:=l   to   3   do   if
tab1.cells[c,r]   <>''   then
s:=s+StrToInt(tab1.cells[c,r])  else tab1.cells[c,r]:='0'; //  балларни  
хисоблаймиз  p:=7*StrToInt(tab1.cells[l,r])+ 
6*StrToInt(tab1.cells[2, r] ) 
+ 5*StrToInt(tab1.cells[3,r]}; 
//  натижаларни   чиқариш  
tab1.cells[4,r]:=IntToStr(s); //  жами  
медаллар  tab1.cells[5,r]:=IntToStr(p); // 
баллар  end; 
//  жадвални   баллар   сонига   кура   камайиш   тартибида  
тартиблаш  for r:=l to tab1.rowcount-1 do 
begin 
m:=r; // r-  каторда   максимал   элемент  for i:=r
to tab1.rowcount-1 do if 
StrToInt(tab1.cells[5,i])>StrToInt(tab1.cells[5,
m]) then m:=i; if r <> m then begin // r –
каторни  m- катор   билан   алмаштириш  for 
c:=0 to 5 do begin buf[ с ]:=tab1.Cells[c,r]; 
tab1.Cells[c,r]:=tab1.Cells[c,m]; 
tab1.Cells[c,m]:=buf[c]; end; end; end; end; 
Дастур дастлаб хар бир давлатнинг умумий медаллар сонини ва унга мос 
балларни хисоблайди. Кейин, хисобланган балларга кура жадвални камайиш 
буйича тартиблайди. Тартиблаш мобайнида каторларни алмаштиришда 
индекси жадвал устунлари индекси билан бир хил buf сатрли массивидан 
фойлаланилади. Бу усул билан буфердаги каторни жадвалга кўчириш ва жорий 
жадвал каторини буферга олиш имконини беради. 
Массивни кайта ишлаш дастурини тамомланишининг диалог ойнаси 5.21- 
расмда келтирилган.  5.21-расм.  Олимпиада Натижалари  дастури ойнаси 
 
7.Массивдан фойдаланишдаги хатолар. 
  Массивдан фойдаланишда йўлга қўйиладиган энг хатолардан биттаси бу 
массив индексининг уни эълон қилган пайтдаги индекс чегарасидан чиқиб 
кетишидир. Агар индекс сифатида константадан фойдаланилса ва унинг 
қиймати чегарадан чиқиб кетса, бундай турдаги хато дастурни компиляция 
қилиш мобайнида аниқланади. Масалан, дастурда массив қуйидагича эълон 
қилинган бўлса: 
Day:   array[0..6]   of   string[11];
Компиляциямобайнидадастурда   day   [7]   :=
'Якшанба'; қисмихатодеббелгиланади. 
Агар массив  элементига  мурожаат  қилишда  индекс сифатида  ўзгарувчи  ёки
ифода ишлатилса, у холда хатолар дастур бажарилиш мобайнида рўй беради.
Масалан   дастурда   массив   қуйидагича   эълон   қилинган   бўлса,   tab1:   array
[1..N] of integer; 
ва  
for i:=0 to N do tab1[i] := 5;  катори  
формал жихатдан тўғри ва компиляциядан муваффақиятли ўтади. Бирок дастур 
бажарилиши мобайнида tab массивига мавжуд бўлмаган нолинчи элемент 
ўзлаштирилса экранга хатолик хақида хабар чиқарилади. Хабар дарчаси 
кўриниши дастурни қаердан туриб бажарилаётганлигига боғлиқ.  Кўрилаётган дастур Delphiнингўзидан бажарилса, ухолда 5.22-расмда 
келтирилга дай хабар чиқарилади. 
5.22-расм. Массивнинг мавжуд бўлмаган элементига 
мурожаат вақтида чиқариладиган хатолик хабари (Delphi дан 
бажарилтирилган дастурда) 
Агар дастур Windows дан бажартирилса у холда экранга Range check error 
(диапазон бошқариш хатолиги) хабари чиқарилади. Хабар сарлавхасида 
хатолик юз берган дастур номи келтирилади(5.23-расм). 
 
5.23-расм. Массивнинг мавжуд бўлмаган элементига 
мурожаат вақтида чиқариладиган хатолик хабари (windows дан 
бажарилтирилган дастурда) 
 
 
 
8. ХУЛОСА 
 
  “Кадрлар   тайёрлаш   миллий   дастури”да   шахсни   ривожлантиришга   берилган
жуда   катта   эътиборнинг   боиси   шундаки,   фақат   шахснинг   камолоти   унинг
интеллектуал   заковатигина   жамият   тараққиётининг   омили   була   олади.
Шахсдаги   интеллектуал   заковат   эса   яхши   ташкил   этилган   таълим-тарбия
жараёнидагина   уйгониши,   тараққий   этиши   ва   шахс   камолотини   таъминлаши
мумкин.   Уқитувчи   уқувчиларнинг   интеллектуал   имкониятларини   максимал
ишга солиш йулини излаб топиши лозим. 
Куп йиллар давомида анъанавий дарс утиш таълимнинг асосий 
шаклларидан бири булиб келди. 
  Анъанавий   дарс-   муайян   муддатга   мулжалланган,   таълим   жараёни   купроқ
уқитувчи   шахсига   қаратилган,   мавзуга   кириш,   ёритиш,   мустаҳкамлаш   ва
якунлаш босқичларидан иборат таълим методидир.  Анъанавий дарс утиш моделида купроқ маъруза, савол-жавоб, амалий машқ 
каби методлардан фойдаланилади. 
     Бунинг натижаси улароқ ёшларимиз Информатика ва Ахборот 
техналагиялари фанидан кучли билим ва тажрибага эге булмоқдалар. 
Айниқса   дастурлаш   соҳасида   куплаб   ёшларимиз   улкан   ютуқларга
эришмоқдалар.   2010-йилнинг   Баркамол   авлод   йили   деб   эълон   қилиниши
ёшларимизга   янаям   катта   имкониятлар   эшигини   очиб   беради.Чунки
президентимиз   И.А.Каримов   Таълим   соҳасини   ривожлантириш   мақсадида
Давлат   бюджетини   50%   ни   ёшларни   таълим   олиши   учун   барча   шароитларни
яратиб беришга сарфладилар. 
Шундай   экан   Анъанавий   дарс   шаклини   сақлаб   қолган   ҳолда,   унга
турлитуман   уқувчилар   фаоллигини   оширадиган   методлар   билан   бойитилиб
борилса, уқувчилар узлаштириш даражасини кутарилишига олиб келади. 
Бунинг   учун   дарс   жараёни   оқилона   ташкил   қилиниши,   уқитувчи   томонидан
уқувчиларнинг   қизиқишини   ортириб,   уларнинг   таълим   жараёнида   фаоллиги
муттасил   рагбатлантирилиб   турилиши,   уқув   материалини   кичик-кичик
булакларга  булиб, уларнинг мазмунини очишда  бахс,  мунозара,  ақлий ҳужум,
кичик гуруҳларда ишлаш, тадқиқот ролли уйинлар методларини қуллаш, ранг-
баранг   баҳолаш   усулларидан   фойдаланиш   таълим   воситаларидан   уринли
фойдаланиш талаб этилади. 
Замонавий   уқитиш   технологияларида   талаба   шахс   педагогик   жараён
марказига   қуйилади   унинг   ривожланишига   ва   табиий   имкониятларини   руёбга
чиқаришга   қулай   шарт-   шароит   яратилади.   Узбекистон   Республикасининг
таълим   тизими   миллий   моделининг   таркибий   қисми   сифатида   “шахс”
киритилганлиги   ва   унга   биринчи   урин   ажратиганлиги   шахсга   йуналтирилган
таълим   технологияларига   алоҳида   эътибор   берилаётганлиги   фикримизнинг
яққол далилидир. Шундай экан биз ёшлар ватанга муносиб фарзанд булишга ва
юртимиз   байрогини   юксакларга   кутаришга   бор   куч   ва   гайратимизни   ишга
солган ҳолда ҳаракат қилишимиз шарт.

Delphiда массивлар билан ишлаш

Купить
  • Похожие документы

  • Access dasturi yordamida “dorixona” ma‘lumotlar bazasini yaratish
  • Agile va Scrum metodologiyalari dasturiy ta'minot ishlab chiqish
  • Tashkilot miqyosida masofadan muloqot qilish.
  • Talabalar haqida ma'lumot saqlovchi tizim
  • HTML tili, uning asosiy elementlari. Jadval va rasm hosil qilish. Gipermatn va freymlar joylashtirish

Подтвердить покупку

Да Нет

© Copyright 2019-2025. Created by Foreach.Soft

  • Инструкция по снятию с баланса
  • Контакты
  • Инструкция использования сайта
  • Инструкция загрузки документов
  • O'zbekcha