Лекция. Модульдік программалау концепциясы 6 страница



Ескерту. Глобальды немесе жергілікті айнымалыларға бірдей атау беруге болмайды.


8-лекция. Программаларды ұйымдастыру және құрылымдардың негізгі принциптері.

 

Жоспар:

1. Программалау тілдердің негізгі объектілері.

2. Программаларды құрайтын құралдар: модульдер, бөлімдер, ішкі программалар.

3. Объектілерді атау және олардың жергіліктену ережелері, аталыну сөйлем құрамы.

4. Тілді машинаның жадысын ұйымдастыру.

5. Түсініктеме

Тұрақтылар

Программаға енгізілген өзгертуге болмайтын шамалардың тұрақты делінетіні белгілі. Тұрақтылар түрлі типті болуы мүмкін.

Мысалы:

Тұрақты тип
10, 25, - 542 Int
'a', 'b', '15' char
15.23, 4.2E+5 float

 

Бүтін тұрақтылар

Программада ондық, сегіздік, он алтылық санау жүйелерінде берілген сандарды пайдалануға болады. Н ө л ( 0 ) цифрынан басталған цифрлар тізбегі (0, 1, 2 ,..., 7) сегіздік жүйеде, ал н ө л емес цифрдан басталған тізбек ондық жүйеде берілген сан деп есептеледі. Цифрлар тізбегі 0x не 0X - тен бастап жазылған болса, ол он алтылық санау жүйесінде жазылған деп есептеледі. Бұл жүйедегі 10 ... 15 аралығының цифрлары әдеттегідей A, B, .., F не a, b,.., f символдарымен белгіленеді. Мысалдар:

0148 = 1210

14 = 1410

0x1416 = 2010

0X1416 = 2010

0x188,6 = (1 * 162 + 11 * 16 + 8)10 = 44010

Нақты санның бүтін және бөлшек бөлімдері нүкте арқылы бөлініп жазылады не e(E) экспонентасы арқылы белгіленеді.

Мысалдар :

513. = 513

5.45 = 5,45

3.6E+4 = 36 000

3.6E-4 = 0,00036

Бұлардың алғашқысы бүтін сан емес, нақты сан ретінде қабылданады, себебі соңына нүкте қойылған.

 

Символдық т ұ рақ т ылар

Символдық тұрақты дәйекшелер ішінде жазылады. Мысалы: 'd', 'f', '15'.

Олардың типі - char. Символдық тұрақтыларды int типі арқылы сипаттауға да болады, себебі: компилятор олар үшін жадқа символдардың ASCII кодын орналастырады.

C және C ++ тілдерінде әдеттегідей жолдық тұрақты жоқ, ол символдар тізбегінен тұратын символдық массив ретінде қарастырылады. Кейде ол жол т ү рінде де пайдаланылуы мүмкін. Бұл кезде ол тырнақшалар ішінде жазылады. Жол жеке символдардан тұратын етіп берілсе, символдар ретімен дәйекшелерге алынып жазылады.

Мысалы :

"Bas", "1975 жылы туылған" /*жолдық тұрақтылар */

'B', 'a', 's'     /*символдықтұрақтылар*/

Жолды пернетақтадан теру аяқталған кезде Енг (Enter, енгізу) пернесін басу керек. Компилятор жолдың аяқталу белгісі болатып әр жолдың соңына '\0' символын орналастырып кетеді.

Программада жолдық тұрақты char ms [60] сияқты түрде сипатталады. Мұндағы char - массив элементінін типі, ms - массив аты, 60 - арнайы қалдырылған массив өлшемі. Оның орнына қажетті басқа сан алуға да болады, тек жол түзетін символдар санынан кемінде 1-ге артық болуы керек. Ол жолдың соңына енгізіліп қойылатын нөл (0) цифрын жазу үшін қажет. Мысалы, "Bas" жолдық тұрақтысының жадта орналасу түрі:

