Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
prog_exz_dayin.docx
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
238 Кб
Скачать
☆

5.Функцияларды хабарлау, анықтау. Функцияның параметрлері. Рекурсивті функция

Функция дегеніміз – белгілі бір операциялар тобын атқаратын программа блогы. Функцияға мəліметтер береміз де, одан белгілі бір нəтижелер аламыз. Функцияның ішкі əрекеті программаның басқа бөліктеріне қатыссыз орындалады. Програмада кем дегенде, бір функция болады жəне программадағы бір функцияның аты main болуы тиіс. Программаның орындалуы осы main функциясынан басталады. Main функциясының орындалуы барысын- да басқа функциялар шақырылады, ал олар одан да басқа функцияларды шақыруы мүмкін. Функция мынадай жалпы түрде сипатталады:

[<функция типі>] <функция аты> ([<формальды параметрлер спецификациясы>]) <функция тұлғасы>;

мұндағы [<функция типі>] – функцияның есептелетін нəтижесі типі;

<функцияның аты> – функция идентификаторы, яғни аты;

<формальды параметрлер спецификациясы> – бұл болмауы да мүмкін (void) немесе əрбір параметр спецификациясы: <типі> <параметр аты> – формальды параметрлердің типтерін жəне идентификаторларын анықтайды;

<функция тұлғасы> – орындалатын операторлар тізбегі жəне оның ішінде локальді айнымалының сипатталуы болуы мүмкін. Сонымен, функцияны хабарлау оның прототипін – аты жəне параметрлері саны мен типін программалық файлдың алдында жариялау болып табылады. Функцияны осылайша хабарлауды былай да көрсетуге болады: <нəтиже_типі><функция_аты>(<типі> <айнымалы> ,…, <типі> <айнымалы>);

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

Си тілінде функция өзін өзі шақырып та пайдалана алады, мұндай функция рекурсивті деп аталады. Берілген n бүтін санының факториалын есептейтін

(n!=1⋅2⋅3⋅…⋅n) рекурсивті функция мысалы:

fakt (int n)

{int b;

if (n == 0) return 1;

b = fakt(n-1)*n;

return n;}

Осы функцияны енгізілген n мəні үшін кез келген бүтін санның факториалын есептеуде қолданудың толық программасы төмендегі мысалда келтірілген.

6.Негізігі мәліметтер типтері.Унарлы, бинарлы, тернарлы операциялар

Негізігі мәліметтер типтері:

Char- символдық, яғни таңбалық тип.Ұзындығы 8 бит-1 байт. Диапазогы -128…+127

Float-нақты ман типі,яғни жылыжымалы нүктелі сан/р. Ұзыныдғы 32бит 4байт,сандар дипазоны 3,4* …3,4* .

Double-2еселенген нақты сан типі. Ұзындығы 64 бит 8байт.Диапазоны 1,7* … 1,7*

Int- бүтін сан типі.Ұзыдығы 16 бит 4 байт.Диапазоны -32768…32767.

Операнд/р–үстінен әрекет жүргізілетін деректер.Операнд ретінде тұрақты/р, массив әрекеттері(литералдар),айнымалы/р, массив әрекетт/і мен функцияларды айтуға б/ы. Операнд операцияға жүргізілетін әрекеттерді анықтайды.Операция/р: Бинарлы;Унарлы; Тернарлы.Унарлы операция бір операндқа тиісті және оның белгісі операнд алдынан жазылады. Унарлы операциялар:

  • Арифметикалық теріске шығару

~ логикалық теріске шығару

/ логикалық теріске шығару

*бағыттау(жанама бағыттау)

& адресті есептеу

+ унарлы қосу

++ арттыру(инкремент)

  • Кеміту(декремент)

Size of - өлшем

Бинарлы операция екі операциялар арасындағы қатынасты өрнектейді және оның белгісі операндтар арасына жазылады, мысалы: X+Y. Бинарлы операциялар:

  • Аддитивті операциялар:

= меншіктеу

+= меншіктеу қосынды

-= меншіктеу айырмасы

  • Мультипликативті опрациялар:

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

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

%= қалдықты меншіктеу

  • Жылжыту операциялары:

<<солға жылжыту

>>оңға жылжыту

  • Разрядты операциялар:

<= кіші не тең

>= үлкен не тең

< кіші

> үлкен

== тең

!= тең емес

!=0 ақиқат

==0 жалған.

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

Ескерту:операнд 2ж/е 3есептелуде, бірақ бір мезетте 2 операнд бірдей есептелмейді.Нәтиже типі операнд 2 ж/е 3ке байланысты өзгереді

  1. Егер операнд 2 және 3 бүтін анықталмаған тип болса, онда арифметикалық өзгертулерден кейінгі типі болады.

  2. Егер операнд 2 және 3 құрылымының түрі біріктіру немесе нұсқағыш болса, нәтиже типі құрылымның типі болып табылады.

  3. Егер екі оперенд типтері Void болса, нәтиженің де типі Void болады.

  4. Егер бір операнд кез келген типтегі нұсқағыш болса, ол басқа операнд Void нұсқағышта болса, онда нұсқағыш Void нұсқағышқа ауысады және осы нәтиже типі болады.

  5. Егер операндта нұсқағыш болса, ал екінші операнд 0ге тең тұрақты болса, онда нұсқағыш типі болады.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]