Функцияға көрсеткіштер


Жұмыс түрі:  Материал
Тегін:  Антиплагиат
Көлемі: 10 бет
Таңдаулыға:   

ҚАЗАҚСТАН РЕСПУБЛИКАСЫНЫҢ БІЛІМ ЖӘНЕ ҒЫЛЫМ МИНИСТРЛІГІ

«Л. Н. ГУМИЛЕВ АТЫНДАҒЫ ЕУРАЗИЯ ҰЛТТЫҚ УНИВЕРСИТЕТІ» КЕАҚ

Курстық жобаға

ТҮСІНДІРМЕ ЖАЗБА

АР2205 Алгоритмдеу жəне программалау

Жоба тақырыбы : Функцияға көрсеткіштер. Қолдану мысалдары

Жетекші, оқытушы Сагнаева С. К «___»2023

АБ -25 тобының студенті орындағанАхметжан Нұртілек. «___»2023

Жұмысты бағалау балы

(сан және сөз бойынша)

«___»2023

Астана, 2023

Мазмұны

1. Кіріспе . . . 3

1. 1. Функция көрсеткіштерінің тұжырымдамасына кіріспе.

1. 2. Бағдарламалаудағы функцияларға көрсеткіштердің маңыздылығы.

1. 3. Бұл тақырыптың өзектілігі және оның бағдарламалық жасақтаманы әзірлеудегі маңызы.

2. Теориялық бөлім . . .

2. 1. C++ бағдарламалау тіліндегі көрсеткіштермен жұмыс істеу негіздері

2. 2. Функция көрсеткіштері мен деректер көрсеткіштері арасындағы айырмашылықтар

3. Практикалық бөлім . . .

3. 1Функция көрсеткіштерін қолданатын код мысалдары

4. Қорытынды . . .

5. Пайдаланылған әдебиеттер тізімі

Кіріспе

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

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

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

Теориялық бөлім

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

Көрсеткіш-бұл объектінің жад мекен-жайы сақталатын айнымалы. Көрсеткіштер C++ де үш негізгі мақсат үшін кеңінен қолданылады: үйіндідегі жаңа объектілерді бөлектеу үшін, функцияларды басқа функцияларға беру массивтердегі және басқа деректер құрылымдарындағы элементтерді қайталау үшін. C++ стиліндегі бағдарламалауда шикі көрсеткіштер барлық осы сценарийлер үшін қолданылады. Дегенмен, шикі көрсеткіштер көптеген маңызды бағдарламалау қателіктерінің көзі болып табылады. Сондықтан, олар өнімділіктің айтарлықтай артықшылығын қамтамасыз ететін жағдайларды қоспағанда, оларды пайдалану өте ұсынылмайды және объектіні жоюға жауап беретін көрсеткіштің иесі қандай көрсеткіш екендігі туралы түсініксіздік жоқ. Заманауи С++ функцияларды беру үшін объектілерді, деректер құрылымдарын айналып өту үшін итераторларды және ламбда өрнектерін бөлектеу үшін ақылды көрсеткіштерді ұсынады. Шикі көрсеткіштердің орнына осы тіл мен кітапхана құралдарын пайдалану арқылы сіз бағдарламаны қауіпсіз, оңай күйге келтіріп, түсіну мен техникалық қызмет көрсетуді жеңілдетесіз.

1. Мекенжай айнымалы: бағдарламадағы барлық айнымалылар компьютер жадында белгілі бір орын алады. Көрсеткіш сол жердің мекен-жайын қамтиды.

"Мекен-жайлар" операторы (&) : & Операторы айнымалының мекен-жайын алу үшін қолданылады.

Мысалы: int x = 10;

int* ptr = &x;

2. Ажырату операторы (*) : оператор * көрсетілген мекенжайда сақталған мәнге қол жеткізуді қамтамасыз ету арқылы көрсеткішті ажыратады.

Мысалы: int y = *ptr;

3. Көрсеткіштердің түрлері : Көрсеткіштерде мекен-жайы болуы мүмкін айнымалының деректер түрін анықтайтын түрі бар.

Мысалы double айнымалысы үшін double* doublePtr;

