Тақырып: Сызықтық және сызықтық емес мәліметтер құрылымдары. Динамикалық деректер құрылымдары Қарастырылатын сұрақтар



Pdf көрінісі
бет1/5
Дата06.11.2022
өлшемі0.58 Mb.
#464126
түріПрограмма
  1   2   3   4   5
7 лекСандТех



Тақырып: Сызықтық және сызықтық емес мәліметтер құрылымдары. Динамикалық деректер 
құрылымдары 
Қарастырылатын сұрақтар: Динамикалық деректер құрылымдары. Деректер түрлері. 
Жазу форматы, тағайындалуы және операторларды қолдану ерекшеліктері. 
Бос оператор. 

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

[<хабарлау>] 
. . . 
[<оператор>] 
. . . 

Құрама оператордың әрекеті, оның ішіндегі операторлар тізбігінің орындалуынан 
тұрады, егер кейбір оператор басқаруды программаның басқа жеріне жіберілмесе. Құрама 
опертордың басында хабарлаулар тұруы мүмкін. Олар осы блок үшін локальды айнамалыларды 
хабарлау үшін, немесе глобальды объектілердің әрекеттер облысының осы блокта кеңейту үшін 
берілген.
Құрама оператордың ішіндегі әр бір файлды таңбамен белгілеуге болады. Бірақ егер осы 
белгіленген операторларға басқаруды берілсе, онда орындау кезінде ішкі хабарлауларды 
жіберуге мүмкіндігі бар, сонда ішкі айнымалылардың мәндері дұрыс болмайды. 
Оператор-өрнек. 
<өрнек>; 
Өрнек, өрнекте көрсетілген операцияларға сәйкес есептеленеді. Өрнекте берілген мән 
ешқандай қолданылмайды. Осы оператор сол жерде жазуы мүмкін, егер синтаксис бойынша 
оператордың жазылуы мүмкін. 
x = y + 3; 
x++; 
 
 Көрсеткіштер және оларға қолданылатын операциялар 
Көрсеткіш-жадының адресін көрсететін айнымалы. 
Операция 

-объектілердің адресін береді. Сонан соң y=

x; мына операторлар х 
айнымалысының адресін у айнымалысына меншіктейді. 

операциясын константаға, 
өрнектегенде қолдануға болмайды. Унарлық операция (*)-өзінің операндыларын бөтен бір 
объектілердің адресі ретінде қолданылады. Сондықтан да z=*y z-ке у адресінде жазылған 
айнымалының мәнін меншіктейді. Егер у=*x; z=*y болса онда z=x; белгісінен тұратын 


объектілерді былай белгілеу қажет: int *a,*b,*c, char*d;/*-d адресінде жазылған айнымалының 
мәні char дегенді білдіреді. 
Көрсеткіштер өрнектерде де қолданылуы мүмкін: 
у=7; /7санын у адреске салады*/ 
*х*=5 /*x адресіндегі мәнде 5-ке көбейту.*/ 
(*z)++; /*-z адрестегі мәнге 1-ді қосады. 
Көрсеткіштерді арифметикалық өрнектерде операнд ретінде де қолдануға болады. Егер у 
көрсеткіш болса, онда у++ оның мәнін өсіреді. Енді ол келесі элементтердің адресі болдады. 
Көрсеткіш пен бүтін санды қосуға болады. 
Мыс: Программа 3 типті айнымалылар сипатталсын дейік. int a =5; char c = „a‟; float 
r=1,2E8; 
Бұл шамалар комипилятор жадында былайша орналасқан болсын: 
Жады 
FFC0 
FFC1 
FFC2 
FFC3 
FFC4… 
FFC6 
айнымалы 
а 


Мәндер 


1.2E8 
& - операциясы адресті береді. Бұл операцияны айнымалы атына қолдану сол 
айнымалының жадыдағы адресін береді жоғарыдағы мысалдағы айнымалылар үшін &a=FFC0; 
&c=FFC1; 
 
Көрсеткіштерге қолданылатын операциялар 
Көрсеткіштердің мәндерін өзгертетін өрнектер мен операторларды жазғанда есте 
сақталатын басты ереже бар: көрсеткіш мәнінің өлшем бірлігі оған сәйкес типтің өлшемі. 
Мысалы: *pti=*pti+1 немесе *pti++. Көрсеткіш pti мәнін 2-ге өзгертеді. Сондықтан ол FFC2 
мәнін қабылдайды. Басқа тип көрсеткіштері де сол сияқты *pti++- көрсеткіш мәнін 1-ге *pti++ 
көрсеткіш 4-ке арттырады . 
Көрсеткіштерді функция параметрлерін тасымалдау үшін қолдануға болады. Си тілінде тек 
қана бір жақты тасымалдау, яғни шақыратын программаларын фактілік параметрлер мәнін 
шақыратын функцияның формальдық параметрлерге тасу мүмкіншілігі бар. Қайтарылатын 
мәнді функцияның өзі алып жүреді. Яғни функция орындау барысында бас программа 
айнымалының мәндері өзгермейді, бірақ бұл ережені бұзуға болады. Егер функция параметрі 
ретінде көрсеткіштерді алсақ. Біз қарастырған мысалда функция swap() 2 айнымалысы 
шаманың мәндерін алмастырады. 
void swap (int a, int*b) 
{ int c; 
c=*a; a=b; *b=c; 

Егер бас программада мынадай үзінді бар болса:
int x=1; y=2; 
swap (&x,&y); 
print (“x=%d y=%d”, xy) онда экранға x=2 y=1 деп шығады. 


Достарыңызбен бөлісу:
  1   2   3   4   5




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

    Басты бет