С++ Массивтер



Кіріспе
Массив дегеніміз – бір атаумен белгіленіп бір өлшеммен өлшенетін айнымалылардың реттелген тізбегі, әртүрлі индекстелген бір типті
.Массив элементтерінің барлығы да бір типте болуы тиіс.
Қасиеттері:
Массивтің қасиеттерін анықтайтын 4 негізгі принципі
• массивте элементтер деп аталатын
• массивтің барлық элементтері бі
• жадыда массивтің барлық элементі тізбектеліп т адрестің нөлдік инд• массив атауы тұрақты болып табылады және массивтің бірінші элементінің адресінен тұрады.
Mассивтің сипатталуы:
<элементтің типі> <массив аты> [<элементтер саны>];
Мысалы, int a[12]; {12 элементтен тұратын массив}
s[20]; {20 элементтен тұратын массив}
#def
Массивтің инициялизациялануы.
Массивті инициялизациялау 3 тәсілмен анықталады:
• массивті құру барысында;
• массивті құру барысында баст
құру барысында массивтің бастапқы мәндері берілм
char buk [ ]={‘A’,’.’,’*’,’-‘,’!’,’i’,’u’};
float x[4]={0,1.5,7.55,-3.3E1,0,1.1457890,-1.1};
Массив элементінің саны мәндер санына сәйкес келмесе (3-ші мысал) көпшілік компиляторда қате хабарланады, ал кейбірі автоматты түрде өлшемін үлкейтеді немесе жетпесе (мән) 0-мен толықтырылады. 2-ші мысалда массивтің элементтер саны мәндері санына қарай анықталады.
Символдық массивтер
Егер программада жолдық мәнде қарастыру қажет. Мұндай массивте жолдың әр элементі үшін жеке ұяшықтар бөлінеді және ең соңғы элементі ретінде жолдың соңы таңбасы (\о) қойылуы тиіс.
Символдық мысалдарына программа келтірейік:
#include
Осы номерге хабарласуды сұраймыз:87784799314 бағасына келісеміз
ПАЙДАЛАНЫЛҒАН ӘДЕБИЕТТЕР
Культин Н. Б. C/C++ в задачах и примерах. —
Семакин И. Г., Шестаков А. П. - Основы программирования:
Круглински Д., Уингоу С., Шеферд Дж.. Программирование на Microsoft
С. Бобровский Самоучитель программирования на языке C++ в системе
Секунов Н. Ю. Самоучитель Visual C++ .NET. — Санкт-Петербург.: Павловская Т.А., Щупак Ю.А.. С/С++. Структурное программирование: Практикум. -
Питер Торстеинсон, Роберт Оберг. Архитектура .NET и программирование с Майкл Хаймен, Боб Арнсон. Visual C++.NET для "чайников". :
Дэвис, Стефан Р. C++ для "чайников", 4-е издание. : Лабор В. В. Си Шарп: Создание приложений для Windows/
Мик Б. и др. «Практическое руководство по программированию» М.: Фокс Дж. «Программное обеспечение и его разработка» М.: Мир,
Керниган Б. Ритчи Д. Фьюэр А. «Язык программирования Си»
Кондратюк Е. «С++ трюки и эффекты»
Атымтаева М.С. «Программалау тілінін алгоритмі» 2005.
Павловская Т.А. «С\С++ Структурное программирование» М.: 2005.
Уэит, Мартин Д. «Язык Си» М.:1988ж. [28]

Кіріспе ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .3

I БӨЛІМ. C++ тіліндегі массивтер ... ... ... ... ... ... .. ... ... ... ... ... ... ... ... ... ... ... ...4
1.1 Массивтермен жұмыс ... ... ... ... ... ... ... .. ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..4
1.1.1 Массивтерді қолдану ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..5
1.2 Екіөлшемді массивтер ... ... ... ... ... ... .. ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...11
1.3 Сандық массивтерді қолдану ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .13
1.3.1 Сандық массивті өңдеу ... ... ... ... ... ... ... .. ... ... ... ... ... ... ... ... ... ... ... ... ...15
1.4 Массивтерді сұрыптау ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..16

