Жиым элементтері қосындысын табу.
Жиым ішіндегі екі элементтің бір-бірімен орнын алмастыру. 3.Жиым элементтерін кері бағытта орналастыру.
4.Жиымның көрсетілген элементтерін өңдеу тәсілдері. 5.Жиымды сұрыптау (сорттау, реттеу) жолдары.
Жиымдардың сорттаудың қандай қарапайым әдістері бар?
Жиымдардың сорттаудың қандай күрделі әдістері бар?
Көпіршікті сорттау әдісін түсіндіріңіз.
Екі өлшемді жиымдар қалай сортталады?
Сорттау операциялары қай кезде жиі қолданылады?
Қандай сорттау әдісі кіші жиымдарды сорттауда ең тиімдісі болып табылады?
Қандай сорттау әдісі үлкен жиымдарды сорттауда ең тиімдісі болып табылады?
ЛЕКЦИЯ № 9
Тақырыбы: Құрылымды типтер. Құрылымдар мен санаулар
Лекция жоспары:
Тізбелер (перечисления – enum)
Құрылымдарды пайдалану
Құрылымдарды сипаттау
Құрылымдарды сипаттау
Құрылым өрістерін пайдалану
Құрылымдар жасау
Лекция мазмұны
1. Тізбелер (перечисления – enum)
Тізбелер (перечисления – enum)
Программа жазу кезінде бір типтегі әр түрлі мәндер қабылдай алатын шамаларды анықтау да кездесіп жатады. Ол үшін тізім түріндегі мәліметтер типін – тізбелерді қолданған жөн. Enum түйінді сөзі арқылы жасалған тізбелер программаны оқып түсінуді жеңілдетеді. Тізбелерге кіретін константалар int типінде болады. Келісім бойынша бірінші константа 0-ге тең, келесісі – 1-ге, сонан соң – 2-ге, т.с.с. бола береді. Бір тізбедегі барлық константалардың аттары әр түрлі болуы тиіс. Тізбенің жазылу форматы:
enum [тип_аты] {константалар_тізімі};
Тип аты программада осы типтегі айнымалыларды анықтау керек болған жағдайда беріледі. Компилятор осындай айнымалылардың константалар тізіміндегі мәндерді ғана қабылдауын қамтамасыз етеді. Константалар бүтін санды типте болуы тиіс және олар алғашқы мәндерді кәдімгідей түрде қабылдауы (инициалдануы) керек. Инициалдану болмаса, бірінші константа нөл болып саналады да, келесісі алдыңғысынан бірге артық мән қабылдайды.
Мысалы:
enum {two = 2,three,four,ten = 10,eleven,fifty = ten + 40};
мұнда three және four константаларына 3 және 4 мәндері, ал eleven константасына – 11 мәні меншіктеледі.
enum color {r,g,b}; // r=0, g=1, b=2
enum color {r=2,g=4,b=6}; // типті жариялау және инициалдау enum color {r,g=3,b}; // r=0, g=3, b=4
Компилятор int және enum типтерінің арасында айырмашылық бар деп есептемейді, сондықтан тізбе типіндегі айнымалыларға программада бүтін санды мәндер меншіктеле береді. Бірақ C++ тілінде мұндай меншіктеу типті нақты түрде келтіру арқылы орындалады, әйтпесе компилятор ескертпе жасайды. Мысалы:
enum weekdays { /* жұмыс күндер: */ Monday, Tuesday, Wednesday, Thursday, Friday};
/* Monday – 0 , Tuesday – 1, т.с.с. */ weekdays today; today = (weekdays)1;
Тізбедегі константалар аттары бірегей (қайталанбайтын) болуы тиіс, ал мәндері бірдей де бола береді. Тізбелерді қолданудың жай константаларды және #define директивасын пайдаланудан артықшылығы байланысқан константалардың көрнекілігінде жатыр және компилятор константаларға бастапқы мән бергенде олардың типін тексере алады.
Келесі программада С тілінде тізбемен жұмыс істеу мысалы көрсетілген.
#include
enum Months { /* айлар */
January = 1, February, March, April, May, June, July, August, September, October, November, December } months;
/* мұнда тізбе түрінде 1-ден 12-ге дейінгі сан тізбегі алынған, өйткені January айнымалысына 1 меншіктелген */ void main ()
{int present_month; int diff;
/* үстіміздегі ай нөмірін (1 ... 12) енгізу */ printf ("Input the present month number (1-12): "); scanf ("%d",&present_month);
months = December;
diff = (int) months - presentjnonth;
/* жыл соңына дейін ... ай қалды */
printf ("There are %d months till the end of the year\n", diff);
}
Программаны орындау нәтижесі:
Input the present month number (1-12): 5 There are 7 months till the end of the year
Press any key to continue
Достарыңызбен бөлісу: |