Задача этой книги дать краткое и четкое изложение языка С++ в соответствии со стандар том iso/iec 14882. Она предназначена для студентов, изучающих язык «с нуля»



Download 2 Mb.
bet37/232
Sana29.03.2022
Hajmi2 Mb.
#516205
TuriЗадача
1   ...   33   34   35   36   37   38   39   40   ...   232
Bog'liq
Т. А. Павловская C C . Программирование на языке высокого уровня

ВНИМАНИЕ
Ïðè îïèñaíèè ìaññèâîâ êâaäðaòíûå ñêîáêè яâëяþòñя ýëåìåíòîì ñèíòaêñèña, a íå óêaçaíè- åì ía íåîáяçaòåëüíîñòü êîíñòðóêöèè.

Ýëåìåíòû ìaññèâa íóìåðóþòñя ñ íóëя. Ïðè îïèñaíèè ìaññèâa èñïîëüçóþòñя òå æå ìîäèôèêaòîðû (êëaññ ïaìяòè, COnst è èíèöèaëèçaòîð), ÷òî è äëя ïðîñòûõ ïå- ðåìåííûõ. Èíèöèaëèçèðóþùèå çía÷åíèя äëя ìaññèâîâ çaïèñûâaþòñя â ôèãóð- íûõ ñêîáêaõ. Çía÷åíèя ýëåìåíòaì ïðèñâaèâaþòñя ïî ïîðяäêó. Åñëè ýëåìåíòîâ â ìaññèâå áîëüøå, ÷åì èíèöèaëèçaòîðîâ, ýëåìåíòû, äëя êîòîðûõ çía÷åíèя íå óêa- çaíû, îáíóëяþòñя:


int b[5] = {3, 2, 1}; // b[0]=3, b[1]=2, b[2]=1, b[3]=0, b[4]=0
Ðaçìåðíîñòü ìaññèâa âìåñòå ñ òèïîì åãî ýëåìåíòîâ îïðåäåëяåò îáúåì ïaìяòè, íå- îáõîäèìûé äëя ðaçìåùåíèя ìaññèâa, êîòîðîå âûïîëíяåòñя ía ýòaïå êîìïèëяöèè, ïîýòîìó ðaçìåðíîñòü ìîæåò áûòü çaäaía òîëüêî öåëîé ïîëîæèòåëüíîé nîíñòaí- òîñ èëè nîíñòaíòíûì âûðaæåíèåì. Åñëè ïðè îïèñaíèè ìaññèâa íå óêaçaía ðaç- ìåðíîñòü, äîëæåí ïðèñóòñòâîâaòü èíèöèaëèçaòîð, â ýòîì ñëó÷aå êîìïèëяòîð âû- äåëèò ïaìяòü ïî êîëè÷åñòâó èíèöèaëèçèðóþùèõ çía÷åíèé.  äaëüíåéøåì ìû óâèäèì, ÷òî ðaçìåðíîñòü ìîæåò áûòü îïóùåía òaêæå â ñïèñêå ôîðìaëüíûõ ïaða- ìåòðîâ (ñì. ðaçäåë «Ïaðaìåòðû ôóíêöèè», ñ. 77).
Äëя äîñòóïa ê ýëåìåíòó ìaññèâa ïîñëå åãî èìåíè óêaçûâaåòñя íîìåð ýëåìåíòa (èíäånñ) â êâaäðaòíûõ ñêîáêaõ.  ñëåäóþùåì ïðèìåðå ïîäñ÷èòûâaåòñя ñóììa ýëåìåíòîâ ìaññèâa.
inClude int main(){
COnst intn= 10; int i, sum;
int marks[n] = {3, 4, 5, 4, 4};
fOr (i = 0, sum = 0; ireturn 0;
}
Ðaçìåðíîñòü ìaññèâîâ ïðåäïî÷òèòåëüíåå çaäaâaòü ñ ïîìîùüþ èìåíîâaííûõ nîí- ñòaíò, êaê ýòî ñäåëaíî â ïðèìåðå, ïîñêîëüêó ïðè òaêîì ïîäõîäå äëя åå èçìåíå- íèя äîñòaòî÷íî ñêîððåêòèðîâaòü çía÷åíèå êîíñòaíòû âñåãî ëèøü â îäíîì ìåñòå ïðîãðaììû. Îáðaòèòå âíèìaíèå, ÷òî ïîñëåäíèé ýëåìåíò ìaññèâa èìååò íîìåð, ía åäèíèöó ìåíüøèé çaäaííîé ïðè åãî îïèñaíèè ðaçìåðíîñòè.


ВНИМАНИЕ
Ïðè îáðaùåíèè ê ýëåìåíòaì ìaññèâa aâòîìaòè÷åñêèé êîíòðîëü âûõîäa èíäåêña ça ãðaíè- öó ìaññèâa íå ïðîèçâîäèòñя, ÷òî ìîæåò ïðèâåñòè ê îøèáêaì.

Ïðèìåð. Cîðòèðîâêa öåëî÷èñëåííîãî ìaññèâa ìåòîäîì âûáîða. Àëãîðèòì ñîñòî- èò â òîì, ÷òî âûáèðaåòñя íaèìåíüøèé ýëåìåíò è ìåíяåòñя ìåñòaìè ñ ïåðâûì ýëå- ìåíòîì ìaññèâa, çaòåì ðaññìaòðèâaþòñя ýëåìåíòû, ía÷èíaя ñî âòîðîãî, è íaè- ìåíüøèé èç íèõ ìåíяåòñя ìåñòaìè ñî âòîðûì ýëåìåíòîì, è òaê äaëåå n-1 ðaç (ïðè ïîñëåäíåì ïðîõîäå öèêëa ïðè íåîáõîäèìîñòè ìåíяþòñя ìåñòaìè ïðåäïîñëåäíèé è ïîñëåäíèé ýëåìåíòû ìaññèâa).


inClude int main(){

COnst int n = 20; // êîëè÷åñòâî ýëåìåíòîâ ìaññèâa


int b[n]; // îïèñaíèå ìaññèâa
int i;
fOr (i = 0; i> b[i]; // ââîä ìaññèâa
fOr (i = 0; i// ïðèíèìaåì ça íaèìåíüøèé ïåðâûé èç ðaññìaòðèâaåìûõ ýëåìåíòîâ: int imin = i;
// ïîèñê íîìåða ìèíèìaëüíîãî ýëåìåíòa èç íåóïîðяäî÷åííûõ: fOr (intj=i+ 1; j// åñëè íaøëè ìåíüøèé ýëåìåíò, çaïîìèíaåì åãî íîìåð: if (b[j] < b[imin]) imin = j;
int a = b[i]; // îáìåí ýëåìåíòîâ b[i] = b[imin]; // ñ íîìåðaìè b[imin] = a; // i è imin
}
// âûâîä óïîðяäî÷åííîãî ìaññèâa:
fOr (i = 0; i}
Ïðîöåññ îáìåía ýëåìåíòîâ ìaññèâa ñ íîìåðaìè i è imin ÷åðåç áóôåðíóþ ïåðåìåí- íóþ a ía i-ì ïðîõîäå öèêëa ïðîèëëþñòðèðîâaí ía ðèñ. 1.9. Öèôðû îêîëî ñòðåëîê îáîçía÷aþò ïîðяäîê äåéñòâèé.



























Èíäåêñ: Ìaññèâ:
i i min

a

Download 2 Mb.

Do'stlaringiz bilan baham:
1   ...   33   34   35   36   37   38   39   40   ...   232




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish