Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

н~лден бастамай бас~а жасаушылармен жасал~андарды пайданлану~а м~мкіндік береді

Работа добавлена на сайт samzan.net: 2016-03-13

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 4.5.2024

8-9-ДӘРІС. ФУНКЦИЯЛАР ЖӘНЕ ПРОГРАММА ҚҰРЫЛЫМЫ

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

Әдетте Си-дегі программалар үлкеннің біреуінен емес, үлкен емес функциялардың үлкен санынан тұрады. Программаны бір немесе бірнеше бастапқы файлдарда орналастыруға  болады. Бұл файлдар жеке комиляциялауға, ал бірге жүктеуге болады, сонымен бірге бұрын компиляцияланған кітапханалық функциялармен.

Есепті кіші бөліктерге бөлу функционалдық декомпазиция арқылы шешіледі, оның нәтижесі болып олардың арасындағы қатынастар, басты бір функциялардан (main) тұратын құрамы табылады. Осы тұрғыдан кез-келген программа  айнымалылар мен функциялар анықтамаларының жай және жалпы түрі бола келеді. Функциялар арасындағы байланыс мәнді және сыртқы айнымалыны қайтаратын аргументтер арқылы жүзеге асады. Функцияны бастапқы файлдарда кез-келген тәртіпке орналастыруға рұқсат етіледі; бастапқы программаны функциялардың бірде-біреуі үзіліп қалмайтындай етіп файлдың кез-келген санына бөлуге болады.

return нұсқауы шақырылатын функцияға нәтижені қайтаратын механизм. return сөзінен кейін кез-келген өрнек келуі мүмкін. Қажет болса, өрнек нәтиже типіне келтіріледі.  

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

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

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

#include <stdio.h>

#define MAXLINE 100

// қарапайым калькулятор

main ( )

{ double sum, atof (char [] );

char line [MAXLINE];

int getline (char line [], int max);

sum=0;

   while ( getline (line, MAXLINE)>0)

   printf ( “\t%g\n”,sum+=atof(line));

   return 0;

}

