С тіліндегі массивтер түсінігі



1 С++ тіліндегі массивтер
1.1 Массив түсінігі
Пакаль тілінде типтер қарапайым және күрделі болып бөлінеді. Қарапайым типке - стандартты, саналатын, шектейтін типтер жатады. Күрделі типке массивтер, жиындар, жазулар, жолдар және файлдар жатады. Күрделі типтің элементтері қарапайым немесе күрделі типтер болуы мүмкін. Күрделі типті еңгізу программаны күшейтеді және күрделі есептерді шешуге мүмкіндік береді.
Тұрмыста тізбектелген сандарды, кестелерді, фамилия тізімдерін көп пайдаланамыз, олар бір өлшемді (жатық немесе тік жол), екі өлшемді (матрица) массив болуы жиын болуы мүмкін.
Паскаль тілінде жеке айнымалыларды ғана өңдеп қоймай, анйымалылардың жиынын, тобын да өңдеуге болады.
Массив дегеніміз - бір типтегі берілгендер жиыны. Басқаша айтқанла, массив - бір атауға біріктірілген айнымалылардың реттелген тізбегі. Айнымалылардың массив элементтерінің типтері бірдей болады. Массив бір ғана атпен беріледі. Сөйтіп, Паскаль тіліндегі массив ұғымы алгоритмдік тілдегі кесте ұғымына сәйкес келеді.
Индекс типі стандартты, бүтін немесе нақты тип бола алмайды. Программада индекс және индектің типі ұғымдарын шатастыруға болмайды.
Индекс типі массивті бейнелегенде пайдаланылса, индекс массив элементтерін белгілеу үшін операторлық бөлікте пайдаланылады. Индексті бейнелегенде қандай тип берілсе, индекс сол типте ғана болуы тиіс.
Индекс өрнек, айнымалы немесе тұрақты болып берілуі мүмкін.
Сондықтан да көп жағдайларда массивтерді индекті айнымалылар деп те атайды. Ал индекссіз айнымалыларды массивтерден ажырату үшін қарапайым айнымалылар дейді. Базалық типтегі айнымалыларға қандай амалдар қолданылса, массив элементтеріне де сондай амалдар қолдануға болады.
Егер массив атауында бір ғана индекс болса, онда ол массивті бір өлшемді, ал екі индекс болса - екі өлшемді және т.с.с. n индексті болса, n өлшемді массив дейді. Бір өлшемді массив элементтері вектор, ал екі өлшемді массив элементтері матрица деп аталады.
Массив элементтерін кездейсоқ сандармен де еңгізуге болады. Массивтерде қолданылатын амалдар:
oo Массивті толтыру;
oo Массив элементтерін алмастыру;
oo Массив элементтерін өшіру;
oo Массивке элементтер қосу;
oo Массив элементтерін сұрыптау;
oo Массивтерді түрлендіру.
ЭЕМ-нің жадында сандардың бір-бірімен байланысқан көптеген мәндерін сақтау үшін индексті айнымалылар, яғни массивтер қолданылады. Массив дегеніміз - бірыңғай шамалар тізбегінің бір атаумен аталып реттелген жиыны.
Математикадағы вектор, матрица осы массивке мысал бола алады. Тізбектің айнымалылары бір индексті элементтерден тұрса, онда бір өлшемді массив болады. Олардың индекстері сандармен немесе белгілі бір әріптермен жақша ішінде жазылады. Мысалы: A(1), C(12), K(100). Массивпен жұмыс істеу үшін оның әр элементінің мәні белгілі болуы тиіс. Сондай-ақ массивтің идентификаторы аты да жай айнымалының идентфикторы сияқты белгіленеді.
Паскаль тілінде массивтің номері индексі тік жақшаға алынып, жазылады, мысалы: 1,6; 4,9; 5; 8,9; 0,47 - мәндерінен тұратын A массивін былай жазамыз: A[1]=1,6; A[2]=4,9; A[3]=5; A[4]=8,9; A[5]=0,47. Егер есептеу барысында A1, A2, A3, ... A25 массиві кездессе, онда оны программа барысында A[25] түрінде жазамыз. Мұндағы A-массив аты болады, 25-оның индексінің қабылдайтын ең үлкен мәні болып есептеледі.
Паскаль тілінде массивті программада қолдану үшін алдымен оларды міндетті түрде арнаулы ARRAY ағылшын тілінен аударғанда - массив - операторы арқылы сипаттап жазу керек. Ол айнымалы - VAR немесе TYPE - тип бөлігінде көрсетіледі. VAR арқылы жазылуы:
VAR массив аты: ARRAY [бастапқы номері..соңғы номері] OF типі;
Көп жағдайда массивтің номері индексі 1-ден басталады, бірақ бұл міндетті емес. Сондай-ақ массив символдық типтен де тұрады. Символдық жол - STRING үшін массив келесі түрде өрнектеледі:
TYPE
STRING: ARRAY [0...255] OF CHAR;
Массивтің номерінің санына қарай қанша элементті массив екенін байқауға болады. Егер бірнеше массивтер бірыңғай типті және элементтер саны тең бола, онда оларды программада бір жолда сипаттауға болады, мысалы:
VAR A, B, C: ARRAY [1..25] OF REAL;
Мұнда A, B, C - массивтерінің мәндері 25 элементтен тұратын нақты сандар.
A[1], A[2], A[3], ... , A[25],
B[1], B[2], B[3], ... , B[25],
C[1], C[2], C[3], ... , C[25].
Паскаль тілінде мссивтер араында тең, тең емес немесе меншіктеу операторы амалдарын қолдануға болады. Мысалы, егер А және В массиві былау берілсе:
VAR
A, B: ARRAY [1..10] OF REAL;
Бұған үш амалды қолданғанда төмендегідей нәтиже береді:
Өрнек Нәтиже
oo А=B Егер әрбір А массиві элементінің мәні сәйкесВ В массиві элементтерінің мәніне тең болса.
oo АB Егер А массиві элементінің ең болмағанда бір мәні сәйкес В массиві элементінің мәні тең болмаса.
oo A:=B В массиві элементінің барлық мәні сәйкес массиві элементінің мәні меншіктеледі В массиві элементінің мәндері өзгеріссіз қалады.

