int k[ ]; // Қате!
int k[3]; // Қате!
int [3] k; // Қате!
Жиымды сипаттау үшін мәлімет типінен соң, бос тік жақшалар қойылады да, оның ат
ы жазылады:
float[ ] ar;
ar айнымалысының типі —
жылжымалы нүктелі сандар жиымы (нақты сан), ал негізінде ar—
бұл вариантуыш. С# тілінде жиым сілтемелік тип
(refe-
rence type) болып табылады. Сөз тіркесі де осы типке жатады.
26
ar айнымалысының алғашқы анықталған мәні —
null. Бұл жиымға компьютер жадынан орын бөлу үшін, new операторы арқылы жиымдағы эл
емент-тер санын көрсету керек:
ar = new float[3] ;
Жоғарыдағы екі операторды біріктіріп жазуға да болады:
float[ ] ar = new float[3];
Бұған қоса, жиымды сипаттау кезінде оны бірден инициалдауға болады:
float[ ] ar = new float[3] { 3.14, 2.17, 100 };
Инициалдау мәндерінің саны жиымда көрсетілген элементтер санымен сәйкес болуы т
иіс.
Инициалдау кезінде жиым элементтері санын бермеуге де болады:
float[ ] аr = new float[] { 3.14, 2.17, 100 };
new сөзін жазбауға да рұхсат етілген:
float[ ] аr = { 3.14, 2.17, 100 };
Кейіннен программада arайнымалысына басқа өлшемдегі float типін меншіктеуге де б
олады:
ar = newfloat[5];
Мұнда float типті 5 мәнді сақтауға арналған жады бөлінеді, алғашқыда олардың бәріні
ң де мәні 0-ге тең деп саналады.
Алдыңғы бөлінген float типті 3 мәнді сақтауға арналған жады қоқыс ретінде (garbage c
ollection) өздігінен босатылады, өйткені С# тілінде delete операторы жоқ.
Сөз тіркестеріндегі сияқты жиым элементте-
рінің санын мынадай өрнекпен анықтауға болады:
ar.Length;
С# тілінде бір өлшемді жиымдар және одан өзге жиымдардың жиымы болып табылат
ын екі (одан да көп) өлшемді төртбұрышты және сатылы (тураланбаған -
jagged) жиымдар құру мүмкіндік бар.
6 бүтін саннан тұратын ажиымының теріс элемент-
терінің қосындысы мен санын және ең үлкен элемен-тін анықтайтын программа құрамыз.
using System;
namespace Listing6_1
{ class Class1
{ static void Main()
{ const int n = 6;
int[ ] a = new int[n] { 3, 12, 5, -9, 8, -4 };
Console.WriteLine("Берілген жиым:" );
for ( int i = 0; i < n; ++i ) Console.Write( "\t" + a[i] );
Console.WriteLine( );
long sum = 0; // теріс элементтері қосындысы
int num = 0; // теріс элементтері саны
for ( int i =0; i < n; ++i )
if ( a[i] < 0 )
{ sum += a[i]; ++num; }
Console.WriteLine(" Теріс сандар қосындысы = " + sum );
Console.WriteLine(" Теріс сандар саны = " + num );
int max = a[0]; // максимал элемент
for ( int i = 1; i < n; ++i ) if ( a[i] > max ) max = a[i];
Console.WriteLine( "Максимал элементі = " + max );
}
}
}
|