1.2 Си бағдарламалау тіліндегі көрсеткіштер
Кез-келген программа комментарийден басталады. Комментарийді Си тілінде «/*» , «*/» белгілеріне алынып жазылған блок түрінде беруге болады.
Содан кейін препроцессор дерективасы орналасады. Препроцессор директивасы берілгенде кітапханалық файлда –тақырыптық файлда орналасқан кодты программаға қою нұсқауын береді. Мұндағы .h кеңеймелі файлдар тақырыптық файлдар деп аталады. Тақырыптық файлдарда әртүрлі тұрақты мен таулар сипатталады. Функциялар прототиптері сақталады.
Препроцессор дерективасынан кейін main функциясы сипатталған бөлігі орналасады.
Main функциясы барлық программада міндетті түрде болуы тиіс, одан программа орындалуы басталып, Return инструкциясы шақырылғанда аяқталады.
Main функциясының денесі фигуралық жақшада орналасады.
Си тілінде барлық айнымалы оған программаның қандайда бір бөлігінен сілтеме жасалғанға дейін сипатталуы тиіс.
Процедуралық программалау есептеуіш техникаларының даму кезеңінен бастап таралған және әлі кең қолданыста. Және процедуралық тілдердегі программа орындауға тиісті әрекеттерді сипаттайды, әрекеттерге сәйкес нәтиже нақты бір процедуралардың көмегімен алынады. Олай болса, процедуралық программалау алгоритмдік ойлау қабілетімен негізделеді, демек ойлау қабілетін дамыту құралы ретінде қолданыла алады. Процедуралық тілдердің ішінде структуралық тілдерді айрықша атауға болады.
Структуралық тілдерде бір оператор көмегімен бүтін бір алгоритмдік құрылым жазылатынын белгілі. Алгоритмдік құрылымдар: ілесу, тармақ, циклдар екені бәрімізге аян. Ал, операциялық тілдерде мұны сипаттау бірнеше амал орындауды қажет етеді. Структуралық тілдер Pascal, C/C++ .
Процедуралық емес программалауға функциональдық және логикалық тілдер жататыны мәлім. Функционалдық тілдердегі программа қандай да бір функцияның есептелуін сипаттайды.
Компьютерді басқару анықталған алгоритм арқылы іске асырылады. Алгоритм - берілген есеп шешуінің нақты анықталған тәсілдерінің сипаттамасы. Алгоритмнің компьютерге түсінікті тілде берілуі бағдарламалау тілдері арқылы орындалады. Алдымен әрекеттер алгоритмі құрылады да, содан кейін құрылған алгоритм программалай тілдерінде жазылады. Нәтижесінде бағдарламалау тілінде толық, аяқталған, анық сипатталған бағдарлама мәтіні алынады. Алынған мәтін трансляторлар деп аталатын арнайы қызметтік қосымшалар арқылы машиналық кодқа аударылады немесе орындалады. Бағдарлама ауызша қарапайым тілдер, метатілдер арқылы немесе компьютерге түсінікті болуы үшін бағдарламалау тілдері арқылы беріледі .
Бағдарламалау тілдері - жасанды тілдер. Олардың табиғи тілдерден өзгешелігі мағынасы трансляторларға түсінікті шектеулі сандардан "сөздерден" тұрады және командалар жазулары (операторлар) өте қатаң тәртіппен жазылады. Осындай талаптар жиыны бағдарламалау тілдерінің синтаксисін, ал әрбір команданың мағынасы оның семантикасын құрайды.
Бағдарламалау тілдерінің дамуын бес кезеңге бөліп қарастырады. Бірінші кезеңге 50-ші жылдары алғашқы компьтерлер пайда болған кезде құрылған бағдарламалау тілдері кіреді. Бірінші бағдарламалау тілі "бір команда-бір жол" принципімен құрылған Ассемблер тілі. Екінші кезең 50-ші жылдар соңы мен 60-шы жылдар басы. Бұл жылдары айнымалы түсінігі енгізілген символикалық ассемблер құрылды. Үшінші кезең 60-шы жылдар. Бұл жылдары кез келген саладағы есептерді шешуге арналған жоғары деңгейлі әмбебап бағдарламалау тілдері пайда болды. 70-ші жылдар басы бағдарламалау тілдері даму кезеңдерінің төртінші кезеңіне аяқ басты [4].
ДК үшін бағдарламалауда машиналық-бағдарлау тілі: Аssembler, жоғарғы деңгейдегі процедуралық-бағдарлау тілі: Macro Assembler, Basic, Pascal, C, Ada, Apl, Cobol, Forth, GPSS, LOGO, Modula, PL/1,Snobol, Fortran жєне тағы басқалары; проблемалық-бағдарлаушы тілдер: Dbase жєне оның туындылары (FoxBase, Foxpro, paradox ) Lisp, Prolog жєне т.б
Соңғы жылдары терезелік интерфейстілерге программалар жазуда С/C++ сияқты обьектілі-бағдарлық тілдер басты рөлде болады.
Көптеген тілдерде ол жеке түрде трансляциялануы және бір-бірінен тәуелсіз пайдалануы мүмкін. Үлкен модульдер,егер олар өте көп санды немесе тым әртүрлі функцияларды орындайтын болса кең түрде қолдану үшін өте мамандандырылған болады және пайдалану қиын.
Қайда және не орындалу керектігін анықтайтын, программаны ұйымдастыру жеткіліксіз мәліметтерді енгізу және шығару форматтары мен есепті талдау салдары болып табылады.
Үлкен көлемдегі есептерді кіші көлемді есептерге бөлу процесі «құрылымдық жобалау» деп аталады. Осы пәннің шеңберінде:
- Жазу мен үлкен программаларды сүйемелдеудің жалғыз тәсілі – оларды модуль түрінде ұйымдасқан біраз функциялардың жиынтығы ретінде көрсету;
- Модульде ақпарат, ол өзінің есебін қалай шешетіндей жұмыс істемеуі керек;
- Әр модуль өзінің тікелей көршілерінің шағын тобымен ғана өзара әрекеттесуі қажет;
- Программаның құрамында өнделген мәліметтердің бейнесі табылуы керек.
Си- тілі жүйелік программалау тілі, бұл тілді компиляторлар мен операциялық жүйелерді жазуға және қолданбалы программаларды жазуға қолданылады. Мысалы, Нью–Джерси штатының Мюррей Хилл қаласында Bell laboratiories компаниясының ұйымдастыруымен 1969 жылы UNIX –операциялық жүйесі жазылды, бұл жүйе PDP-7 компьютеріне орнатылған. С тілінің негізгі идеяларының көпшілігі BCPL тілінен алынған.
Кез келген бағдарламада бірнеше процедура немесе функция қолданылуы мүмкін. Процедура мен функция сипаттау бөлігінде айнымалылар бөлігінен кейін жарияланады.
Бағдарламаның орындалуы негізгі бағдарламаның операторларынан басталады. Қажет жағдайда ішкі бағдарлама шақырылып, оның операторлары орындалады. Содан соң басқару қайтадан негізгі бағдарламаға беріліп, бағдарламаның орындалуы жалғасады.
Ішкі бағдарлама негізгі бағдарлама сияқты құрылады, яғни бағдарлама атауынан, операторлар бөлігінен және аяқталуынан құрылады.
Параметрдің екі түрі болады: формальды және шын мәніндегі параметрлер.
Шын мәніндегі параметр деп процедураны шақырар кездегі негізгі бағдарламадағы параметрлерді айтамыз. Ал формальды параметрлер ішкі бағдарламаның атауынан кейін көрсетіледі .
Формальды параметрлер тізімінде айнымалылар аталып, олардың типтері көрсетіледі.
Формальды параметрлерді екіге бөлуге болады:
1) параметр-аргументтер, яғни процедура үшін кіретін мәліметтер;
2) параметр-нәтижелер, осы параметр-нәтижелер арқылы процедураның жұмысының нәтижесін негізгі бағдарламаға қайтарады.
Параметр-нәтижелер тізімдерінің алдында var сөзі жазылады. (Си).
Функция – басқа мәліметтер алу үшін анықталған мәліметтерге қолданылатын компьютердің іс-әрекеті. Функцияның ерекшелігі – оның орындалуы барысында бір ғана нәтиже шығады, ал кіру параметрлері бірнешеу болуы мүмкін. Нәтиже функция атауымен белгіленіп, негізгі бағдарламаға беріледі.
Функциялардың жалпы түрі:
Си++ тіліндегі функция атауы FUNCTION <атауы> (<форм. параметрлер тізімі>); function <атауы> (<форм.
параметрлер тізімі>): <функция типі>
<функция типі> <атауы>(<форм. параметрлер тізімі>)
Денесі <операторлар бөлігі>
begin
<операторлар бөлігі >; end; {
<операторлар бөлігі>;
};
Аяқталуы END FUNCTION жоқ
Функция нақты іс-әрекетті орындауы үшін, ол прграммада шақырылуы керек. Функцияға қарау кезінде қойылған тапсырмаларды орындайды, ал жұмыс аяқталуы кезінде кейбір мәндерді шешімі ретінде қайтарады.
Функцияның шақырылуы өздігінен артынан дөңгелек жақша ішінде үтірмен ажыратылған аргументтер тізімі жүретін функцияның идентификатор нұсқауларын көрсетеді:
Функция аты (аргумент 1, аргумент2,...., аргумент N);
Функцияның әрбір аргументі келешекте есеп процесінде қолдану үшін функция днесіне берілетін константаны, өрнекті және айнымалыны көрсетеді. Функцияның аргументтер тізбегі бос болуы мүмкін.
Предикат функция немесе функтор болуы мүмкін. Тағы да стандарт предикаттар да кездеседі. Предикат бізге ақиқат немесе жалған деген мәнді қайтару үшін қажет.
Функция мен процедуралар үлкен программалаудың «модульдері» немесе құрылыстық блоктары болып табылады. Көптеген тілдерде ол жеке түрде трансляциялануы және бір-бірінен тәуелсіз пайдалануы мүмкін. Үлкен модульдер, егер олар өте көп санды немесе тым әртүрлі функцияларды орындайтын болса кең түрде қолдану үшін өте мамандандырылған болады және пайдалану қиын.
Программада қолдануға шамаланатын әрбір функция оның ішінде хабарлануы, анықталуы және шақырылуы керек. Әдетте функцияның хабарландырулары тақырыпты файлдарда орналастырылады, содан кейін олар #include директивасының көмегімен программаның бастапқы текстіне қосылады. Функцияның хабарламасы оның келесі түрде хабарланатын прототипін мазмұндайды:
Қайтымды тип FuncName (хабарлантын параметрлердің тізімі);
Мұндағы қайтымды тип – функциямен қайтарылатын деректердің типі. Егер деректердің қайтарылатын типі көрсетілмесе, онда компилятор int-ті функциямен қайтарылатын тип деп санайды. Хабарланатын параметрлердің тізімі үтірмен ажыратылған функцияның әрбір параметрлерінің атауы мен типін көрсетеді. Параметрдің атауын түсіруге рұқсат етіледі. Функцияның хабарланатын параметрлерінің тізімі бос болуы мүмкін. Функцияның прототипінің мысалдарын көрсетейік:
int swap(int, int);
double max (double par1, double par2);
void func();
Функцияның анықтамасы оның тақырыбына және мағыналық жүктемені таситын, фигуралық жақшаға алынған меншікті денесінен тұрады. Егер функция мән қайтарса, Void типінен жақсы, қайтарылатын мән сияқты функция денесінде сол типтің параметріндей return операторы қатысуы керек. Егер қайтарылатын мән келешекте программада (void) қолданылмайтын жағдай болса, яғни return операторы параметрсіз жалғасады және біржола түсіріледі, онда функциядан қайту жабылатын жақшаның жетістігі бойынша орындалады.
Функция нақты іс-әрекетті орындауы үшін, ол программада шақырылуы керек. Функцияға қарау кезінде қойылған тапсырмаларды орындайды, ал жұмыс аяқталуы кезінде кейбір мәндерді шешімі ретінде қайтарады [5].
Функцияның шақырылуы өздігінен артынан дөңгелек жақша ішінде үтірмен ажыратылған аргументтер тізімі жүретін функцияның идентификатор нұсқауларын көрсетеді:
Функция аты (аргумент 1, аргумент2,...., аргумент N);
Функцияның әрбір аргументі келешекте есеп процесінде қолдану үшін функция денесіне берілетін константаны, өрнекті және айнымалыны көрсетеді. Функцияның аргументтер тізбегі бос болуы мүмкін.
Функция басқа функцияларды шақыра алады, ал олар өз кезегінде үшіншілердің шақырылуын шығара алады және т.б. Сонымен қатар функция өзін шақыра алады. Бұл құбылыс программалауда рекурсия деп аталады. Бұрыннан көрсетілгендей, С++ тегі кез-келген программа міндетті түрде өзіне басты функция main() қосады.Программаны орындау осы функциядан басталады.
Достарыңызбен бөлісу: |