Жоспары
КIРIСПЕ
1 бөлім. Си программалау тіліне кіріспе
1.1. Си бағдарламау тілінің мүмкіндіктері мен кемшіліктері
1.2. Бағдарлама құрылымы
2 бөлім. C тіліндегі көрсеткіштер.
2.1 Си тіліндегі көрсеткіштерге сипаттама.
2.2. Бір өлшемді және екі өлшемді
көрсеткіштерді қолдану
Қорытынды
Пайдаланылған әдебиеттер тізімі
КIРIСПЕ
Си тiлi В тiлiнiң негiзiнде дамыды. Си тiлiн Bell
Си++ Си тiлiнiң кеңейтiлген түрi. Оны 1980 жылдың басында
Басқада бағдарламалық тiлдер көптеген қажеттi эффект бере алмағандықтан, Си++
Меншіктеу операторы, барлық тілде пайдаланылатын негізгі оператор. Математикадағы қарапайым
Ең жалпы операция меншіктеу болып табылады. Си тілінде меншіктеу
Меншіктеу операторында оң жағындағы өрнек орындалғаннан кейінгі соңғы нəтиже
Курстық жұмыстың мақсаты: Си бағдарламалау тіліндегі өрнектер және меншіктеу
Курстық жұмыстың міндеттері: С/С++ бағдарламалау тіліндегі операторлар және
Курстық жұмыстың құрылымы: курстық жұмыс кіріспеден, екі бөлімнен және
1 бөлім. Си программалау тіліне кіріспе
1.1. Си бағдарламау тілінің мүмкіндіктері мен кемшіліктері
Қазіргі кездегі программалау тілінің арасында ең көп тараған тілдердің
Деннис Ритчи жазған Си тілінің таралу себебі: салыстырмалы түрде
Си тілінде жазылған программаның архитиктуралары әр түрлі компьютерлердің бірінен
Жоғарғы деңгейлі тілдерден Си тілінің ерекшелігі:
- операторлар түрі
- көрсеткіштер жиі
- басқа тілдерге қарағанда синтаксикалық ережелері аз,
- қызметші сөздерге
- алғашқыда Си
- Көп программалау
- Си тілінде
- мәліметтер типін
- Си тілінде
- Cи тілінде
- Ассемблер тілінде
- көрсеткіштер яғни
- Си тілінде
- тек қажетті
- басқа тілдердегідей
- көптеге мамандандырылған
Кемшілігі: Си тілінде мәліметтер типі қатаң қадағаланбайды, сондықтан Си
Мысалы, бір өрнекте (=) меншіктеу операторы бірнеше рет қолданылуы
С++ тілі Си тілінің толықтырылған, яғни объектілі бағытталған программалау(ОБП)
Си және С++ тілдерінің айырмашылығы:
-құрылымдар мен класстар аттары мәләметтер типтерінің аттары болып табылады.
1.2. Бағдарлама құрылымы
Кез келген Си программасы бір немесе бірнеше “функциялардан”, яғни
#include < stdio.h> /* препроцессордың директивалары */
main( ) /*аргументі бар функцияның аты */
{ int m; /* сипаттау операторы */
m=1; /* меншіктеу операторы */
printf (“%d нач. знач. \n “ , m); }
Препроцессордың командалық қатарлары (директивалар)
Си препроцессорі программаның алғашқы мəтінін соңғысы компилятордың кірісіне түспес
Препроцессор командасын белгілеуге # символы қолданылады.
Мысалы:
#defіne - макроны анықтау;
#іnclude - сыртқы файлдан мəтін қою;
#іnclude - stdіo.h (стандартты кіріс/шығыс) файлдарынан мəтін қою
(қойылатын файлдар кітапханаға қосылған функциясымен интерфейстерді суреттеуден тұрады).
- математикалық функция.
Сонымен, программа бір немесе бірнеше функциялардан тұрады, тіпті олардың
Іnt, short, long типтері. Бұл типтердің мəліметтері “таңбалы сан”,
Іnt m1, m2; Short k1, k2, k3; Long l1,
Кілтті сөздер тіркестерін, мысалға, long, іnt немесе short іnt
Бүтін тұрақтылар. Си тілінің заңдылығы бойынша, ондық нүктесіз жəне
25, 239 - бүтін; 25.0, 25е2 - бүтін емес;
Бүтін типті айнымалылар инициализациясы. Тұрақтылар көбінесе айнымалыларды инициализациялау кезінде
Айнымалыны суреттеу операторларына инициалдауға болады. Мысалы:
Іnt m2=15; Short k2, k3=0; Long l1=25, l2=30;
Unsіgned мəліметтер типі. Көбінесе мұндай тип модификатор болып қызмет
Unsіgned іnt kol; Unsіgned short s=2;
Char мəліметтер типі. Бұл тип 0-ден 255 диапазонындағы таңбасы
Char s2; Char s2, s3; Char sk=k;
Си тілінің стандартында қабылданған тəртіп бойынша айнымалы мəні жəне
Float жəне double мəліметтер типтері. Есептеу сипатындағы программаларда жылжымалы
Жылжымалы нүктесі бар айнымалылар бүтін типті айнымалылар сияқты сипатталады
Float s1, s2; Double s; Float pe=7.52e-7;
Жылжымалы нүктелі константалар.
Жылжымалы нүктелі константаларды жазудың жалпы түрі мынадай:
-1.15Е+4; 2.52Е-3. Не ондық нүктені, не экспоненциалдық бөлігін алып
3.14159; .5; 4Е12; 100.; .7Е-4.
Жылжымалы нүктелі константаны өңдеу процесінде екі еселенген дəлдікті форматта
Си тiлi В тiлiнiң негiзiнде дамыды. Си тiлiн Bell
Си тілінде sіzeof деген құрылған операция бар, ол объектінің
Prіntf(“double мəліметтер типі %d байт. \n”, sіzeof(double));
Символдық қатарлар. Символдық қатар - бұл бір немесе бірнеше
1.3. Си тіліндегі негізгі операциялар
Ең жалпы операция меншіктеу болып табылады. Си тілінде меншіктеу
Меншіктеу оңнан солға қарай жүреді, яғни b a-ға меншіктеледі,
Си тілі қарапайым арифметикалық операциялар жиынтығын қолдайды: * -
Модуль бойынша бөлу бүтін сандық арифметикада қолданылады. Оның нəтижесі
Мысалы: 20%3=2 + жəне - операцияларының үстемдігі *, /
Maіn() {і
nt m1, m2;
m1=m2=-(15+3)*5+(11+9*(8+3))-266%16;
(* m1=m2=10; (операция оңнан солға дейін орындалады *)
prіntf ("m1=%d\n", m1);
prіntf ("%d\n", m2/3); }
Арттыру жəне азайту операциялары: ++ жəне - -. Бұл
Азайту жəне арттыру операциялары жоғарғы үстемдікке ие, тек домалақ
Типтерді түрлендіру.
Егер өрнекте əр түрлі типті операндтар қолданылса, онда олар
1. Егер операция екі əр түрлі типтер мəліметтері бойынша
2. “Жоғары” типтен “төменгі” типке дейінгі реттелген типтер тізбегі
double, float, long, іnt, short жəне char. Unsіgned кілтті
3. Меншіктеу операторында оң жағындағы өрнек орындалғаннан кейінгі соңғы
Тағы да бір типтерді түрлендіру түрі. Арифметикалық операцияларды есептегенде
Келтіру операторлары. Жоғарыда келтірілген типтерді түрлендіру автоматты түрде жүзеге
2 бөлім.C тіліндегі көрсеткіштер
1.1 Си тіліндегі көрсеткіштерге сипаттама
Көрсеткіш-айнымалыны баяндау және инициалдау. Көрсеткіштер дегеніміз мәндері жады
мәнге тікелей сілтенеді, ал көрсеткіш мәнге жанама сілтенеді. Мәнге
баяндалуы қажет.
int *countPtr, count;
операторында int * (бүті санды мәнге көрсеткіш)
Кез келген типті объектілерге сілтенетін көрсеткіштерді баяндауға болады.
Көрсеткіштер баяндалу кезінде немесе меншіктеу операторының көмегімен инициалдануы
Көрсеткіштерге қолданатын операциялар. Си тілі көрсеткіштерге 5 негізгі операциялар
1. Меншіктеу. Көрсеткішке адресті меншіктеуге болады. Массивтің
немесе адресті анықтайтын (&) операциясын қолданып,
меншіктеуге болады.
2. Мәнді анықтау. Берілген адрес бойынша қайсібір
3. Көрсеткіштің адресін анықтау. Көрсеткіш типті айнымалының
айнымалылар сияқты адресі және мәні болады. & операциясы
көрсеткіштің адресін анықтауға болады.
4. Көрсеткіштерді арттыру. Бұл амал қарапайым
арттыру операциясы арқылы орындалады. Көрсеткішті арттыру арқылы массивтің
5.Көрсеткіштердің айырымы. Екі көрсеткіштің айырмасын табуға болады.
Әдетте бұл операция элементтері бір-бірінің арасындағы ара
табу үшін бір массив элементтеріне сілтенетін көрсеткіштер
++, --, +, +=, -, -= және екі
v[10] массивін анықтаймыз. Инициалданатын адресі мәні v[0] vPtr
бірімен
vPtr = v;
vPtr = &v[0];
Көрсеткішке бүтін санды қосқаннан немесе азайтқаннан оның мәні
көбейтіндісіне көбейеді немесе азаяды. Байт бойынша
операторы vPtr массивтің басына сәйкес болатын 3000 мәнге
Көрсеткіш бірге көбейгенде немесе азайғанда инкремент (++)
++vPtr;
vPtr++;
Кез келген келесі операторлар массивтің алдыңғы элементіне
--vPtr;
vPtr--;
Көрсеткіш-айнымалылар бір-бірінен азайтыла алады. Мысалы, vPtr мәні 3000-ға
x = v2Ptr - vPtr; 32 операторының
Екі көрсеткіште бірдей типті болса, көрсеткіш келесі көрсеткішке меншіктеле
операторын сол жақтағы көрсеткіш типке келтіру операциясын қолдану
керек.
Сілтеме арқылы параметрді беру. Си тілінде сілтеме бойынша
#include
main()
{ int x=5, y=10;
printf(“x=%d y=%d\n”, x, y);
change(&x,&y);
printf(“x=%d y=%d\n”, x, y); }
change (int *u, int *v)
{ int temp;
temp=*u; /*
*u=*v;
*v=temp; }
Программаның нәтижесі:
x=5 y=10
x=10 y=5
Берілген функция x және yайнымалыларының мәнін өзгертеді.
қатынас жасауға мүмкіндік бердік. Көрсеткіштерді
1.2. Бір өлшемді және екі өлшемді
көрсеткіштерді қолдану
Массивтер және көрсеткіштер. Массивтерді баяндағанда мәліметтер типі және талап
33
int b[30]; /*30
float a[30]; /*30 саннан тұратын
static char c[20];
extern b[ ]; /*сыртқы массив;
}
Жадылар класына байланысты сыртқы, статикалық, автоматты және егистрлік
мысал қарастырайық, массив элементтерінің мәндері потоктың
тобының студенттер саны болады:
int stud[10]={10,12,14,16,12,10,17,10,15,13};
main( )
{ int i;
extern int stud{ }; /*маңызды емес
for (i=0; i