Тақырыбы: ¤ту инструкциялары: Go to, break, Continue
(1 сағат)
-
Go to инструкциясы
-
Break инструкциясы
-
Continue инструкциясы
Пайдаланылатын әдебиеттер:
а) негізгі
1. К.Паппас, У.Мюррей “Программирование на С и С++”, Киев, 2000
2. А.Кетков, Ю.Кетков “Практика программирования Бейсик,
Си, Паскаль”, М.: 2001
б) қосымша
3. Шилдт Г. “Теория и практика С++”, Санкт-Петербург, 1996
4. Березин Б.И., Березин С.Б. “Начальный курс С и С++”, М.:1999
1.Go to инструкциясы
C/с ++ тілдерінде 4 µту инструкциялары бар: go to, break, continue жєне return. Go to инструкциясы кµптеген жоѓары дењгейдегі тілдерде бар, ол белгімен аныќталѓан адреске (ќатарѓа) мєжб‰рлі т‰рде µткізу ‰шін пайдаланады. Оныњ синтаксисі (жазылуы) мынадай:
go to белгі
Basic тілінде б±л инструкция кењ пайдаланылатын болса, ал С/C++ тіліндегі программада go to – ны ќолдану жаќсы стиль есептелінбейді, грамотно жєне ќ±рылымы наќ, аныќ жазылѓан программада б±л инструкция кездеспеуі керек деп есептелінеді.
2.Break инструкциясы
Break инструкциясы циклдан оныњ шарты жалѓан болудан алдын шыѓып кетуге м‰мкіндік береді. Іс -єрекеті бойынша go to командасы сияќты, біраќ, µтудіњ дєл адресін (белгісі) кµрсетпейді: басќару цикл денесінен кейінгі бірінші ќатарѓа µтеді. Мысал ќарастырайыќ: int main( )
{
int itimes=1, isum=0;
while (itimes <10) {
isum+=itimes;
if(isum>20)
break;
itimes++;
} return(0);
}
isum айнымалысы 21 мєніне жеткен уаќытта break инструкциясы орындалады. Яѓни циклді тоќтап, цикл денесінен кейінгі бірінші ќатар - return инструкциясы орындалады (програманы аяќтайды).
3.Continue инструкциясы
Continue инструкциясы µзінен кейін жазылѓан циклдіњ ќалѓан ќатарларын орындамай µткізіп жібереді, біраќ цикл тоќтамайды, єрі ќарай орындала береді. Б±л инструкцияныњ єрекеті цикл шарты жазылѓан ќатарѓа µтуді кµрсетіп т±рѓан go to командасына ±ќсайды. Яѓни басќару цикл шарты жазылѓан ќатарѓа µтеді, шарт тексеріліп, мєні true (аќиќат ) болса, онда цикл жалѓастырылады. Тµменде continue инструкциясыныњ м‰мкіндігін пайдаланатын программа тексті берілген. Б±л программа -компьютер “ойлаѓан” баќытты санды табу ойыны.
# include
#detine AKIKAТ 1
#detine JALGAN 0
int main ( )
{
int bakitti_san=77,
enetin_ain,
popitka_san=0,
bakittimin=JALGAN;
while(! bakittimin)
{
printf(«Сан ендіріњіз:»);
scanf(“% d”, enetin_ain ); popitka _san ++;
if (enetin_ain == bakitti_san)
printf (“Сіздіњ саныњыз ‰лкен!/ n”)
else
{
if (enetin_ ain > bakitti_san) printf(“Сіздіњ саныњыз кіші!/ n”);
сontinue;
}
printf (“Сізге баќытты санды табу ‰шін %d рет сынаќтан
µтуге тура келді/”, popitka_ san);
}
return(0);
}
while циклініњ ішінде пайдаланушыѓа µз санын ендіру ±сынылады. Б±дан соњ popitka_san айнымалысыныњ мєні 1-ге артады. Егер ол сан баќытты санѓа тура келмесе else тармаѓына µтіп, программа пайдаланушыѓа жєрдем береді; б±дан соњ continue инструкциясы орындалады, яѓни ќ±ттыќтау сµзін шыѓаратын printf() функциясы орындалмай, басќару жазылѓан ќатарѓа µтеді:
bakittimin аќиќат болмайынша осылай ќайталана береді.
Егер аќиќат болса, нєтижеде ќ±ттыќтау сµзін шыѓаратын printf( ) фунциясы орындалып, программа аяќталады.
Кµптеген мєселелерді шешуде break жєне continue инструкциялары бірге ќолданылады.
Лекция 14. Таќырыбы: exit() жене atexit() функциялары
(1 сағат)
-
exit() функциясы
-
atexit() функциясы
Пайдаланылатын әдебиеттер:
а) негізгі
1. К.Паппас, У.Мюррей “Программирование на С и С++”, Киев, 2000
2. А.Кетков, Ю.Кетков “Практика программирования Бейсик,
Си, Паскаль”, М.: 2001
б) қосымша
3. Шилдт Г. “Теория и практика С++”, Санкт-Петербург, 1996
4. Березин Б.И., Березин С.Б. “Начальный курс С и С++”, М.:1999
1. exit() функциясы
return функциясына ±ќсас stdlib.h файлында сипатталѓан exit() библиотекалыќ функциясы да бар. Б±л файлда осы функцияныњ аргументі ретінде берілуі м‰мкін болѓан 2 ќосымша константалар да сипатталѓан: EXIT_SUCCESS (программаныњ д±рыс аяќталѓандыѓы туралы сигнал береді) жене EXIT_FAILURE (ќате туралы сигнал береді). Б±л константаларды ќолдану прогроамма текстін анаѓ±рлым т‰сінікту болуына м‰мкіндік береді. Біраќ, компилятор main() функциясында ешбір return инструкциясын кездестірмесе ескерту жасайды.
Мысал:
# include
# include
# define LIMIT 30
int main()
{
int irow, ireg, isco[LIMIT];
float fsum=0, imin, imax, far;
cout <<”\n Ќатар мєнін ендіріњіз:”;
cin>>ireg;
if (ireg>LIMIT)
{
cout<<”\n Сіз мына”<
exit(EXIT_FAILURE);
for(irow=0; irow
{
cout <<”\n<
cin >> isco[irow];
}
for(irow=0; irow
fum=fsum/(float)ireg;
imin=imax=isco[0];
for(irow=0; irow
{
if (isco[irow]>imax)
imax=isco[irow];
if (isco[irow]>imin)
imin=isco[irow];
}
cout<<”\n Максимал мән=”<
cout<<”\n Минимал мән=”<
cout<<”\n Орташа мән=”<
exit(EXIT_SUCCESS);
}
2. atexit() функциясы
Програмамны нормал режимде не exit() функциясы арқылы аяқтаған уақытта кейбір “соңғы” әрекеттерді орындауға қажет болады. Бұл үшін atexit() функциясы қолданылады. Ол аргумент ретінде функция атынқабылдайды және бұл функция соңғы орындалатын функция болады.
Мысал.
# include
# include
void fn1 (void);
void fn2 (void);
void fn3 (void);
int main()
{
atexit(fn1);
atexit(fn2);
atexit(fn3);
printf (“atexit програмасы қосылды.\n”);
printf (“atexit програмасы аяқталды\n”);
printf (“>>>>>>>>>><<<<<<<<<<<<\n\n”);
return(0);
}
void fn1 (void);
{
printf (“fn1 функциясы іске қосылды.\n”);
}
void fn2 (void);
{
printf (“fn2 функциясы іске қосылды.\n”);
}
void fn3 (void);
{
printf (“fn3 функциясы іске қосылды.\n”);
}
Програманы іске түсірген соң экранға мынадай информация шығарылады:
atexit програмасы қосылды
atexit програмасы аяқталды
>>>>>>>>>><<<<<<<<<<<<
fn3 функциясы іске қосылды.
fn2 функциясы іске қосылды.
fn1 функциясы іске қосылды.
atexit() функциясының жалғыз аргументі бұл – програма аяқталысымен шақырылатын функция аты. Бұл функция программа exit() арқылы не нормал режимде аяқталуына қатыссыз шақырыла береді:
Шындығында atexit() функциясы програмам аяқталған соң орындалатын функцияларды регистрация (тіркеп) жасап отырады. Функциялардың орындалу реті олардың тіркелу ретіне кері болады. Яғни бірінші тіркелген функция соңынан, ал соңғысы бірінші орындалады.
“Соңғы” функциялар жадыдан динамикалық құрылған объекттерді жою үшін қолданылады. Бір объект басқа бір объект негізінде құрылуы мүмкін болғандықтан, оларды жадыдан жою кері ретпен жүргізіледі.
Достарыңызбен бөлісу: |