4. Динамикалық жадты бөлу: “ New ” oператоры жадты динамикалық түрде бөлу үшін қолданылады. Ол бөлінген жад аймағының мекен-жайын қайтарады. Мысалы: int * dynamic ptr = new int;

5. Жадты босату: “ Delete ” операторы бұрын new операторы бөлген жадты босату үшін қолданылады. Мысал: delete dynamicPtr;

С++-та көрсеткіштерді қолдану мысалы:

#include <iostream>

int main() {

int x = 10;

int* ptr = &x;

std::cout << "айнымалы мәні x: " << x << std::endl;

std::cout << "айнымалы мекенжайы x: " << &x << std::endl;

std::cout << "көрсеткіштік функция көрсететін мән ptr: " << *ptr << std::endl;

// Динамикалық жадты бөлу

int* dynamicPtr = new int;

*dynamicPtr = 20;

std::cout << "динамикалық көрсеткіш : " << *dynamicPtr << std::endl;

// жадты босату

delete dynamicPtr;

return 0;

}

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

1. Сақтау деректер түрі: Деректер көрсеткіштері: белгілі бір деректер түрінің айнымалы мекенжайын сақтайды. Мысалы, Int* - бүтін айнымалыға көрсеткіш. Функция көрсеткіштері: белгілі бір қолтаңбасы бар функцияның мекен-жайын сақтайды (аргумент түрлері және қайтарылатын мән) .

Синтаксистер:

Деректер көрсеткіштері: int x = 10;

int* ptr = &x;

Функцияға көрсеткіштер: int add(int a, int b)

{ return a + b; }

int (*funcPtr) (int, int) = add;

Көрсеткіштердің арифметикасы: деректер көрсеткіштері: деректер массивтерін шарлау үшін пайдалануға болады.

int arr[5] = {1, 2, 3, 4, 5};

int* arrPtr = arr;

int element = *(arrPtr + 2) ;

Функцияға көрсеткіштер: көрсеткіштердің арифметикасын қолдамайды, өйткені жадтағы функциялар дәйекті түрде орналаспайды.

" Const " ұғымы:

1) Деректер көрсеткіштері: тұрақты көрсеткіштер болуы мүмкін (const Int*), яғни деректерді көрсеткіш арқылы өзгерту мүмкін емес.

2) Функция көрсеткіштері: тұрақты функцияның көрсеткіштері болуы мүмкін (const int (*func) (int, int) ), яғни функция деректерді өзгертпейді.

Түрлерді келтіру:

1) Деректер көрсеткіштері: деректер түрлері үйлесімді болса, түрлерді келтіруді қолдайды.

2) Функция көрсеткіштері: түрлерді келтіру оңай емес және функция қолтаңбасын нақты көрсетуді қажет етеді.

Функцияларды дәлел ретінде беру:

  • Функцияларды басқа функцияларға қалай беруге болады.
  • Функцияға көрсеткіштер арқылы іске асыру.

Функцияларды басқа функцияларға қалай беруге болады:

1) Функциялар объектілер ретінде: C++ - да функциялар бірінші кластағы объектілер болып табылады, бұл оларды басқа функцияларға параметрлер ретінде беруге, айнымалыларда сақтауға және функциялардан қайтаруға мүмкіндік береді.

2) Функционалды Нысандар: функционалды нысандар немесе ламбда өрнектері сияқты функцияны шақыру операторын (operator () ) шамадан тыс жүктейтін объектілерді пайдалану.

Функция көрсеткіштері арқылы іске асыру: Функция көрсеткіштерін жариялау: функция көрсеткіштерін жариялау үшін синтаксисті пайдаланыңыз. Мысалы: void myFunction(int) ;

void (*function Pointer) (int) = myFunction;

Көрсеткіштерді функцияға дәлел ретінде беру:

void processFunction(void (*func) (int), int value)

{ func(value) ; }

Функциялар шақырылған кезде көрсеткіштер синтаксисін қолдану:

processFunction(functionPointer, 42) ;

Үлгілермен бөлісу: әртүрлі типтегі функцияларды икемді беру үшін үлгілерді пайдалануға болады: template <typename FuncType>

void processFunction(FuncType func, int value) {

func(value) ; }

