C тіліндегі көрсеткіштер курстық жұмыс
№5684



Жоспары
КIРIСПЕ
1 бөлім. Си программалау тіліне кіріспе
1.1. Си бағдарламау тілінің мүмкіндіктері мен кемшіліктері
1.2. Бағдарлама құрылымы
2 бөлім. C тіліндегі көрсеткіштер.
2.1 Си тіліндегі көрсеткіштерге сипаттама.
2.2. Бір өлшемді және екі өлшемді массивтерді өңдеу барысында
көрсеткіштерді қолдану
Қорытынды
Пайдаланылған әдебиеттер тізімі



Жұмыс түрі: Курстық жұмыс
Жұмыс көлемі: 27 бет
Пәні: Соңғы қосылған курстық жұмыстар

-----------------------------------------------------------------------------------

-----------------------------------------------------------------------------------
https://www.topreferat.com/
КУРСТЫҚ ЖҰМЫСТЫҢ ҚЫСҚАРТЫЛҒАН МӘТІНІ

Жоспары
К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<10; i++)
printf(“Группа N %d %d студентов”, i+1,
stud[10] массиві жақшаларға алынған тізіммен инициалдаған,
Массив элементтерін инициалдауды келесі түрде де көрсетуге болады:
int stud[ ]={10,12,15,16,17,11,18,10};
main ( )
{ int i;
extern int stud [ ];
for (i=0; iprintf (“Группа N %d
Егер массивті инициалдауға бос батырмалар
Массивтердің көрсеткіштері. Жоғарыда айтылғандай, көрсеткіштер
массивті өңдеу тиімдірек ұйымдасады). Массивті
Мысалы, массивтің аты сондай-ақ соңғы
{ int a[4], *pti, i;
float b[4], *ptf;
pti=a; /*массив көрсеткішіне адресті меншіктейді */
ptf=b;
for (i=0, i<4,i++)
printf(“көрсеткіш +%d: %8u %10u\n”, i, pti+i, ptf+i); }
Нәтиже:
көрсеткіш +0: 56014 56026
көрсеткіш +1: 56016 56030
көрсеткіш +2: 56018 56034
көрсеткіш +3: 56020 56038
Адрестеудің бірлігі байт болып табылады, бірақ int типі 2
типі 4 байтты қолданады.
«Көрсеткішке бірді қосу»-компилятор бірді жадыға қосады. Массив үшін
бұл келесі байт емес, келесі
Сондықтан да көрсеткіш сілтенетін объектінің типі арнайы ескертіледі.
Келесі теңдікті қарастырайық:
a+2==&a[2]; /*екеуі де
*(a+2)==a[2]; /*екеуі де бірдей
Бұл ара қатынастар массивтер мен
байланысты көрсетеді, яғни көрсеткішті массивтің жеке элементін, сондай-ақ
оның мәнін анықтау үшін қолдануға болады.
Нақтылы біз екі әртүрлі белгілеулерді
компилятор массив белгілуін көрсеткіштерге айналдырады,
көрсеткіштер әдістері маңыздырақ.
Көрсеткіштерді қолданып, массивтермен жұмыс істеу.
қолданатын функцияны қарастырайық, содан кейін
көрсеткіштерді пайдаланып, жазу керек.
int func(a, l)
int a[ ], l;
{ int i, sum;
for (i=0, sum=0; iif (a[i]%2!=0)
sum+=a[i];
return (sum); }
for (i=0,sum=0;isum+=a[i]; 35
return ((int) (sum/l)); }
Шақырушы функцияда шақырылатын операторды келесі
болады:
func(x, size);
Функцияны көрсеткіштерді қолданып, қайтадан жазамыз.
типіне сілтенетін көрсеткіш деп
элементтерін сәйкесінше *(pa+i) мәніне ауыстырамыз.
int func(pa, l)
int *pa, l;
{ int i, sum;
for (i=0, sum=0; isum+=*(pa+i);
return ((int) (sum/l));
}
for (i=0, sum=0; iif (*(pa+i)%2!=0)
sum+=*(pa+i);
return (sum); }
Функцияны шақыру сол түрінде қалады:
func(x, size)/
Массив аты көрсеткіш болғандықтан, келесі баяндалу операторлары
әрекеттері бойынша ұқсас, яғни екеуі де ра көрсеткішімен баяндалады.
int pa[ ]; и int *pa;
Программада бұлардың кез келгенін қолдануға
екінші түрін *(pa+i)-ды қолданамыз.
Екі өлшемді массивтермен жұмыс істегенде көрсеткіштерді қолдану.
a[3][2] массивін қарастырамыз.
int a[3][2]; /*
массив */
int *pri;
pri=a;
a==&a[0][0]; /* pri+1
*/
Бұл массивті қарастырғанда келесі теңдеулер орынды:
pri==&a[0][0]; /* 1-ші жол,
pri+1==&a[0][1]; /* 1-ші жол, 2-ші
pri+2==&a[1][0]; /* 2-ші жол, 1-ші
pri+3==&a[1][1]; /* 2-ші жол, 2-ші
pri+4==&a[2][0]; /* 3-ші жол, 1
pri+5==&a[2][1]; /* 3-ші жол, 2-ші
Екі өлшемді массив бір өлшемді массивтерден құрылған массив ретінде
a[ 0]==&a[0][0]
a[ 1]==&a[1][0]
a[ 2]==&a[2][0].
Бұл қасиет бір өлшемді массивке
массивпен жұмыс істеу үшін мүмкіндік береді.
main( )
{ static int b[3][4]={{6,4,8,10},
{10,20,30,40},
{20,40,60,80}};
int i;
for (i=0; i<3; i++)
printf(“Среднее значение строки %d равно %d\n”, i, func(b[i], 4));
/*b[i] - 4 элементтен тұратын бірөлшемді массив*/
}
/*Бірөлшемді массивтен орта мәнді табу*/
int func(x, n)
int x[ ],n;
{ int l;
float s;
for (l=0, s=0; ls+=x[l];
return ((int) (s/n));
Бөлшектеп емес, барлық циклдарымен бірге
істейтін функцияны баяндау үшін функцияның
баяндалуын дұрыс жазу қажет.
main() функциясы келесі түрге ие болады:
main()
{ static int b[3][4]={{6,4,8,10},
{10,20,30,40},
{20,40,60,80}};
sr(b); }
sr(b) функцияның басы келтірілген:
sr(b)
int b[ ][4];
int mult (int b[ ][4], int m)
{ int i, j; p=1;
for (i=0; ifor (j=0; j<4; j++)
if (b[i][j]!=0) p=p*b[i][j]; }
Тағы бір әдісті қарастырамыз:
b[5,4] массиві берілген. Келесі баяндалуды келтіруге болады.:
37
mult (int a[ ], int size)
Функцияға қатынасқанда келесі түрді аламыз:
mult (b, 5*4); (b 20 элементтен
қарастырылады).
Қорытынды
Си бағдарламалау тілі Bell лабораториясында жасалған. Бұл тілді ассемблердің
“Көрсеткіш” типті айнымалыны баяндағанда ол көрсеткіш қандай типті
Өйткені әр түрлі типті айнымалы ұяшықтардың әр түрлі санын
Си тілінде көрсеткіш типті айнымалылар да кездеседі. Көрсеткіш типті
Көрсеткіш ptr идентификаторымен белгіленген болсын, сонда келесідей оператор sum
Пайдаланылған әдебиеттер тізімі
1. А.А. Абрамов., Гнездилова Г.Г., Капустина Е.Н.,
2. Абель П. Язык Ассемблера для IBM
3. Б.Д.Сыдықов Алгоритмдеу жэне программалау негіздерін оқыту.
4. Белецкий Я. Турбо Си++. Новая разработка.
5. Брэдли Л. Программирование на языке Ассемблера
6. Дейтел Х., Дейтел Г. Как программировать
7. Культин Н.Б. С/С++ в задачах и
8. Культин Н.Б.Основы программирования Delphi 7. Санкт-Петербург.
9. Муртазина А.У., Тусупова Б.Б. Основы программирования
10. Муртазина А.У., Тусупова Б.Б. Основы программирования на




17 шілде 2019ж.
2008-2018 topreferat.com - Қазақша рефераттар, курстық, дипломдық жұмыстар

^