double sum, atof (char [] ) декларациясында ( char []  типті аргументті қабылдайтын және double типтің нәтижесін қайтаратын (стрингті double-ге түрлендіреді)    sum – double типтің айнымалысы, ал  atof  - функция екендігі айтылады.

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

Сыртқы айнымалылар.

Әдетте Си тіліндегі программа сыртқы объектілердің жиынымен орындалады: айнымалылар және функциялармен. Сыртқы айнымалылар функциядан тыс өзгешеліктерін анықтайды және әрдайым көптеген функциялар үшін қатынас жасайды. Си-де басқа функциялардың ішіндегі функцияларды анықтауға тиым салынатындықтан, функцияның өзі әрқашан сыртқы объектілер болып табылады. Үнсіздік бойынша әр түрлі файлдарда қолданылатын бірдей сыртқы аттар бір және басқа сыртқы объектіге (функцияға) жіберіледі.

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

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

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

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

Ішкі айнымалы немесе функцияның әрекет ету аймағы компилияцияға жататын файлдың соңына дейін декларацияланған программаның нүктесінген жойылады. Мысалы, егер main, sp, val, push және pop көрсетілген тәртіппен бір файлда анықталса, яғни

 main ( ) { … }

int sp=0;

double val [ MAX ];

void push ( double f ) { … }

double pop ( void ) { … }

онда  sp және val айнымалыларына push және pop-тан олардың аттары бойынша жіберуге болады; олар үшін қосымша ешқандай декларациялар талап етілмейді. main-да  push және pop-дері секілді бұл аттар көрінбейді.

Егер сыртқы айнымалыға ол анықталғанға дейін жіберілуі керек немесе егер ол басқа файлда анықталса, онда оның декларциясы  extern сөзімен берілуі керек. Ішкі айнымалының декларациясы (сипаттама) айнымалының қасиеттерін жариялайды (бәрінен бұрын оның типін), ал анықтама, сондай-ақ ол үшін жадының анықталуына әсер етеді.

Егер жолдар 

                 int sp;

            double val [MAX];

барлық функциялардан тыс орналасқан болса, онда олар ішкі айнымалылар sp және val-да анықтайды, яғни олар үшін жадыны бөледі, және сонымен бірге бастапқы файлдың қалған бөліктері үшін декларация ретінде жүреді. Ал;

  extern int sp;

  extern double val [ ];

жолдары қалған бөліктері үшін декларациялайды, sp – int типіндегі айнымалы және  val –double типіндегі массив (өлшемі басқа жерде анықталған); мұнда айнымалы да, массивте құрылмайды және жады оларға бөлінбейді.

Бастапқы программадан тұратын файлдың барлық жиындарына, әрбір сыртқы айнымалы үшін бір ғана анықтама болуы қажет; басқа файлдар, сыртқы айнымалыға қатынас құру үшін extern декларациясынан тұруы керек.

Массивтер анықтамасында олардың өлшемдерін көрсету керек, ал extern декларациясына келер болсақ, мұнда олар міндетті емес.

Сыртқы айнымалының тек анықтамада ғана инициализациялауға болады.

push және pop функцияларын бір файылға, ал sp және val – айнымалыларын инициализациялайтын басқа жерде анықтайық. Онда байланысты орнату үшін анықтамалар және декларациялар қажет болады:

1-ші файлда:  extern int sp;

  extern double val [ ];

  void push (double f) { … }

  double pop ( void ) { … }

2-ші файлда:  int sp=0;

  double val [ MAX ];

extern декларациясы функцияның анықталуында емес және 1-ші файлдың басында тұрғандықтан, олардың әрекеттері барлық функцияларға таратылады, мұнда декларацияның біреуінің жазылуы барлық 1 файлдар үшін жеткілікті. Тура сол extern декларациясын ұйымдастырупрограмма бір ғана файлдан тұрған жағдайда қажет, бірақ sp және val анықталуы олардың қолданылуынан кейін орналасады.

Сыртқы айнымалыға немесе функцияға қолданылған static нұсқауы объектінің әрекет ету аймағын файл соңымен шектейді. Бұл -  басқа файлдардан аттарды жасыру тәсілі. Статистикалық жады қарапайым сипаттаудың алдында араласатын static сөзімен спецификацияланады. val және sp айнымалыларының декларацияларының алдындағы static  нұсқауы, бұнымен тек қана push және pop жұмыс істейтін, оларды қалған функциялардан жасырады.

Әдетте функцияның аттары бастапқыда және программаның кез-келген жерінен көрінеді. Егер де функция static сөзімен араласқан болса, онда оның аты ол анықталатын файлдан тысқары көрінбейтін болады. Static декларациясын ішкі айнымалылар үшін де қолдануға болады. Автоматтық жергілікті айнымалылар сияқты, ішкі статистикалық айнымалылар функцияларды жергілікті, бірақ автоматтылардан өзгешелігі олар мен функцияның  белсенділігінің периодында ғана пайда болмайды, үнемі болады. Бұл жады бөлінеді.   




1. дезинфекцией стерилизацией дезинсекцией дератизацией Правильный ответ- стерилизацией
2. 28 реферат дисертації на здобуття наукового ступеня кандидата економічних наук Ки1
3. 430 Производительность D 500 т-ч; Продувка Dпр 2 ; Давление за котлом
4. РЕФЕРАТдисертації на здобуття наукового ступенякандидата філософських наук Запоріжжя ~2004 Дисертац
5. первых умножившаяся элита не захотела терять те преимущества которые давало им положение слуги московског
6. ФИЗИЧЕСКАЯ КУЛЬТУРА НА ТЕРРИТОРИИ ТАТАРИИ ТАТАРИИ В ДРЕВНОСТИ Исторические социальноэко
7. Відносини Росії і США на сучасному етапі
8.  Рецензенты кандидат юридических наук доцент В
9. Интерьер с~зіні~ ма~ынасы ~имаратты~ ішін ~р т~рлі жолмен стильмен ~рлендіру ~Р ~она~ ~й ~ызметін пайд
10. тема сохранения жизни и здоровья работника в процессе трудовой деятельности включает в себя- правовые
11. Thumb - ориентированные ядра и их развитие
12. Гражданские правоотношения
13. Использование полезных микроорганизмов
14. Маркетинг в рекламе
15. Развитие международного туризма (с точки зрения организации, на примере гостиницы из Украины)
16. Дипломная работа- Выбор модели взаимодействия как условие формирования представлений специалиста по работе и клиента
17. Проблемы и перспективы использования информационных технологий
18. Курсовая работа- Облік доходів підприємств
19.  Именно это привело к возникновению такого вида искусства как живопись
20. план представляется на рассмотрение на конфиденциальной основе исключительно для принятия решения по финан