Программалау іі» пәні бойынша 050111 «Информатика»



бет21/29
Дата14.06.2016
өлшемі2.7 Mb.
#135126
түріПрограмма
1   ...   17   18   19   20   21   22   23   24   ...   29

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; т.б.




Лекция 24

Консольдық қосымша. Программаны дұрыстау.

Жоспар:

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   ...   17   18   19   20   21   22   23   24   ...   29




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

    Басты бет