Аргументтерді айнымалы(сілтеме) арқылы беру
Автор: Ермұрат Минкаев • Апрель 26, 2023 • Реферат • 1,298 Слов (6 Страниц) • 204 Просмотры
Мазмұны
- Кірісіпе
- Теориялық тапсырма
- Практикалық тапсырма
- Қорытынды
Оглавление
Теориялык тапсырма 1
Аргументтерді мән бойынша беру 1
Аргументтерді айнымалы(сілтеме) арқылы беру 2
Практикалық тапсырма 3
Қорытынды 6
Пайдаланылған әдебиеттер 7
Кіріспе
Бағдарламалауда функция аргументтері берудің екі негізгі әдісіне ие: мәні бойынша және айнымалы(сілтеме) бойынша. Аргументтерді мән бойынша беру кезінде функция айнымалылар мен тұрақтылардың мәндерінің көшірмесін алады. Бұл әдістердің айырмашылығы мынада: аргументтерді сілтеме арқылы беру кезінде функция объектінің өзімен жұмыс істейді, ал мән бойынша беру кезінде оның көшірмесімен жұмыс істейді.
Теориялык тапсырма
Аргументтерді мән бойынша беру
Мысалы,
#include <iostream>
using namespace std;
void kvadrat(int);
int main()
{
int n=4;
cout << "Before kvadrat: n = " << n << endl;
kvadrat(n);
cout << "After kvadrat: n = " << n << endl;
}
void kvadrat(int m)
{
m = m * m;
cout << "In kvadrat: m = " << n << endl;}
Int типті санды қабылдайтын және оны квадраттайтын kvadrat функциясын қарастырайық. Егер айнымалы немесе тұрақты мән функцияға берілсе, онда функция объектінің өзі емес, мәннің көшірмесін алады. main функциясында, kvadrat функциясын орындағанға дейін және кейін, kvadrat-қа дәлел ретінде берілген n айнымалысының мәні көрсетіледі. Алайда, функцияны орындау нәтижесі функцияға берілетін n айнымалысының мәніне әсер етпейді. Ол өзгеріссіз қалады.Бұл функцияны құрастыру кезінде оның параметрлері үшін бөлек жад бөлімдері бөлінетіндіктен болады. Функция шақырылған кезде аргументтердің мәндері есептеледі.
Мысал:
#include<iostream>
using namespace std;
int sum1(int i,int b,int d)
{ int result;
result = i+b+d;
return result;
}
int main ()
{
int p,d1,l;
int a,b,c;
cin>>p>>d1>>l;
cout<<"\n summa p,d1,l="<<sum1(p,d1,l)<<endl;
cin>>a>>b>>c;
cout<<"\n summa a,b,c="<<sum1(a,b,c)<<endl;
return (0);
}
Бұл жерде жоғарыда айтып кеткендей негізгі main функциясына берілген мәндер өзгермейтінін және sum1 функциясы оның көшірмесін ғана алатындығын көруге болады.
Аргументтерді айнымалы(сілтеме) арқылы беру
Аргументтерді сілтеме арқылы беру кезінде аргументтің мәні берілмейді, бірақ оның адресі беріледі. Бұл жағдайда сілтеме аргументі функцияны орындау кезінде мәнді көшірмейді және аргументтің мәнін өзгертуге мүмкіндік береді. Бұл жағдайда аргументті сілтеме арқылы беру функцияның бірнеше мәндерін қайтаруы мүмкін. Функция аргументтерінің әртүрлі түрлерін қарастырайық: функцияларда Char, int, float, double және массив типтерінің аргументтері болуы мүмкін. Сондай-ақ, void қызметтік сөзімен анықталатын функция аргументі болмауы мүмкін.
Мысалы,
#include <iostream>
using namespace std;
void kvadrat(int&);
int main()
{
int n=4;
cout << "Before kvadrat: n = " << n << endl;
kvadrat(n);
cout << "After kvadrat: n = " << n << endl;
}
void kvadrat(int& m)
{
m = m * m;
cout << "kvadrat: m = " << m << endl;
}
Бұл код сілтеме бойынша параметрді қабылдайтын және оның мәнін квадратқа өзгертетін және осы мәнді экранға шығаратын kvadrat() функциясының анықтамасын қамтиды.Әрі қарай, main() функциясында 4 мәні бар n бүтін айнымалы анықталады. Содан кейін экран квадрат функциясын шақырғанға дейін n мәнін көрсетеді.Содан кейін kvadrat функциясы сілтеме арқылы берілген n аргументімен шақырылады. Квадрат функциясының ішінде аргумент мәні квадратталып, экранға шығарылады.Содан кейін негізгі функция қайтадан n мәнін шығарады, ол квадрат функциясын шақырғаннан кейін өзгеріп, 16-ға тең болды. Яғни,функция негізгі мәнді өзгертіп тұр.
...