9.2 Көп өлшемді массивтер
Анықтама бойынша массивтер бір типтегі айнымалыларды және бір өлшемді массивтерді біріктіреді. Біріктірілген массивтер көп өлшемді массивтер деп аталады.
Егер біріктірілген массивтердің өлшемдері бірдей болса, онда ондай көп өлшемді массивтер «тіктөртбұрышты» массивтер деп аталады.
Егер біріктірілген массивтердің өлшемдері бірдей болмаса, онда ондай көп өлшемді массивтер «сынық» (jagged) массивтер деп аталады.
Тіктөртбұрышты массивтермен жұмыс жасауға арналған кейбір алгоритмдер алдыңғы есепте қарастырылды.
«Сынық» массивтер элементтерін құру және өңдеу процестерін қарастырайық.
9.2-есеп. Кәсіпорын иесінің 5 сауда орыны бар. Әрбір сауда орынында түрлі тауарлар саны 10 мен 30 арасындағы кездейсоқ сан болады. Әрбір тауардың құны 10 мен 70 ш.б. аралығындағы кездейсоқ сан болады. 5 сауда орынында өткізілетін тауар санын және олардың жалпы құнын табу керек.
Бағдарлама коды:
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main()
{
int[][] mtovar = new int[5][];
int k = 0;
int j,kol,cto;
string buf;
Random rnd = new Random();
//Сынық массивті жариялау
for (int i = 0; i < 5; i++)
{
j = rnd.Next() % 21 + 10;
mtovar[i] = new int[j];
}
Console.WriteLine("Matrisa kurildi!!");
kol = 0; cto = 0;
// Сынық массивті құру және экранға шығару
for (int i = 0; i < 5; i++)
{
kol = kol + mtovar[i].Length;
for ( j = 0; j < mtovar[i].Length; j++)
{
mtovar[i][j] = rnd.Next() % 61 + 10;
cto = cto + mtovar[i][j];
Console.Write(mtovar[i][j]+" ");
}
Console.WriteLine();
}
Console.WriteLine();
Console.WriteLine("Tayar sani = {0}", kol);
Console.WriteLine("Olardin bagasi = {0}", cto);
Console.WriteLine("Enter pernesin basiniz");
Console.ReadLine();
}
}
}
Бағдарлама жұмысы:
Matrisa kurildi!!
16 26 20 29 15 25 67 68 12 12 34 61 14 36 52 58 24 50 26 38 40 58 34 20 54 64 27
57 18
27 36 14 29 36 18 52 50 23 41 35 65 24 70 46 32 18 13 41 59
40 33 33 19 39 60 29 60 68 46 19 69 20 60 56 47
27 42 49 28 68 18 11 16 62 44 23 59 59 59 43 58 57 69 46 62 10 66
61 44 57 63 53 45 32 37 52 32 21 67 12 47 35 20
Tayar sani = 103
Olardin bagasi = 4136
Enter pernesin basiniz
Сынық массивті жариялаған кезде екінші индекс өлшемі көрсетілмейді, индекстер квадрат жақшаға алынады (үтір қолданылмайды), мысалы:
int[][] mtovar = new int[5][];
«Бағаналар» саны әр сынық массив «жолдарды» үшін динамикалық түрде анықталады:
j = rnd.Next() % 21 + 10;
mtovar[i] = new int[j];
Сынық массив элементтеріне әрбір индексті квадрат жақшаға орналастыру керек, мысалы:
mtovar[i][j] = rnd.Next() % 61 + 10;
Достарыңызбен бөлісу: |