Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

С программалау тілі туралы ма~л~маттар Си тілі ~ткен ~асырды~ 70жылдары басында А~Шта Bell Telephon Lbortories компа

Работа добавлена на сайт samzan.net:


1. С программалау тілі туралы мағлұматтар

Си тілі өткен ғасырдың 70-жылдары басында АҚШ-та Bell Telephon Laboratories компания-сының қызметкері Дэннис Ритчидің бастауы-мен дүниеге келді. Бұл тілдің негізі Алголдан басталып, Си және ПЛ/1 тілдерімен қатар пайда болды. Си тілінің шығуы UNIX операциялық жүйесін-де программалаумен тығыз байланысты, өйт-кені бұл жүйе ассемлерде және осы Си тілінде жазылып шыққан болатын. Бұл тілде жазылған программаны компьютерде орындау кезінде ол алдымен трансляция сатысынан өтіп (машина тіліне аударылып), объектілік программа түріне ауысады да, сонан кейін барып орындалады. Осы сәтте компьютер-де программаның екі нұсқасы болады, оның біріншісі – Cи тіліндегі алғашқы нұсқасы, ал екіншісі – объектілік кодтағы машина тілінде жазылған программа. Есептің нәтижесін тек машиналық кодта жазылған программа арқылы аламыз, ал программаны түзету қажет болғанда оның алғашқы нұсқасы өңделіп, оны қайта түрлендіру сатысы жүзеге асырылады.

2. С тілінде программаның құрылымы

Си тілі (1972 жылы Деннис Ритчи ұсынған) әдетте тек Ассемблер тілінде бағдарламалағанда қол жеткізген компьютер ресурстарын тиімді қолдану мүмкіндіктері бар жоғары дәрежелі тілдің қасиеттерін біріктіреді. Си тілін үйрену қарапайым емес және бағдарламалауда мұқияттылық қажет, бірақ ол ас тиімді және күрделі бағдарламаларды құруға ерік береді.

Си тіліндегі бағдарлама:

#include <stdio.h>

Main ()

{

Float a[100],s;

Int I,n=100;

For (i=0;i<=n;i++)

Get (a[i]);

For (i=0;i<=n;i++)

S=s+a[i];

Printf (“s=f/n”,s);

}

3. С тілінің элементтері. Алфавиті. Лексемалар

