Кодтарын салыстыру арқылы латын әріпімен жазылған адамдардың аты-жөндері бірінші ә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; т.б.
1. Консольдык ќосымша
2. Программаны дұрыстау
3. Ерекше жағдайлар
4. Баспаға шығару
1. Консольдык ќосымша
Delphi – де берілгендерді енгізу мен шыѓару ‰шін Турбо Паскальда пайдаланылатын read (оќу) жєне write (жазу) операторларын пайдалану тєсілі де бар. Оларды пайдаланып ќ±рылатын программалар, осы ‰шін арналѓан, MS – DOS операциялыќ ж‰йесінде ж±мыс істейтін консольдыќ ќосымша терезесіне енгізіледі. Ќосымшаны іске ќосу тєсілі:
File – New 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 орнатылѓан соњ ол к‰йге келтіріліп ќойылады. Оныњ бірі – Project – Options (проект –к‰йге келтіру) командасын беріп, ашылѓан терезеніњ 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 блогының екінші бөлімі орындалады(файлдар жөнінде төртінші тарауды қараңыз).
Достарыңызбен бөлісу: |