Лекция: 15 сағат лбс: 15 сағат С¤Ж: 45 саѓат обс¤Ж: 45 саѓат Барлыќ саѓат саны: 135 саѓ



бет11/21
Дата06.03.2016
өлшемі2.2 Mb.
#44284
түріЛекция
1   ...   7   8   9   10   11   12   13   14   ...   21

2. Мәтіндік массивті реттеу


Кодтарын салыстыру арқылы латын әріпімен жазылған адамдардың аты-жөндері бірінші әpiптepi бойынша салыс-тырып, фамияиларды реттеу программасын жазып шығу қиын емес. Программада цикл ішінде цикл (бip-бipнe салынған циклдер) пайдаланылады. Ұлттық әріптермен жазылған фамилияларды реттеу әдісі төменде берілген (аты-жөндер массив элементтері түрінде қарастырылады).
Мысал. Қазақ әpiптepi бойынша төменде жазылған адамдардың аты-жөндерін бірінші әріптері бойынша реттеу керек.
Мәдіхожаев Сұлтан

Ысқақова Дамира

Мустафаев Кажым

Атчабаров Жәнібек

Оралханова Маржан
Procedure TForml.ButtonClick(Sender: TObject);

const n=5;

var a : array [l..n] of string;

d, k, j : integer;

r: siring;

begin

for k := 1 to n do

a[k] := InputBox(a{k}, ;кезекті элемент -, ");

г-'АӘБВГҒДЕЖЗИЙКҚЛМНҢОӨПРСТУФХ;

d := length(r);



for j := 1 to d do

for k := 1 to n do

if copy(a{k}, 1, 1) = copy(r, j, 1) then

Memol. Lines. Add(a[k])



end;
3. TStringList класы

TStringList - жолдармен жұмыс icтeyгe арналған аталық TString класының алғашқы ұрпақ класы. TstringList ті пайдаланып, 2.14.3-тақырыпта берілген мысалдағы сияқты, формада орнатылған ТМето комппонентінің терезесіне көп қатарлы жолдар, жолдык массив енгізуге болады және класс қасиетін пайдаланып, оларды автоматты түрде реттеу (сорттау) да мүмкін. Кластың тәсілдері мен қасиеттерін жеткілікті ол аталық кластың қасйеттерін пайдалана алатын да белгілі) мысал,



Берілгендер жиынтығына жол қосу:

Function Add (Const ; string); Integer;



Бұрынғы берілгендер жиынтығын өшіріп, жаңа жиынтық қосу:

Procedure Assign (Source : ТPersistent);



Жолдарды алфавит бойынша сорттау:

Property Sorted : Boolean; // Sorted — True



Жиынтықта жолдардың ағымдық санын анықтау.

Property Count: Integer; т.б.




Лекция 9. Консольдық қосымша. Программаны дұрыстау

1. Консольдык ќосымша


2. Программаны дұрыстау

3. Ерекше жағдайлар

4. Баспаға шығару

1. Консольдык ќосымша


Delphi – де берілгендерді енгізу мен шыѓару ‰шін Турбо Паскальда пайдаланылатын read (оќу) жєне write (жазу) операторларын пайдалану тєсілі де бар. Оларды пайдаланып ќ±рылатын программалар, осы ‰шін арналѓан, MSDOS операциялыќ ж‰йесінде ж±мыс істейтін консольдыќ ќосымша терезесіне енгізіледі. Ќосымшаны іске ќосу тєсілі:

FileNew Application (Файл-Жања ќолданба) ќосымшасын беру;

Кµрінген Form1, Unit.pas терезелерін жабу. Экранда Delphi мен Object Inspector терезелері ќалады;



Project-View Source (Проект – Кµріп шыѓу) командасын беру. Project.dpr таќырыпты терезе ашылады;

Терезені тазалау жєне экранды аќ т‰сті ету (соњѓысы ‰шін терезеніњ тањдау т‰ймесін шертіп, кµрсеткіш арќылы экранды тањдап шыќса болѓаны);

Программа теру. Ол ASCII кодтары ќолданылатын Турбо Паскаль программасындай ж±мыс істейді. Программа мєтіні {$APPTYPE CONSOLE} н±сќауынан басталады (2.20- сурет). Ол консольдыќ ќошымша дайындалатыны жµнінде компилятар н±сќауы. Мысалы,
Program My Progr;

{$APPTYPE CONSOLE}

Uses

SysUtils;



Var x, y : real;

Begin


Write(‘x=?’); readln(x);

Y:=3*x+5;

Writeln(‘y=’, y : 6 : 3);

Readln;


End.

