Функциялар туралы негізгі мәліметтер
МАЗМҰНЫ
КІРІСПЕ ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .
3
1 БӨЛІМ ФУНКЦИЯЛАР ТУРАЛЫ НЕГІЗГІ МӘЛІМЕТТЕР
1.1 Сыртқы және ішкі айнымалылары ... ... ... ... ... ... ... ... ... ... 5
5
1.2 Аргументтің берілу тәсілдері ... ... ... ... ... ... ... ... ... ... ... ... .. 7
1.3 Формальді және нақты параметрлер ... ... ... ... ... ... ... ... ... .. 8
2 БӨЛІМ РЕКУРСИВТІ ФУНКЦИЯЛАР ... ... ... ... ... ... ..
ҚОРЫТЫНДЫ ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 12
21
ҚОЛДАНЫЛҒАН ӘДЕБИЕТТЕР ... ... ... ... ... ... ... ... ... ... ... ... 22
КІРІСПЕ ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .
3
1 БӨЛІМ ФУНКЦИЯЛАР ТУРАЛЫ НЕГІЗГІ МӘЛІМЕТТЕР
1.1 Сыртқы және ішкі айнымалылары ... ... ... ... ... ... ... ... ... ... 5
5
1.2 Аргументтің берілу тәсілдері ... ... ... ... ... ... ... ... ... ... ... ... .. 7
1.3 Формальді және нақты параметрлер ... ... ... ... ... ... ... ... ... .. 8
2 БӨЛІМ РЕКУРСИВТІ ФУНКЦИЯЛАР ... ... ... ... ... ... ..
ҚОРЫТЫНДЫ ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 12
21
ҚОЛДАНЫЛҒАН ӘДЕБИЕТТЕР ... ... ... ... ... ... ... ... ... ... ... ... 22
КІРІСПЕ
Нью–Джерси штатының Мюррей Хилл қаласында Bell laboratiories компаниясында С тілінде 1969 жылы UNIX операциялық жүйесі құрылған. Бұдан кейін Кен Томпсон PDP-7 компьютеріне арналған жаңа В тілінің компиляторын жазған.
Алдымен С тілінің шығу тарихын зерттеу мақсатында осы тілге әкелген тілдер негізіне шолу жасайық:
- 1960 жылы шығарылған Аlgol тілі;
- 1963 жылы CPL- (біріктірілген програмамлау тілі);
- 1967жылғы ВCPL- базалық біріккен программалау тілі;
- 1970жылғы В тілі, Кен Томссон құрастырған.
Жоғарыда аталған тілдерді әр кезеңде туындаған қажеттілдіктерге қарай жетілдіру барысында жаңа тілдер пайда бола бастаған, жетілдіру техниканы құрастыру барысында жетіп отырған елеулі жаңалықтарға байланысты түсіндіріліп отырады. Толығырақ [1],[2] әдебиеттерден қараңыз.
- Ал, С тілі 1972 жылы Деннис Ринчи Вell Lавs компаниясында құрастырған.
1983 жылы АNSI(Америка ұлттық стандарттау институты) С тілін стандарттау мақсатын қойған. Ал, Кен Томпсон В тілін жазып бітіргенде PDP –11 компьютері пайда болады. UNIX операциялы жүйесі мен В тілінің компиляторы жаңа машинаға модернизацияланған. Бұл PDP-11 машинасының оперативті жадысы 24 Кб болатын, мұның 16 Кб оперативті жүйеге қолданылып және 512 Кб дискде орыны болған. Кейінірек UNIX –ті В тілінде қайта жазу идеясы туындаған. Бірақ В тілі жәй жұмыс жасаған, және В сөздермен жұмыс жасауға бағытталған. Сондықтан В тілінің өзін жетілдіру қажеттілігінен 1971 жылы жаңа версиясы - С тілін жаза бастады. Деннис Ритчи тілдің нақты бір құрылғыдан тәуелсіздігін қарастырады.
Нью–Джерси штатының Мюррей Хилл қаласында Bell laboratiories компаниясында С тілінде 1969 жылы UNIX операциялық жүйесі құрылған. Бұдан кейін Кен Томпсон PDP-7 компьютеріне арналған жаңа В тілінің компиляторын жазған.
Алдымен С тілінің шығу тарихын зерттеу мақсатында осы тілге әкелген тілдер негізіне шолу жасайық:
- 1960 жылы шығарылған Аlgol тілі;
- 1963 жылы CPL- (біріктірілген програмамлау тілі);
- 1967жылғы ВCPL- базалық біріккен программалау тілі;
- 1970жылғы В тілі, Кен Томссон құрастырған.
Жоғарыда аталған тілдерді әр кезеңде туындаған қажеттілдіктерге қарай жетілдіру барысында жаңа тілдер пайда бола бастаған, жетілдіру техниканы құрастыру барысында жетіп отырған елеулі жаңалықтарға байланысты түсіндіріліп отырады. Толығырақ [1],[2] әдебиеттерден қараңыз.
- Ал, С тілі 1972 жылы Деннис Ринчи Вell Lавs компаниясында құрастырған.
1983 жылы АNSI(Америка ұлттық стандарттау институты) С тілін стандарттау мақсатын қойған. Ал, Кен Томпсон В тілін жазып бітіргенде PDP –11 компьютері пайда болады. UNIX операциялы жүйесі мен В тілінің компиляторы жаңа машинаға модернизацияланған. Бұл PDP-11 машинасының оперативті жадысы 24 Кб болатын, мұның 16 Кб оперативті жүйеге қолданылып және 512 Кб дискде орыны болған. Кейінірек UNIX –ті В тілінде қайта жазу идеясы туындаған. Бірақ В тілі жәй жұмыс жасаған, және В сөздермен жұмыс жасауға бағытталған. Сондықтан В тілінің өзін жетілдіру қажеттілігінен 1971 жылы жаңа версиясы - С тілін жаза бастады. Деннис Ритчи тілдің нақты бір құрылғыдан тәуелсіздігін қарастырады.
ҚОЛДАНЫЛҒАН ӘДЕБИЕТТЕР
1. Бадд Т. Объектно-ориентированное программирование в действии .Пер.с англ.-
2. Вирт Н. Алгоритмы и структуры данных: Пер. с анг. -М.: Мир, 1989.
3. Марка Д.А., МакГоуэн К. Методология структурного анализа и проектирования.-М.: Метатехнология, 1993.
4. Культин Н.Б. С/С++ в задачах и примерах. ‐СПб:BHV ‐ Петербург, 2001. Кормен Т., Лейзерсон Ч., Ривест Р. Алгоритмы: построение и анализ/ Пер. англ. Под ред. А. Шеня.-М; МЦНМО,2002.
5. Т.А.Павловская.,Ю.А.Щупак.Структурное программирование: Практикум - СПб.: Питер, 2003. -240 с: ил.
6. Паннас К., Мюррей У. Программирование на Си и Си++. –К.:Ирина, ВНV, 2000.
7. Буч Г. Объектно-ориентированный анализ и проектирование с примерами приложений на С++.-М: «Издательство Бином», СПб: «Невский диалект»,1998.
8. В.З. Аладьев, Ю.Я. Хунт, М.Л. Шишаков ОСНОВЫ ИНФОРМАТИКИ. Учебное пособие. – М.: Информационно – издательский дом «Филинъ», 1998.
1. Бадд Т. Объектно-ориентированное программирование в действии .Пер.с англ.-
2. Вирт Н. Алгоритмы и структуры данных: Пер. с анг. -М.: Мир, 1989.
3. Марка Д.А., МакГоуэн К. Методология структурного анализа и проектирования.-М.: Метатехнология, 1993.
4. Культин Н.Б. С/С++ в задачах и примерах. ‐СПб:BHV ‐ Петербург, 2001. Кормен Т., Лейзерсон Ч., Ривест Р. Алгоритмы: построение и анализ/ Пер. англ. Под ред. А. Шеня.-М; МЦНМО,2002.
5. Т.А.Павловская.,Ю.А.Щупак.Структурное программирование: Практикум - СПб.: Питер, 2003. -240 с: ил.
6. Паннас К., Мюррей У. Программирование на Си и Си++. –К.:Ирина, ВНV, 2000.
7. Буч Г. Объектно-ориентированный анализ и проектирование с примерами приложений на С++.-М: «Издательство Бином», СПб: «Невский диалект»,1998.
8. В.З. Аладьев, Ю.Я. Хунт, М.Л. Шишаков ОСНОВЫ ИНФОРМАТИКИ. Учебное пособие. – М.: Информационно – издательский дом «Филинъ», 1998.
МАЗМҰНЫ
КІРІСПЕ ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 3
1 БӨЛІМ ФУНКЦИЯЛАР ТУРАЛЫ НЕГІЗГІ МӘЛІМЕТТЕР 5
1.1 Сыртқы және ішкі айнымалылары 5
... ... ... ... ... ... ... ... .. ... .
1.2 Аргументтің берілу тәсілдері 7
... ... ... ... ... ... ... ... .. ... ... ... ...
1.3 Формальді және нақты параметрлер 8
... ... ... ... ... ... ... ... .. ...
2 БӨЛІМ РЕКУРСИВТІ ФУНКЦИЯЛАР ... ... ... ... ... ... .. 12
ҚОРЫТЫНДЫ 21
... ... ... ... ... ... ... ... .. ... ... ... ... ... ... .
... ... ... ... ...
ҚОЛДАНЫЛҒАН ӘДЕБИЕТТЕР 22
... ... ... ... ... ... ... ... .. ... ... ... ..
КІРІСПЕ
Нью–Джерси штатының Мюррей Хилл қаласында Bell laboratiories
компаниясында С тілінде 1969 жылы UNIX операциялық жүйесі құрылған. Бұдан
кейін Кен Томпсон PDP-7 компьютеріне арналған жаңа В тілінің компиляторын
жазған.
Алдымен С тілінің шығу тарихын зерттеу мақсатында осы тілге әкелген
тілдер негізіне шолу жасайық:
- 1960 жылы шығарылған Аlgol тілі;
- 1963 жылы CPL- (біріктірілген програмамлау тілі);
- 1967жылғы ВCPL- базалық біріккен программалау тілі;
- 1970жылғы В тілі, Кен Томссон құрастырған.
Жоғарыда аталған тілдерді әр кезеңде туындаған қажеттілдіктерге қарай
жетілдіру барысында жаңа тілдер пайда бола бастаған, жетілдіру техниканы
құрастыру барысында жетіп отырған елеулі жаңалықтарға байланысты
түсіндіріліп отырады. Толығырақ [1],[2] әдебиеттерден қараңыз.
- Ал, С тілі 1972 жылы Деннис Ринчи Вell Lавs компаниясында
құрастырған.
1983 жылы АNSI(Америка ұлттық стандарттау институты) С тілін
стандарттау мақсатын қойған. Ал, Кен Томпсон В тілін жазып бітіргенде PDP
–11 компьютері пайда болады. UNIX операциялы жүйесі мен В тілінің
компиляторы жаңа машинаға модернизацияланған. Бұл PDP-11 машинасының
оперативті жадысы 24 Кб болатын, мұның 16 Кб оперативті жүйеге қолданылып
және 512 Кб дискде орыны болған. Кейінірек UNIX –ті В тілінде қайта жазу
идеясы туындаған. Бірақ В тілі жәй жұмыс жасаған, және В сөздермен жұмыс
жасауға бағытталған. Сондықтан В тілінің өзін жетілдіру қажеттілігінен 1971
жылы жаңа версиясы - С тілін жаза бастады. Деннис Ритчи тілдің нақты бір
құрылғыдан тәуелсіздігін қарастырады.
1 БӨЛІМ ФУНКЦИЯЛАР ТУРАЛЫ НЕГІЗГІ МӘЛІМЕТТЕР
1.1 Сыртқы және ішкі айнымалылар
Си-дегі кез-келген программа-бұл айнымалылар сипаттамасы мен
функциялар жиынтығы. Си тіліндегі функциялар Фортран тіліндегі ішкі
программалар мен функцияларға және Паскаль тіліндегі процедуралар мен
функцияларға ұқсайды. Функция кейбір есептеулерді құрудың ыңғайлы әдісі
болып табылады. Си тілінде функцияны қолдану механизмі ыңғайлы, оңай және
тиімді. Сіз көбінесе бір рет шақырылатын қысқа функцияларды кездестіресіз.
Олар программа түсінікті болу үшін құрылады.
Функциялар арсындағы байланыс мән қайтаратын аргументтер мен сыртқы
айнымалылар арқылы орнатылады.
Return инструкциясы нәтижені шақыратын функциядан шақырған функцияға
қайтару мехамизмін орындайды және Return сөзінен кейін кез- Return
өрнек;
Мұндағы өрнекті жақшаға да жазуға болады, бірақ ол міндетті емес.
Си-дегі функция Pascal тіліндегі программа мен функция секілді.
Айырмашылығы: Си-дегі функцияның барлық аргументі параметр мән ретінде
беріледі, яғни шақырылатын функцияға аргументтің өзі емес оның
аргументтерінің мәні беріледі.
Си-дегі кез-келген функцияның прототипі болуы тиіс, яғни функция аты,
аргументтерінің типі және қайтарылатын нәтиже типі көрсетілген тақырыбы
хабарланады.
Прототивті программа денесінде немесе бөлек тақырыптар файылында
айқындалады.
Функция прототипі компиляторға функция туралы информация береді де,
сәйкесінше компилятор типтер сай келуін тексереді. Функция әртүрлі типті
мән қайтара алады, мысалы,int, void, float т .б.
Айнымалылар локальді және сыртқы болып бөлінеді.
Локальді айнымалылар функция ішінде сипатталады да сонда ғана
көрінеді. Сыртқы айнымалылар кез-келген функция сыртында сипатталады да,
сол функцияның кез-келген жерінде қолданылады.
Кез-келген функцияны анықтау үшін:
нәтиже типі функция аты (параметр тізімі) функция денесі
Мұндағы өрнек болуы міндетті емес, егер болмаса, басқару функциясы шақырған
программаға беріледі.
Кез келген функцияның сипатталуы келесі түрде болады:
Нәтиже типі функцияныњ аты (параметрлер тізімі)
{
декларациялар
инструкциялар
}
Функциялардың сипатталуы кез келген ретте бір немесе бірнеше шығыс
файлдарында орналасуы мүмкін, бірақ кез келген функция тұтастай біреуінде
орналасуы керек. Егер программаның шығыс тексті бірнеше файлдарға бөлінген
болса, онда оны компиляциядан өткізу және іске қосу үшін бір файлда болған
жағдайда айтар сөзі көп; бірақ ол тілге емес операциялық жүйеге қатысты.
Әзірге біз екі функцияны бір файлда болған жағдайын ұсынып отырмыз.
Келесі жолда main функциясынан power-ді екі рет шақырады.
printf(" %d %d %d \n", i,power(2,i), power(-3,i));
Power функциясын шақырған сайын екі аргумент беріледі және негізгі
программа нәтижесінде бүтін сан алады. Рower(2,i) өрнектің бөлігі ретінде 2
және і сияқты бүтін мәнді болып табылады.
Power -ді сипаттайтын бірінші жолда
іnt power(int base, int n);
параметр типі, функцияның аты, нәтиже типі көрсетілген. Power
функциясындағы параметрлер локальді, ал ол кез келген басқа функция үшін
жасырын екенін білдіреді. Сондықтан басқа ішкі программалар оларды
өздерінің мақсаттары үшін қолдана алмайды. Соңғы тұжырым і және р
айнымалылары ‰шін де д±рыс болады.
Бұдан былай параметр деп функцияның сипатталуында берілген жақша
ішінде жазылған параметрлер тізіміндегі айнымалыны айтамыз. Ал аргумент деп
функцияны шақырғанда қолданылатын мғнді айтамыз кейбір де осы маѓынада
формальді аргумент терминін қолданамыз.
Power функциясында есептелетін мән main функциясына return
инструкциясы арқылы қайтарылады. Return сөзінен кейін кез келген µрнек
жазуѓа болады:
return өрнек;
Функция қандай да бір мән қайтаруы міндетті емес.
int power(int m, int n);
main алдында тұрған декларация рower функциясыныњ екі бүтін
аргументінен тұратынын және бүтін нәтиже қайтаратынын білдіреді.
Бұл функцияныњ прототипі деп аталатын сипаттау рower фунуциясыныњ
сипатталуымен және шақырылуымен сәйкес келуі керек. Шын мәнінде протипте
параметрлер аттары еркін болуы немесе жоқ болуы да мүмкін, яғни протипті
былай да жазуға болар еді:
Int power (int, int);
Бірақ жақсы тандалған аттар программаны түсінікті қылады.
1.2 Аргументтің берілу тәсілдері
Аргументтер мән ретінде берілгенде функцияның ішінде аргумент аттас
жергілікті айнымалы құрылады да оның мәні функцияда өзгеруі мүмкін, бірақ
аргументтің мәні өзгермейді. Аргументтегі айнымалы сілтеме арқылы
берілгенде функция аргументтің мәнін емес, оның адресін алады. Ал, мұнда
құрылған жергілікті айнымалы көрсеткіш болады. Бұл, жадыны үнемдеуге
мүмкіндік береді және функцияның орындалу барысында айнымалы-аргумент мәні
өзгереді. Бұл жағдайда функция аргумент айнымалы- сілтеме арқылы бірнеше
мән қайтара алады.
1.3 Формальді және нақты параметрлер
Кез-келген функцияда аргументтер тізімі болады(болмауы да мүмкін).
Прграммадан функция шақырғанда нақты аргументтер тізімі беріледі.
Void функция аргументтерінің жоқ екенін білдіреді.
Функция аргументтері.
Функция аргументі ретінде массив беруге болады, мұнда функция
массивтің !-ші элементтінің адресін көрсеткіш түрінде алады.
Функцияны сипаттағанда оның аргументі өлшемі белгісіз массив ретінде
де көруге болады.
Рекурсия. Функция өзін өзі шақырғанда рекурсия деп аталады.
Факториал есептеу үшін рекурсивті функцияны қолдану
#include "stdio.h" #include "conio.h"
unsigned int factor(unsigned int k)
{
if ( k == 1 ) .
return(1); else
return(k*factor(k-1));
void main(
unsigned int n;
unsigned int f;
puts("Вычисление факториалаХп");
printf("-");
scanf("%u", &n);
f = factor(n);
printf("Факториал саны%u тен %u", n, f) ;
printf("Жұмысты аяқтау үшін Enter басыңыз"); getch();
Функция – бұл аяқталған әрекетті орындайтын операторлар тобы. Олар
программаны жеке блоктарға немесе модульдерге бөліп, басқаруға мүмкіндік
береді. Бұл программа құрылымын жеңілдетеді. Функцияны қолдану үшін оның
қалай жұмыс жасайтынын білу міндетті емес, тек қалай шақыру керектігін білу
жеткілікті. Функция программада тек бір рет қана жазылып, бірнеше рет
шақырылуы мүмкін. СС++ тілінің негізгі программалық кодын осы функциялар
құрайды. Бұл тілдердегі кез келген программада ең кемінде бір функция -
main () функциясы болады. Ол программаның аяқталу кодын қайтарады.
Әрбір функцияның прототипі, яғни алдын ала хабарланған функция
тақырыбы болуы керек. Тақырыбында функция аты, қайтарылатын нәтиже типі,
сонымен қатар қанша және қандай типті аргументтер берілу керектігі
көрсетіледі. Функцияның жалпы сипатталу синтаксисі төмендегідей:
нәтиже_типі функция_аты (аргумент_типі аргумент_аты,... )
{ .
.
функция денесі
.
.
}
Мұндағы:
нәтиже_типі –функцияның қайтаратын мәнінің типі;
функция_аты – функцияның аты;
аргумент_типі – фукцияда қолданылатын формальді аргумент типі;
аргумент_аты- фукцияда қолданылатын формальді аргумент аты.
Функция туралы сөз болғанды екі түрлі аргумент, біріншісі – нақты
аргумент, екіншісі –формальді аргумент туралы айтылады. Нақты аргумент
функцияны шақырған уақытта беріледі, ал формальді аргумент функция
сипаттамасында ғана қолданылады.
Формальді аргументтер әр түрлі типті болуы мүмкін:void, char, int,
float, double және массив. void типі функцияда формальді аргументтер
көрсетілмеген уақытта қолданылады.
Функция нітижесінде void, bool, int, long, float, double типті
айнымалылар қайтаруы мүмкін. Функция ешқандай мәлімет қайтармайтын болса,
void типімен сипатталады.
Си тілінде ішкі программамен жұмыс істеуді қарастырайыќ. Си тілінде
Паскальдан айырмашылығы ішкі программаныњ орнына функция ќолданылады. Си-
де ішкі программаларды хабарлау келісілмеген, себебі функция негізгі
программалық бірлік болып табылады, яғни, ең кіші орынды программалық
модуль болып табылады. Кез-келген программада негізгі функция main
қосылады.
Егер программада басқа да функциялар орындалатын болса, онда олар
ішкі программа ролін атқарады:
Мысал 1: АВС санның ең үлкенін табу программасын құрайық. Оны шығару
үшін екі санның үлкенін табатын алгоритмді құрайық.
Max(a,b,c)=max(a,max(b,c)).
#includeiostreame
көмекші алгоритм
int MAX(int x;int y);
{if (y) return x;
else return y;
}
негізгі функция
void main()
{int a,b,c;
cout”a,b,c-ға мәндер енгізу”,cina,b,c;
d=MAX(MAX(a,b),c);
cout”\n н сан =” d;
}
функцияны анықтау форматы:
типі функцияның аты(параметр спецификаторы)
{ функция денесі}
типі –функцияның нәтижесінің шығарған типі.
Функция аты – идентификатор болып табылады, оны программисттің өзі
береді.
Негізгі функция үшін main - параметр спецификаторы
ќолданылады. Функция - формальдық параметрдің тектері көрсетілген тізім.
Функция денесі-құрама оператор немесе блок болып табылады. Блоктың
белгісі - болып программа объектісінің (айнымалылар, массивтер) сипаттамасы
болып табылады.
Блок {блок} орындалады.
Си да мынандай ереже бар: функция денесі басқа функцияның сипатталуын
қамтамасыз ете алмайды.
Кез - келген функциядан басқа функцияға араласуға болады. Бірақ, олар
шақырылған функция үшін сыртқы функция болып қалады. Функциядан оны
шақырған нүктеге қайта оралу return арқылы орындалады. Ол return өрнек. 1-
ші жағдайда функция өзінің нәтижесі ретінде ешқандай мән қайтармайды. Ал 2-
ші жағдайда функция нәтижесі өрнек болып табылады.
Функцияны шақыру формулалары:
Функция аты (фактілік параметр тізімі)
Си ішінде бұл өрнек пен формальдық және факторлық параметрлер арасында
сәйкестік болу керек.
х,у – формальдық параметрлер.
а,в,с – фактілік параметрлер.
4. Функция. Ішкі программаға мысал.
С++ тілінде ішкі программамен жұмыс істеуді қарастырамыз. С++ тілінде
процедураның ... жалғасы
КІРІСПЕ ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 3
1 БӨЛІМ ФУНКЦИЯЛАР ТУРАЛЫ НЕГІЗГІ МӘЛІМЕТТЕР 5
1.1 Сыртқы және ішкі айнымалылары 5
... ... ... ... ... ... ... ... .. ... .
1.2 Аргументтің берілу тәсілдері 7
... ... ... ... ... ... ... ... .. ... ... ... ...
1.3 Формальді және нақты параметрлер 8
... ... ... ... ... ... ... ... .. ...
2 БӨЛІМ РЕКУРСИВТІ ФУНКЦИЯЛАР ... ... ... ... ... ... .. 12
ҚОРЫТЫНДЫ 21
... ... ... ... ... ... ... ... .. ... ... ... ... ... ... .
... ... ... ... ...
ҚОЛДАНЫЛҒАН ӘДЕБИЕТТЕР 22
... ... ... ... ... ... ... ... .. ... ... ... ..
КІРІСПЕ
Нью–Джерси штатының Мюррей Хилл қаласында Bell laboratiories
компаниясында С тілінде 1969 жылы UNIX операциялық жүйесі құрылған. Бұдан
кейін Кен Томпсон PDP-7 компьютеріне арналған жаңа В тілінің компиляторын
жазған.
Алдымен С тілінің шығу тарихын зерттеу мақсатында осы тілге әкелген
тілдер негізіне шолу жасайық:
- 1960 жылы шығарылған Аlgol тілі;
- 1963 жылы CPL- (біріктірілген програмамлау тілі);
- 1967жылғы ВCPL- базалық біріккен программалау тілі;
- 1970жылғы В тілі, Кен Томссон құрастырған.
Жоғарыда аталған тілдерді әр кезеңде туындаған қажеттілдіктерге қарай
жетілдіру барысында жаңа тілдер пайда бола бастаған, жетілдіру техниканы
құрастыру барысында жетіп отырған елеулі жаңалықтарға байланысты
түсіндіріліп отырады. Толығырақ [1],[2] әдебиеттерден қараңыз.
- Ал, С тілі 1972 жылы Деннис Ринчи Вell Lавs компаниясында
құрастырған.
1983 жылы АNSI(Америка ұлттық стандарттау институты) С тілін
стандарттау мақсатын қойған. Ал, Кен Томпсон В тілін жазып бітіргенде PDP
–11 компьютері пайда болады. UNIX операциялы жүйесі мен В тілінің
компиляторы жаңа машинаға модернизацияланған. Бұл PDP-11 машинасының
оперативті жадысы 24 Кб болатын, мұның 16 Кб оперативті жүйеге қолданылып
және 512 Кб дискде орыны болған. Кейінірек UNIX –ті В тілінде қайта жазу
идеясы туындаған. Бірақ В тілі жәй жұмыс жасаған, және В сөздермен жұмыс
жасауға бағытталған. Сондықтан В тілінің өзін жетілдіру қажеттілігінен 1971
жылы жаңа версиясы - С тілін жаза бастады. Деннис Ритчи тілдің нақты бір
құрылғыдан тәуелсіздігін қарастырады.
1 БӨЛІМ ФУНКЦИЯЛАР ТУРАЛЫ НЕГІЗГІ МӘЛІМЕТТЕР
1.1 Сыртқы және ішкі айнымалылар
Си-дегі кез-келген программа-бұл айнымалылар сипаттамасы мен
функциялар жиынтығы. Си тіліндегі функциялар Фортран тіліндегі ішкі
программалар мен функцияларға және Паскаль тіліндегі процедуралар мен
функцияларға ұқсайды. Функция кейбір есептеулерді құрудың ыңғайлы әдісі
болып табылады. Си тілінде функцияны қолдану механизмі ыңғайлы, оңай және
тиімді. Сіз көбінесе бір рет шақырылатын қысқа функцияларды кездестіресіз.
Олар программа түсінікті болу үшін құрылады.
Функциялар арсындағы байланыс мән қайтаратын аргументтер мен сыртқы
айнымалылар арқылы орнатылады.
Return инструкциясы нәтижені шақыратын функциядан шақырған функцияға
қайтару мехамизмін орындайды және Return сөзінен кейін кез- Return
өрнек;
Мұндағы өрнекті жақшаға да жазуға болады, бірақ ол міндетті емес.
Си-дегі функция Pascal тіліндегі программа мен функция секілді.
Айырмашылығы: Си-дегі функцияның барлық аргументі параметр мән ретінде
беріледі, яғни шақырылатын функцияға аргументтің өзі емес оның
аргументтерінің мәні беріледі.
Си-дегі кез-келген функцияның прототипі болуы тиіс, яғни функция аты,
аргументтерінің типі және қайтарылатын нәтиже типі көрсетілген тақырыбы
хабарланады.
Прототивті программа денесінде немесе бөлек тақырыптар файылында
айқындалады.
Функция прототипі компиляторға функция туралы информация береді де,
сәйкесінше компилятор типтер сай келуін тексереді. Функция әртүрлі типті
мән қайтара алады, мысалы,int, void, float т .б.
Айнымалылар локальді және сыртқы болып бөлінеді.
Локальді айнымалылар функция ішінде сипатталады да сонда ғана
көрінеді. Сыртқы айнымалылар кез-келген функция сыртында сипатталады да,
сол функцияның кез-келген жерінде қолданылады.
Кез-келген функцияны анықтау үшін:
нәтиже типі функция аты (параметр тізімі) функция денесі
Мұндағы өрнек болуы міндетті емес, егер болмаса, басқару функциясы шақырған
программаға беріледі.
Кез келген функцияның сипатталуы келесі түрде болады:
Нәтиже типі функцияныњ аты (параметрлер тізімі)
{
декларациялар
инструкциялар
}
Функциялардың сипатталуы кез келген ретте бір немесе бірнеше шығыс
файлдарында орналасуы мүмкін, бірақ кез келген функция тұтастай біреуінде
орналасуы керек. Егер программаның шығыс тексті бірнеше файлдарға бөлінген
болса, онда оны компиляциядан өткізу және іске қосу үшін бір файлда болған
жағдайда айтар сөзі көп; бірақ ол тілге емес операциялық жүйеге қатысты.
Әзірге біз екі функцияны бір файлда болған жағдайын ұсынып отырмыз.
Келесі жолда main функциясынан power-ді екі рет шақырады.
printf(" %d %d %d \n", i,power(2,i), power(-3,i));
Power функциясын шақырған сайын екі аргумент беріледі және негізгі
программа нәтижесінде бүтін сан алады. Рower(2,i) өрнектің бөлігі ретінде 2
және і сияқты бүтін мәнді болып табылады.
Power -ді сипаттайтын бірінші жолда
іnt power(int base, int n);
параметр типі, функцияның аты, нәтиже типі көрсетілген. Power
функциясындағы параметрлер локальді, ал ол кез келген басқа функция үшін
жасырын екенін білдіреді. Сондықтан басқа ішкі программалар оларды
өздерінің мақсаттары үшін қолдана алмайды. Соңғы тұжырым і және р
айнымалылары ‰шін де д±рыс болады.
Бұдан былай параметр деп функцияның сипатталуында берілген жақша
ішінде жазылған параметрлер тізіміндегі айнымалыны айтамыз. Ал аргумент деп
функцияны шақырғанда қолданылатын мғнді айтамыз кейбір де осы маѓынада
формальді аргумент терминін қолданамыз.
Power функциясында есептелетін мән main функциясына return
инструкциясы арқылы қайтарылады. Return сөзінен кейін кез келген µрнек
жазуѓа болады:
return өрнек;
Функция қандай да бір мән қайтаруы міндетті емес.
int power(int m, int n);
main алдында тұрған декларация рower функциясыныњ екі бүтін
аргументінен тұратынын және бүтін нәтиже қайтаратынын білдіреді.
Бұл функцияныњ прототипі деп аталатын сипаттау рower фунуциясыныњ
сипатталуымен және шақырылуымен сәйкес келуі керек. Шын мәнінде протипте
параметрлер аттары еркін болуы немесе жоқ болуы да мүмкін, яғни протипті
былай да жазуға болар еді:
Int power (int, int);
Бірақ жақсы тандалған аттар программаны түсінікті қылады.
1.2 Аргументтің берілу тәсілдері
Аргументтер мән ретінде берілгенде функцияның ішінде аргумент аттас
жергілікті айнымалы құрылады да оның мәні функцияда өзгеруі мүмкін, бірақ
аргументтің мәні өзгермейді. Аргументтегі айнымалы сілтеме арқылы
берілгенде функция аргументтің мәнін емес, оның адресін алады. Ал, мұнда
құрылған жергілікті айнымалы көрсеткіш болады. Бұл, жадыны үнемдеуге
мүмкіндік береді және функцияның орындалу барысында айнымалы-аргумент мәні
өзгереді. Бұл жағдайда функция аргумент айнымалы- сілтеме арқылы бірнеше
мән қайтара алады.
1.3 Формальді және нақты параметрлер
Кез-келген функцияда аргументтер тізімі болады(болмауы да мүмкін).
Прграммадан функция шақырғанда нақты аргументтер тізімі беріледі.
Void функция аргументтерінің жоқ екенін білдіреді.
Функция аргументтері.
Функция аргументі ретінде массив беруге болады, мұнда функция
массивтің !-ші элементтінің адресін көрсеткіш түрінде алады.
Функцияны сипаттағанда оның аргументі өлшемі белгісіз массив ретінде
де көруге болады.
Рекурсия. Функция өзін өзі шақырғанда рекурсия деп аталады.
Факториал есептеу үшін рекурсивті функцияны қолдану
#include "stdio.h" #include "conio.h"
unsigned int factor(unsigned int k)
{
if ( k == 1 ) .
return(1); else
return(k*factor(k-1));
void main(
unsigned int n;
unsigned int f;
puts("Вычисление факториалаХп");
printf("-");
scanf("%u", &n);
f = factor(n);
printf("Факториал саны%u тен %u", n, f) ;
printf("Жұмысты аяқтау үшін Enter басыңыз"); getch();
Функция – бұл аяқталған әрекетті орындайтын операторлар тобы. Олар
программаны жеке блоктарға немесе модульдерге бөліп, басқаруға мүмкіндік
береді. Бұл программа құрылымын жеңілдетеді. Функцияны қолдану үшін оның
қалай жұмыс жасайтынын білу міндетті емес, тек қалай шақыру керектігін білу
жеткілікті. Функция программада тек бір рет қана жазылып, бірнеше рет
шақырылуы мүмкін. СС++ тілінің негізгі программалық кодын осы функциялар
құрайды. Бұл тілдердегі кез келген программада ең кемінде бір функция -
main () функциясы болады. Ол программаның аяқталу кодын қайтарады.
Әрбір функцияның прототипі, яғни алдын ала хабарланған функция
тақырыбы болуы керек. Тақырыбында функция аты, қайтарылатын нәтиже типі,
сонымен қатар қанша және қандай типті аргументтер берілу керектігі
көрсетіледі. Функцияның жалпы сипатталу синтаксисі төмендегідей:
нәтиже_типі функция_аты (аргумент_типі аргумент_аты,... )
{ .
.
функция денесі
.
.
}
Мұндағы:
нәтиже_типі –функцияның қайтаратын мәнінің типі;
функция_аты – функцияның аты;
аргумент_типі – фукцияда қолданылатын формальді аргумент типі;
аргумент_аты- фукцияда қолданылатын формальді аргумент аты.
Функция туралы сөз болғанды екі түрлі аргумент, біріншісі – нақты
аргумент, екіншісі –формальді аргумент туралы айтылады. Нақты аргумент
функцияны шақырған уақытта беріледі, ал формальді аргумент функция
сипаттамасында ғана қолданылады.
Формальді аргументтер әр түрлі типті болуы мүмкін:void, char, int,
float, double және массив. void типі функцияда формальді аргументтер
көрсетілмеген уақытта қолданылады.
Функция нітижесінде void, bool, int, long, float, double типті
айнымалылар қайтаруы мүмкін. Функция ешқандай мәлімет қайтармайтын болса,
void типімен сипатталады.
Си тілінде ішкі программамен жұмыс істеуді қарастырайыќ. Си тілінде
Паскальдан айырмашылығы ішкі программаныњ орнына функция ќолданылады. Си-
де ішкі программаларды хабарлау келісілмеген, себебі функция негізгі
программалық бірлік болып табылады, яғни, ең кіші орынды программалық
модуль болып табылады. Кез-келген программада негізгі функция main
қосылады.
Егер программада басқа да функциялар орындалатын болса, онда олар
ішкі программа ролін атқарады:
Мысал 1: АВС санның ең үлкенін табу программасын құрайық. Оны шығару
үшін екі санның үлкенін табатын алгоритмді құрайық.
Max(a,b,c)=max(a,max(b,c)).
#includeiostreame
көмекші алгоритм
int MAX(int x;int y);
{if (y) return x;
else return y;
}
негізгі функция
void main()
{int a,b,c;
cout”a,b,c-ға мәндер енгізу”,cina,b,c;
d=MAX(MAX(a,b),c);
cout”\n н сан =” d;
}
функцияны анықтау форматы:
типі функцияның аты(параметр спецификаторы)
{ функция денесі}
типі –функцияның нәтижесінің шығарған типі.
Функция аты – идентификатор болып табылады, оны программисттің өзі
береді.
Негізгі функция үшін main - параметр спецификаторы
ќолданылады. Функция - формальдық параметрдің тектері көрсетілген тізім.
Функция денесі-құрама оператор немесе блок болып табылады. Блоктың
белгісі - болып программа объектісінің (айнымалылар, массивтер) сипаттамасы
болып табылады.
Блок {блок} орындалады.
Си да мынандай ереже бар: функция денесі басқа функцияның сипатталуын
қамтамасыз ете алмайды.
Кез - келген функциядан басқа функцияға араласуға болады. Бірақ, олар
шақырылған функция үшін сыртқы функция болып қалады. Функциядан оны
шақырған нүктеге қайта оралу return арқылы орындалады. Ол return өрнек. 1-
ші жағдайда функция өзінің нәтижесі ретінде ешқандай мән қайтармайды. Ал 2-
ші жағдайда функция нәтижесі өрнек болып табылады.
Функцияны шақыру формулалары:
Функция аты (фактілік параметр тізімі)
Си ішінде бұл өрнек пен формальдық және факторлық параметрлер арасында
сәйкестік болу керек.
х,у – формальдық параметрлер.
а,в,с – фактілік параметрлер.
4. Функция. Ішкі программаға мысал.
С++ тілінде ішкі программамен жұмыс істеуді қарастырамыз. С++ тілінде
процедураның ... жалғасы
Ұқсас жұмыстар
Пәндер
- Іс жүргізу
- Автоматтандыру, Техника
- Алғашқы әскери дайындық
- Астрономия
- Ауыл шаруашылығы
- Банк ісі
- Бизнесті бағалау
- Биология
- Бухгалтерлік іс
- Валеология
- Ветеринария
- География
- Геология, Геофизика, Геодезия
- Дін
- Ет, сүт, шарап өнімдері
- Жалпы тарих
- Жер кадастрі, Жылжымайтын мүлік
- Журналистика
- Информатика
- Кеден ісі
- Маркетинг
- Математика, Геометрия
- Медицина
- Мемлекеттік басқару
- Менеджмент
- Мұнай, Газ
- Мұрағат ісі
- Мәдениеттану
- ОБЖ (Основы безопасности жизнедеятельности)
- Педагогика
- Полиграфия
- Психология
- Салық
- Саясаттану
- Сақтандыру
- Сертификаттау, стандарттау
- Социология, Демография
- Спорт
- Статистика
- Тілтану, Филология
- Тарихи тұлғалар
- Тау-кен ісі
- Транспорт
- Туризм
- Физика
- Философия
- Халықаралық қатынастар
- Химия
- Экология, Қоршаған ортаны қорғау
- Экономика
- Экономикалық география
- Электротехника
- Қазақстан тарихы
- Қаржы
- Құрылыс
- Құқық, Криминалистика
- Әдебиет
- Өнер, музыка
- Өнеркәсіп, Өндіріс
Қазақ тілінде жазылған рефераттар, курстық жұмыстар, дипломдық жұмыстар бойынша біздің қор #1 болып табылады.
Ақпарат
Қосымша
Email: info@stud.kz