Информатика ва ащборот технологиялари


Download 0.53 Mb.
bet7/18
Sana18.02.2023
Hajmi0.53 Mb.
#1213810
1   2   3   4   5   6   7   8   9   10   ...   18
Bog'liq
tizim(Si) kurs

Асосий =исм.


1.1.Турбо Си хакида умумий тушунча ва тузилиши

Си программалаш тили Юникс операцион системаси билан бо\ланган былиб, шу системада ишлатиладиган бир =анча программалар Си тилида яратилган. Си программалаш тили машинанинг барча имкониятларидан тылалигича фойдаланишга имкон беради.


Си мылжалланишига кыра умумий былиб, у ю=ори даражали программалаш тиллари билан Ассеблер орасида орали= вазиятни эгаллайди.
Программани бош=арувчи операторлар структурали программалаш талабларига жавоб беради. Унда киритиш-чи=ариш, хотирани ди­намик та=симлаш, мультипрограммалаш, параллел щисоблаш воситалари йы=. Бу воситалар таш=и функциялар ор=али амалга оширилади.
Си тилида программа тузиш щисоблаш машиналари ишини ва унинг операцион системасини тушуниш имкониятини яратади, шунинг учун щам у касбий программистларга мылжалланган.
Лекин Си программалаш тили бирон бир система ёки машина билан =атти= бо\ланиб =олмаган.
Си тилида программалар маълумотлар устида натижа олиш ма=садида =илинадиган щаракатни билдиради. Программада щаракатлар операторлар ор=али берилади, маьлумотлар эса обьектларни ани=лаш ва тавсифлаш ор=али амалга оширилади. Программада фойдаланиладиган щар бир объект тавсифланиши зарур. Тавсифлаш объект билан бир неча характеристикаларни бо\лайди. Бу характеристикалар: тип, белгилаш, хотира синфи, щаракат сохаси, ва бошлан\ич =ийматлар кабилардир.
Тилда асосий типлар: белги (литер) билан биргаликда бутун ва сузувчи вергулли сонлар ишлатилади. Бундан таш=ари кырсаткичлар, массивлар, операндалардан чи=арилувчи маълумотларнинг тыла иерархиясини щосил =илиш мумкин.
Ифода-операндалар ва кырсаткичлардан ташкил топади. +иймат узатиш функциясини ча=аришни =ышиб щисоблаганда, щар бир ифода кырсатма былиши мумкин.
Кырсаткич - бу берилган типдаги объектни далиллашдан иборат.
Массив - бу бир типдаги объектлар кетма-кетлиги былиб, уларга я=инлашиш индекслари ор=али амалга оширилади, лекин =ышимча ани=лаш рекурсив =оидаси ёрдамида исталган ылчамдаги массивларни ани=лаш мумкин.
Тузилмалар-турли типдаги объектлар кетма-кетлиги былиб, уларга я=инлашиш-исмлар быйича амалга оширилади. Икки хил тузилмалар мавжуд былиб, оддий тузилмаларда (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};
,-вергул белгиси ажратувчи ёки операция сифатида ишлатилиши мумкин.
;- Си тилида щар бир ани=лаш ну=та вергул билан якунланади.
: -меткани ани=лаш учун ишлатилади.
…- кып ну=тафункцияда ызгарувчини параметрлари сонини ани=лашда ва тасвирлашда ишлатилади.
+иймат узатишни белгилаш '=' тенглик белгиси ёрдамида амалга оширилади.
*- операция сифатида кыпайтириш,
#- белгиси эса процесор олди буйру=ларини ани=лаш учун хизмат =илади.
Операциялар сифатида: +, -, *, /,<, >, !, &, ~, →, ←, ^ белгилари ишлатилади.
Улар билан кейинги параграфларда танишиб ытамиз.

Идентификаторлар. Калит сызлар. Изощ. Ызгармаслар .


Идентификатор ("-"), щарфлардан ё белгилардан ёки остки чизи= билан бошланган ра=амлар кетма-кетлиги идентификатор щисобланади.


Масалан:
КОМ_ 15, sizl 98, - MAX,TIME, time.
- Босма ва ёзма идентификатор бир-биридан фар=ланади. Ю=оридаги охирги иккита идентификатор бир-биридан фар=ланади.
- идентификаторлар турли узунликка эга былиши мумкин, лекин компютер 31 тагача былган белгини щисобга олади холос. Айрим компютерларда бу чеклов янада =атти=ро= =ыйилиб, фа=ат дастлабки ихтиёрий идентификаторнинг 8 та белгисигача щисобга олинади.
Бу щолда NUMBER_OF_ROOM ва NUMBER-OF_TECT идентификаторлари программа бажарилишида бир хил былади.

Хизматчи (калит) сызлар.


Программист томонидан эркин танлаб олиб ишлатиш сифатида =ылланилмайдиган идентификаторлар хизматчи сызлар деб аталади. Хизматчи сызлар маълумотлар типини, хотира синфини, тип хусусиятини,ва операторларини ани=лаш учун хизмат =илади.Тил стандартида =уйидаги хизматчи сызлар мавжуд:


auto, break, case, char, const, continue, default, do, double, else, enum, extern, float, for, goto, if, int, long, register, return, short, signed, siseof, static, struet, witch, typedef, union, unsigned, void, volatile, while.
Хизматчи сызлар маъно жищатдан =уйидаги гурущларга ажратилади.
Маълумотлар турларини синфларга ажратиш учун:

  • char-белгили;

  • double-сузувчи вергули иккиланган ани=ликдаги ща=и=ий сонлар;

  • enum-саналма тип;

  • float- сызувчи вергули ща=и=ий;

  • int-бутун;

  • long- узун бутун;

  • short- =ис=а бутун;

  • struct- тузилмали тип;

  • signed- ишорали;

  • union- бирлаштирувчи тип;

  • unsigned-ишорасиз;

  • void- =иймат иштирокисиз;

  • typedef-типни ани=лаш синонимини киритиш;

  • Тип хусусиятларини ани=лаш;

  • const-ягона =ийматга эга былган фа=ат ы=иш учун ани=ланадиган синф хусусияти;

  • volatile- програмистнинг ани= кырсатмаларисиз =иймат ызгартирадиган объект синфи;

Хотира синфини белгилаш учун

  • auto- автоматик;

  • extern- таш=и;

  • register- регистрли;

  • static- статитик

идентифиrаторлари ишлатилади.
Операторларини =уриш учун =уйидаги хизматчи сызлар ишлатилади:

  • Break-циклдан ёки ытказувчидан чи=иш;

  • continue- циклни давом эттириш;

  • do- бажармо=( шарт остида циклни бажариш оператори бош =исми);

  • for- учун(параметрли такрорлаш операторининг бош =исми);

  • goto- ытиш( шартсиз ытиш);

  • if- агар- шартли операторнинг белгиланиши;

  • return- =айтиш ( функциядан);

  • switch- ытказувчи;

  • wile- щозирча(do цикли якунловчиси).

Хизматчи сызларга кирадиган =уйидаги идентификатор мавжуд былиб:

  • default-switch операторида керакли вариант топилмаса щаракатни давомини ани=лаш;

  • case- switch оператори вариантларни танлаш;

  • else- ёки-if шартида му=обил тармо=ни танлаш;

  • sizeof- операнда ылчамини (байтларда) ани=лаш операцияси.

Хизматчи сызлар ёзма харфлар билан белгиланади.
Изощлар /* */ белгиси орасида =ыйилиб, ундан программа исталган =исмида фойдаланиш мумкин.



Download 0.53 Mb.

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




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