Ы збекистон Республикаси Олий ва ырта махсус таълим вазирлиги


Си программалаш тили. Си тили элементлари


Download 407 Kb.
bet2/15
Sana18.02.2023
Hajmi407 Kb.
#1213815
1   2   3   4   5   6   7   8   9   ...   15
Bog'liq
SI

Си программалаш тили.




Си тили элементлари.




Тилнинг асосий тушунчалари. Тил алфавити.


Си программалаш тили Юникс операцион системаси билан бо\ланган былиб, шу системада ишлатиладиган бир =анча программалар Си тилида яратилган. Си программалаш тили машинанинг барча имкониятларидан тылалигича фойдаланишга имкон беради.
Си мылжалланишига кыра умумий былиб, у ю=ори даражали программалаш тиллари билан Ассеблер орасида орали= вазиятни эгаллайди.
Программани бош=арувчи операторлар структурали программалаш талабларига жавоб беради. Унда киритиш-чи=ариш, хотирани ди­намик та=симлаш, мультипрограммалаш, параллел щисоблаш воситалари йы=. Бу воситалар таш=и функциялар ор=али амалга оширилади.
Си тилида программа тузиш щисоблаш машиналари ишини ва унинг операцион системасини тушуниш имкониятини яратади, шунинг учун щам у касбий программистларга мылжалланган.
Лекин Си программалаш тили бирон бир система ёки машина билан =атти= бо\ланиб =олмаган.
Си тилида программалар маълумотлар устида натижа олиш ма=садида =илинадиган щаракатни билдиради. Программада щаракатлар операторлар ор=али берилади, маьлумотлар эса обьектларни ани=лаш ва тавсифлаш ор=али амалга оширилади. Программада фойдаланиладиган щар бир объект тавсифланиши зарур. Тавсифлаш объект билан бир неча характеристикаларни бо\лайди. Бу характеристикалар: тип, белгилаш, хотира синфи, щаракат сохаси, ва бошлан\ич =ийматлар кабилардир.
Тилда асосий типлар: белги (литер) билан биргаликда бутун ва сузувчи вергулли сонлар ишлатилади. Бундан таш=ари кырсаткичлар, массивлар, операндалардан чи=арилувчи маълумотларнинг тыла иерархиясини щосил =илиш мумкин.
Ифода-операндалар ва кырсаткичлардан ташкил топади. +иймат узатиш функциясини ча=аришни =ышиб щисоблаганда, щар бир ифода кырсатма былиши мумкин.
Кырсаткич - бу берилган типдаги объектни далиллашдан иборат.
Массив - бу бир типдаги объектлар кетма-кетлиги былиб, уларга я=инлашиш индекслари ор=али амалга оширилади, лекин =ышимча ани=лаш рекурсив =оидаси ёрдамида исталган ылчамдаги массивларни ани=лаш мумкин.
Тузилмалар-турли типдаги объектлар кетма-кетлиги былиб, уларга я=инлашиш-исмлар быйича амалга оширилади. Икки хил тузилмалар мавжуд былиб, оддий тузилмаларда (struct) элементлар хотирада тавсифланган тартибда кетма-кет жойлашади. Исталган пайтда уларга я=инлашиш мумкин.
Вариантли тузилмаларда (union) щамма элементлар хотирада тузилма бошланишида жойлаштирилади. Бу щолат энг кейинги =иймат берилган элементгагина я=инлашиш имконини беради холос.
Ытказиш - бу бутун типдаги объектлар кетма-кетлиги былиб, уларга я=инлашиш исми быйича амалга оширилади.
Функция - бу мураккаб объектдан иборат, уни щисоблаш натижасида берилгаи типдаги =иймат щосил =илинади.
Кырсаткичлар бо\ли=мас адресли-машина арифметикасини белгилайди. Си да кырсатма тузувчи ({ }), шарт быйича тармо=ланиш (if), кыпдан бирон-бир му=обилларини (switch) танлаш, ю=орига =араб такрорлаш (for, while) =уйига =араб такрорлаш (do), шунингдек такрорлашни тыхтатиш (break) каби бош=арувчи тузилмалар мавжуд.
Си тилида щар бир функцияга рекурсив (якка тартибда) ёндашилади. Лекин бир функциянииг тасвири иккинчи функциянинг орасида ётиши мумкин эмас.
Тилнинг бош=а тилларга ыхшаш камчилиги щам мавжуд былиб, тил тузилмалари синтаксиси но=улай.
Си программалаш тили биринчи марта Денис Ритчи ("BELL LABARATORIES" А+Ш) тамонидан 1972 йилда лойихалаштирилган. Бу тилда сколяр =ийматлар билан щам иш олиб бориб, улар ыртасида операциялар бажариш мумкин. Такрибий =ийматлар эса элементларга я=инлашишни тартиблаш учун ишлатилади.
Тилнинг лексикаси ва синтаксисида Бэкус-Нур формасига я=ин =оидалар =абул =илинган ва бу Метаформалар "=" ифода билан ажратилади. Бу белгининг чап томонида метa ызгарувчи ва ынг томонида эса унинг =иймати ётади.
Си тили алфавитига =уйидагилар киради:

  • лотин алифбосининг босма ва ёзма щарфлари (А,В,...,Z,a,b,...,z)

  • ра=амлар: 0,1,2,3,4,5,6,7,8,9

  • махсус белгилар: ", , , , , , , , \, ;  ! ? < = > _ ! & * # ~ ^

  • аксланмайдиган белгилар (быш жой, табуляция, янги =аторга ытиш)

