Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТП для экзаменов.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
288.26 Кб
Скачать

1.Си программалау тілі туралы түсінік

Си тілі өткен ғасырдың 70-жылдары басында АҚШ-та Bell Tele­phon Laboratories компаниясының қызметкері Дэннис Ритчидің бас­тауы­мен дүниеге келді. Бұл тілдің негізі Алголдан басталып,  Паскаль және ПЛ/1 тілдерімен қатар пайда болды.

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

Алғаш рет UNIX 1969 жылы Нью-Джерси штатындағы Bell фир­ма­­сының лабораториясында PDP-7 мини-ЭЕМ-інде жасалып шықты. UNIX  PDP-7 компьютерінің ассемблер тілінде жазылды. Бұдан соң сол лабораторияның жетекшісі Кен Томпсон 1970 жылы В деп аталған жаңа тілге арнап компилятор жасап шықты. Осы тілді Си (ағылшынша С) тілінің негізі деп атауға болады. 

Жалпы Си тілінің тез дамуына 1983 ж. оның стандартын жасау мақса­тында Америка ұлттық стандарттар институтында  (ANSI) Тех­никалық комиссияның құрылуы себепші болды.  Комиссия  жұмысына сол кездегі алдыңғы қатарлы мамандардың көпшілігі араласып, олар тек програм­малау мәселелерін ғана қарастырмай, кең таралып келе жатқан IBM PC компьютер­леріне арналған компиляторлар  жасауды да осы стандартқа енгізді.

Си тілінің негізінде 1983-жылы Си++  тілі жасалып шықты, сол кезден бері тілдің бірнеше нұсқалары пайда болып, ол қазіргі ең көп тараған тілдердің біріне айналды. Біздің елде Си тілінің алғашқы нұс­қасы орыс тілінде Б.Керниган мен Д.Ритчидің “С программалау тілі” деген кітабы арқылы бірнеше рет жарық көрді (1985-1991 жж.).

Бірсыпыра фирмалар осы тілге арнап компиляторлар жазды, мыса­лы, Borland International фирмасы 1989 ж. жасаған біріктірілген программалау ортасы TurboC++ жүйесін дүниеге келтірді. Ол DOS ортасында жақсы жұмыс істеді. Ал 1992 ж. жасалған Borland C++ жүйесі Windows ортасында да жұмыс істейтін жақсы компилятор болып табылады. 

Сонымен Си/Си++ программалары Паскаль тілінің біріктірілген (интег­ралданған) ортасы сияқты DOS ортасында да және Windows жүйе­сінде де  жұмыс істей береді.

Біз қарастырғалы отырған Си тілінің негізгі ұғымдары мен опера­тор­лары кез келген мектептің немесе жоғары оқу орнының компью­терлерінде жүре беретін біріктірілген ортаның редакторы арқылы теріліп жұмыс істей береді.

2.Сызықтық құрылымды алгоритм. Мысал.

Арифметикалық операциялар символдар арқылы жазылады. Си тілінде мынадай операциялар бар:

*  – көбейту,  / – бөлу,  % – модуль бойынша бөлу (қалдықты анықтау),              + –  қосу,  -  – азайту.

Модуль бойынша бөлу бүтін санды бүтін санға бөлген кездегі  қалдық­ты анықтайды. Мысалы:     20 % 3 = 2.

 

Меншіктеу операторы TC "3.1. Меншіктеу операторы" \f C \l "2"

Меншіктеу операторы символдар арқылы жазылады. Кез келген ; таңбасымен аяқталатын өрнек меншіктеу операторы болып табылады. Өрнектің бір түріне бос оператор жатады, ол жай  ;  операторы.

Си тілінде  меншіктеу операторының бірнеше түрі бар. Жалпы меншік­теу операторының жазылу форматы мынадай болады:

<айнымалы> = <айнымалы> <операция> <өрнек>;

Мұны Си тілінде қысқаша былай жазуға болады:

<айнымалы> <операция> = <өрнек>;

Төменде бірнеше мысал келтірілген.

a=a+b; ® a+=b;              a=a*b; ® a*=b;

a=a-b; ® a-=b;                a=a/b; ® a/=b;

Ситіліндетізбектележазылғанменшіктеуоперацияларындақолдануғаболады. Мысалы:

sum = a = b;

Мұндаменшіктеуоператорыоңнансолғақарайорындалады, яғни b-ныңмәні a-ға  меншіктеледі, ал  а-ныңмәні sum-ғаменшіктеледі.

Меншіктеу операторын былай да жазуға болады:

1) a = (b = 1) +2; 

мұнда  a=3, b=1.

2) a = b = 1 + 2; 

 ал  мұнда a = 3, b = 3.

Дөңгелекжақшағаалынғанкезкелгенменшіктеуоператорыанықталғанмәнібарөрнекболыптабылады, мысалы:((s=13+12)<=30) дегенөрнекақиқатмәндіболыптабылады.

Арттыру немесе кеміту (инкремент және декремент) операция­лары ++ және – – түрінде жазыла­ды. Бұлар кез келген операндтың мән­дерін бірге арттыруға немесе кемітуге мүмкіндік береді.

Инкремент, яғни арттыру операциясы (++) және декремент (--), кеміту операциясы айнымалы (тек айнымалы мәнін) мәнін бірге артты­рады немесе кемітеді. Олар айнымалы мәнін өзгертеді, яғни жасырын түрдегі меншіктеу амалы болып табылады. Кейде олар жеке оператор түрінде жазылады:

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 <stdio.h>

#include <conio.h>

main()

{

  int a = 5, b = 6, c = 7, d;

  clrscr();

  d = (a++ - (--b)) + (c - a--); //d=2  a=5

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

  getch();

}