Массивы в С#. Массивом называют упорядоченную последовательность элементов одного типа. Каждый элемент массива имеет индексы, определяющие порядок элементов.

Презентация:



Advertisements
Похожие презентации
Массивы Массивом называют упорядоченную последовательность элементов одного типа. Каждый элемент массива имеет индексы, определяющие порядок элементов.
Advertisements

Коллекции классов Лекция 12. С помощью коллекций вместо создания структур данных программист использует готовые структуры данных, не заботясь об их реализации.
Создание клонируемых объектов (интерфейс IClonable)
ИТЕРАТОРЫ И LINQ Лекция 1. Интерфейс IEnumerable и IEnumerator Любая коллекция реализует интерфейс IEnumerable. public interface IEnumerable : IEnumerable.
Классы в С#. Перечисления С# Перечисление задает конечное множество возможных значений, которые могут получать объекты класса перечисление. [атрибуты][модификаторы]
Масивы Одномерные массивы int[] a1 = new int[10]; int[] a2 = {1, 2, 3, 4}; int[] a3 = new int[]{1, 2, 3, 4}; int[] a4 = new int[4]{1, 2, 3, 4}; int size.
Синтаксис языка Java. Символы и синтаксис Перевод строчки эквивалентен пробелу Регистр в именах различается.
Перечисления и массивы 1 ©Павловская Т.А. (НИУ ИТМО)
Строки в С#. Отдельные символы, чаще всего, его называют типом Char. Строки постоянной длины, часто они представляются массивом символов Char[]. Строки.
Перегрузка операторов x = a + b результат 1-й операнд2-й операнд оператор По количеству операндов операторы делятся на: унарные (один операнд) бинарные.
САОД кафедра ОСУ 1 Основные абстрактные типы данных Схема процесса создания программ для решения прикладных задач ВУ.
Свойства, деструкторы классов. Обработка исключительных ситуаций Лекция 3.
В С# предусмотрены средства для создания пользовательских классов-контейнеров, к внутренним элементам которых можно обращаться при помощи того же оператора.
Разработчики: Деникин А.В., Деникина Н.В.1 МАССИВЫ В C#. Содержание Принципы работы с массивами Типовые алгоритмы обработки массивов Сортировка массивов.
b5_java_s4
Наследование Наследование – это отношение является между классами. class Person { string first_name; int birth_year;... } class Student : Person { float.
Высокоуровневые методы информатики и программирования Лекция 14 Интерфейсы.
Двумерные массивы. В двумерном массиве каждый элемент фиксируется номером строки и столбца, на пересечении которых он расположен. Положение элемента в.
Методы классов. Методы класса [атрибуты][модификаторы] {void|тип_результата_функции} имя_метода ([список_формальных_аргументов]) { тело метода} Список.
ДЕЛЕГАТЫ Лекция 7 1. Зачем нужны делегаты 2 И данные, и код располагаются в памяти компьютера по определенным адресам. Передача адресов данных в C# происходит.
Транксрипт:

Массивы в С#

Массивом называют упорядоченную последовательность элементов одного типа. Каждый элемент массива имеет индексы, определяющие порядок элементов. Массивы бывают: Статические - если все границы заданы константными выражениями. Динамические - если выражения, задающие границы, зависят от переменных. Одномерные массивы Многомерные массивы Ступенчатые массивы

Одномерные массивы int[] k; //k – ссылка на одномерный массив k=new int [3]; //Определяем массив из 3-х целых k[0]=-5; k[1]=4; k[2]=55; //Задаем элементы массива Console.WriteLine(k[2].ToString()); //Выводим третий элемент массива int[] k = {-5, 4, 55};// Инициализация массива //объявление массивов с отложенной инициализацией int[] u,v; u = new int[3]; for(int i=0; i

Многомерные массивы [,...,] ; int[,] k = new int [2,3]; - двумерный массив int[,,] k = new int [10,10,10]; - трехмерного массива int[,] k = {{2,-2},{3,-22},{0,4}};- инициализация // пример перемножения матриц public void MultMatr(int[,]A, int[,]B, int[,]C){ if (A.GetLength(1) != B.GetLength(0)) Console.WriteLine("MultMatr: ошибка размерности!"); else for(int i = 0; i < A.GetLength(0); i++) for(int j = 0; j < B.GetLength(1); j++) { int s=0; for(int k = 0; k < A.GetLength(1); k++) s+= A[i,k]*B[k,j]; C[i,j] = s; }

Ступенчатые массивы int[][] k = new int [2][];- //Объявление 2-го ступенчатого массива k[0]=new int[3]; // 0-й элемент ступенчатого массива k[1]=new int[4]; // 1-й элемент ступенчатого массива

int Fcount =3; string[] Fathers = new string[Fcount]; Fathers[0] ="Николай"; Fathers[1] = "Сергей"; Fathers[2] = "Петр"; string[][] Children = new string[Fcount][]; Children[0] = new string[] {"Ольга", "Федор"}; Children[1] = new string[]{"Сергей","Валентина","Ира","Дмитрий"}; Children[2] = new string[]{"Мария","Ирина","Надежда"}; Print(Fathers,Children); // печать на экран public void Print(string [] Fathers, string[][] Children) { for(int i = 0; i < Fathers.Length; i++) { Console.WriteLine("Отец : {0}; Его дети:", Fathers[i]); for(int j = 0; j < Children[i].Length; j++) Console.Write( Children[i][j] + " "); Console.WriteLine(); }

Базовый класс System.Array Статические методы класса Array МетодОписание BinarySearch() Двоичный поиск. Clear() Выполняет начальную инициализацию элементов. В зависимости от типа элементов устанавливает значение 0 для арифметического типа, false - для логического типа, Null для ссылок, "" - для строк. Copy() Копирование части или всего массива в другой массив. IndexOf() Индекс первого вхождения образца в массив. LastIndexOf() Индекс последнего вхождения образца в массив. Reverse() Обращение одномерного массива. Sort() Сортировка одномерного массива встроенных типов данных. Свойства класса Array СвойствоОписание IsFixedSizeTrue, если массив статический LengthЧисло элементов массива RankРазмерность массива

Базовый класс System.Array GetValue() SetValue() Возвращает или устанавливает значение указанного индекса для массива. GetLowerBound() GetUpperBound() Используется для определения нижней или верхней границы выбранного измерения массива. Clone()Интерфейс ICloneable Позволяет создать плоскую или глубокую копию массива. В первом случае создаются только элементы первого уровня, а ссылки указывают на те же самые объекты. Во втором случае копируются объекты на всех уровнях. Для массивов создается только плоская копия. CopyTo()Интерфейс ICollection Копируются все элементы одномерного массива в другой одномерный массив, начиная с заданного индекса: col1.CopyTo(col2,0); GetEnumerator()Интерфейс IEnumerable Стоит за спиной цикла ForEach GetLength()Возвращает число элементов массива по указанному измерению. Динамические методы класса Array

сlass Arrs { public static int Main(string[] args) { string[] Names = new string[5]{ Саша, Маша, Олег, Света, Игорь}; //выводим элементы массива Console.WriteLine(Here is the array:); for(int i=0; i< Names.Length; i++) Console.WriteLine(Names[i]+\n); //расставляем в обратном порядке Array.Reverse(Names); for(int i=0; i< Names.Length; i++) Console.WriteLine(Names[i]+\n); //теперь удаляем всех кроме Игоря Console.WriteLine(Cleared out all but one…); Array.Clear(Names,1,4); for(int i=0; i< Names.Length; i++) Console.WriteLine(Names[i]+\n); return 0; }

public static void PrintAr(string name, Array A) { Console.WriteLine(name); switch (A.Rank) { case 1: for(int i = 0; i

Массивы как коллекции Чтение массива: public static void PrintCollection(string name, Array A) { Console.WriteLine(name); foreach (object item in A ) Console.Write("\t {0}", item); Console.WriteLine(); } Запись массива: public static void CreateCollection(Array A) { int i=0; foreach (object item in A ) //item = rnd.Next(1,10);//item read only A.SetValue(rnd.Next(1,10), i++); }

Массивы и Object public static void PrintObj(object A) { Console.WriteLine("A.GetType()={0})", A.GetType()); if (A.GetType() == typeof(System.Int32[])) { int[] temp; temp = (int[])A; for (int i = 0; i < temp.GetLength(0); i++) Console.Write("\t temp[{0}]={1}", i, temp[i]); Console.WriteLine(); } else if (A.GetType() == typeof(System.Int32[,])) { int[,] temp; temp = (int[,])A; for (int i = 0; i < temp.GetLength(0); i++) for (int j = 0; j < temp.GetLength(1); j++) Console.Write("\t temp[{0},{1}]={2}", i,j, temp[i,j]); Console.WriteLine(); } else Console.WriteLine("Аргумент не является массивом целых"); } static void Main(string[] args) { int[] col1 = { 9, 4, 2, 8 }; int[,] col4 = new int[2,2]{{2,6},{7,3}}; PrintObj(col1); PrintObj(col4); }