56
жоқ
иә
шарт
2-оператор
1-оператор
3.3-сурет. Шартты оператор
схемасы
Логикалық оператор. Екі немесе бірнеше шарттық ӛрнектерді біріктіру
ҥшін логикалық оператор қолданылады. С тілінде келесі логикалық опера-
торлар бар:
1) ЖӘНЕ (&&) операциясы;
f1 && f2
2) НЕМЕСЕ
(or) операциясы;
f1
f2 ( | коды - 124 )
4) ТЕРІСТЕУ ! (not) операциясы. !f1
Терістеу (емес, қарсылық) операциясының приоритеті ӛте жоғары, одан тек
жақша ішіндегі мәндердің проритеті жоғарылау болады. && операциясының
приоритеті | | (or) операциясымен салыстырғанда жоғары, ал осы екеуінің
приоритеттері қатынас операцияларымен салыстырғанда
тӛмен, меншіктеу операциясынан жоғары болады.
Таңдау операторлары – бҧлар шартты оператор
және ауыстырғыш.
3.4 Шартты оператор
Шартты оператордың орындалу схемасы
(3.1-сурет) мен жалпы жазылу тҥрі мынадай:
if (шарт)
1-оператор;
else
2-оператор;
Мҧнда жақшадағы шарт тҥріндегі ӛрнек ақи-
қат болса, 1-оператор орындалады, әйтпесе
2-оператор атқарылады. Операторлар қарапа-
йым немесе қҧрама болып жазыла береді.
Оператордың қысқаша жазылу тҥрі (3.2-
сурет):
if (шарт)
1-оператор;
Кейде қабаттасқан шартты операторлар
кездеседі (3.3-сурет), мысалы:
if (1-шарт)
1-оператор;
else if (2-шарт)
2-оператор;
else
3-оператор;
Мҧнда егер 1-шарт ақиқат болса, 1-оператор
орындалады, егер 1-шарт жалған болып, 2-шарт
ақиқат болса, 2-оператор орындалады, ал 1-
шарт және 2-шарт жалған болса, 3-оператор
атқарылады.
Ондағы кез келген else тҥйінді cӛзі (keyword)
оның алдында ең жақын тҧрған if операторына
қатысты болып саналады.
жоқ
иә
шарт
1-оператор
3.4-сурет. Шартты оператордың
қысқаша тҥрі
жоқ
иә
1-шарт
жоқ
иә
1-оператор
2-шарт
2-оператор 3-оператор
3.5-сурет. Қабаттасқан шартты
операторлар схемасы
жоқ
жоқ
жоқ
иә
иә
x
>y
x>z
max=x;
max=z;
иә
y
>
z
max=z; max=y;
3.6-сурет. Ҥш санның ҥлкенін табу
57
Мысалы, берілген х, у – екі санның ҥлкенін
анықтау ҥшін жазылған шартты операторды
былай жазуға болады:
if (x>y) max=x;
else max=y;
Ал х, y, z сияқты ҥш санның ҥлкенін табу
ҥшін, қабаттасқан шартты операторлар жазы-
лады (3.4-сурет).
if (x>y)
{if (x>z) max=x;
else max=z;}
else if (y>z) max=y;
else max=z;
Логикалық ЖӘНЕ операциясын пайдалана оты-
рып, бҧл есепті мынадай тҥрде де жаза аламыз.
if ((x>y)&&(x>z)) max=x;
else if ((y>z)&&(y>x)) max=y;
else max=z;
1-мысал. Осы алгоритмді толығынан қысқаша шар-
тты оператор арқылы орындаудың блок-схемасы
(3.5-сурет) мен программасын келесі тҥрде жазып
шығайық.
#include
#include
main()
{
clrscr();
int max,x,y,z;
printf(“3 бүтін сан енгізіңіз:”);
scanf(“%d%d%d”,&x,&y,&z);
max=x;
if (y>max) max=y;
if (z>max) max=z;
printf (“max=%d”,max);
getch();
}
2-мысал. Формула арқылы берілген тӛмендегі у функциясын есептеу
программасын қҧрастыру керек.
0
0
егер
3
2
егер
2
x
x
,
x
,
x
y
#include
max=y;
жоқ
иә
y>max
max=x;
max=z;
жоқ
иә
z>max
басы
x,y,z енгізу
max
соңы
3.7-сурет. Ҥш санның ҥлкенін табу
схемасының екінші тҥрі
58
#include
main()
{
clrscr();
float x,y;
printf(“x нақты санын енгізіңіз:”);
scanf(“%f”,&x);
if (x<0) y=x+2;
else y=2*x*x*x;
printf(“\ny=%f”,y);
getch();
}
3-мысал. Программаға бір жыл нӛмірін енгізіп, сол жылдың кәбисә (366 кҥн)
немесе қарапайым жыл (365 кҥн) екендігін анықтау керек. Ол ҥшін жылды
тӛртке бӛлеміз, егер қалдық 0-ге тең болса, ол кәбисә жыл, әйтпесе қарапайым
жыл болады.
#include
#include
main()
{ int gil;
int r; /* gil-ды 4-ке бөлгендегі қалдық */
clrscr();
printf ("Жылды, мысалы, 2007 енгізіп, Enter басыңыз:
");
scanf ("%i",&gil);
r=gil % 4;
if (r)
printf ("%i жыл - қарапайым \n", gil);
else
printf ("%i жыл – кәбисә \n", gil);
printf ("\nАяқтау үшін Enter басыңыз");
getch();
}
4- мысал. Квадрат теңдеуді шешу программасын қҧру керек.
/* Квадрат теңдеуді шешу */
#include
#include
#include
main()
{
float a,b,c;
float x1,x2,d;
clrscr();
Достарыңызбен бөлісу: |