II БӨЛІМ. Массивтің С++ тілінде қолданылуы ... ... ... ... ... ... . ... ... ... ... ... ...18
2.1 Екіөлшемді массивтің элементерінің қосындысын табу ... ... ... ... ... ... ... 18
2.1.2 Екіөлшемді бүтін сандар массивін кему ретімен орналастыру ... ... ... ...19
2.2 Екінші тәртіптегі шаршы матрицаның анықтауышын есептеу ... ... ... ... ..20
2.3 Элементтер қосындысы максимальды болатын шаршылы матрицаның жолының нөмірін анықтау ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 21
2.4 Пернетақтадан енгізілген шаршылы матрица сиқырлы шаршы болып табылатынын немесе болмайтынын тексеру бағдарламасы ... ... ... ... ... ... ... .22
Қорытынды ... ... ... ... ... ... .. ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 25
Қолданылған әдебиеттер ... ... ... ... ... ... . ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..26

1. Массив
Массив қызметтері және сипатталуы.

Массив дегеніміз - бір атаумен белгіленіп бір өлшеммен өлшенетін айнымалылардың реттелген тізбегі. Массив элементтерінің барлығы да бір типте болуы тиіс.
Массив дегеніміз - бір атпен аталған, әртүрлі индекстелген бір типті элементтер жиынтығы.
Қасиеттері:
Массивтің қасиеттерін анықтайтын 4 негізгі принципі бар:
-массивте элементтер деп аталатын мәндер сақталады;
-массивтің барлық элементтері бір типті болуы керек;
-жадыда массивтің барлық элементі тізбектеліп орналасады және бірінші элемент адрестің нөлдік индексін білдіреді;
-массив атауы тұрақты болып табылады және массивтің бірінші элементінің адресінен тұрады.
Mассивтің сипатталуы:
элементтің типі массив аты [элементтер саны];
Мысалы, int a[12]; {12 элементтен тұратын массив}
char s[20]; {20 элементтен тұратын массив}
#define KOL 10 {}
int [KOL];

Массивтің инициялизациялануы.

Массивті инициялизациялау 3 тәсілмен анықталады:
- массивті құру барысында;
- массивті құру барысында бастапқы тұрақтыларды көрсету;
- программаның орындалу барысында;
- құру барысында массивтің бастапқы мәндері берілмесе, онда автоматты түрде массив 0-мен толтырылады (NULL).
Мысалдар:
int a[3]={-1,0,1};
char buk [ ]={`A','.','*','-`,'!','i','u'};
float x[4]={0,1.5,7.55,-3.3E1,0,1.1457890 ,-1.1};
Массив элементінің саны мәндер санына сәйкес келмесе (3-ші мысал) көпшілік компиляторда қате хабарланады, ал кейбірі автоматты түрде өлшемін үлкейтеді немесе жетпесе (мән) 0-мен толықтырылады. 2-ші мысалда массивтің элементтер саны мәндері санына қарай анықталады.

Массив элементтерімен жұмыс жасау.

