Ііі. Есептің программасы



жүктеу 1,13 Mb.
Pdf просмотр
бет31/41
Дата06.02.2020
өлшемі1,13 Mb.
#28386
түріПрограмма
1   ...   27   28   29   30   31   32   33   34   ...   41

219 
 
V1=0; 
P1=&v1; 
*p1=42; 
Cout <
Cout <<*p1<
Орындалу нәтижесі экранға шығарылған кезде: 
42 
42 
Көрсеткіш типтері: 
Егер  функцияда  int  типті  айнымалыға  көрсеткіш  болатын,  типті  параметр  қажет 
болса, ол Көрсеткіш типін int* деп көрсетеді. Мысалы: 
Void manipulatePointer(int* p); 
Ал егер сол типті айнымалыны хабарлағыныз келсе, онда * символын типіне емес, 
айнымалынын атына қосып жазу керек: 
Int *p,*p2; 
Бір  айнымалы-Көрсеткіштын  мәнін  екінші  айнымалы-Көрсеткішқа  меншіктеуге 
болады,  нәтижесінде  бірінші  айнымалыда  сақталған  адрес  екінші  айнымалыға 
көшіріледі: 
Мысалы: Егер р1 айнымалыда v1 айнымалының адресі болса, онда опeратор  
p2=p1;  бұл  адресті  р2  айнымалыға  меншіктейді  де,  ол  да  v1  айнымалыға 
Көрсеткіш болады. Егер v1 айнымалысы ішінде 42 саны болса, оператор: 
cout<<*p2; 
экранға 42 санын шығарады: 
Көрсеткіш-айнымалылары бар, меншіктеу операторын пайдалану. 
 
 
 
 
 
 
 
 
 
 
 
 
 
Мысал: 
Cin >>*p1; 
*p1=*p2+7; 
Cout <<*p1; 
пернетақтаған  int  типті  мәнді  орналастырады  де,  7  санын  қосады  және  нәтижесін 
шығарады. 
Мысал: Көрсеткіштерге қолданылатын негізгі операциялар: 
p1=p2 


Р1 
Р2 
Орындалмай тұрып: 
Орындалғаннан кейін: 


Р1 
Р2 
*p1=*p2 


Р1 
Р2 
Орындалмай тұрып: 


Р1 
Р2 
Орындалғаннан кейін: 


220 
 
//Көрсеткіштермен 
және 
динамикалық 
айнымалылармен 
орындалатын 
операцияларды демонстрациялау программасы// 
# include  
Using std:: cout; 
Using std::endl; 
Int main() 

Int *p1, *p2; 
p1=new int; 
*p1=42; 
p2=p1; 
cout <<”*p1==”<<*p1<
жолға көшу үшін endl немесе “\n” жазылуы мүмкін, ол   С++ версиясына 
байланысты 
cout <<”*p2==”<<*p2<
*p2=53; 
Cout <<”*p1==”<<*p1<
Cout <<”*p2==”<<*p2<
p1=new int; 
*p1=88; 
Cout<<”*p1==”<<*p1<
Cout<<”*p2==”<<*p2<
Cout<<”Hope you got the point of this example!\n”; 
Return 0; 

Диалог мысалы: 
*p1=
=42 
*p2=
=42 
*p1=
=53 
*p2=
=53 
*p1=
=88 
*p2=
=53 
Hope 
you 
got 
the 
point 
of 
this 



p1 
p2 
p1=new int; 
 

p1 
p2 

б 
 

p1 
p2 
42 
*p1=42; 
 
 
p1 
p2 
4
р2=р1; 
г 
 
 
 
 
5
*р2=53; 
д 
 
 
 
 

р1=new int; 

5
 
 
 
 
8
*р1=88; 
ж 
5
Int *p1, *p2; 

в 


221 
 
example! 
2.Массивтер-айнымалылар және көрсеткіштер- айнымалылар. 
Массив  типті  айнымалы  жадыдағы  массивтің  бірінші  элементінің  адресі  деп 
түсіндірілді.  Енді  сіздің  біліміңіз  айнымалы  басқа  айнымалының  адресін  іште 
сақтайтын  болса  ол  Көрсеткіш  деген  анықтамамен  толықтырылды.  Сондықтан 
С++-те  массив  типті  айнымалы,    массивтің  бірінші  индекстелген  айнымалысына 
Көрсеткіш деп түсінуге де болады. 
Мысал: 
//Массив типті айнымалы Көрсеткіш екенің  көрсететін программа// 
#include  
Using std::cout; 
Using std::endl; 
typedef int* InPtr; 
Int main() 