Стандартты функциялары: стандартты C++ кітапханасындағы көптеген функциялар Функцияларды дәлел ретінде қабылдайды, мысалы, <algorithm>алгоритмдері. Функционалды нысандарды пайдалану: көрсеткіштерден басқа, функционерлер немесе белгілі бір оператормен () сынып даналары сияқты Operator () шамадан тыс жүктейтін нысандарды беруге болады.

Функцияға көрсеткіштерді жариялау және инициализациялау C++ функциясындағы функцияға көрсеткіштерді жариялау және инициализациялау ұқсас декларациялар және айнымалыларды инициализациялау, бірақ функцияның қолтаңбасын ескере отырып. Мысалдар: // көрсеткішкіш функция жариялау

void (*simpleFuncPointer) () ;

// инициялизациялау

simpleFuncPointer = &someFunction;

(*simpleFuncPointer) () ;

Параметрлері бар мысал:

void (*paramFuncPointer) (int, double) ;

paramFuncPointer = &anotherFunction;

(*paramFuncPointer) (42, 3. 14) ;

Практикалық бөлім

1-мысал қарапайым функция және оған көрсеткіш:

#include <iostream>

void simpleFunction(int value)

{ std::cout << "Value: " << value << std::endl; }

int main() {

// Функция көрсеткішін жариялау және инициализациялау

void (*funcPointer) (int) = simpleFunction;

// Көрсеткіш арқылы функцияны шақыру

funcPointer(10) ;

return 0;

}

2-мысал функцияны дәлел ретінде беру:

#include <iostream>

void processFunction(void (*func) (int), int value) {

func(value) ;

}

void displayValue(int x) {

std::cout << "Value: " << x << std::endl;

}

int main() {

// Функцияны дәлел ретінде беру

processFunction(displayValue, 20) ;

return 0;

}

3-мысал “&” қолдану сілтеме қою

#include <iostream>

#include <math. h>

using namespace std;

int main()

{

int &a= a;

int &b= b;

cin>>a>>b;

int sarithmetic=(a+b) /2;

int sgeometric=sqrt(a*b) ;

cout<<"arithmetic:"<<sarithmetic<<endl<<"geometric:"<<sgeometric<<endl;

return 0;

}

4-мысал көрсеткішті функция

#include <iostream>

#include <math. h>

using namespace std;

int main()

{

double *a= new double;

double *b= new double;

cin>>*a>>*b;

double sarithmetic=(*a+*b) /2;

double sgeometric=sqrt(a*b) ;

cout<<"arithmetic:"<<sarithmetic<<endl<<"geometric:"<<sgeometric<<endl;

delete a;

delete b;

}

5-мысал

#include <iostream>

// Простая функция, которая выводит число

void printNumber(int x) {

std::cout << x << " ";

}

int main() {

// Функцияға көрсеткішті жариялау

void (*funcPointer) (int) = &printNumber;

// 1-ден 5-ке дейінгі сандар үшін функцияны шақыратын цикл

for (int i = 1; i <= 5; ++i) {

funcPointer(i) ;

}

return 0;

}

Қорытынды

... жалғасы

Сіз бұл жұмысты біздің қосымшамыз арқылы толығымен тегін көре аласыз.
Ұқсас жұмыстар
Көрсеткіштер массиві
Массивтермен жұмыста көрсеткіштерді пайдалану
Обьектілі - бағытталған программалау негіздері
Сандарды спираль бойынша орналастыру
VISUAL C программасындағы негізгі функциялар
СИ тіліндегі функциялар
Функцияны шақыру
Си тілінің пайда болу тарихы мен мүмкіндіктері
СИ тіліндегі символдық функциялар мен процедуралар
С тегі программа
Пәндер



Реферат Курстық жұмыс Диплом Материал Диссертация Практика Презентация Сабақ жоспары Мақал-мәтелдер 1‑10 бет 11‑20 бет 21‑30 бет 31‑60 бет 61+ бет Негізгі Бет саны Қосымша Іздеу Ештеңе табылмады :( Соңғы қаралған жұмыстар Қаралған жұмыстар табылмады Тапсырыс Антиплагиат Қаралған жұмыстар kz