B a S \0

 

Символдық айнымалылармен жұмыс істеу тәсілдері 2.8 - тақырыпқа енгізілген.

Түсініктеме

Түсініп оқуға жеңіл болуы үшін күрделі программалардың қажетті жерлеріне түсініктеме мәтіндер енгізіліп қойылады. Си және Турбо C++ тілдерінде түсініктеме /* */ символдарының арасына жазылады. Түсініктеме бірнеше қатарлық болуы да мүмкІн, ол үшін түсініктеме енгізетін бос орындар болса болғаны.

Мысалдар:

1) /* квадрат теңдеу */

2) /* программаға енгізілген

/* көпжолдық түсініктеменің

/* жазылу түрі */

Borland C++ тілінде түсініктеме тек бір қатардан тұрады

және ол көлбеу // символдарынан соң енгізіледі, мысалы:

//квадрат т еңдеу

Ал, бірден бірнеше түсініктеме енгізу кажет болса, оларды әр қатарда осы түрде жазып қойса болғаны.


Лекция. Жариялау.

Жоспар:

1. Айнымалыларды жариялау.

2. Жады тобының спецификациясы.

3. Типтер спецификациясы, сипаттамалар, алғашқы рет іске қосу.

4. Металингвистикалық айнымалылар.

5. Айқын емес металингвистикалық айнымалылар

Символдық шамалар. Жол

Char типін кеңірек қарастырайық. Мұндай типті айнымалылардың шамасы 1 байт, кодтары сәйкес 0 .. 255, -128 .. 127 аралықтарында болатын әріптер мен бүтін сандық символдар. Олар дәйекшелерге алынып жазылады, мысалы:

'a' , 'd', 'x', '15'

C және C++ тілдерінде толық түрде жол қарастырылмаған. Бірақ оны пернетақтадан теріп алып жадқа енгізуге болады. Жолдың жадқа жазылуы кезінде оның соңына нөл (0) байты орналастырылып қойылатыны 1.4-тақырыпта ескертіліп кеткен болатын. Программада мұндай жол символдар массиві түрінде сипатталып қойылады, мысалы: char ms[45]; Бұл жарияламада char — массив элементтерінің типі, ms - массивке берілген атау (оның латын әріптерімен не сандармен кез келген түрде жазылуы мүмкін), [45] — массив өлшемі. Элементтер 0 - ден бастап нөмірленеді. Тұрақтыдан тұратын массивтік жол тырнақшалар ішінде жазылады, мысалы, а[15]="сағат 10 болды". Мұндай жол ұзындығын есептеуде оның соңына енгізілген 0 байты есептелмей тастап кетіледі.

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

strlen(), strcpy(), strcat(), strcmp() және т.б.

Екі символдық массивті sl, s2 арқылы белгілесек: strIen(sl) функциясы sl жолының ұзындығын анықтайды;

strcpy(sl, s2) - s2 жолын sl-ге кґшіреді. Ол үшін sl жолының ұзындығы s2 жолының ұзындығынан кем болмауы тиіс;

strcat(sl,s2) функциясы s2 жолын sl жолына жалғастырады. Ол үшін sl жолының s2 жолы сиятындай жеткілікті бос элементтері болуы қажет.

1-мысал. Программада "Мен студентпін", "Ахмет" массивтік жолдарына strlen(), strcat() және strcpy() функцияларын пайдалану керек.

# include <stdio.h>

# include <conio.h>

# include <string.h>

main ()                                                 (23)

{

char sl[24] = "Мен студентпін";

char s2[5] = "Ахмет";

clrscr();

printf("Len sl = %d\n", strlen (sl));

printf("Len s2 = %d\n", strlen (s2));

printf("strcat = %s\n", strcat (sl, s2));

printf ("strcpy = %s", strcpy (sl, s2));

getch ();

}

Нәтиже : Len s1=14