IntPtr p; 
Int a[10]; 
Int index; 
For (index=0; index<10;index++) 
a[index]=index; 
p=a; 
for (index=0; index<10;index++) 
cout<<
cout<<”\n”; 
for (index=0; index<10; index++) 
p[index]=p[index]+1;                     // P mассивінің элементтерің өзгерткенде 
for (index=0; index<10; index++) //а массивінің элементтері өзгеретіне 
cout<
cout<<”\n”; 
return 0; 

Диалог мысалы: 
0 1 2 3 4 5 6 7 8 9  
1 2 3 4 5 6 7 8 9 10 
А  int  типті  айнымалыға  Көрсеткіш  болғандық  (  a[0])  ,  а  айнымалының  мәнің  р 
Көрсеткіш айнмалыға меншіктеуге болады: р=a; 
Онда  р[0],p[1],…  өрнегі  ,бұл  а  массив  элементтеріне  a[0],a[1],…  сілтеме  болып 
табылады. 
3. Көрсеткіштермен орындалатын арифметикалық операциялар: 
Программада төменде берілген код бар болсын делік: 
Typedef double* DoublePtr; 
DoublePtr d; 
D= new double[10]; 
Орындалу  нәтижесінде  d  айнымалысы  d[0]  элементінің  адресін  сақтайды.  d+1 
өрнегі d[1] элементінің адресін, d+2 - d[2] элементінің т.б. сақтайды. Мысалы: егер 


222 
 
double типті айнымалыға 8 байт (жадының сегіз үяшығы) қажет болса және d 2001 
адресің  іште  сақтаса,  онда  d+1  өрнегі  2009  адресін  қайтарады.  Түсіндірілген 
арифметикалық  операциялар  бұл  массив  элементтеріне  альтернативтік  мәлімет 
алу мүмкіндігі. Сонымен, arraySize-d  динамикалық массивтің өлшемін нұсқайтын 
айнымалы, циклi 
For (int i=0; i
Cout << *(d+i)<<” “;  
Массивтің  ішіндегі  мәліметерді  экранға  шығарады.  Бұл  цикл  төмендегі  циклге 
эквивалентті: 
for (int i=0; i
cout <
Көбейту және бөлу операциялары Көрсеткіштерға қолданылмайды.. 
d++  өрнегі,  d  Көрсеткіш-айнымалын  мәнің  көбейтеді,  d--  өрнегі,  Көрсеткіш-
айнымалыға, алдында тұрған элементтің адресің  кіргізіп, берілген мәнді азайтады. 
 Өзіндік жеке тапсырмалар: 
1.  Оперативтік  жадыда  вектор    Int  X[10]    векторы  b7f0  адресінен  бастап 
орналасқан. Мына өрнектердің мәнін табыңыз: 
а) Х+1; 
б) Х+5; 
в) Х-4; 
2.   Программада  Int 
P[]={0.2.4.5.6.7.9.12}  массиві  хабарланған.  Мына 
өрнектердің мәнің табыңыз: 
а) P[3]; 
б) *P; 
в) *[P+4]; 
г) *(P+P[2]); 
3.  Өсу тәртібімен, үш айнымалының мәнің сұрыптау функциясың жазыңыз:  
4.  [0,1]  диапазонына  түсетің  кездейсоқ  сандармен,  бүтін  санды,  бір  өлшемді 
массивті толтыру функциясың жазыңыз. 
5.  Заттық,  бір  өлшемді  массивтің  элементтерінің  орта  мәнің  есептейтің 
функцияны  жазаңыз.  Осы  функцияны,  ең  үлкен  орта  мәнді  жолды  анықтау 
үшін пайдаланығыз. 
Блиц-тест: 
1.  Int *p; 
Int a; 
… 
p=&a; 
p++; 
p--; 
…  
фрагментінің орындалу нәтижесінде р  қайда сілтейді? 
A) А мәні орналасқан орынға; 
B) Ешқайда; 
C) А орналасқан орыннан кейінгі ұяшыққа; 
D) А орналасқан орынға дейінгі ұяшыққа; 


жүктеу 1,13 Mb.

Достарыңызбен бөлісу:
1   ...   27   28   29   30   31   32   33   34   ...   41




©g.engime.org 2024
әкімшілігінің қараңыз

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