Тілдің алфавиті программаның элементтерін құруда қолдануға болатын символдар жиынынан тұрады. Оған әріптер, цифрлар және арнайы белгілер кіреді. Тіл ерекшеліктеріне қарай символдар тобын шартты түрде төмендегі топтарға жіктеуге болады, олар атау (идентификатор) ретінде қолданылатын символдар ( a,b,c,…,z және цифрлар ); цифрлар ( 0,1,2,…,9 ) ; айыру белгілері ( , . : ; “ _ ); арнайы символдар ( #, &, *…). а) Әріп ретінде латын алфавитінің бас және кіші әріптері қолданылады, олар: A B C D E F G H І J K L M N O P Q R S T U V W X Y Z a b c d e f g h і j k l m n o p q r s t u v w x y z және астын сызу таңбасы (_) әріпке саналады; Бас әріптер мен кіші әріптер бірдей болып саналмайды, мысалы, Х пен х екі айнымалы атауы, дәл сол сияқты ALFA1, aLfA1 және alfa1 де әр түрлі атаулар түрлері болып саналады. Атауларда әріптер цифрлармен араласып жазыла береді, бірақ атаудың алғашқы символы міндетті түрде әріп болуы тиіс, мысалы, VES1, SALMAK2, Baga_5, cena7, T7S25, ART25var8,т.с.с. Ұлттық әріптер (қазақ, орыс, араб т.с.с.) атау ретінде қолданылмайды, олар тек тырнақшаға (“) алынған тұрақты сөз тіркестері немесе /* және */ таңбаларымен қоршалған түсініктеме ретінде ғана кездеседі /* бұл түсініктеме */.

Тілдің қарапайым объектілеріне тип, сан, идентифи-катор, константа, айнымалы және функция, өрнек ұғымдары кіреді. Тілдің ары қарай бөлінбейтін ең қарапайым бірлігі лексем (token деп те айтады) деп аталады. Лексемнің 5 типі бар: операциялар (operator), айыру таңбалары (separator), идентификаторлар (identifier), түйінді сөздер (keyword) және константалар (constant). Біз лексемдерді дұрыс жазуға мүмкіндік беретін объ-ектілерді қарастырып, программаның жалпы құрылы-мынан мәліметтер берейік. Константалар және кез келген айнымалылар бүтін саннан, нақты саннан, символдан немесе сөз тіркесте-рінен құралады.

4. Идентификаторлар және комментарий

Атау – идентификатор (іdentіfіеr – объектіге қойылған ат) программаны және программадағы тұрақтыларды, айнымалыларды, функцияларды, файлдарды және тағы басқаларды белгілеп жазу үшін қажет. Идентификатор – міндетті түрде әріптен басталатын сандар мен әріптердің тізбегі. Оның ұзындығын өте үлкен етудің қажеті жоқ, өйткені атауларды теру және кейіннен сақтау біраз уақыт керек етеді. Бірақ оларды өте қысқартпай, мағынасына сәкес атау беру қалыптасқан. Мыса-лы: X, x_2, cymka, bec, p23ps6, dt54as, ALFA, baga2, salmak, Omega2, т.с.с. Бас әріп пен кіші әріп бірдей болып саналмайды.

Тілдің қарапайым объектілеріне тип, сан, идентифи-катор, константа, айнымалы және функция, өрнек ұғымдары кіреді. Тілдің ары қарай бөлінбейтін ең қарапайым бірлігі лексем (token деп те айтады) деп аталады. Лексемнің 5 типі бар: операциялар (operator), айыру таңбалары (separator), идентификаторлар (identifier), түйінді сөздер (keyword) және константалар (constant). Біз лексемдерді дұрыс жазуға мүмкіндік беретін объ-ектілерді қарастырып, программаның жалпы құрылы-мынан мәліметтер берейік. Константалар және кез келген айнымалылар бүтін саннан, нақты саннан, символдан немесе сөз тіркесте-рінен құралады.

5. Айнымалылар және тұрақтылар

Айнымалылар деп программаның орындалу бары-сында әр түрлі мәндерді қабылдай алатын шамаларды айтады. Айнымалы – компьютер жадының ат қойылған аймағы. Оған мән берілгенде, сол аймаққа мәннің екілік коды жазылады. Айнымалы мәнін қолдану үшін оның атын – идентификаторын және мән орналасқан аймақтың адресін білу керек. Олар идентификаторлармен белгіленіп, әр уақытта әр түрлі мәнге ие бола алады. Айнымалылардың белгіленулері: alfa, y, x_3, summa, baga, a1b8, т.с.с. Айнымалы атауы оның орындайтын міндетіне сәйкес, түсінікті және қарапайым болғаны жөн. Айныма-лыларды сипаттау оларды пайдалану алдында кез келген жерде орналасады да, алдында олардың типі көрсетіледі. Оның жазылу форматы:, ..., ; Мысалы: іnt a, b=5, d, D; float c, alfa=2.15, b4=1.336e2; char symbol, cc; string coz, coilem; Айнымалыларды сипттау үшін алдында сипатталған тұрақтылар мен мәні анықталған айнымалыларды қолануға болды: int xl = 1, х2 = 2 * xl; Айнымалыларды жариялау бөлек оператор болуы мүмкін немесе ол кейбір операторлар ішінде істелінеді , мысалы , цикл операторында :for ( int i = 0; i

6. Кілттік сөздер

7. Операторлар, типтер және өрнектер

Мәліметтер типтері. Мұнда мәліметтердің бірнеше негізгі типтері қолданылады. Олар: char – символдық, яғни таңбалық тип, short – қысқа бүтін сан, int – бүтін сан типі, long – екі еселенген бүтін сан, float – нақты (жылжымалы нүктелі) сан типі, double – екі еселенген нақты сан типі. unsigned – таңбасыз бүтін сан,

Жад облысына сілтейтін өрнек атайтын өрнек деп немесе 1-мәнді деп аталады. Мынадай өрнектер атайтын өрнектер бола алады: берілгендердің бүтін және жылжымалы типті, сілтемелер типті,|кұрылым және қоспа типті идентификаторлары; массив немесе функция тәрізді есептелетін индекстік өрнектерден басқа индекстік өрнектер ([ ]); элемент таңдау өрнегі (-> немесе .)> егер таңдалатын элемент жоғарыдағы өрнектердің бірі болса; адрестеуді алып тастау операциясының унарлы өрнегі (*), бұнда массив немесе функцияға сілтейтін өрнек болмауы керек; дөңгелек жакша ішіндегі атайтын өрнектері (1-мән).

8. С тілінің операцияларының негізгі топтары

Операциялар Операциялар классификациясы Операцияларда қатысатын операндалар саны бойынша операциялар былай бөлінеді: унарлы операциялар, немесе бір операндты операциялар, бинарлы операциялар, немесе екі операндты операциялар, тернарлы операциялар, немесе үш операндты (бұл шартты операция Меншіктеу операциясы да унарлы жөне бинарлы бола алады. Унарлы операцияларды талдау оңнан солға карай жүргізіледі. Бинарлы операциялар солдан оңға карай талданады

9. Меншіктеу операциялары

Операция белгісі Операция аты

++ Көбею (унарлы инкремент)

-- Азаю (унарлы декремент)

= Қарапайым меншіктеу

*= Меншіктеумен көбейту

/= Меншіктеумен бөлу

%= Меншіктеумен бөлуден калған қаддық

+= Меншіктеумен косу

-= Меншіктеумен алу

«= Меншіктеумен солға жылжу

»= Меншіктеумен оңға жылжу

&= Меншіктеумен разрядты ЖӘНЕ

|= Меншікгеумен разрядты НЕМЕСЕ

^= Меншіктеумен разрядты шығарып тастайтын НЕМЕСЕ

10. Логикалық операциялар

Логикалық амалдардың белгілері:

Си тілінде келесі логикалық операторлар бар

*және (&&) операциясы f1 && f2

*немесе | | (or) операциясы f1 || f2

*терістеу (not) операциясы !f1

Терістеу (емес, қарсы) операциясының приорите-ті өте жоғары, одан тек жақша ішіндегі мәндер-дің приоритеті жоғарылау болады. && операция-сының приоритеті || (or) операциясымен салыс-тырғанда жоғары, ал осы екеуінің приоритеттері қатынас операцияларымен салыстырғанда төмен, меншіктеу операциясынан жоғары болады.

11. Салыстыру операциялары

Қатынас таңбалары немесе салыстыру белгілері: = = (тең), != (тең емес), (үлкен), = (кіші емес таңбасының орнына) Әрбір символдың өзінің реттік нөміріне сәйкес белгіленген коды болады, ол стандарт түрінде бекітілген. Әр елдің стандарттары негізінде америкалық кодтар стандарты жатады (Amerіcan Standart Code for Іnformatіon Іnterchange - ASCІІ), компьютерде жұмыс істеу кезеңінде оларды да білген абзал. Си тілінің түйінді сөздері – программада алдын ала анықталған белгілі бір мағынасы бар сөз тіркестері. Си тілінің түйінді сөздері (служебные или ключевые слова) мәліметтер типтері, операторлар мен стан-дартты функциялар атаулары, жады кластары, моди-фикаторлар (толықтырғыштар), т.с.с., олардың тіл-дің әр түрлі нұсқаларында аздап айырмашылықтары болуы мүмкін.

Қатынас операциялары екі мәнді салыстыру үшін қолданылады: ==,!=,,>= Егер қарастырылатын қатынас нәтижесі ақи-қат болса, шарттық өрнектің мәні 1-ге тең болып саналады. Егер ол жалған болса, шарт-тық өрнек мәні 0-ге тең. Қатынас операциясы-ның приоритеті арифметикалық операциялар-ға қарағанда, төмен және меншіктеу операто-рымен салыстырғанда жоғары болады. Екі немесе бірнеше шарттық өрнектерді біріктіру үшін логикалық оператор қажет.

12. Мультипликативті операциялар

13. Унарлы операциялар

14. Бинарлы операциялар

Бинарлы операциялар топтары

Мультипликативті * Көбейту / Бөлу % Бөлуден калган қаддық + Қосу

Аддитивтік  + Қосу

Жылжу операциясы  « Солға жылжу» Оңға жылжу

Қатынас опеоапиялар  <Аз > Көп Аз немесе тең >= Көп немесе тен = Тең != Тең емес

Разрядты  & Разрядты логикалық ЖӘНЕ

Логикалык  | Разрядты логикалық НЕМЕСЕ Логикалык

15. Тернарлы операция

Операциялар Операциялар классификациясы Операцияларда қатысатын операндалар саны бойынша операциялар былай бөлінеді: унарлы операциялар, немесе бір операндты операциялар, бинарлы операциялар, немесе екі операндты операциялар, тернарлы операциялар, немесе үш операндты (бұл шартты операция Меншіктеу операциясы да унарлы жөне бинарлы бола алады. Унарлы операцияларды талдау оңнан солға карай жүргізіледі. Бинарлы операциялар солдан оңға карай талданады

16. Инкременттік операциялардың түрлері

Төменде меншіктеу операциялары келтірілген. Меншіктеу операциясы оң операнданың мәні сол операндамен берілген жад облысына меншіктелуін айтады. Сондықтан меншіктеу операциясының сол операндасы немесе меншіктеудің унарлы өрнегінін жалғыз операндасын жад облысына сілтейтін өрнек болуы керек.

Операция белгісі Операция аты

++ Көбею (унарлы инкремент)

17. Декременттік операциялардың түрлері

Төменде меншіктеу операциялары келтірілген. Меншіктеу операциясы оң операнданың мәні сол операндамен берілген жад облысына меншіктелуін айтады. Сондықтан меншіктеу операциясының сол операндасы немесе меншіктеудің унарлы өрнегінін жалғыз операндасын жад облысына сілтейтін өрнек болуы керек.

Операция белгісі Операция аты

-- Азаю (унарлы декремент)

18. Препроцессор директивалары

С++ тіліндегі программа препроцессор директивасынан, сипаттамалардан және функциялардан тұрады. Программа құрылымы

  препроцессор директивалары   

  сипаттамалар

  int main

{бас функция операторлары

Программаның бірінші қатары- препроцессор директивасы, ол # таңбасынан басталады.  Компилятордың бірінші фазасы препроцессор деп, ал препроцессордың нұсқауы (инструкция) директива деп аталады.

Программадағы бір функция main болуы тиіс. Программаның орындалуы осы функцияның бірінші операторынан басталады.

Функцияның қарапайым анықталуының форматықайтарылатын_мәннің_типі  аты ([параметрлер])

{функция денесінен құрайтын  операторлар}

19. Енгізу – шығару функциялары

Си тілінде сыртқы ортамен мәліметтер алмасу енгізу-шығару функциялары кітапханасын пайдалану арқылы орындалады. Ол тақырып файлы ретінде былай жазылады:

#include

Printf() функциясы мәліметтерді экранға шығару үшін қолданылады. Оның жалпы жазылу түрі:

printf(,);

( – қостырнақшамен (”) шектеліп, аргументтердің қалай бейнеленетінін көрсетіп тұрады, экранға (баспаға) шығару алдында барлық аргументтер формат спецификациясына сәйкес түрлендіріледі, специфи-кация % символымен басталады және мәліметтер типін, оларды түрлендіру тәсілін

көрсететін бір әріп жазылады. ретінде айнымалылар, константалар, өрнектер қолданылуы мүмкін. Мысалы: printf (“Пи санының мәні = %f\n”, pi); Формат тіркесінде мыналар болады: 1) мәтін ретінде шығарылатын символдар тіркесі; 2) түрлендіру спецификациялары; 3) басқару символдары.

20. Түрлендіру спецификаторлары

Scanf() енгізу функциясы жоғарыда қарастырылған түрлендіру спецификациясының көбін пайдаланады.

scanf (,);

Аргументтер ретінде адрес нұсқауыштары пайдаланылады. Мысалы: scanf("%d%f", &x,&y);

Кейбір айырмашылықтарын атап өтейік. %е және %f спецификациялары енгізу кезінде бірдей болып табылады; short типті бүтін санды енгізу кезінде %h спецификациясы қолданылады.

ЕСКЕРТУ. Айнымалы адресін беру үшін адрестерді жазғанда, айнымалы адресін анықтау үшін & символы қолданылады. Ал тіркестік (жолдық) айнымалыны енгізгенде, & символы жазылмайды.

Жол енгізуден бір мысал келтірейік.

/* Жол енгізу мысалы */

main()

{

char name [15];

clrscr();

printf("\n‚Ввод имени \n");

scanf("%s",name);

printf("Автором программы является %s\n",name);

}

[kgl]

21. Шартты оператор  

Шартты операция Шартты операция (? :) шартты өрнек жазуға мүмкіндік береді, яғни берілген шартқа байла-нысты әр түрлі мән қабылдайтын шартты өр-нектер құрады. Бұл операция үшорынды бо-лып табылады. Егер оның шарты (бірінші операнды) ақиқат болса, өрнек мәні екінші операндқа тең; егер жалған болса, онда — үшіншіге тең.

Мысалы: max_ab = a > b? a : b;

Шартты оператордың толық және қысқа түрі бар.

if (шарт-өрнек) оператор; //қысқа түрі

Шарт-өрнек ретінде арифметикалық өрнек, қатынас немесе логикалық өрнек жазылады. Егер шартты өрнек мәні нөлге тең (яғни ақиқат болса) болмаса, онда оператор атқарылады.

Мысалы:

if (x if (шарт-өрнек) 1-оператор;

//толық түрі else 2-оператор;

Егер шартты өрнек мәні нөлге тең (яғни ақиқат болса) болмаса, онда 1-оператор атқарылады, ал ол нөлге тең болса, онда 2-оператор орындалады. Мысалы:

if (d>=0)

{ x1=(-b-sqrt(d))/(2*a);

x2=(-b+sqrt(d))/(2*a);

printf(“\nx1=%5.2f x2=%5.2f”,x1,x2);

}

else printf(“\nШешуі жоқ”);

22. Қайталау операторының түрлері. Қайталау оператордың толық және қысқа түрі бар.

if (шарт-өрнек) оператор; //қысқа түрі

Шарт-өрнек ретінде арифметикалық өрнек, қатынас немесе логикалық өрнек жазылады. Егер шартты өрнек мәні нөлге тең (яғни ақиқат болса) болмаса, онда оператор атқарылады.

Мысалы:

if (x if (шарт-өрнек) 1-оператор; //толық түрі

else 2-оператор;

Егер шартты өрнек мәні нөлге тең (яғни ақиқат болса) болмаса, онда 1-оператор атқарылады, ал ол нөлге тең болса, онда 2-оператор орындалады.

Қайталау операторының түрлері :While цикл операторы,FOR цикл операторы, Do while цикл операторы

1. While цикл операторы .Шарты алдын ала тексерілетін цикл.Оның жазылуы:

While (шарт-өрнек)

{

1 оператор;

2 оператор;

......

N оператор;

}

Мұнда шарт-өрнекке кіретін айнымалы цикл ішінде өзгеріп отырады.

2.FOR цикл операторы . Параметрлі цикл схемасы. Арифметикалық прогрессия сияқты For операторының жазылуы:

for(x=x0;x {

;

;

. . .

;

}

Мұндағы өрнек1: x=x0; – цикл айнымалысының бастапқы мәні, өрнек2: x

For цикл операторында бір немесе бірнеше өрнектерді жазбауға да болады, бірақ мұндайда ; символын міндетті түрде өз орындарына жазып отыру керек, мысалы:

Do while цикл операторы. Шарты соңынан тексерілетін do … while циклінің схемасы. Жалпы жазылу түрі:

 do

{

1-оператор;

2-оператор;

… … …

n-оператор;

}

while (өрнек);

Do ... while циклінде шарт соңында тексерілетін болғандықтан, оның тұлғасы ең болмағанда бір рет орындалады. Цикл соңында жазылған while(өрнек) өрнек ақиқат болса (немесе 0-ге тең болмаса), цикл тұлғасы қайтадан орындалады. Ал өрнек жалған болса (немесе 0-ге тең болса), цикл аяқталады.

23. for операторының құраушылары

Параметрлі цикл схемасы: Арифметикалық прогрессия сияқты For операторының жазылуы: for(x=x0;x {;; . . .; } Мұндағы өрнек1: x=x0; – цикл айнымалысының бастапқы мәні, өрнек2: x Мысалы: /* 1-ден n-ге дейінгі сандар қосындысы */ #include #include main () { int s=0,k; int n; clrscr(); printf(“n санын енгізіңіз:"); scanf("%d",&n); printf("1-ден %d-ге дейінгі сандар қосындысы:",n); for (k=1;k s+=k; printf(" %d",s); getch(); } For цикл операторында өрн3 ретінде жалпы дұрыс жазылған кез келген өрнекті пайдалануға болады. Мысалы:for (d=0.1; d printf(“%f”,d); For цикл операторында бір немесе бірнеше өрнектерді жазбауға да болады, бірақ мұндайда ; символын міндетті түрде өз орындарына жазып отыру керек, мысалы: x=2; for(n=4; x x=x*n; For цикл операторында құрама өрнектер-ді «,» операциясы арқылы жазуға да бола-ды,мұндайда бөлектенген өрнектер солдан оңға қарай есептеледі. Мысалы: int x,y; for (x=1,y=9;x printf(“%d%d\n”, x,y); Мұнда өрн1 орнына екі өрнек жазылған (x=1,y=9;) және олар x,y айнымалыларын өзгерту үшін қолданылады. Ал соңында өрн3 орнына да екі өрнек (x++,y--)жазылған.

24. while және do-while оператоларының айырмашылықтары

Шарты соңынан тексерілетін do … while циклініңсхемасы Жалпы жазылу түрі:

do

{

1-оператор;

2-оператор;

… … …

n-оператор;

} while (өрнек);

Do ... while циклінде шарт соңында тексерілетін болғандықтан, оның тұлғасы ең болмағанда бір рет орындалады. Цикл соңында жазылған while(өрнек) өрнек ақиқат болса (немесе 0-ге тең болмаса), цикл тұлғасы қайтадан орындалады. Ал өрнек жалған болса (немесе 0-ге тең болса), цикл аяқталады.

25. switch, break, continue және goto операторлары

Switch ауыстырғыш операторы switch ауыстырғыш операторы программада кездесетін бірнеше (екіден артық) нұсқаның бірін таңдап алу керек болған жағдайда қолданылады. Оператордың жалпы жазылуы:

switch ;

{ case белгі1: операторлар; break;

case белгі2: операторлар; break;

................

case белгіN: операторлар; break;

default: операторлар; }

Оператордың орындалу схемасы: Мұнда switch сөзінен кейінгі өрнек мәні есептеледі, ол бүтін санды (char типі де) типте болуы тиіс. Сол мән case сөздерінен кейін жазылған константалар мәндерімен салыстырылады. Егер олардың біріне тең болса, сол жол орындалады, жол соңында көшу операторы болмаса, келесі жолдар толық орындалады. Ал бір жолды орындап болған соң, switch операторынан шығу үшін break операторы қолданылады. Егер switch сөзінен кейінгі өрнек мәні ешбір константамен сәйкес келмесе, онда default сөзінен кейінгі операторлар атқарылады. Кейде default сөзі болмауы да мүмкін. Егер default сөзі болмаса, онда switch операторынан кейінгі келесі жолдар орындала береді. Switch операторындағы өрнек түрінде нақты типтегі мәліметтерді, сөз тіркестерін (жолдарды) пайдалануға болмайды. Нөмірлеріне сәйкес апта күндерінің атауларын шығару мысалы:

1 енгізілсе, дүйсенбі сөзі,

2 енгізілсе, сейсенбі сөзі,

..........

7 енгізілсе, жексенбі сөзі шығарылады.

26. Массивтермен жұмыс

Сипаттау кезінде бірден бастапқы мән меншіктеуге болады, оны айнымалыны инициалдау дейді. Си тілі-нде символдық тіркестерді сипаттау үшін арнайы тип жоқ, олар көбінесе char типтегі элементтерден тұра-тын массив (жиым) ретінде қарастырылады. Жолдық немесе тіркестік символдар ЭЕМ жадында көршілес ұяшықтарда сақталады да, олардың соңында ‘\0’ символы тұрады. Символдар қатарының ұзындығын анықтау үшін strlen сөзі қолданылады.

Екіөлшемді массив – A[5,5] берілген. Осы массивтегі теріс элементтердің санын анықтайтын және оларды квадраттайтын программа құру керек.

k=0;

for (i=0;i for (j=0;j if (a[i][j]>0

continue;

else

{ k=k+1;

a[i][j]=pow(a[i][j],2);

}

27.Екіөлшемді массив элементтерінің қасиеттері

Математикада көп өлшемді массивтер, яғни массивтердің массиві жиі қолданылады. әсіресе екі өлшемді массивтер, басқаша айтұанда матрицалар кең көлемде қолданылады. Екі өлшемді массивті айнымалы бөлігінде сипаттау:

Екіөлшемді массив – A[5,5] берілген. Осы массивтегі теріс элементтердің санын анықтайтын және оларды квадраттайтын программа құру керек.

k=0;

for (i=0;i for (j=0;j if (a[i][j]>0

continue;

else

{ k=k+1;

a[i][j]=pow(a[i][j],2);

}

28. Қолданушымен анықталған функция

Кез келген Си-программа бір немесе бірнеше функция-лардан тұрады. Олар программа құруға керекті негізгі модульдер болып табылады. Келесі суретте Си программасының жалпы құрылымы көрсетілген.

Си тілінде математикадағы тәрізді стандартты функ-циялар бар. Олар жиі кездесетін математикалық және басқа да функцияларды есептеу үшін қолданылады. Стандартты функцияны жазу үшін міндетті түрде функцияның аты және жақшаның ішінде аргументі көрсетілуі қажет. Функцияны есептеу барысында аргумент пен функция типтерінің әр уақытта сәйкес келе бермейтінін есте сақтаған жөн. Енді программаларда жиі пайдаланылатын өрнектерді мысал ретінде қарастырайық.

|x| fabs(x) Аргументтік абсолюттік шамасы нақты

|x| abs(x) Аргументтік абсолюттік шамасы бүтін

tg x tan(x) Аргументтің тангенсы нақты

arctg x atan(x) Аргументтің арктангенсы нақты

arccos x acos(x) Аргументтің арккосинусы нақты

arcsin x asin(x) Аргументтің арксинусы нақты

cos x cos(x) Аргументтің косинусы нақты

sіn x sіn(x) Аргументтің синусы нақты

ex exp(x) е-нің (2,71828) х дәрежесі нақты

lnx log(x) х-санының натурал логарифмі нақты

lg x log10(x) х-санының ондық логарифмі нақты

29. Локальдік және глобальдік айнымалылар

Айнымалылар типтерден бөлек жады кластары-мен де сипатталады. Осы уақытқа дейін кластарды көрсетпеуіміз олардың алдын ала келісім бойынша сипатталуына байланысты болды. Айнымалылар компьютер жадында немесе процессор регистрлері-нің бірінде сақталады. Ол үшін айнымалы кластары анықталады. ЭЕМ жадының класы (storage class) айнымалылар-дың қолданылу аймағын (жедел жады немесе регис-трлер) және осы айнымалының ЭЕМ жадында сақ-талу ұзақтығын анықтайды.

Әрбір айнымалы анықталған бір типке және жа-дының бір класына жатуы тиіс (жалпы ЭЕМ жад-ында не регистрлерде). Си тілінде ЭЕМ жадының 4 түрлі класы бар және оларды сипаттау үшін 4 түй-інді сөз қолданылады:

auto – автоматты класты сипаттау үшін қолданылады,

extern – сыртқы класты сипаттау үшін қолданылады,

static¬ – статикалық класты сипаттау үшін қолданылады,

regisrter – регистрлік класты сипаттау үшін қолданылады

30. Көрсеткіш

Си тіліндегі көрсеткіштерге сипаттама Көрсеткіш-айнымалыны баяндау және инициалдау. Көрсеткіштер дегеніміз мәндері жады мәнге тікелей сілтенеді, ал көрсеткіш мәнге жанама сілтенеді. Мәнге баяндалуы қажет.  int *countPtr, count;  операторында int * (бүті санды мәнге көрсеткіш) Кез келген типті объектілерге сілтенетін көрсеткіштерді баяндауға болады. Көрсеткіштер баяндалу кезінде немесе меншіктеу операторының көмегімен инициалдануы

31. Көрсеткішке қолданылатын операциялар

Көрсеткіштерге қолданатын операциялар. Си тілі көрсеткіштерге 5 негізгі операциялар

1. Меншіктеу. Көрсеткішке адресті меншіктеуге болады. Массивтің

немесе адресті анықтайтын (&) операциясын қолданып,

меншіктеуге болады.

2. Мәнді анықтау. Берілген адрес бойынша қайсібір

3. Көрсеткіштің адресін анықтау. Көрсеткіш типті айнымалының

айнымалылар сияқты адресі және мәні болады. & операциясы

көрсеткіштің адресін анықтауға болады.

4. Көрсеткіштерді арттыру. Бұл амал қарапайым

арттыру операциясы арқылы орындалады. Көрсеткішті арттыру арқылы массивтің

5.Көрсеткіштердің айырымы. Екі көрсеткіштің айырмасын табуға болады.

32. Жолдармен жұмыс, негізгі функциялар

33. Файл туралы негізгі түсініктер

Файл – сыртқы естеу сақтау құрылғыларында (магниттік дискілерде ) орналастырған және мәлімет өңдеу, тасымалдау кездерінде  біртұтас күйде қарастырлған мәлімметтер жиыны.

Файлдармен жұмыс істеу үшін оларды, алдымен, ашу керек, яғни файл туралы мәліметті – атын, адресін программаға белгілі ету қажет.

С тілінде файл ашу fopen() функциясы арқылы орындалады. Ол сыртқы құрылғыдағы физикалық файлды, мысалы, А:\NUR.DAT, программадағы оның логикалық атымен байланыстырады. Логикалық ат дегеніміз – файлға нұсқауыш, яғни файл туралы мәлімет сақталатын жады аймағына сілтеме жасау. Файлға нұсқауыш сипатталуы тиіс.

Сонымен, файлдармен жұмыс істегенде нұсқауыштар қолданылады. Файлға нұсқауыш мынадай түрде сипатталады.

34. Файлды ашу режимдері

Сонымен, файлды ашатын fopen() функциясының жалпы жазылуы:

 fp = fopen( name, mode)

мұнда fp – файлға сілтейтін нұсқауыш; name – файлдың адресін де көрсетуге болатын аты, көбінесе символдық тіркес арқылы жазылады; mode – файл қандай режимде қолданылатының көрсететін параметр, бұл да символдар тіркесімен төмендегідей түрде жазылады:

 “r” – файлды оқу үшін ашу (файл бұрын ашылған болуы тиіс)

w” – бос файлды  информация жазу үшін  

a” – файл соңына мәлімет қосып жазу үшін оны ашу

r+” – файлдан информация оқу және оған информация жазу үшін ашу

w+” – бос файлдан информация оқу және оған мәлімет жазу үшін файл ашу (бұрын файл болса, ол өшіріледі);

a+” – файлдан информация оқу және оның соңына информация қосып жазу үшін ашу

35. gets, puts, fgets, puts функциялары

Файлға мәлімет жазу/оқу үшін жалпы енгізу/шығару функциялары тәріздес бірсыпыра функциялар пайдаланылады:

fprint() , fscanf() , fputs() , fgets() , getc() , putc() , fgetc() , fputc()

Бұлардың ішіндегі getc() / fgetc (), putc() /fputc() функциялары әрекеттері ұқсас, айырмашылықтары тек getc() пен putc () макроанықтаулар да, ал fgetc () және fputc()- нағыз функциялар болып табылады.

Барлық файлдық функциялар прототиптері <stdio.h> файлында орналасқан.

36. Мәліметтердің динамикалық құрылымы

Мәліметтердің динамикалық құрылымына кезектер, ағаштар мен стектер кіреді.
Бекітілген өлшемдегі мәліметтер құрылымыдары құрылым,  бірөлшемді және екіөлшемді массив болып табылады.

Сызықты байланысқан құрылымдар екібайланысты тізімдер, кезектер, стектер, сақиналы тізімдер болып табылады.

Жүйе жадының аймақтарының орналасуы:
Жоғары адрес, стек аймағы, динамикалық орналастыру үшін бос жад аймағы, глобальді айнымалы аймағы, программа аймағы, төменгі адрес

Жүйе жадының аймақтарының орналасуы:
Жоғары адрес, стек аймағы, динамикалық орналастыру үшін бос жад аймағы, глобальді айнымалы аймағы, программа аймағы, төменгі адрес.
Динамикалық үлестірілген жады – бұл динамикалық айнымалылар орналасатын жады. Оның мәліметтерімен көрсеткіштер арқылы жұмыс істеуге және программаға мәліметтер сегментінен тыс бөлінетін тізбек түрінде болады.

37.  Динамикалық жадымен жұмыс істеуге арналған функциялар

Динамикалық айнымалының қасиеттері динамикалық үлестірілген жадта орналасуы, қолданылуында көрсеткіштер пайдаланылуы және жадының программа жұмысы үрдісінде бөлінуі болып табылады.  Динамикалық жадымен жұмыс істеуге арналған функциялар:malloc() calloc() realloc()
malloc() ункциясы аргументінде көрсетілген өлшемде жад бөледі
realloc() бұрын бөлінген динамикалық жад аймағының көлемін өзгертеді
calloc функциясы әрқайсысы size байттан тұратын num элемент өлшемі бар массив үшін жад блогын бөледі және өзінің биттерін нөдермен инициализациялайды.

38. Жад кластары

Си тіліндегі жады ұғымы. Жады кластарыЖады класы – жадыдағы объектілердің орналасу тәртібін анықтайды.

Программадағы барлық айнымалылар тек тип бойынша емес, сонымен қатар жады класы бойынша да жіктеледі. Си программалау тілінде төрт жады класы бар:

1.      Автоматты (automatic);

2.      Регистрлі (register);

3.      Статистикалық (static);

4.      Сыртқы (external);

І. Автоматты айнымалылар

Программада автоматты айнымалыларды мына түрде жазуға болады:

auto A; auto char c1; auto int x= 125;

Біз программада «auto» қолданбауымыздың себебі «auto» автоматты түрде қосылатын функция. Автоматты айнымалының орындалу зонасы блокпен немесе белгіленген функциямен шектеледі. Ол функция жүктелгеннен кейін қосылып, функциядан шыққаннан кейін жойылады. Сол себепті автоматты фйнымалы жады көлемін алмайды. Автоматты функция мәнін басқа функция өзгерте алмайды, ол функция айнымалысы сол атпен жазыла алады.

39. С тіліндегі графикалық функциялар

С тілінде растрлық графика жұмыс істейді, оның тақырыптық файлы graphics.h. График нүктелерден – пиксельдерден тұрады. Пиксель – экранның адрестелетін ең кіші элементі. Алдымен. Графика шығара алатын бейнережимді іске қосу керек. Мұнда экранда пиксельмен берілген мөлшері және түстер саны беріледі.

Графикада үш координаталық жүйе: абсолюттік, салытырмалы және масштабталған жүйе қолданылады. Тіке және көлденең өстер бойынша пиксельдер саны экран типіне байланысты болады.

Абсолюттік координатада координаталар басы – (0;0) нүктесі сол жақ жоғары бұрышта болып саналады, х координатасы солдан оңға қарай өседі.

Салыстырмалы режимде координаталар басы экранның кез келген нүктесінен ауыстырыла алады.

40. ОБП-нің негізгі түсініктері

ОБП-дың негізгі идеясы – ол берілгендермен осы берілгендерге қолданылатын іс-әрекеттердің объект деп аталатын бір бүтінге бірігуі.

Объектілердегі функциялар С++ тілінде әдістер деп аталады. Егер объектінің кейбір берілгендерін оқу керек болса, онда осы әрекетті орындау үшін қолданылатын әдісті шақыру керек. Бұл әдіс берілгенді оқиды да оның мәнін қайтарады. Оның мәнін тіке, әдісті қолданбай ала алмаймыз. Яғни берілгендер кездейсоқ сыртқы әсерден қорғалған. Берілгендер мен функциялар инкапсуляцияланған (біріктірілген) делінеді.

Жасыру және инкапсуляция ОБП-дың негізгі терминдері болып табылады. Егер берілгенді өзгерту қажет болса, онда оны да объектінің әдісінің көмегімен орындау керек. С++ тіліндегі программа объектілер жиынтығынан тұрады. Олар бірінің бірі әдістерін шақыру арқылы бір-бірімен әрекеттерді орындайды.

41.Мәліметтер типтері

Мәліметтер типтері. Мұнда мәліметтердің бірнеше негізгі типтері қолданылады. Олар: char – символдық, яғни таңбалық тип, short – қысқа бүтін сан, int – бүтін сан типі, long – екі еселенген бүтін сан, float – нақты (жылжымалы нүктелі) сан типі, double – екі еселенген нақты сан типі. unsigned – таңбасыз бүтін сан, Алғашқы төрт тип бүтін сандарды сипаттау үшін қолданылады. Төмендегі кестеде әр түрлі типтердің IBM PC-ге арналған ұзындықтары көрсетілген.

42.Бүтін типтер 

Сандар мен айнымалылар бүтін және нақты болып екіге бөлінеді.Мәліметтер типтері. Мұнда мәліметтердің бірнеше негізгі типтері қолданылады.Олардың бірі: int – бүтін сан типі, Int типін стандарт бекітпеген, ол компьютерге немесе компиляторға байланысты өзгеріп отырады. 16-разряд-ты процессорде ол 2 байт (32768), ал 32-разрядтысында – 4 байт (2 147 483 647 ). Мұнда ондық, сегіздік және он алтылық бүтін сандар да пайдаланылады. Он алтылық сандардың алдына 0х белгісі қойылады. Мысалы, 0хA12 немесе 0х8B2. Сегіздік сандар алдына 0 қойылады: 0556, 07012, т.с.с.

43.Нақты типтер

Сандар мен айнымалылар бүтін және нақты болып екіге бөлінеді.Мәліметтер типтері. Мұнда мәліметтердің бірнеше негізгі типтері қолданылады.Олардың бірі: Нақты сандар (ағылшынша float) кәдімгі табиғи аралас сандар тәрізді санның бүтіні мен бөлшегін нүкте арқылы бөлген күйде жазы-лады. Мысалы: 2.65, 0.5, -0.862, -6.0. Ал өте үлкен немесе өте кіші нақты сандар көрсеткіші бар экспоненциал сандар ретінде mЕ±р түрінде жазылады да, олардың диапазоны әлде қайда кең болады, мұндағы m-санның мантиссасы деп аталады, Е-онның дәрежесі дегенді білді-реді, ал р- дәреженің өз мәні.

44. printf()функциялары scanf() 

Printf() функциясы мәліметтерді экранға шығару үшін қолданылады. Оның жалпы жазылу түрі:

printf(,);

( – қостырнақшамен (”) шектеліп, аргументтердің қалай бейнеленетінін көрсетіп тұрады, экранға (баспаға) шығару алдында барлық аргументтер формат спецификациясына сәйкес түрлендіріледі, специфи-кация % символымен басталады және мәліметтер типін, оларды түрлендіру тәсілін көрсететін бір әріп жазылады. ретінде айнымалылар, константалар, өрнектер қолданылуы мүмкін. Мысалы: printf (“Пи санының мәні = %f\n”, pi); Формат тіркесінде мыналар болады: 1) мәтін ретінде шығарылатын символдар тіркесі; 2) түрлендіру спецификациялары; 3) басқару символдары.

45. Тақырыптық файлдар

Кластың жай айнымалыдан өзгешелігі, класты анықтау жадыдан орын бөлуді білдірмейді. Ол тек класқа нелер кіретіндігін, яғни құрамын көрсетеді. Сондықтан кез келген файлдан класты көру үшін әр файлда класты қайта анықтау керек.

Көптеген компиляторлар көпфайлды қосымшаларды басқарады, оларды проекттер деп атайды. Файлдарды біріктіру жөнінде ақпарат арнайы файлда сақталады. Ол проект файлы деп аталады. Microsoft ортасында проекттінің кеңеймесі .DSP болады. Проект файлы автоматты түрде жаңарып отырады. Негізгі және тақырыптық файлдар компиляцияланып, .OBJ және .LIB файлдары біріктіріліп орындалатын .EXE файлы құрылады.

Тақырыптық файлда класты қайталанып анықталуынан қорғау үшін файлды келесі препроцессор директивасынан бастау керек:

#if !defined (My_cl) — егер My_cl лексемасы анықталмаса

#define My_cl — оны анықтау

………… — класты анықтау

#endif — директиваның шартын жабу

Бұл әдісті тақырыптық файлды негізгі файлдарға бірнеше рет қосу керек болған жағдайларда қолдану қажет

46. Арттыру және кеміту операциялары

Дөңгелек жақшаға алынған кез келген меншіктеу операторы анықталған мәні

Арттыру немесе кеміту (инкремент және декремент) операциялары ++ және

Инкремент, яғни арттыру операциясы (++) және декремент (--), кеміту

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

#include

main()

{

int a = 5, b = 6, c =

clrscr();

d = (a++ - (--b)) + (c - a--);

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

getch();

}

47. Функцияның жариялануы мен анықталуы

Си тілінде барлық программалар функция ретінде қарастырылады.

Әдетте, бұл тілдегі программалар көптеген кішкене функциялардан тұрады.

қолданылатын әр функция үшін функцияның баяндалуы мен анықтамасы

келтіріледі. (Функцияны баяндау оның типі және параметрлердің жазылу реті

туралы ақпаратты береді. Функцияны анықтау кезінде орындалатын нақты

операторлар көрсетіледі) Функциялар типі нәтиже ретінде қайтаратын

мәндердің типімен бірдей болуы қажет. Егер типі берілмесе, онда функция

типі үндеместен іnt болады. Егер функция басқа тип болса, онда ол

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

керек. Функцияның баяндалуын қарастырайық: функцияны баяндаудың екі

түрлі стилін (классикалық және қазіргі стиль) қолдануға болады. Бірінші

жағдайда, функцияны баяндау форматы келесідей:

Тип функция_аты ();

Бұл спецификация функцияның атын және қайтаратын мәннің типін баяндайды.

Қазіргі стиль ANSІ ұсынған Си тілінің кеңейтілген түрлерінің конструкцияларында қолданылады. Бұл Си тілінің түрінде функцияны баяндау кезінде “функция прототипі” деп аталатын тілдің арнайы құралдары қолданылады. Оның прототипін қолданып функцияны баяндау кезінде параметрлері туралы қосымша ақпарат болады:

Тип функция_аты(парам_ақпар1, парам_ақпар2, ...);

Бұндағы парам_ақпар1 параметрі - формальды параметрлердің аты және типі туралы мәлімет. Функция анықтамасы. Функцияны баяндау сияқты оны анықтау кезінде де екі стильді қолдануға болады - классикалық және қазіргі. Функцияны анықтаудың классикалық форматы келесідей:

Тип функция_аты (параметрлер аты) параметрлер анықтамасы;

{

локалдық баяндау;

операторлар;

}

қазіргі стиль баяндалу форматы функция атынан кейін тұратын жақша ішіндегі функция параметрлерінің анықталуын қарастырады.

Тип функция_аты(парамақпар, парам_ақпар, ...);

48. Бейнені шығару операциясы

Графикалық функциялар инициалдау үшін мына функциялар

қолданылады:

voіd far іnіtgraph (іnt far -drіve-", іnt far «mode, char far -path);

Кітапхана белгіленіп болған соң адаптер сәйкесінше режимге көшеді де экран тазартылып онда келесі координаталық жүйе орнатылады. Экранның сол жоғарғы бұрышыңда алғашқы нүкте (0,0) координаталарымен орналасқан.

іnt far getmaxx ( voіd );

іnt far getmaxy ( voіd,):

getgraphmode функция көмегімен дәл қандай режим орнатылған екенін білуге болады:

іnt far getgraphmode ( voіd );

clearvіewpor функциясын экранды тазарту үшін пайдалануға болады:

voіd far clearvіewport ( voіd );

Бөлек нүктелермен жұмыс. putpіxel функциясы баяндалған Color түстің пикселін координатасы (х,у) болатын нүктеге қояды:

voіd far putpіxel ( іnt х, іnt у, іnt Color );

getpіxe функциясы координатасы (х,у) болатын пиксел түсін қайтарады:

unsіgned far getpіxel ( іnt х, іnt у );

Сызықтық объектілерді салу. Сызықтық объектіні салуда перо негізгі құрал болып саналады. Өйткені осы құралмен сурет салады.Перо келесі қасиеттерге ие:

- түсі

- қалыңдығы

- шаблоны

setcolor процедурасы пероның түсін анықтайды:

voіd far setcolor ( іnt Color );

setlіnestyle функциясы пероның қалған параметрлерін анықтайды:

voіd far setlіnestyle ( іnt Style, unsіgned Pattern, іnt Thіckness );

Бірінші параметрі шаблон сызығын береді.

49. Құрылым

Кез келген Си-программа бір немесе бірнеше функция-лардан тұрады. Олар программа құруға керекті негізгі модульдер болып табылады. Си тіліндегі программа жеке-жеке жолдардан тұрады. Оларды теру, түзету арнайы мәтіндік редакторлар арқылы атқарылады. Программа қатарларының алдындағы азат жол немесе бос орындар саны өз қалауымызша алынады. Бір қатарға бірнеше командалар немесе операторлар орналаса алады, олар бір бірінен нүктелі үтір (;) арқылы ажыратылып жазылады, бірақ бір жолда бір ғана оператор тұрғаны дұрыс, әрі түзетуге жеңіл, әрі ыңғайлы болып саналады. Программалар мысалы: /* х-тің оң және мәндері үшін төмендегі функцияны есептеу y = sqrt(x*x+1)+abs(x), егер x y = 3*x+4, егер x>=0 */ #include /* экранмен жұмыс істеу директивасы*/ #include /* енгізу-шығару директивасы */ #include /* матем. функциялар директивасы*/

50. Біріктіру

Көптеген компиляторлар көпфайлды қосымшаларды басқарады, оларды проекттер деп атайды. Файлдарды біріктіру жөнінде ақпарат арнайы файлда сақталады. Ол проект файлы деп аталады. Microsoft ортасында проекттінің кеңеймесі .DSP болады. Проект файлы автоматты түрде жаңарып отырады. Негізгі және тақырыптық файлдар компиляцияланып, .OBJ және .LIB файлдары біріктіріліп орындалатын .EXE файлы құрылады.

Тақырыптық файлда класты қайталанып анықталуынан қорғау үшін файлды келесі препроцессор директивасынан бастау керек:

#if !defined (My_cl) — егер My_cl лексемасы анықталмаса

#define My_cl — оны анықтау

………… — класты анықтау

#endif — директиваның шартын жабу

Бұл әдісті тақырыптық файлды негізгі файлдарға бірнеше рет қосу керек болған жағдайларда қолдану қажет.

Көпфайлды проектіні құру алгоритмі:

1. Projects -> Win 32 Console Application

2. Проект есімін енгізу

3. File -> New -> Files

4. C/C++ Header File

5. Тақырыптық файл есімін енгізу

6. Тақырыптық файл мәтінін енгізу

7. File -> New ->Files

8. C++ Source ->File

9. Кеңеймесі .срр болатын класс әдістерімен негізгі программа сақталатын файл есімін енгіземіз

10. Build – компиляциялау және біріктіру

11. Execute – орындау.

51.Обьектіге бағытталған программалау негіздері

Қазіргі уақытта программалуда 3 концепция белгіленген:

 объектілі бағытталған программалау; (ОБП)

 унификацияланған модельдеу тілі (UML)

 программалық қамтамаларды құру арнайы жабдықтары.

Объектілі бағытталған программалау (ОБП) негізінде программа тізбектей орындалатын нұсқау ретінде емес, ұқсас қасиеттері және ұқсас орындайтын қызметтері бар объектілердің жиынтығы ретінде қарастырылады.

ОБП-дың негізгі идеясы – ол берілгендермен осы берілгендерге қолданылатын іс-әрекеттердің объект деп аталатын бір бүтінге бірігуі.

Объектілердегі функциялар С++ тілінде әдістер деп аталады. Егер объектінің кейбір берілгендерін оқу керек болса, онда осы әрекетті орындау үшін қолданылатын әдісті шақыру керек. Бұл әдіс берілгенді оқиды да оның мәнін қайтарады. Оның мәнін тіке, әдісті қолданбай ала алмаймыз. Яғни берілгендер кездейсоқ сыртқы әсерден қорғалған. Берілгендер мен функциялар инкапсуляцияланған (біріктірілген) делінеді.

Жасыру және инкапсуляция ОБП-дың негізгі терминдері болып табылады. Егер берілгенді өзгерту қажет болса, онда оны да объектінің әдісінің көмегімен орындау керек. С++ тіліндегі программа объектілер жиынтығынан тұрады. Олар бірінің бірі әдістерін шақыру арқылы бір-бірімен әрекеттерді орындайды.

52. Көрсеткішпен массив арасындағы байланыс

Массивтер және көрсеткіштер. Массивтерді баяндағанда мәліметтер типі және талап етілетін жады класы көрсетіледі. қарапайым айнымалылар жағдайындағы қарастырылған сәйкес қасиеттер массивтерге де баяндағанда қолданылуы мүмкін. Массивті баяндауға мысал қарастырайық:

int b[30]; /*30 бүтін элементтен тұратын сыртқы массив*/

float a[30]; /*30 саннан тұратын float типті автоматты массив*/

static char c[20]; /* 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[i]); }

stud[10] массиві жақшаларға алынған тізіммен инициалдаған, тізімнің элементтерін үтір арқылы бөлген. Тізімдегі элементтер саны массивтің өлшеміне сәйкес болуы қажет. Егер Тізімдегі элементтер саны массивтің өлшемінен аз болса, онда қалған массив элементтері нөлдік мәндерге ие болады. Егер тізімде элементтер көп болса, онда қате тура хабарланады. Массив элементтерін инициалдауды келесі түрде де көрсетуге болады:

int stud[ ]={10,12,15,16,17,11,18,10};

main ( )

{ int i;

extern int stud [ ];

for (i=0; i<sizeof stud/(sizeof(int)); i++)

printf (“Группа N %d %d студентов.\n”,i+1,stud[i]); }

Егер массивті инициалдауға бос батырмалар лар қолданылса, онда компилятор өзі тізімдегі элементтер санын анықтайды және ол үшін қажетті  өлшемдегі массивті белгілейді. Массивтің өлшемін анықтау үшін sizeof операторы қолданылады. sizeof операторы объектінің немесе типтің өлшемін байтпен анықтайды. Массив элементтерінің санын анықтау үшін массив орын алатын жалпы байттар санын 2-ге бөледі (берілген жүйеде int типті әрбір элементтің өлшемі 2 байтқа тең). Жалпы жағдайда сәйкес типтің sizeof

айнымалысының мәніне бөледі. Массивтердің көрсеткіштері. Жоғарыда айтылғандай, көрсеткіштер символдық адрестермен жұмыс істеуді ұйымдастырады. (Бұл жағдайда

массивті өңдеу тиімдірек ұйымдасады). Массивті белгілеу жасырын түрде көрсеткіштерді қолдану болып табылады.

53. Меншіктеумен берілген арифметикалық байланыс

Арифметикалық терістеу операциясы ("-") өз операндасын терісеуінв табады. Операнд бүтін немесе жылжымалы (яғни нақты) шама болуы керек. Орындалу барысында қарапайым арифметикалық түрлендірулер орындалады. М ы с а л:

int stat=5;

stat=-stat; /* Значение stat является отрицанием 5*/

stat=-12; /* stat присваивается отрицание к 12*/

EMEC ("!") логикалык терістеу операциясы егер операнд ақиқат болса (ноль емес), онда 0 мәнін алады, және егер операнд жалған болса (0), онда 1 мәнін алады. Қорытындысы int типті болады. Операнд бүтін немесе I ылжымалы типті немесе сілтеме типті болуы керек. Мысал: int x=0; !x өрнегінің корытындысы 1-ге тең (акиқат). Екілік толықтау операциясы ("~") өз операндасының екілік толықтауын алады. Операнд бүтін типті болуы керек. Қарапайым арифметикалық түрлендірулер жүргізіледі де, қорытынды түрлендіруден кейін операнда типін алады.

54.malloc(),calloc(),realloc() функциясы
Динамикалық жадымен жұмыс істеуге арналған функциялар:
malloc()
calloc()
realloc()
malloc() функциясы аргументінде көрсетілген өлшемде жад бөледі
realloc() бұрын бөлінген динамикалық жад аймағының көлемін өзгертеді
calloc функциясы әрқайсысы size байттан тұратын num элемент өлшемі бар массив үшін жад блогын бөледі және өзінің биттерін нөдермен инициализациялайды. Параметрлері:
-number
Жад бөлінетін массив элементтерінің саны - size Бір элементтің байтпен алынған өлшемі. Қайтаратын мәні бөлінеген жад блогына көрсеткіш.
free() бұрын бөлінген динамикалық жад аймағын босатады

55.Басқарушы тізбектер

If, If-Else құрлымық таңдау, логикалық операциялар, шартты операциялар, көпшілік таңдау. Си тілі таңдау құрылымының үш типін келтіреді. If таңдау құрылымында қайсібір әрекет не орындалады (таңдалады), егер шарт ақиқат болса, не өткізіледі, егер шарт жалған болса. If/else таңдау құрылымында кейбір әрекет орындалады, егер шарт ақиқат болса және басқа әрекет орындалады осы шарт жалған болса. Switch таңдау құрылымында қайсібір өрнектің мәніне байланысты әрекеттер жиынтығының ішінен біреуі орындалады. Логикалық операциялар. Екі және одан да көп шартты өрнекті біріктіру кезінде логикалық операциялар қолданылады. Си тілінде үш логикалық операция бар: &&(және), ||(немесе), !(“жоқ” немесе “емес”).

1. f11&&f12 ақиқат, тек екі өрнектің де f11 және f12 мәндері ақиқат болса.

2. f11||f12 ақиқат, егер f11 және f12 өрнектерінің ең болмағанда біреуі ақиқат болса немесе екеуі де ақиқат болса.

3. !f11 ақиқат, егер f11 өрнегі жалған болса және керісінше.

Break, continue басқарушы операторлары.

Қайталау құрылымдары программистке қайсібір шарттар ақиқат бола тұрғанша әрекеттердің бірнеше рет орындалуын қалыптастыруға мүмкіндік береді.

WHІLE операторының жалпы түрі:

Whіle (өрнек) оператор;

Өрнек ретінде шартты өрнектер қолданылады, өрнек кез келген тип. Оператор қарапайым және құрылымды болуы мүмкін. Whіle циклі орындалу кезінде өрнек мәні есептелінеді.

For операторының жалпы түрі:

For(өрнек1; өрнек2; өрнек3) оператор;

Мұндағы, өрнек1 - әдетте айнымалының бастапқы мәнін береді; өрнек2 - циклдің жалғасу шарты; өрнек3 - әдетте әр цикл орындалу кезіндегі цикл айнымалысының қандай да бір өзгерісін береді (арттыру). Өрнек1 қандай да бір цикл операторыны орындалмай тұрып, бір рет орындалады. Егер өрнек2 мәні ақиқат болса (немесе нөльге тең емес болса), цикл денесі бір рет орындалады да, өрнек3 есептелінеді, сосын өрнек2 мәні тағы да анықталады.  do whіle операторының жалпы түрі:

Do

опеаратор;

Whіle (өрнек);

Опеаратор қарапайым және құрылымды болуы мүмкін. Do whіle циклінің денесі әрқашанда ең болмағанда бір рет орындалады, өйткені тексеру оператордың жұмысы біткеннен кейін болады. Do whіle тексерілетін шарт жалған немесе нөльге тең болғанға дейін орындалады

57.Sizeof операциясы

Массивтің өлшемін анықтау үшін sizeof операторы қолданылады. sizeof операторы объектінің немесе типтің өлшемін байтпен анықтайды. Массив элементтерінің санын анықтау үшін массив орын алатын жалпы байттар санын 2-ге бөледі (берілген жүйеде int типті әрбір элементтің өлшемі 2 байтқа тең). Жалпы жағдайда сәйкес типтің sizeof

айнымалысының мәніне бөледі.

58. Айнымалылар

Си тіліндегі жады ұғымы. Жады кластарыЖады класы – жадыдағы объектілердің орналасу тәртібін анықтайды.

Программадағы барлық айнымалылар тек тип бойынша емес, сонымен қатар жады класы бойынша да жіктеледі. Си программалау тілінде төрт жады класы бар:

1.      Автоматты (automatic);

2.      Регистрлі (register);

3.      Статистикалық (static);

4.      Сыртқы (external);

І. Автоматты айнымалылар

Программада автоматты айнымалыларды мына түрде жазуға болады:

auto A; auto char c1; auto int x= 125;

Біз программада «auto» қолданбауымыздың себебі «auto» автоматты түрде қосылатын функция. Автоматты айнымалының орындалу зонасы блокпен немесе белгіленген функциямен шектеледі. Ол функция жүктелгеннен кейін қосылып, функциядан шыққаннан кейін жойылады. Сол себепті автоматты фйнымалы жады көлемін алмайды. Автоматты функция мәнін басқа функция өзгерте алмайды, ол функция айнымалысы сол атпен жазыла алады.

59.Стектер,Тізімдер және кезектер

Стектер. Стек-бұл байланысқан тізімнің қысқартылған түрі. Жаңа түйіндер тек жоғарыдан стекке қосыла алады және стектен жойылы алады. Осы себепті стекті соңғы келді-бірінші шықты (LIFO) түрдегі структура деп атайды. Стекке көрсеткіш арқылы стектің жоғарғы элементіне сілтенеді. Байланысқан элемент стектің соңғы түйінінде стектің шекарасын көрсету үшін NULL-мен орнатылады. Байланысқан тізімдер-бұл түйін деп аталатын өзіне сілтенетін структуралардың және көрсеткіш-байланыстармен біріккен сызықты жинағы. Байланысқан тізімге қатынас тізімнің бірінші түйінінде көрсеткішпен қамтамасыз етіледі. Келесі түйіндерге қатынас әрбір түйінде сақталатын байланысқан көрсеткішпен орындалады. Байланысқан көрсеткіш жалпы келісіммен тізімнің соңғы түйінінде тізімнің соңын білдіріп, NULL- мен орнатылады. Мәліметтер байланысқан тізімде сақталады, динамикалық- әрбір түйін қажеттілігіне қарай құрылады. Түйін басқа структуралармен қоса

кез келген типті мәліметтерден тұра алады. Байланысқан тізім структура қанша мәліметтер элементтерінен тұратыны алдын-ала белгісіз болғанда ыңғайлы. Егер әрбір жаңа элементті сәйкес тізімнің позициясына орналастырса, онда байланысқан тізімдер сұрыпталған түрде болуы мүмкін. Кезектер. Кезекте түйіндер басынан жойылады, ал кезектің соңынан (хвост) қосылады. Осы себепті жиі кезектерді соңғы келді-бірінші шықты (LIFO) типіндегі мәліметтер структурасы деп атайды.




1. Тема урока- Рисунок и план Цель обучения- сформировать умение составлять план и рисунок дать понятия о ма
2. на тему- Защита информации в Интернет
3. Адаптивное тестирование в системе электронного обучения Факультет- АВТНаучный руководитель- доц
4. Конспект лекций Омск 2006 УДК 681
5. Лекция 13- Прибыль и рентабельность в строительстве
6. П~нні~ аны~тамасы ж~не міндеттері
7. Аналитическая химия 1
8. КУРС ЛЕКЦИЙ ПО СТРАТЕГИЧЕСКОМУ МЕНЕДЖМЕНТУ
9. Введение В настоящее время экономика требует от предприятия повышения эффективности производства конку
10. тема знаний Эти знания помогут Вам ориентироваться в событиях происходящих с Вами помогут в решении самых р
11. нужно рассказывать о том как обычно поступают люди а не о том как они должны поступать
12. тематики и системного моделирования сложных процессов подполковник внутренней службы В
13. тематиках современной России; стимулирование позитивной социальнополезной деятельности активной молоде
14. Философия материи
15. Тема порядок и условия исполнения наказаний не связанных с изоляцией от общества
16. Фамилия имя отчество- Акулов Иван Михайлович 2
17. это специальные боеприпасы и боевые приборы со средствами доставки снаряженные биологическими средствами
18. импульсная модуляция
19. Изображение войны в романе М Шолохова Тихий Дон
20. Программа учебной дисциплины Биохимия