C# тілінің операторлары Жалпы мәліметтер



бет14/14
Дата12.12.2021
өлшемі1,91 Mb.
#99725
түріПрограмма
1   ...   6   7   8   9   10   11   12   13   14
Байланысты:
2 тапсырма
Ata-analarÒ a arnalÒ an zhadynama, Ata-analarÒ a arnalÒ an zhadynama
типі[,] аты;
  • типі[,] аты = new тип [1_өлшем, 2_өлшем];
  • типі[,] аты = { инициалдау_тізімі };
  • типі[,] аты = new типі [,] { инициалдау_тізімі };
  • типі[,] аты = new типі [1_өлшем, 2_өлшем]
  • { инициалдау_тізімі };
  • Бұларға бір-бір мысал:
  • int[,] a; // әзірше элементтері жоқ
  • int[,] b = new int[2,3]; // элементтері 0-ге тең
  • int[,] с = {{1, 2, 3},{4, 5, 6 }; // new жазбаса да болады
  • int[,] d = new int[,] {{1, 2, 3},{4, 5, 6 }; // өлшемі
  • // есептеледі
  • int[,] e = new int[2,3] {{1, 2, 3},{4, 5, 6 }; // өлшемін
  • // артығымен сипаттау
    • n -1
    • 0
    • n
    • m
    • a00 a01 a02 a03
    • a10 a11 a12 3
    • a00 a01 a02 a03
    • a10 a11 a12 a13
    • a20 a21 a22 a23
    • m -1
    • 0
    • . . .
    • . . .
    • m жолдан және n бағанадан тұратын төрт бұрышты жиым (матрица),
    • мұнда а3,4
    • Осы жиым элементтерінің арифметикалық ортасы мен әр жолдағы оң элементтері санын анықтайық.
    • +
    • Ввод массива
    • sum = 0
    • начало
    • i = 1, m
    • nPosEI = 0
    • j = 1, n
    • sum += aij
    • aij > 0
    • ++nPosEI
    • Вывод nPosEI
    • Вывод sum/m/n
    • конец
    • using System;
    • namespace Listing6_2
    • { class Classl
    • { static void Main( )
    • { const int m = 3, n = 4;
    • int[,] a = new int[m, n] {
    • { 2,-2, 8, 9 },
    • {-4,-5, 6,-2 },
    • { 7, 0, 1, 1 }
    • };
    • Console.WriteLine("Исходный массив:");
    • for (int i = 0; i < m; ++i)
    • {
    • for (int j = 0; j < n; ++j)
    • Console.Write("\t" + a[i,j]);
    • Console.WriteLine( );
    • }
    • double sum = 0;
    • int nPosE1;
    • for (int i = 0; i < m; ++i)
    • {
    • nPosE1 = 0;
    • for (int j = 0; j < n; ++j)
    • {
    • sum += a[i, j];
    • if (a[i, j] > 0) ++nPosE1;
    • }
    • Console.WriteLine("В строке {0} {1} положит-х
    • элементов", i, nPosE1);
    • }
    • Console.WriteLine("Среднее арифметическое всех
    • эл-тов: " + sum/m/n);
    • }
    • }
    • }
    • Сатылы жиымдар
    • Сатылы жиымдарда оның жолдарындағы элементтер саны бірдей болмайды.
    • Компьютер жадында сатылы жиым төрт-бұрышты жиымнан басқаша сақталады: оның әр жолы элементтер саны әртүрлі болып келетін ішкі жиымдар түрінде болады.
    • Оның сипатталуы:
    • типі [][] аты;
    • Жиымның әр сатысына жады тікелей элементтер санына қарай жеке-жеке бөлінеді.
    • Мысалы, 2-өлшемді 3 жолдан тұратын сатылы жиым ашу керек болсын:
    • int[ ][ ] а = new int [3][ ];
    • // Оның 0-жолын анықтайық (5 элемент болсын)
    • а[0]=new int[5];
    • // Оның 1-жолын анықтайық (3 элемент болсын)
    • а[1] = new int[3];
    • // Оның 2-жолын анықтайық (4 элемент болсын)
    • а[2] = new int[4];
    • Мұндағы а[0] , а[1] және а[2] аттары арқылы пайдаланылатын жеке-жеке жиымдар.
    • Былай да сипаттай отырып, жады бөлуге болады:
    • int[ ][ ] а = { new int [5], new int [3], new int [4]};
    • Сатылы жиым элементтерін жазу кезінде әр өлшем бір тік жақшалар ішінде орналасады:
    • а[1][2] a[i][j] a[j][i]
    • System.Array класы
    • С# жиымдарының барлығы да Array атты базалық класс негізінде құрылған, оның қол-данушыға пайдалы бірнеше тәсілдері мен қасиеттері бар, солардың бірсыпырасын қа-рап шығайық.
    • Элементі
    • Түрі
    • Сипатталуы
    • Length
    • Қасиет
    • Жиым элементтерінің саны (барлық өлшемдері бойынша)
    • Rank
    • Қасиет
    • Жиым өлшемдерінің саны
    • Binary-Search
    • Статикалық тәсіл
    • Сұрыпталған жиымдағы екілік түрде іздеу
    • Clear
    • Статикалық тәсіл
    • Жиым элементтеріне келісім бойынша мән беру
    • Copy
    • Статикалық тәсіл
    • CopyTo
    • Тәсіл
    • Ағымдағы бірөлшемді жиым элементте-рінің бәрін басқа жиымға көшіру
    • Элементі
    • Түрі
    • Сипатталуы
    • GetValue
    • Тәсіл
    • Жиым элементінің мәнін алу
    • IndexOf
    • Статикалық тәсіл
    • Бір өлшемді жиымдағы элементтің алғашқы кездесу орнын анықтау
    • Lastlndex-Of
    • Статикалық тәсіл
    • Бір өлшемді жиымдағы элементтің соңғы кездесу орнын анықтау
    • Reverse
    • Статикалық тәсіл
    • SetValue
    • Тәсіл
    • Жиым элементінің мәнін орнату
    • Sort
    • Статикалық тәсіл
    • Бір өлшемді жиымдағы элементтерді реттеу
    • Length қасиеті әртүрлі ұзындықтағы жиым-дарды өңдеу алгоритмін жүзеге асырады, мысалы, сатылы жиымдарды өңдеу. Жиым өлшемін беру орнына осыны қолдану жиым шегінен шығып кетуді болдырмайды.
    • Келесі программада бір өлшемді жиыммен жұмыс істеу кезіндегі Array класы элемент-терін қолдану мысалы көрсетілген.
    • using System;
    • namespace Listing6_3
    • { class Classl
    • {
    • static void Main()
    • {
    • int[ ] a = {24, 50, 18, 3, 16, -7, 9, -1 };
    • PrintArray( "Исходный массив:", a );
    • Console.WriteLine( Array.IndexOf( a, 18 ) );
    • Array.Sort(a);
    • PrintArray( "Упорядоченный массив:“,a);
    • Console.WriteLine(Array.BinarySearch(a, 18) );
    • }
    • public static void PrintArray( string header, int[] a )
    • {
    • Console.WriteLine( header );
    • for ( int i = 0; i < a.Length; ++i )
    • Console.Write( "\t" + a[i] );
    • Console.WriteLine( );
    • }
    • }
    • }
    • Sort, IndexOf және BinarySearch тәсілде-рі статикалық тәсіл болып табылады, сол себепті оларды класс атын (экземпляр атын емес) көрсету арқылы пайдаланамыз да, жиым атын да береміз. Екілік іздеу тек рет-телген жиымға ғана қолданылады, ол IndexOf тәсіліндегі сызықтық іздеуден жылдам орындалады.
    • Программада 18-ге тең мәні бар жиым элементін осы екі тәсілмен де іздеу жүргізіледі.
    • Class1 класында қосымша PrintArray статикалық тәсілі сипатталған, ол жиымды экранға шығару үшін қолданылады. Оған екі параметр беріледі: header тақырып жолы және жиым. Жиым элементтерінің саны тәсіл ішінде Length қасиеті арқылы анықта-лады.
    • Сонымен, бұл тәсілді кез келген бір өлшемді жиымды экранға шығару үшін пайдалануға болады екен.
    • PrintArray тәсілін бір өлшемдіден басқа жиымдарға қолдану үшін оның екінші Array параметрін сипаттау керек, бірақ мұнда жиым элементінің мәнін GetValue тәсілі көмегімен алу қажет, өйткені Array класы үшін индекс арқылы элементті анықтау ісі қарастырыл-маған.
    • Жалпы түрде жиымды экранға шығару әрекеті былай атқарылады.
    • public static void PrintArray( string header.Array a )
    • { Console.WriteLine( header );
    • for ( int i = 0; i < a.Length; ++i )
    • Console.Write( "\t" + a.GetValue(i) );
    • Console.WriteLine();
    • }
    • Келесі программада Array класы элементтері сатылы жиым үшін қолданылған.
    • using System;
    • namespace ConsoleApplication1
    • {
    • class Classl
    • {
    • static void Main( )
    • {
    • int[ ][ ] a = new int[3][ ];
    • a[0] = new int[5] { 24, 50, 18, 3, 16 };
    • a[1] = new int[3] { 7, 9, -1 };
    • a[2] = new int[4] { 6, 15, 3, 1 };
    • Console.WriteLine("Исходный массив:");
    • for (int i = 0; i < a.Length; ++i)
    • {
    • for (int j = 0; j < a[i].Length; ++j)
    • Console.Write("\t" + a[i][j]);
    • Console.WriteLine();
    • }
    • Console.WriteLine(Array.IndexOf(a[0], 18));
    • }
    • }
    • }
    • Цикл ішінде жолдар бойынша әрбір жиым ұзын-дығының қалай анықталғанына назар аудару керек.
    • Foreach циклі ( әрбірі үшін)
    • Бұл оператор топталған мәліметтер элементтерін бір-бірден қарастыру үшін керек. Мұндай топқа жиым (массив) жатады. Foreach операторының қолайлылығы – жиым элементінің санын анықтап, оның индексін бір-бірден арттырып отырмаймыз, тек жиымның барлық элементтерін қарастыру қажеттілігін көрсетеміз. Оператордың жазылуы:
    • foreach ( типі аты in өрнек ) { операторлар }
    • Мұндағы аты циклдің жергілікті айнымалысын көрсетеді, ол өрнек түрінде аты берілген жиымның барлық элементтерінің мәнін біртіндеп қабылдай-ды. Цикл ішінде оның айнымалысымен амалдар орындалады.
    • Мысалы, мынадай жиым берілген болсын:
    • int[] a = {24, 50, 18, 3, 16, -7, 9, -1};
    • Жиым элементтерін экранға шығару былай орындалады:
    • foreach ( int x in a )
    • { Console.WriteLine( x ); }
    • Мұнда цикл ішінде орындалатын жалғыз оператор-ды жүйелі жақшаға алмаса да болады.
    • Енді бір өлшемді жиымды өңдейтін программаны қарастырайық, онда жиымның теріс элементтерінің қосындысы, саны және ең үлкен элементі анықта-лады.
    • using System;
    • namespace Listing6_5
    • { class Class1
    • { static void Main()
    • { int[ ] a = { 3, 12, 5, -9, 8, -4 };
    • Console.WriteLine( "Берiлген жиым:" );
    • foreach ( int elem in a ) // жиымды экранға
    • Console.Write( "\t" + elem ); // шығару
    • Console.WriteLine();
    • long sum = 0; // теріс элементтер қосындысы
    • int num = 0; // теріс элементтер саны
    • foreach ( int elem in a )
    • if ( elem < 0 )
    • { // теріс элементтер
    • sum += elem; // қосындысы
    • ++num; // саны
    • }
    • Console.WriteLine( "sum = " + sum );
    • Console.WriteLine( "num = " + num );
    • int max = a[0]; // максимал элемент
    • foreach ( int elem in a )
    • if ( elem > max ) max = elem;
    • Console.WriteLine( "max = " + max );
    • }
    • }
    • }


    Достарыңызбен бөлісу:
    1   ...   6   7   8   9   10   11   12   13   14




    ©www.engime.org 2024
    әкімшілігінің қараңыз

        Басты бет