Len s2=5

strcat = Ахмет

strcpy = Мен студентпін Ахмет

Ескерту. Программада stdio.h файлының құрамына енгізілген puts() және gets() функцияларын пайдалануға да болады. Олар сәйкес printf(), scanf() фунциялары сияқты, бірақ олар символдық деректер үшін арналған және форматтық символдарды пайдаланбай орындалады ((6), (10) - про-граммаларда puts() функциясы пайдаланылған).

2-мысал. "Ол 1975 жылы туылды" жолының мазмұнын және оның ұзындығын экранға шығару керек.

main() функциясы блогының жазылу түрі:

main()

chars[20]; (24)

gets(s);

printf("s=%s ұзынд.=%d\n", s, strlen(s));

}


10-лекция. Енгізу-шығару. Кітапхана, енгізу-шығару функциялары.

 

Жоспар:

             1. Си тіліндегі қарапайым программа құрылымы.

             2. Форматталған енгізу/шығару функциялары.

             3. Кітапханалық файлдар.

             4. Формат симолдары (спецификаторлар).

             5. Бақарушы символдар.

6. Математикалық функциялар

Қарапайым программа құрылымы

Турбо Си тілінде қарапайым программа құру жолын қарастырайық.

Мысал. Шеңбер ұзындығын есептеу керек.

Программаны мынадай түрде құруға болады:

# include < stdio.h>

# include < conio.h>

main()                                                                                                      

