СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

Массивы в С#. Определение, виды.

Категория: Информатика

Нажмите, чтобы узнать подробности

Данный методический материал содержит презентацию к уроку "Массивы в С#. Определение, виды.". Материал предназначен для подготовки к занятиям по данной теме, а также  для студентов, изучающих язык С# в дисциплинах "Основы алгоритмизации и программирования" и "Прикладное программирование". 

Просмотр содержимого документа
«Массивы в С#. Определение, виды.»

Массивы в языке С#: определение, виды.

Массивы в языке С#: определение, виды.

Массивы в С #  Система типов в С # построена на основе классов. Типы делятся на 4 группы: значений, ссылок, указателей и void.  Типы значений были рассмотрены ранее. К типам ссылок относятся классы (библиотечные и определяемые пользователем), массивы и строки.  Массив – это упорядоченная совокупность однотипных данных. Доступ к элементам массива осуществляется по индексу. Объявление массива похоже на объявление переменной тем исключением, что после указания типа ставятся квадратные скобки:  тип[ ] имя_ссылки_на_массив;   Например:  int[ ] numbers;

Массивы в С #

Система типов в С # построена на основе классов. Типы делятся на 4 группы: значений, ссылок, указателей и void.

Типы значений были рассмотрены ранее. К типам ссылок относятся классы (библиотечные и определяемые пользователем), массивы и строки.

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

тип[ ] имя_ссылки_на_массив;

Например:

int[ ] numbers;

   После определения переменной массива компилятор выделит память под ссылки в стеке. Каждый конкретный массив создается как объект класса, производный от класса Array  ( системный класс System.Array).  Для создания экземпляра (объекта) конкретного типа массива используется операция new .  new тип [ размер массива ]   Это выражение определяет объект-массив с указанным количеством элементов. Этот объект компилятор размещает в области памяти, называемой кучей  ( heap). Результатом выполнения операции new является ссылка на участок памяти, выделенной для объекта.  Чтобы связать ссылку с объектом используют оператор присваивания.

После определения переменной массива компилятор выделит память под ссылки в стеке. Каждый конкретный массив создается как объект класса, производный от класса Array ( системный класс System.Array).

Для создания экземпляра (объекта) конкретного типа массива используется операция new .

new тип [ размер массива ]

Это выражение определяет объект-массив с указанным количеством элементов. Этот объект компилятор размещает в области памяти, называемой кучей ( heap). Результатом выполнения операции new является ссылка на участок памяти, выделенной для объекта.

Чтобы связать ссылку с объектом используют оператор присваивания.

 имя_ссылки_на_массив = new тип [ размер массива ] ;   Тип ссылки на массив должен соответствовать типу, указанному после new .  Допускается объединение объявления типа ссылки на массив с определением массива-объекта. Тип  имя_ссылки_на_массив = new тип [ размер массива ] ;  int[ ] nums = new int[4];  Здесь объявили массив nums, который будет хранить  данные типа int. Далее используя операцию new, выделили память для 4 элементов массива: new int[4]. Число 4 еще называется  длиной ( размером) массива.  После объявления массива его элементы получают значения по умолчанию: для арифметических данных – 0, для типа char – ‘/0’, для логических false, для типа string – пустые строки.

имя_ссылки_на_массив = new тип [ размер массива ] ;

Тип ссылки на массив должен соответствовать типу, указанному после new .

Допускается объединение объявления типа ссылки на массив с определением массива-объекта.

Тип имя_ссылки_на_массив = new тип [ размер массива ] ;

int[ ] nums = new int[4];

Здесь объявили массив nums, который будет хранить

данные типа int. Далее используя операцию new, выделили память для 4 элементов массива: new int[4]. Число 4 еще называется  длиной ( размером) массива.

После объявления массива его элементы получают значения по умолчанию: для арифметических данных – 0, для типа char – ‘/0’, для логических false, для типа string – пустые строки.

 Также можно сразу указать значения для этих элементов (явная инициализация). Значения элементов указываются в фигурных скобках и разделяются запятой:  int[] nums2 = new int[4] { 1, 2, 3, 5 };   int[] nums3 = new int[] { 1, 2, 3, 5 };   int[] nums4 = new[] { 1, 2, 3, 5 };    int[] nums5 = { 1, 2, 3, 5 };  Все перечисленные выше способы будут равноценны.  Для обращения к элементам массива используются  индексы .  Индекс – это номер элемента в массиве, при этом нумерация начинается с нуля, поэтому индекс первого элемента будет равен 0.

Также можно сразу указать значения для этих элементов (явная инициализация). Значения элементов указываются в фигурных скобках и разделяются запятой:

int[] nums2 = new int[4] { 1, 2, 3, 5 }; 

int[] nums3 = new int[] { 1, 2, 3, 5 }; 

int[] nums4 = new[] { 1, 2, 3, 5 };

  int[] nums5 = { 1, 2, 3, 5 };

Все перечисленные выше способы будут равноценны.

Для обращения к элементам массива используются  индексы .