1.2 Массивтермен жұмыс
Массив (array) бір классқа жататын объектілер тобын құрайды, сонымен бірге кез-келген объектіге оның жолда орналасуы бойынша қолдана аласыз. Мысалы, егер гимнасттар бір қатарда тұрса, бірақ сіз олардың аы-жөндерін білмесеңіз, олардың қатардағы жағдайына сай сөйлеген ыңғайлы: бірінші, екінші, үшінші...
Массивтердің қасиеттерін түсінген маңызды. Ең қарапайым жағдайды қарастырайық, бес гимнастты жаттығуларды жастақызатын бағдарлама жасау керек делік. Бұл бестікті құрдыңыз делік және келесі нұсқаулықтың көмегімен оларға: Athlete Julia, Andrea, Ricardo, Andy, Michael аттарын бердіңіз.
Содан соң сіз олардың әрқайсысына бір жаттығуды орындауға бұйрық беруге мәжбүрсіз:
JumpJack(Julia);
JumpJack(Andrea);
JumpJack(Ricardo);
JumpJack(Andy);
JumpJack(Michael);
Бұл әрине, өте қиын емес, бірақ егер гимнасттар саны жүз болса, мың болса қиын болары сөссіз.
Бұл мәселені шешудің стандартты әдісі гимнасттардың бүкіл тобына тау беріп, содан кейін нақты бір гимнасттың әрқайсысын бірінші, екінші, үшінші... деп атауда жатыр.
Бұл шамамен былай болады:
oo Бес гимнасттан тұратын топты Guy атауымен белгілеу
oo Индекстің (index) мәнін 1-ден 5-ке дейін қайталау;
oo Guy элементіне индекс позициясында жаттығуды орындау.
Циклдерді оқу бойынша біз білеміз, компьютер топтың барлық мүшелері жаттығуды орындау керектігін түсінеді, бірақ енді Guy массивінің қанша элементін қолданғыңыз келетініне қарамастан сізге кодтың мыңдаған жолын жазудың қажеті жоқ.
Енді бөлек гимнасттарға арналған бағдарлама мен гимнасттар массивіне арналған бағдарламан салыстырайық:
void mainprog() {
athlete Julia, Andrea, Ricardo, Andy, Michael;
JumpJack(Julia);
JumpJack(Andrea);
JumpJack(Ricardo);
JumpJack(Andy);
JumpJack(Michael);
}
void mainprog() {
athlete Guy[5]; Бес гимнасттан тұратын массивті жариялау
for (int which=0; which=4; which++) {
JumpJack(Guy[which]); Жаттығуды әрбір гимнасттың орындауы
}
}
Біріншіге қарағанда соңғы бағдарламаға гимнастардың саны әсер етпейді (циклдің аяқталуы жағдайында айнымалының мәні ғана өзгереді).
Сіз массивтің бір класстың объектілерінен тұратынын ұмытқан жоқсыз ба? Осылайша, қалауыныңызша сол бағдарламаны жүргірушілерге де қолдануға болады:
void mainprog() {
runner Guy[5]; Бес жүргізушілерден тұратын массивті жариялау
for (int which=0; which=4; which++) {
Guy[int which].run(); Әрбір жүргізушінің орын ауыстыруы
}
}

1.3 Массивтерді қолдану
Кез-келген типтегі объектілер масситерін қолдануға болады: гимнасттардың, жүргізушілердің, роботтардың, шеңберлердің және тіпті қарапайым, мысалы массивтің элементтері болып int немесе float типтеріндегі айнымалылар бола алады. С++ тілінде массив элементтері индекстің бүтін мәндерімен (int) белгіленеді. Массивтің бірінші элементіне 0-ге тең индекс мәні, ал екіншісіне - 1 және т.б. мәндер қосылады.
Алдыңғы бағдарламада Guy массиві бес элементтен тұрды: Guy[0] - Guy[4]. Guy[5] элементі жоқ, себебі элементтер барлығы бесеу.
Массивті жариялау кез-келген басқа объектінің жариялауына ұқсас, бірақ массив атынан кейін тік жақшада оның элементтерінің саны көрсетіледі. Мысалы, келесі нұсқаулықты қарастырайық:
int points[10];
Бұл нұсқаулықта 10 бүтін элементтен тұратын (0-ден 9-ға дейін нөмірленген) points атауы бар массив жарияланады.
Келесі нұсқаулықта 12 элементтен тұратын (0-ден 11-ге дейін нөмірленген) measurements массиві жарияланады
float measurements[12]; массив атауы элементтердің бүкіл тобын білдіреді. Соңынан тік жақшада индекстің мәні көрсетілген массив аты нақты ... жалғасы

Сіз бұл жұмысты біздің қосымшамыз арқылы толығымен тегін көре аласыз.
Ұқсас жұмыстар
С++ программалау тілінде Бір өлшемді массивтер. Сұрыптау
С++ тіліндегі массивтер
Екі өлшемді массивтер
Дәріс кешені с/с++ тілдері
Массив
Си программалау тілі
СИ тіліндегі динамикалық жады
Меншіктеу операторы, барлық тілде пайдаланылатын негізгі оператор
Turbo Pascal жүйесінде массивтерді ұйымдастыру технологиясы
СИ тіліндегі символдық функциялар мен процедуралар
Пәндер