{

int r; float length; clrscr();

printf ("радиус r = ?");

scanf("%d", &r);

length = 3.14159*2*r;

рrіntf("радиус = %d ұзынд.= %f\n", r, length);

getch(); return 0;

// Н әтиже :

 r = ? 5

радиус = 5 ұзынд. = 31.415899

Программаға енгізілген нұсқаулар:

#include <stdio.h> - компиляторға stdio.h кітапханалық файлын қосуға арналған препроцессор (макропроцессор) нұсқауы (# - фунт белгісі, include -кірістіру). Ол және

# include < conio.h> нұсқауы Турбо Паскаль тілінде қолданылатын User crt нұсқауына шамалас. Мұндай нұскаулар Си тілінің нақты бөлігі емес, бірақ компилятор нұсқауды оқып шығып, стандартты stdio.h, conio.h файлдарының құрамындағы стандартты функцияларды программада олар жазылған орынға қосып қояды, яғни нұсқауды сыртқы каталог ретінде қарастыруға болады.

Б ұ рыштық жақшалар (< >) - ішіне жазылған файлдың сыртқы стандартты каталогтан алынатынын білдіреді.

Кітапханалық функцияларды пайдалану программалаушының жұмыс өнімділігін арттырып, программа көлемі мен оны дайындау уақытын көп қысқартады. Мысалы, sin() функциясының мәнін есептеу программасы препроцессордың math.h файлына енгізіліп қойылған.

Препроцессор — алдын ала баска программалардан енгізілген деректерді өндейтін программа. Препроцессор нұсқаулары тақырыптық н ұ сқаулар деп аталады. Олардың әр қайсысы жаңа жолдан бастап жазылуы тиіс.

stdio . h файлының құрамында бір әрекетті орындауға арналған көптеген стандартты функциялар бар:

printf (), scanf (), gets Q, puts (), getch(), gotoXY,

- барлығы 38 функция. Олар - программада пайдаланылатын осындай функциялардың түп нұсқасы .

Мұндай файлдардың құрамындағы түп нұсқалық функциялардың тізімін (1.2-кесте) экран ғ а шығару үшін Турбо C++ - те құрылған программаның басында жазылған препроцессор файлы атауын тышканның оң түймесімен шерту жеткілікті.

main() бас функция атауы (main - негізгі). Оны функция тақырыбы деп те атайды. Кез келген программа осы функцияны ша қ ырудан (жазудан) басталады.

{ - ашу, } - жабу фигуралық жақшалары. Олар функция денесінің (блоктың) басы мен соңын білдіретін символдар. Символдар Турбо Паскальдағы программа  мен құрама оператор үшін пайдаланатын begin - end операторлары сияқты. Әдетте, олар жаңа жолдан бастап жазылады және фигуралық { жақшасының алдында бос орын қалдырылмайды. main () функциясының құрылымы:

main ()                          /* функция тақырыбы */

{                                   /* функция денесінің басы */

Функция денесі

}                                   /* функция денесінің соңы */

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

Программада бірнеше блоктың болуы да ықтимал. Си, C++ тілдерінде оларды жеке функциялар деп атайды. Жергілікті айнымалылар блок басында сипатталады (олар блок ішіндегі сәйкес айнымалылардың - түп нұсқалары).

clrscr () - программа іске қосылған кезде жаңа терезелік бетті ашып, оны тазалау және курсорды оның жоғарғы сол жак, бетіне орналастыру операторы. Ыңғайлы болуы үшін Си тілінде программада бұл onepamop айнымалылар сипатталған соң бірден енгізіледі.

printf () - экранға мәтінді не аргументтердің мәнін форматты түрде шығаруға арналған стандартты функция. Мысалы, программада екінші printf операторы төрт бөлімнен тұр: басталымы - функция аты, оның ішіне үтірлер арқылы бөлініп үш аргумент жазылған. Біріншісін (тырнақшалар ішінде жазылған " Paduyc =% d ұ зынд.=% f / n " аргументін бас қ а ру жолы не форматтық жол деп атайды. Ол экранға шығаратын келесі r , length аргументтерінің мәндер форматын (жазылу үлгісін) анықтайды.

Формат % символынан басталады да, оның соңына тағайындалған форматтық символ жазылады. Мысалы, басқару жолына енгізілген %d - формат спецификаторы (спецификатор - форматты түрлендіру командасы). Ол сәйкес аргументке бүтін ондық санды пайдалану керектігін нұскайтын символдық тұрақтыдан тұрады. Форматтық символдар 1.3-кестеде берілген.

Тырнақшалар ішінде соңғы қарастырылып жазылған \n символдық тұрақтысы — курсорды келесі жолдың басынан бастап орналастыру командасы. Мұндай бас қ арушы символ жаңа жол символы деп аталады. Баскарушы символдар 1.4-кестеге енгізілген. Кестеде бос орын символы да бар. Оны пайдалану үшін формат бойынша шығару (printf()) операторының басқару жолында бос орындар macman кетсе бол ғ аны.

Мұндағы ескеретін жайттар: 1. Erep шығаруда форматтың қажеті болмаса, онда операторды (1-) программаның бірінші printf операторы сияқты форматсыз пайдалана беруге болады. 2. Екінші printf операторында %f форматы %2.3 f түрінде берілсе, сәйкес нәтиже 0.001 дәлдікпен шығады.

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

getch () - кез келген перне басылғанша мәндермен жұмыс жасалатын терезелік бетті уақытша ұстап тұруға арналған оператор (Турбо Паскальдағы ReadKey операторы сияқты, ол басылған перненің кодын кабылдайды). Кез келген перне басылған кезде программа жазылған экран қайта көрінеді.

Return 0; - ағымдық функциядан (ішкі блоктан) шығып, баскаруды шақырылған программаға (негізгі жүйеге) қайтарып беру операторы. Си, Турбо Си және Borland C++ тілдерінде басқаруды main () фунциясына кайтарып беру операторы да бар - ол return ; түрінде жазылады. (мысал 2.9-тақырыпта берілген).

Ескерту. Программаны құру кезінде бір жолда бірнеше операторларды жазуға да болады.

Тапсырма.

1. y=5x+7 функциясының мәнін есептейтін программа құру керек.


Дата добавления: 2019-02-12; просмотров: 533; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!