Тақырыбы: Тармаќталу инструкциясы
(1 сағат)
-
if инструкциясы.
-
if/else инструкциясы.
Пайдаланылатын әдебиеттер:
а) негізгі
а) негізгі
1. К.Паппас, У.Мюррей “Программирование на С и С++”, Киев, 2000
2. А.Кетков, Ю.Кетков “Практика программирования Бейсик,
Си, Паскаль”, М.: 2001
б) қосымша
3. Шилдт Г. “Теория и практика С++”, Санкт-Петербург, 1996
4. Березин Б.И., Березин С.Б. “Начальный курс С и С++”, М.:1999
1. if инструкциясы.
С/с++ тілінде 4 базалыќ тањдау инструкциялары бар: if, if/else, swith/case жєне “?” операторы. Оларды жеке –жеке ќарастырудан алдын, шартты µрнектерді ќ±рудыњ жалпы принциптерін айтып µтелік. Тањдау иструкциясы программаныњ белгілі бір блоктарын тањдап орындауѓа ќолданылады.
Б±л блоктар бір не бірнеше ќатардан т±руы м‰мкін. Бірінші жаѓдайда ќатар фигуралыќ жаќшаѓа алынбайды, ал екіншіде блок т‰гел алынады.
If инструкциясы команданы не командалар блогын шарттың аќиќат не жалѓан болуына байланысты орындалады.
Ќарапайым кµрінісі (синтаксисі).
If (шарт) µрнек;
Егер шарт тексерудіњ нєтижесі аќиќат (true) болса, онда µрнек орындалады, одан соњ келесі ќатарлар орындалып кете береді.
Ал, егер шарт нєтижесі false мєнін (жалѓан) берсе, µрнек орындалмай, тастап кетіледі.
Мысал:
Мына бір программаныњ бµлігінде а айнымалыныњ мєні 72-ден ‰лкен не тењ болѓан сайын экранѓа “Добрый день” сµзі шыѓады.
If (a>=72)
printf (“Добрый день!”)
If инструкциясы бір емес бірнеше командаларды ќамтитын болса, синтаксисі мынадай болады:
If(шарт) {
µрнек 1;
µрнек2;
............
өрнек n;
}
Мысал:
# include
int main ()
{
int otl, hor, udov;
float cred;
printf (“/n µте жаќсы деген баѓа алѓан пєндердіњ санын ендіреміз:”);
scanf (“%d”,&otl)
printf (“/n жаќсы деген баѓа алѓан пєндердіњ санын ендіреміз:”);
scanf (“%d”,&hor);
printf(“/n ќанаѓаттанарлы деген баѓа алѓан пєндердіњ санын ендіреміз:”);
scanf (“%d”, &udov);
cred=(otl*5+hov*4+udov*3)/ (float)(otl+hov+udov);
printf (“/n сіздіњ орташа балыњыз : %5,2 f/n”, cred);
if (cred>=4.5)
{
printf (“/n ќ±тыќттаймыз!/n”);
print(“/n Cіз конкурстан µттіњіз”);
}
return (0);
}
Б±л жерде if ќ±тыќттау сµздерін шыѓару не шыѓармауды басќарып т±р , яѓни cred айнымалысыныњ мєні 4,5- ке тењ, не ‰лкен келесі ќатарлар орындалады.
2. if/else инструкциясы.
If/else инструкциясы шарттќа байланысты 2 µрнектіњ бірін тањдап орындауѓа м‰мкіндік береді.
Синтаксисі:
If (шарт)
µрнек1:
else
µрнек2:
Егер шарт тексеру мєні true болса, онда µрнек1 орындалады , кері жаѓдайда µрнек2
Мысалы:
If (ckeupressed==up)
iu_pixel_coovd++
else iu_pixel_coovd—
Келтірілген программа бµлігінде ckeypressed айнымалысыныњ мєніне ќарай тышќан кµрсеткішініњ горизонтал координатасы жоѓарылайды (артады) не кемиді( тµмендейді. (ckeyressed айнымалысы басылѓан клавиштіњ кодын меншіктейді)
Егер if жєне else-ніњ операторлыќ бµлімі бір емес бірнеше µрнектерден т±рса, онда оларды фигуралыќ жаќшаѓа алу керек.
Мысал:
# include
int main()
{
char c;
int many, i, more;
more=1;
while (move==1)
{
printf(“ Tatop атауын ендіріњіз)
if (scanf (“% c”, & c)!= EOF)
{
while (c!=’/n’)
scant(“% c”, &c)
printf ( ќанша заказ берілді?)
scanf (“% d”, &many);
scanf (“% c” , &c);
for (i=1; i<=many; i++)
printf (“*”);
printf (“/n”);
{
else
more=0;
{
return(0);
}
Б±л программа пайдаланушыѓа товар атауын ендіруді ±сынады. Егер файл соњы деген белгі берілмесе (ctrl+c клавиштері басылмаса), онда товар атауын єріптеп оќып, ќатар соњын білдіретін символды(Enter клавиші басылѓанша) кездестіргенше жалѓастыра береді.
Келесі ќатарѓа “ќанша заказ берілді” сµзі шыѓады. Б±дан соњ заказ берілген товарлар бірлігін ендіру ќажет. М±нан кейін ендірілген санѓа сєйкес, for циклі экранѓа ж±лдызшалар ќатарын шыѓарады.
Егер файл соњы деген белгі (ctrl+c клавишін басу) берілген болса , онда if –тіњ шартынан кейінгі ќатарлар орындалмастан else денесі орындалады, яѓни more-ніњ мєні 0-ге ауыстырылады. Демек цикл енді ќайталанбай, программа аяќталады.
Лекция 10. Тақырыбы: Switch/case тањдау командасы.
? шартты операторы
(1 сағат)
1.Switch/case /case конструкциясы.
2. ? шартты операторы
Пайдаланылатын әдебиеттер:
а) негізгі
1. К.Паппас, У.Мюррей “Программирование на С и С++”, Киев, 2000
2. А.Кетков, Ю.Кетков “Практика программирования Бейсик,
Си, Паскаль”, М.: 2001
б) қосымша
3. Шилдт Г. “Теория и практика С++”, Санкт-Петербург, 1996
4. Березин Б.И., Березин С.Б. “Начальный курс С и С++”, М.:1999
1.Switch/case /case конструкциясы.
Бір айнымалыны бірнеше мєндермен тењ не тењ еместігін тексеруге тура келетін жаѓдайлар жиі кездеседі. Б±ны if/else/if конструкциясыныњ кµмегімен не осыѓан ±ќсас конструкция switch/case кµмегімен орындай аламыз. Оныњ синтаксисі мынадай.
switch (б‰тін санды µрнек)
case константа 1
µрнек 1
break;
case константа2
µрнек2
break;
.
.
.
case константаn
µрнекn
break;
detault
‡нсіз келісім бойынша єрекет break инструкцияныњ барлыќ тармаќтарда (default тан бµлек) ќайталанатынын байќаймыз. Егер µрнек1 ден кейінгі break-ты алып тастасаќ, онда µрнек1 орындалѓанан соњ, switch конструкциясы ж±мысын аяќтаудыњ орнына, жалѓасып µрнек2 де орындалады. Демек break тармаќтардыњ бірі орындалѓан соњ басќаларын орындамай, тастап кетуді атќарады.
Мысалы: Тµмендегі фрагментті switch/cаse конструкциясын пайдаланып ќайта жазамыз.
if (more= =smu)
f=5;
else if (more= = smd )
f=-5;
else if (more= = lmu)
f=10;
else f=-10;
switch (more )
{
case smu: f=5; break;
case smd: f=-5; break;
case lmu: f=10; break;
default: f=-10;
}
Б±л жерде more айнымалысыныњ мєні біртіндеп case б±таќтарындаѓы smu, smd, lmu константаларымен (т±раќтыларыныњ) салыстырылып тура келсе, f-ке сєйкес мєні меншіктеледі. Бадан соњ break инструкциясы басќаруды } жабылѓан жаќшадан кейінгі ќатарѓа береді. Егер ешќайсысынада сєйкес келмесе, онда default инструкциясы орындалады. Default б±таѓыныњ болуы міндетті емес екендігін ескерте кетелік. Default блоктыњ соњѓы ќатары болѓандыќтан, одан кейін break инструкциясын жазудыњ ќажеті жоќ.
Мысал:
іnt main()
{
char c= ‘a’;
int ivowel=0, iconst=0;
switch(c)
{
case ‘a’:
case ’A’:
case ‘e’:
case ’E’:
case ’i’;
case ‘I’:
case ’o’;
case ’O’:
case ’u’:
case ’U’: ivowel ++;break;
default: iconst++;
}
refurn(0);
}
Егер с айнымалысы aѓылшын тілініњ кез келген дауысты дыбысыныњ ASCII кодына тењ болса, (‘a’-єрпініњ ASCII коды) онда ivowel айнымалысыныњ мєні бірге артады, кері жаѓдайда iconst бірге артады.
2. ? шартты операторы
? операторы ќарапайым бір ќатарлы шартты µрнектер ќ±руѓа м‰мкіндік береді. Синтаксисі:
шарт ? µрнек бір : µрнек екі;
? операторы тернарлы деп аталады, µйткені ол тек 3 операнданы ѓана керек етеді.
Мысал:
if (fr>=0.0)
fr=fr;
М±ны ? шартты операторыныњ кµмегімен бір ќатарѓа жазуѓа болады:
fr=(fr>=0.0) ? fr : -fr;
Достарыңызбен бөлісу: |