Массив элементтерін қолдану үшін квадрат жақшада бүтін мәнді индекс көрсетіледі. Мұндағы индекс массивтің базалық адресіне қарағанда элементтің орнынының ығысу адресін анықтайды. СС++ машиналық-бағытталған тіл болғандықтан массивтің бірінші элементті 0-ші индекстен басталып нөмірленеді, себебі массивтің бірінші элементті оның базалық адресінің басынада орналасады да бірінші элементтің адресін алу үшін ешқандай ығысу жасалудың қажеті жоқ. Мысалы, 5-ші элементтің адресін алу үшін базалық адрестен бастап, 4 элементке ығысу орындалуы тиіс. Массивпен жұмыс жасауда алдымен массив сипатталады. Мұнда квадрат жақшада оның элементтерінің саны көрсетіледі, ол өз кезегінде жадыдан бөлінетін ұяшықтар санын анықтайды.
Мысалы:
Int imas[6];
Сипатталуына сәйкес анықталған массивтің элементтерінің саны -6 және элементтері 0-ден 5-ке дейін индекстелгендіктен мынадай қолданылу жолы дұрыс болмайды:
Imas[6]=3667;
Массив элементін қолданғанда индекс ретінде үш түрлі мән беруге болады:
* Сандық тұрақты.
* Айнымалы.
* Өрнек.
Мұндағы мәндердің нәтижесі массивтің сипаттамасындағы мәліметтерге сәйкес логикалық корректі сан болуы тиіс.
Қолданылу мысалдары:
#define K 8
int imas[k]; *8 элементтерен тұратын массив сипаты *
int w=6; * w бүтін типті айнымалысының сипаты*
imas[3]; *массивтің 4-ші элементті *
imas[w]; * массивтің 7-ші элементі *
imas[k-6]; *массивтің 3-ші элементі * Индекс массивтің жадыдан қанша байт орын алатынынан тәуелсіз тікелей реттік нөмініне сілтейді.
Символдық массивтер
Егер программада жолдық мәліметтерді өңдеу қажет болса, онда оны символдар массив ретінде қарастыру қажет. Мұндай массивте жолдың әр элементі үшін жеке ұяшықтар бөлінеді және ең соңғы элементі ретінде жолдың соңы таңбасы (\о) қойылуы тиіс.
Символдық массивті енгізу және инициализациялау мысалдарына программа келтірейік:
#include stdio.h
main ()
{
char pan[12], razm[5];
static char opr[11]="информация";
razm[0]='б';
razm[1]='а';
razm[2]='й';
razm[3]='т';
razm[4]=\o';
printf("\n информатика сөзін енгіземіз:");
scanf("%s", pan);
printf("\n %s \n", pan);
printf("\n %s \n", razm);
printf("\n %s \n", opr);
}
Көріп отырғанымыздай символық массивке енгізілетін жолдық мәннің ұзындықтары бірге арттырылып алынып отыр. Ол орын жолдың соңы таңбасына арналады. Инициализациялау барысында ол таңб арнайы қойылады.
Массивтермен жұмыс істеуде кететін қателіктер:
oo алдын ала нолге келтірілмеген массивтер;
oo дұрыс сипатталмаған массивтер;
oo индекстерінің берілу реттілігі дұрыс емес массивтер.

Көп өлшемді массивтер
Бір типті элементтер жиынтығын өңдеуде олардың жадыда санына қарай және элементтерін қолдану моделіне қарай анықтап сипаттау мүмкіндігі бар. Соған байланысты массивтің өлшемі анықталады деп есептеледі. Демек, индекстерінің көрсетілуіне қарай бір өлшемді, екі өлшемді т.с.с. массивтерді анықтауға болады. Екі немесе одан да көп өлшемді массивтеркөп өлшемді массивтер деп аталады. Сәйкес өлшемде сипттау үшін квадрат жақшаларда олардың өлшемдері көрсетіледі. Мысалы, екі өлшемді массив екі квадрат жақшамен анықталып төмендегідей сипатталады:
float massiv[3][4];
Мұндағы massiv массив атауы, ал массивтің 12 элементі бар, массив 0-ден 2-ге дейін индекстелетін 3 жолдан және 0-ден 3-ке дейін индекстелетін 4 бағаннан тұрады.
Практикада массив өлшемі көбінесе үш өлшемдіден аспайды. Массивті екі өлшемді түрде сипаттағанмен ол ЭЕМ жадысында тізбектелген бірдей типті мәндер тізбегі ретінде орналатырылады да, массивтің алғашқы элементінің орынының адресі-базалық адресі массив атуына беріледі. Жалпы массив атауы - өз бетінше көрсеткіш болып табылады.
СС++ тілдерінде практикада математикалық матрица түрінде анықталатын есептерді қарастырғанда көп өлшемді массив құру міндетті емес. Оны бір өлшемді массив түрінде ұйымдастыруға болады. Ал, элементтерін ретімен қолдану үшін оның реттік нөмірін сәйкес анықтау формуласын дәл анықтаса жеткілікті. Себебі компьютерде көп өлшемді массив түрінде сипатталғаныменбірдей элементтер тізбегі басқарылады.
Мысалы, a[3,4] массивінің a[і,j] - ші элементін қолдану ретін қарастырайық. Ол үшін 12 элементтен тұратын бір өлшемді массивті төмендегідей сипаттайық:
Float a[12];
Ал, a[і,j] - ші элементін мына түрде өрнектеледі - a[i*4+j].
Мысалы, 2 жолы мен 3 бағанының қиылысуындағы элементті қолдану үшін оның a[1][2] индекстерімен анықталатыны белгілі. Ал жоғарыдағы a[i*3+j] өрнегіне қоятын болсақ a[1*4+2]=a[6] болады. Бұдан екінші жолдың 3-ші элементті тізбекте 7-ші екендігін, ал оны қолдану үшін массивтің базалық адресіне қарағанда 6 элементке жылжу қажеттігін аңғару қиын емес.