Изощларда эса бош=а белгилар иштирок этиши щам мумкин.
/* */ белгиси ёрдамида изощлар келтирилади.
[], (), {}, ;, :, …, *, = ажратувчи белгилар дейилади.
  - катта =авс бир ёки кып ылчамли массивларни чегаралаш учун ишлатилади.
Масалан:
a5 - a бир ылчамли 5 та элементдан иборат былган массив;
е 3 2 - е икки ылчамли массив (матрица);
( ) - кичик =авслар =уйидаги щолларда ишлатилади:

  1. агар операторида ифода шартини ажратади.

  2. If (x<0) x=-x ;

  3. функцияни ани=лашда, уни тавсифлашда

  4. float F(float x, int k) * функцияни ани=лаш * функция - танлаш

  5. float F(float x, int); * функцияни тавсифлаш *

  6. функцияни кырсатувчиларини ани=лашда

  7. int (*pfink)(); * pfink функция кыпайтмасини ани=лаш учун *

  8. операцияларни бажариш кетма-кетлигини ани=лашда y=(a+b)/c ;

  9. такрорлашнинг элементи сифатида for(i=0, j=1,i=0);

  10. макро ани=ликларда

  11. #deline R(x,y) sqrt((x)*(x)+(y)*(y))

Фигурали =авслар {}:
Тузулувчи оператор ёки блокли бошланишни ёки тугалланган =исмини билдириши учун фигурали =авслар ишлатилади. Уларни массивларни инициализациялашда ва улар таркибини ани=лашда щам ишлатиб, ну=та вергул билан тугаланади.
Int day []={1,2,3,4,5,6,7,8,9,10,11,12};
,-вергул белгиси ажратувчи ёки операция сифатида ишлатилиши мумкин.
;- Си тилида щар бир ани=лаш ну=та вергул билан якунланади.
: -меткани ани=лаш учун ишлатилади.
…- кып ну=тафункцияда ызгарувчини параметрлари сонини ани=лашда ва тасвирлашда ишлатилади.
+иймат узатишни белгилаш '=' тенглик белгиси ёрдамида амалга оширилади.
*- операция сифатида кыпайтириш,
#- белгиси эса процесор олди буйру=ларини ани=лаш учун хизмат =илади.
Операциялар сифатида: +, -, *, /,<, >, !, &, ~, →, ←, ^ белгилари ишлатилади.
Улар билан кейинги параграфларда танишиб ытамиз.



Download 407 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9   ...   15




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling