Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Копия Си лекция каз.doc
Скачиваний:
3
Добавлен:
01.05.2025
Размер:
3.05 Mб
Скачать

Бақылау сұрақтары

  1. Си тіліндегі мәліметтер типтері мен олардың ені.

  2. Оператор дегеніміз не, олар қандай топтарға жіктеледі?

  3. Бүтін сан типтері мен оларды қолдану ерекшеліктері.

  4. Символдық тип және оны қолдану жолдары.

  5. Нақты сандар типтері және оларды пайдалану.

  6. Символдық тіркестерді сипаттау.

  7. Мәліметтерді пернелерден енгізу функциясы және оның жазылу форматтары.

  8. Нәтижені экранға шығару жолдары.

  9. Формат арқылы жазылатын енгізу-шығару функциясы қандай қызмет атқарады?

  10. Cандардың және олардың арасында қалдырылатын бос орындардың енін қайтіп көрсетеді?

  11. Енгізу функциясының жазылуы және оның түрлендіру спецификация­лары.

  12. рrintf() және scanf() функцияларының негізгі айырмашылықтар

Дәріс№4

3. Си тілінде қолданылатын негізгі операторлар

Арифметикалық операциялар символдар арқылы жазылады. Си тілінде мынадай операциялар бар:

* – көбейту, / – бөлу, % – модуль бойынша бөлу (қалдықты анықтау), + – қосу, – азайту.

Модуль бойынша бөлу бүтін санды бүтін санға бөлген кездегі қалдықты анықтайды. Мысалы: 20 % 3 = 2.

3.1. Меншіктеу операторы

Меншіктеу операторы символдар арқылы жазылады. Кез келген ; таңбасымен аяқталатын өрнек меншіктеу операторы болып табылады. Өрнектің бір түріне бос оператор жатады, ол жай ; операторы.

Си тілінде меншіктеу операторының бірнеше түрі бар. Жалпы меншік­теу операторының жазылу форматы мынадай болады:

<айнымалы> = <айнымалы> <операция> <өрнек>;

Мұны Си тілінде қысқаша былай жазуға болады:

<айнымалы> <операция> = <өрнек>;

Төменде бірнеше мысал келтірілген.

a=a+b; a+=b; a=a*b; a*=b;

a=a-b; a-=b; a=a/b; a/=b;

Си тілінде тізбектеле жазылған меншіктеу операцияларын да қолдануға болады. Мысалы:

sum = a = b;

Мұнда меншіктеу операторы оңнан солға қарай орындалады, яғни b-ның мәні a-ға меншіктеледі, ал а-ның мәні sum-ға меншіктеледі.

Меншіктеу операторын былай да жазуға болады:

1) a = (b = 1) +2;

мұнда a=3, b=1.

2) a = b = 1 + 2;

ал мұнда a = 3, b = 3.

Дөңгелек жақшаға алынған кез келген меншіктеу операторы анық­талған мәні бар өрнек болып табылады, мысалы: ((s=13+12)<=30) деген өрнек ақиқат мәнді болып табылады.

Арттыру немесе кеміту (инкремент және декремент) операция­лары ++ және – – түрінде жазыла­ды. Бұлар кез келген операндтың мән­дерін бірге арттыруға немесе кемітуге мүмкіндік береді.

Инкремент, яғни арттыру операциясы (++) және декремент (--), кеміту операциясы айнымалы (тек айнымалы мәнін) мәнін бірге арттырады немесе кемітеді. Олар айнымалы мәнін өзгертеді, яғни жасырын түрдегі меншіктеу амалы болып табылады. Кейде олар жеке оператор түрінде жазылады:

i++; немесе ++i;

Бұл екеуі де мынадай амалмен бірдей болып саналады

i = i + 1;

Бұл екеуін өрнектерде жиі қолданады. Мысалы:

sum = sum + х * --i;

Инкремент пен декремент екі формада жазылады: префикстік және постфикстік. Постфикстік арттыру былай жазылады: х++ , ал префикстік арттыру былай жазылады: ++х . Префикстік амалдар негізгі операция ал­дында, ал постфикстік амалдар негізгі амалдан кейін орындалады.

Постфикстік формада х айнымалысының мәні оны қолданғаннан кейін өзгереді, ал префикстік формада – айнымалы мәні оны қолданғанға дейін өзгереді, яғни бір деген санға артады. Мысалы:

k=10;

x=k++; /* x=10 k=11 */

x=++k; /* x=12 k=12 */

Арттыру/кеміту операцияларын өрнек ішінде де орындау мүмкіндігі бар. Мысалы:

sum=a+b++;/*алдымен a,b қосылады, сонан соң b 1-ге артады */

sum=a+ ++b;/*алдымен b 1-ге артады, сосын барып a,b қосылады */

Арттыру/кеміту операцияларының приоритеттері өте жоғары, тек жақша ішіндегі операциялардың приоритеті олардан жоғары болады.

Құрама оператор бірнеше операторды жүйелік жақшаға алып бірік­тіру үшін қолданылады. Ол шартты және циклдік операторларда жиі қол­да­ны­лады. Мысалы:

#include <stdio.h>

#include <conio.h>

main()

{

int a = 5, b = 6, c = 7, d;

clrscr();

d = (a++ - (--b)) + (c - a--); //d=2 a=5

printf("d=%i a=%d",d,a);

getch();

}