223
E) Р ұяшығына.
2.
…
int *p;
int x[]={5,4,7};
p=x;
p++;
printf(“%i”,*p);
…
Орындалу нәтижесінде экранға не шығады?
A) 4
B) 5
C) 7
D) 6
E) 8
Бақылау сұрықтары:
1. С++ тілінде Көрсеткіш деп нені атайды ?
2. * операторын пайдалану үш мысалын келтіріп және әр қайсысы қалай
жұмыс жасайтының түсіндіріңіз.
3. Келесі код нені шығарады ?
Int *p1, *p2;
p1=new int;
p2=new int;
*p1=10;
*p2=20;
cout<<*p1<<” “ <<*p2<<”\n”;
p1=p2;
cout <<*p1<<” “<<*p2<<’\n”;
*p1=30;
cout<<*p1<<” “<<*p2<<”\n”;
Программа нәтижесі қалай өзгеретінеді, егер p1=30; жолы *p2=30; жолына
ауыстырылса.
4. Төменгі код нені шығарады?
Int *p1,*p2;
p1=new int;
p2=new int;
*p1=10;
*p2=20;
cout <<*p1<<” “<<*p2<<”\n”;
*p1=*p2;//бұл жол 3 сұрақтағы дай емес.
cout<<*p1<<” “<<*p2<<”\n”;
*p1=30;
cout<<*p1<<” “*p2<<’\n’;
Әдебиеттер:
[1],[4],[7],[8],[10-13],[15].
224
ЛАБОРАТОРИЯЛЫҚ ЖҰМЫС №11
Тақырыбы: СТРУКТУРАЛАР
Мақсаты: Студенттерді С/С++ тіліндегі
структуралық тип ұғымымен таныстыру, структура типті берілгендерді енгізу,
шығару және структуралық мәліметтерді қолданып программалау дағдыларын
қалыптастыру;
біріктіру
ұғымымен
таныстыру,
біріктіруді
қолданып
программалау
дағдыларын қалыптастыру;
программалауда Typedef құралын қолдану.
Қажетті материалдар мен жабдықтар: ДК, С/С++ тілінің IDE ортасы,
лабораториялық жұмысты орындауға арналған әдістемелік нұсқаулар.
Лабораториялық жұмыстың мазмұны және орындалу реті:
1. С/С ++ тілінде циклдық алгоритмдерді программалауға қатысты әдістемелік
нұсқау – матриалдарды алдын ала танысып меңгеру.
2. Ұсынылған мысалды орындау және талқылау.
3. Өзіндік жеке тапсырмалардың оқытушы ұсынған нұсқасын орындау.
4. Лабораториялық жұмыстың есебін (отчет) дайындап тапсыру.
Әдістемелік нұсқаулар:
Структура
Структура – бір атпен біріктірілген бір немесе бірнеше әр түрлі типті
айнымалылар тобы. Структура struct қызметші сөзімен құрылады. Структураның
жалпы құрылымы төмендегідей:
struct тег {
тип1 иден1;
тип2 иден2;
… …
типN иденN;
};
мұндағы тег мәліметтердің жаңа типі болып саналады және оны айнымалыны
сипаттауда қолдануға болады.
Сипатталған структура негізінде айнымалы құру үшін
struct <тег> <айнымалы>
С++ тілінде struct қызметші сөзін көрсетпесе де болады:
225
<тег> <айнымалы>
Айнымалыны структураны құру кезінде де анықтауға болады:
struct тег {
тип1 иден1;
тип2 иден2;
… …
типN иденN;
} <айнымалы>;
Егер структура типті басқа айнымалылар құрылмайтын болса, структура тегін
көрсетпеуге болады. Мұндай структура атаусыз (безымянный) деп аталады:
struct {
тип1 иден1;
тип2 иден2;
… …
типN иденN;
} <айнымалылар тізімі>;
Структуралар іштестірілген де болуы мүмкін:
struct тег1 {
тип1 иден1;
тип2 иден2;
тип3 иден3;
};
struct тег2 {
тип1 иден1;
тип2 иден2;
struct тег1 иден3;
};
Структура элементтерін нүкте операторының көмегімен алуға болады:
<айнымалы>.<элемент>
Кейбір жағдайларда структураны функция денесінде қолдану қажеттігі
туындайды. Ондай жағдайда функция прототипінде структураны функция
параметрі ретінде беру керек (С++ тілінде struct қызметші сөзін көрсету міндетті
емес):
// С және С++ тілдерінде
<функция типі> <функция аты> (struct <тег> <айнымалы>)
// Тек қана С++ тілінде
<функция типі> <функция аты> (<тег> <айнымалы>)
Структуралар массиві. Структуралар массивін сипаттау структура типті
айнымалыны сипаттауға ұқсас. Мысалы, struct <тег> <айнымалы-массив>
226
Структураларға көрсеткіш. Көрсеткіш келесі түрде сипатталуы мүмкін:
struct <тег> *<айнымалы>
Бұндай жағдайда структуралық айнымалының кез-келген элементін мына
әдістердің бірімен алуға болады:
(*<айнымалы>).<элемент> немесе <айнымалы> –> <элемент>
Біріктіру
Біріктіру структураған ұқсас. Жазылу ерекшелігі: struct қызметші сөзінің
орнына union сөзі қолданылады.
union тег {
тип1 иден1;
тип2 иден2;
… …
типN иденN;
};
Біріктірудің структурадан басты айырмашылығы жадыны ұйымдастыру
тәсілінде, яғни біріктірудің барлық элементтері жадыда бір байттан басталады.
Айталық, программада төмендегідей структура сипатталған болсын:
struct P
{ int i;
char ch;
long int L;
};
Бұл элементтердің жадыда орналасуы келесі түрде болады:
байт
байт
байт
байт
байт
байт
байт
i
ch
L
Структураның жалпы өлшемі оның өрістерінің ұзындықтарының қосындысына
тең.
Енді, дәл осындай біріктіруді қарастырайық:
union P
{ int i;
char ch;
long int L;
};
Бұл элементтердің жадыда орналасуы келесі түрде болады:
байт
байт
байт
байт
Достарыңызбен бөлісу: |