Индекс – это номер элемента в массиве, при этом нумерация начинается с нуля, поэтому индекс первого элемента будет равен 0.

 В одном объявлении можно определить несколько однотипных ссылок на массивы с элементами одного типа.  byte[ ] x,y,z  Инициализация допустима и при таком определении  нескольких однотипных ссылок в одном объявлении.  int b[ ]={1,2,3,4,5},  z=new int[ ]{6,7,8,9},  d=z ;  При объявлении ссылки на массив компилятор  выделяет память только для ссылки, а память в куче  для объекта-массива выделяется при явном или   неявном применении операции new . В примере доступ к  массиву возможен двумя ссылками d и  z . Ссылка на  массив не является уникальным именем экземпляра  массива, так как с ним может быть связано несколько  ссылок.

В одном объявлении можно определить несколько однотипных ссылок на массивы с элементами одного типа.

byte[ ] x,y,z

Инициализация допустима и при таком определении

нескольких однотипных ссылок в одном объявлении.

int b[ ]={1,2,3,4,5},

z=new int[ ]{6,7,8,9},

d=z ;

При объявлении ссылки на массив компилятор

выделяет память только для ссылки, а память в куче

для объекта-массива выделяется при явном или

неявном применении операции new . В примере доступ к

массиву возможен двумя ссылками d и z . Ссылка на

массив не является уникальным именем экземпляра

массива, так как с ним может быть связано несколько

ссылок.

 Чтобы обратиться к четвертому элементу в массиве, нам надо использовать индекс 3, к примеру: nums[3]. Используем индексы для получения и установки значений элементов массива:  int[] nums = new int[4];  nums[0] = 1;  nums[1] = 2;  nums[2] = 3;  nums[3] = 5;  Console.WriteLine(nums[3]);  // 5  Так как массив определен из 4 элементов, то мы не можем обратиться, например, к шестому элементу: nums[5] = 5;. Если мы так попытаемся сделать, то мы получим исключение  IndexOutOfRangeException .

Чтобы обратиться к четвертому элементу в массиве, нам надо использовать индекс 3, к примеру: nums[3]. Используем индексы для получения и установки значений элементов массива:

int[] nums = new int[4];

nums[0] = 1;

nums[1] = 2;

nums[2] = 3;

nums[3] = 5;

Console.WriteLine(nums[3]);  // 5

Так как массив определен из 4 элементов, то мы не можем обратиться, например, к шестому элементу: nums[5] = 5;. Если мы так попытаемся сделать, то мы получим исключение  IndexOutOfRangeException .

Перебор массивов. Цикл foreach  Цикл foreach предназначен для перебора элементов в контейнерах, в том числе в массивах. Формальное объявление цикла foreach : foreach (тип имя_переменной in ссылка_на_массив) {  …    // действия  }  Например:  int[  ] numbers = new int[  ] { 1, 2, 3, 4, 5 };  foreach (int i in numbers)  {      Console.WriteLine(i);  }  Здесь в качестве контейнера выступает массив данных типа int. Поэтому мы объявляем переменную с типом int

Перебор массивов. Цикл foreach

Цикл foreach предназначен для перебора элементов в контейнерах, в том числе в массивах. Формальное объявление цикла foreach :

foreach (тип имя_переменной in ссылка_на_массив)

{

 …    // действия

}

Например:

int[ ] numbers = new int[ ] { 1, 2, 3, 4, 5 };

foreach (int i in numbers)

{    

Console.WriteLine(i);

}

Здесь в качестве контейнера выступает массив данных типа int. Поэтому мы объявляем переменную с типом int

 Подобные действия мы можем сделать и с помощью цикл for :  int[  ] numbers = new int[  ] { 1, 2, 3, 4, 5 };  for (int i = 0; i  {      Console.WriteLine(numbers[i]);  }  В то же время цикл for более гибкий по сравнению с foreach. Если foreach последовательно извлекает элементы контейнера и только для чтения, то в цикле for мы можем перескакивать на несколько элементов вперед в зависимости от приращения счетчика, а также можем изменять элементы:

Подобные действия мы можем сделать и с помощью цикл for :

int[ ] numbers = new int[ ] { 1, 2, 3, 4, 5 };

for (int i = 0; i

{    

Console.WriteLine(numbers[i]);

}

В то же время цикл for более гибкий по сравнению с foreach. Если foreach последовательно извлекает элементы контейнера и только для чтения, то в цикле for мы можем перескакивать на несколько элементов вперед в зависимости от приращения счетчика, а также можем изменять элементы:

int[  ] numbers = new int[  ] { 1, 2, 3, 4, 5 }; for (int i = 0; i  {        numbers[i] = numbers[i] * 2;       Console.WriteLine(numbers[i]);  }  numbers.Length  – это метод определяет длину массива.

int[ ] numbers = new int[ ] { 1, 2, 3, 4, 5 };

for (int i = 0; i

{

      numbers[i] = numbers[i] * 2;

     Console.WriteLine(numbers[i]);

}

numbers.Length – это метод определяет длину массива.

using System; namespace app15_array {  class Program  {  public static void Main(string[] args)  {  string [ ]A = new string [10];  string s;  int i=0;  Console.WriteLine( 10) break; " width="640"

using System;

namespace app15_array

{

class Program

{

public static void Main(string[] args)

{

string [ ]A = new string [10];

string s;

int i=0;

Console.WriteLine("Введите строки массива, после " +

"каждой , в конце ");

while(true)

{

s=Console.ReadLine();

A[i]=s;

if(s==null || i 10)

break;

i++;  }  Console.WriteLine(

i++;

}

Console.WriteLine("Введено строк — {0}",i);

Console.Read();

}

}

}