Жазып болған соң (іске ќосу командасын беру керек. My Progr таќырыпты терезе пайда болады (терезеде орнатылѓан т‰ймелер арќылы терезені ‰лкейту, шрифті тањдау, терезені аќ т‰сті ету ќиын емес). Терезеде кµрінген с±раќќа жауап енгізілген соњ КЌ клавишін басу керек.



Ескерту: Программаѓа енгізілген параметрсіз readln операторы консольдыќ терезені экранда ±стап т±рады.

Программа жазылѓан терезеге ќайтып µту ‰шін кµрінген терезені б‰ктеу жеткілікті.

Консольдыќ программа терезесін экранѓа шыѓарудыњ екінші тєсілі:File-New командасын беріп, ашылѓан терезеніњ Consol Wizard ( не Console Application) белгішесін тањдау.

2. Программаны д±рыстау


Программа ќ±руда семантикалыќ (маѓыналыќ), синтаксистік жєне алгоритмдік ќателер жиі кездеседі. Программаны компиляциялау кезінде синтаксистік ќателерді компилятор µзі табады да, машина ж±мысын тоќтатады. Ал, 15 орнына 25 енгізілген сияќты ќатені компілятор еске алмай, программаныњ орындалуы аяќталѓан кезде ќате нєтиже шыѓады. Программада ќате жазылѓан оператор сияќты алгоритмдік ќате де программаныњ орындалу нєтижесін д±рыс кµрсетпейтіні сµзсіз. Сондыќтан программаны ќ±рып болѓан соњ он м±ќият ќайта тексеріп шыѓуы керек.

Программаныњ синтаксистік т‰рде жазылуы д±рыстыѓын компилятордыњ µзі ќадаѓалап отыруы жєне терезесін экранда кµрсету ‰шін єдетте Delphi орнатылѓан соњ ол к‰йге келтіріліп ќойылады. Оныњ бірі – ProjectOptions (проект –к‰йге келтіру) командасын беріп, ашылѓан терезеніњ Compiler бетіндегі жазуларды 2.21 – суреттегі сияќты орнатып ќою керек.


2.21 – сурет. Компиляторды к‰йге келтіру терезесі.



3. Ерекше жаѓдайлар


Программаѓа нолге бµлу жєне т.с.с. орындалмайтын ќате єрекеттердіњ кездейсоќ енгізілуі де м‰мкін. Олар ерекше жаѓдайлар делінеді. Ерекше жаѓдайларды µњдеу ‰шін Delphi-ге стандартты µњдеуіштер класы енгізілген. ¤њдеуіштер атаулары E єріпінен басталады:

EZeroDrivide – нµлге бµлу;

EIntError – б‰тін сандармен ж±мыс кезінде кездесетін ќателер;

EConvertErrror – мєнніњ типін т‰рлендіру ќатесі, т.б.

Мысалы, мынадай программа ‰зіндісін

Begin


Y:=x/k;

ShowMessage(Floattostr(y));

End;
Орындау кезінде нөлге бөлуге болмайтыны жазылған суреттегі хабар шығады(k=0 болған кезде).

Ерекше жағдайды хабарлау терезесі


Ерекше жағдайды өңдеу үшін Delphi ортасында блокты қорғау механизмі қарастырылған.Оның жазылу түрі:
Try

<операторлар>;

except

<ерекше жағдайларды өңдеуіштер>

else

<операторлар>

end;
Блокты қорғау блогы Try (байқап көру) қызметші сөзінен басталып, end сөзімен аяқталады.Мұнда алдымен try..except бөлімінің операторлары орындалады. Егер операторлар ерекшеліксіз орындалса, қорғалған блоктың жұмысы осымен аяқталып, басқару end операторынан соң жазылған операторға беріледі.Егер ерекшелік бар болса, басқару except - тен соң жазылған бөлімге беріледі(блокқа else бөлімін енгізу міндетті емес).
1 – мысал. h=1 қадам бойынша [-2;2 кесіндісінде y=2x/(x+1) функциясының мәндерін есептеу керек.

Procedure Tform1. Button1Click(sender:Tobject);

Var y:real;x:integer;y1:string;

Begin


Try

For x:=-2 to 2 do

Begin

Y:=2*x/(x+1); y1:=FloatTo Str(y);



ShowMessage(y1);

End;


Except

On EzeroDivide do

Begin

ShowMessage(‘Нөлге бөлу мүмкін емес’);



Close;

End;


End;
Программаны іске қосқан кезде, алдымен суретте көрсетілген терезе шығады. Ал программа қайта қосылса типті түрлендіру қате сөйлемі жазылған шығару терезесі көрініп, программа жұмысы тоқтатылады.
2-мысал. ‘Ermek1’ файлы дискіде жазулы болсын. Оны ашу операторын try блогын енгізіп жазу керек.

Программа үзіндісі:


Var F:TextFile;

Begin


AssignFile(F, ’Ermek1’);

Try


Reset(F);

Except


//файл табылған жоқ

ShowMessage (‘Файлды ашу мүмкін емес’);

End;

End;
Мұнда Reset операторы бойынша файл ашылады, егер ол жоқ болса, try блогының екінші бөлімі орындалады(файлдар жөнінде төртінші тарауды қараңыз).





Достарыңызбен бөлісу:
1   ...   7   8   9   10   11   12   13   14   ...   21




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет