Ф.219
№3 Сабақтың технологиялық картасы (жоспары)
Топ | Күні |
2 негізгі ВТ-1 | 18.01 |
| |
| |
| |
| |
Пән: Алгоритмдеу және бағдарламалау негіздері
5 бөлім. Delphi-дің негізгі компоненттері.
Құрылымдық типтер және оларды Delphi-де ұйымдастыру
Курс тақырыбы: № 5.9 тақырып. Ерекше жағдайларды өңдеу. Excepction класы
Сабақтың тақырыбы: №3. Ерекше жағдайларды өңдеу. Excepction класы.
Сабақтың типі: Аралас
Сабақтың түрі: Дәріс
Студенттердің дайындық деңгейіне қойылатын талаптар |
Базалық құзыреттілік | Delphi-дің негізгі компоненттері. Құрылымдық типтер және оларды Delphi-де ұйымдастыру |
Кәсіптік құзыреттілік | Ерекше жағдайларды өңдеу. Excepction класымен танысу |
|
Сабақ мақсаттары | оқытушылық | Ерекше жағдайларды өңдеу. Excepction класы. Стандартты кластар. Ерекше жағдайларды өңдеу операторлары try…except және on…do туралы түсінік қалыптастыру |
тәрбиелік | Студенттерді компьютерлік мәдениеттілікке тәрбиелеу |
дамытушылық | Студенттердің ерекше жағдайлар класы туралы білімдерін дамыту |
Пәнаралық байланыс
Қамтамасыз ететін | Алгоритмдеу және бағдарламалау негіздері |
Қамтамасыз етілетін | Бағдарламалау |
Сабақтың жабдықталуы
Көрнекілік құралдар | |
Таратпа материалдар | Тірек-конспект |
Оқытудың техникалық құралдары | ДК, Delphi |
Әдебиет: негізгі | Н.С.Заурбеков «Алгоритмдеу және бағдарламалау негіздері» |
Қосымша | К.М.Беркінбаев «Информатика» |
Сабақ мазмұны
Эле-мент № | Сабақ элементі, қарастырылатың сұрақтар, оқытудың әдістері мен тәсілдері | Қосымшалар, өзгерістер |
1. | Ұйымдастыру (2 мин) Кабинеттің сабаққа дайындығын тексеру Компьютерлердің сабаққа дайындығын тексеру Студенттермен амандасу Студенттерді түгендеу Сабақтың мақсатымен таныстыру | |
2. | Үй жұмысын тексеру (30 мин) Сұхбат терезесі дегеніміз не? Сұхбат терезесін қалай шақыруға болады? ShowMessage не үшін қажет? Контейнерлер дегеніміз не? Пішімдер дегеніміз не? | |
3. | Жаңа сабақ (51 мин) Курс тақырыбы: № 5.9 тақырып. Ерекше жағдайларды өңдеу. Excepction класы Сабақтың тақырыбы: №3. Ерекше жағдайларды өңдеу. Excepction класы. Ерекше жағдайлар ұғымы Exception классы | |
4. | Жаңа сабақтан алған білімдерін бекіту (13 мин) Ерекше жағдайлар дегеніміз не? Exception классы неден тұрады? | |
5. | Үйге тапсырма беру (2 мин) С.Бобровский «Delphi 7», 175 бет Емтихан сұрақтарын жазу | |
6. | Сабақты қорытындылау, оқушыларды бағалау (2 мин) | |
Оқытушы __________ Г.К.Мукушова
Дәріс №3
Курс тақырыбы: № 5.9 тақырып. Ерекше жағдайларды өңдеу. Excepction класы
Сабақтың тақырыбы: №3. Ерекше жағдайларды өңдеу. Excepction класы.
Ерекше жағдайлар ұғымы
Exception классы
Ерекше жағдай деп бағдарламаны орындау барысында пайда болатын қандай да бір қате жағдайды айтады. Ерекше жағдайлар әр түрлі себептерден болуы мүмкін, мысалы нөлге бөлуге болмайтын жағдайда және т.б.
Қандай жағдай болмасын, бұл жағдай туралы хабарлама шығады.
Delphi-де ерекше жағдайларды өңдеудің глобальды және локальды өңдеушілері болады. Глобальды өңдеуші Application объектісі арқылы орындалады. Ол қолданушыға қате туралы ақпарат шығарады, бірақ оның себебін жөндемейді.
Локальды өңдеуші қате пайда болған жағдайда бағдарламаның арнайы дайындалған кодына көшуге мүмкіндік береді. Бұл тіл конструкциялары арқылы жүзеге асады, олар бағдарлама кодының фрагментін «күзетеді», және егер кодтың қорғалған бөлігінде қате жіберілсе, шақырылады.
Кодтың қорғалатын бөлігінің басын белгілеу үшін try сөзі, ал соңын белгілеу үшін end сөзі жазылады.
Қорғалған бөліктердің екі типі бар: try...except және try...finally, олардың синтекситері ұқсас, бірақ қызметтері әр түрлі. Бірінші тип ерекше жағдайларды өңдеу үшін қолданылады. Оның синтаксисі:
try
{Орындаған кезде қате тудыруы мүмкін операторлар}
except
{Қате пайда болған кезде орындалуы тиісті операторлар}
end;
try...except конструкциясы ерекше жағдайларды болған жағдайда бағдарламаның жұмыс істеу қабілеттілігін қалпына келтіру үшін қажет. Except секциясы бірнеше бөліктерге on...do бөлінуі мүмкін, олар әр түрлі кластарды өңдеуге арналған. on...do кострукциясынан кейін else бөлімі орналастырылуы мүмкін, ол бүкіл блокқа қатысты болады. Жұмыс істеу логикасы бойынша on...do құрылымы case операторына ұқсайды.
Өзінің локальды өңдеушілері жоқ ерекше жағдайларға глобальды өңдеушілер механизмі қолданылады. Ол Application объектісі арқылы орындалады.
try
{Орындалуы кезінде қате тууы мүмкін операторлар}
except
{ Қате пайда болған кезде орындалуы тиісті операторлар }
Оп on Exception1 do ...;
on Exception2 do ...;
...
else
.end;
..
Келесідей мысал қарастырайық. Edit1 және Edit2 өрістеріне бүтін сандар жазылады. Button1 батырмасын шерткен кезде енгізілген жолдар сандық форматқа ауыстырылады, бірінші сан екінші санға бөлініп, нәтижесі Edit3-қа шығады. Бұдан соң Memo1-ге бастапқы жолдар, сандардың қосындысы және бірінші санды екіншіге бөлгендегі бөлінді жазылады.
procedure TForm1.Button1Click(Sender: TObject);
var a,b:integer;
rez:extended;
begin
a:=strtoint(Edit1.Text);
b:=strtoint(Edit2.Text);
rez:=a/b;
Edit3.Text:=floattostr(rez);
Memo1.Lines.Add(Edit1.Text);
Memo1.Lines.Add(Edit2.Text);
Memo1.Lines.Add(inttostr(a+b));
end;
Мemo1.Lines.Add(floattostr(rez));
Осы бағдарламада ерекше жағдайлар келесідей кездерде болуы мүмкін:
Жолды санға айналдырғанда және бөліндіні орындаған кезде. Егер бөлгіш нөлге тең болса, онда ерекше жағдай жүзеге асады. Бұл жағдайда процедураның орындалуы тоқтатылып, қате туралы хабарлама шыады. Ол үшін қорғалған блок құрайық:
procedure TForm1.Button1Click(Sender: TObject);
var a,b:integer;
rbegin
ez:extended;
try
a:=strtoint(Edit1.Text);
b:=strtoint(Edit2.Text);
rez:=a/b;
Edit3.Text:=floattostr(rez);
except
ShowMessage('Қате!');
end;
Memo1.Lines.Add(Edit1.Text);
Memo1.Lines.Add(Edit2.Text);
Memo1.Lines.Add(inttostr(a+b));
Memo1.Lines.Add(floattostr(rez));
end;
Бұл жағдайда кез келген ерекше жағдай пайда болған кезде операторлардың орындалуы тоқтатылып, Edit3-те нәтиже шықпайды. Экранға «Қате!» деген хабарламасы бар терезе шығады.
Бағдарлама құруда семантикалық (мағыналық), синтаксистік және алгоритмдік қателер жиі кездеседі. Бағдарламаны компиляциялау кезінде синтаксистік қателерді компилятор өзі табады да, машина жұмысын тоқтатады. Ал, 15 орнына 25 енгізілген сияқты қатені компилятор еске алмай, бағдарламаның орындалуы аяқталған кезде қате нәтиже шығарады. Бағдарламада қате жазылған оператор сияқты алгоритмдік қате де бағдарламаның орындалу нәтижесін дұрыс көрсетпейтіні сөзсіз. Сондықтан бағдарламаны құрып болған соң оны мұқият қайта тексеріп шығу керек.
Бағдарламаның синтаксистік түрде жазылу дұрыстығын компилятордыңөзі қадағалап отыруы және терезесін экранда көрсету үшін әдетте Delphi орнатылған соң ол күйге келтіріліп қойылады. Оның бірі – Project-Options(Проект-Күйге келтіру) командасын беріп, ашылған терезенің Copiler бетіндегі жалаушаларды 2.21-суреттегі сияқты орнатып қою керек.

Компиляторды күйге келтіру терезесі
Ерекше жағдайлар
Бағдарламаға нөлге бөлу және т.с.с. орындалмайтын қате әрекеттердің кездейсоқ енгізілуіде мүмкін. Олар ерекше жағдайлар делінеді. Ерекше жағдайларды өңдеу үшін Delphi-ге стандартты өңдеуіштер класы енгізілген. Өңдуіштер атаулары Е әріпінен басталады:
EZero Divide – нөлге бөлу;
EIntError – бүтін сандармен жұмыс кезінде кездесетін қателер;
EConvertError – мәннің типін түрлендіру қатесі, т.б.
Мысалы, мынадай бағдарлама үзіндісін
x:=5
for k:= -2 to 2 do
y:=x/k
ShowMessage(FloatToStr(y));
end;
Ерекше жағдайды өңдеу үшін Delphi ортасында блокты қорғау механизм қарасатырылған. Оның жазылу түрі:
операторлар;
ерекше жағдайларды өңдеуіштер;
операторлар;
end;
Блокты қорғау блогы try(байқап көру) қызметші сөзінен басталып, end сөзімен аяқталады. Мұнда алдымен try (пробовать) .. except (кроме) бөлімінің операторлары орындалады. Егер операторлар ерекшеліксіз орындалса, қорғалған блоктың жұмысы осымен аяқталып, басқару endоператорынан соң жазылған операторға беріледі. Егер ерекшелік бар болса, басқару except-тең соң жазылған бөлімге беріледі (блокқа else бөлімін енгізу міндетті емес ) .
1-мысал. h=1 қадам бойынша, [-2;2] кесіндісінде у=2х/(х+1) функциясының мәндерін есептеу керек.
Ол үшін формаға Button1 компонентін енгізіп, Button1 Click процедурасын мынандай түрде құруға болады:
Procedure TForm1.Button1Click (Sender: Tobject);
var y:=real; x:integer; y1:string;
for x:=-2 to 2 do
y:=2*x/(x+1); y1:=FloatToStr(y);
ShowMessage (y1);
end;
Бағдарламаны компиляциялау және жинау кезіндегі қателерден, яғни синтаксистік қатеден басқа бағдарламаның орындалу кезінде пайда болатын қателер болады, әдетте, оларды динамикалық қателер деп атайды. Олардың көрінуі де түрліше болады, мысалы жүйе қате туралы хабарлама береді немесе тұрып қалады, түсініксіз нәтижелер де беруі мүмкін. Сондықтан бағдарламалауда кетуі мүмкін қателерді алдын ала ескеріп, оларды уақытында табу және жою үшін арнаулы әдістер қолданылады. Мұның барлығы бағдарламалауда «ерекше жағдайларды өңдеу» (обработка исключительных ситуации) деп аталатын мәселеге әкеледі. Ерекше жағдайларды өңдеу механизмі арнаулы аппараттық немесе тілдік құралдар көмегімен қателерді тауып алып, оны өңдеуге мүмкіндік береді, яғни бағдарламаның қауіпті жағдайда қалуына жол бермейді.
Ерекше жағдайлар үшін негізгі класс Exception класы болып табылады. Exception класының ұрпақтары Е әрпінен басталып жазылады. Төменде жиі кездесетін ерекше жағдайлар кластары көрсетілен:
EConvertError – типтеді түрлендіру кезінде пайда болатын қате, StrToInt және StrToFloat функциялары орындалған кезде пайда болуы мүмкін.
EInOutError – {$I+} директивасы қосылып тұрған кезде енгізу/шығару қатесі
EDivByZero – бүтін санды нөлге бөлу
EIntOverflow – операцияда бүтін айнымалылардың толып кетуі
ERangeError – берілен диапазоннан асып кететін мән
EInvalidGraphic –LoadFromFile әдісімен графикалық форматпен сәйкес келмейтін файлды жүктеу
EInvalidPointer – көрсеткішпен дұрыс емес операция.
EFCreateError – файлды құрудағы қате
EFOpenError – файлды ашудағы қате
EListError, EStringListError – тізімдермен жұмыс істеудегі қате
EMathError – қалқыма нүктемен операция жасау кезінде пайда болатын ерекше жағдай
EInvalidOp – математикалық сопроцессорге қате инструкцияны беруге әрекет жасау
EOverflow – өте үлкен мәндер болған кезде толып кету
EUnderflow – қалқыма нүктелі санмен операция кезінде мәнінің жоғалуы (өте аз шама). Нәтижесі нөлдік мән болады.
EZeroDivide – нөлге бөлу
EMenuError – TMenu, TMenuItem, TPopupMenu компоненттерінің мәзір пункттерімен жұмыс жасау кезінде қателіктердің пайда болуы
EOutOfMemory – жадқа орналастыру мүмкін болмаған кезде New, GetMem әдістерін шақыру
EOutOfResources – Windows-ресурстарын толтыру кезіндегі қателіктер
Оқытушы __________ Г.К.Мукушова