Программада бірдей типтегі элементтерді сақтау массив арқылы іске асырылады. Массивті сипаттауда оның элементтерінің алатын типі, массив атауы және өлшемі беріледі.
Массив_типі массив_атауы[өлшемі]
- массив - бір немесе бірнеше бірдей типтегі элементтерді сақтауға арналған-айнымалы;
- массивті сипаттау үшін оның типін, атауын және өлшемін береді;
- массивтің алғашқы элементі 0-ші элемент ретінде сақталынады;
- егер функцияда массив параметр ретінде берілсе, онда оның өлшемі көрсетілмейді.
Массив - бір типті элементтерден тұратын құрылым. Ол жадының үздіксіз бөлігін алып тұрады. Массивпен келесі оның қасиеттері байланысқан болады: аты, типі, өлшемі, шегі. Массивті сипаттау форматы төмендегідей болады:
Элемент _типі аты [тұрақты өрнек]
Тұрақты өрнек массивтің өлшемін анықтау үшін қолданылады, демек массивтің элементінің санын анықтайды.
Массивті хабарлау

Массивті хабарлау айнымалыны хабарлау тәрізді іске асады:
int A[10]; А атаулы массив берілген, оның 10 бүтін типті элементі бар.
Массив элементтері индекстелген атаулармен беріледі. Индекстің төменгі мәні 0: A[0], A[1],..., A[9].

Массивті сипаттау кезінде атаулы тұрақтыны қолдануға болады, ол # define директивасында сипатталған болады:
# define SZ 5 массив өлшемі
main()
{int a[SZ], i; of integer массиві және элемент нөмірі

for (i=0; i=5; i++)

scanf("%i", &a[i]);
Бір өлшемді массивті енгізу және шығару

Бірөлшемді массивті енгізу және шығару циклда орындалады.
Мысал:
# include stdio.h
# include conio.h
main()
{ int i, A[5];
clrscr();
printf("Массив элементін енгізу ");
for (i=0; i=5; i++)
{printf("A[%i]=", i );
scanf("%i", &A[i]);
}
Массивтермен жұмыс
Массив (array) бір классқа жататын объектілер тобын құрайды, сонымен бірге кез-келген объектіге оның жолда орналасуы бойынша қолдана аласыз. Мысалы, егер ... жалғасы

Сіз бұл жұмысты біздің қосымшамыз арқылы толығымен тегін көре аласыз.
Ұқсас жұмыстар
Бір өлшемді массивтер
С++ тіліндегі массивтер
Екі өлшемді массивтер
Массив элементтерінің түрлеріне шектеулер
Массивтерде компоненттер құру
Массивтер. Деректердің стандартты типтері
C++ екі өлшемді массивтер
Массивтер жайлы
Символдық және көпөлшемді массивтертер
C тіліндегі массивтер
Пәндер