Разделы презентаций


Массивы

Массив— набор элементов одного и того же типа, объединенных общим именем.С#-массивы относятся к ссылочным типам данных, реализованы как объекты.Имя массива является ссылкой на область кучи (динамической памяти), в которой последовательно размещается

Слайды и текст этой презентации

Слайд 1Массивы

Массивы

Слайд 2Массив—
набор элементов одного и того же типа, объединенных общим

именем.

С#-массивы относятся к ссылочным типам данных, реализованы как объекты.

Имя массива

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

Выделение памяти под элементы происходит на этапе инициализации массива.

Освобождение памяти - система сборки мусора - неиспользуемые массивы автоматически утилизируются данной системой.

Массив— набор элементов одного и того же типа, объединенных общим именем.С#-массивы относятся к ссылочным типам данных, реализованы

Слайд 3Одномерные массивы
Одномерный массив – это фиксированное количество элементов одного и

того же типа, объединенных общим именем, где каждый элемент имеет

свой номер.

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

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

Слайд 4Объявление одномерного массива

Объявление одномерного массива

Слайд 5static void Main()
{

int[] myArray = { 0, 1, 2, 3,

4, 5, 6, 7, 8, 9 };
int i;
for (i = 0; i < 10; ++i)
Console.WriteLine(myArray[i]);
}


static void Main()
{
int[] myArray = new int[10];
int i;
for (i = 0; i < 10; i++)
myArray[i] = i * i;
for (i = 0; i < 10; i++)
Console.WriteLine(myArray[i]);
}




static void Main()    {      int[] myArray = { 0,

Слайд 6Существующей ссылке на одномерный массив присваивается ссылка на новый массив
int

[ ] myArray = new int [ ] { 99,

10, 100, 18, 78, 23, 163, 9, 87, 49 };



static void Main()
{
int[] myArray = { 0, 1, 2, 3, 4, 5};
int i;
for (i = 0; i < 10; i++)
Console.Write(" "+myArray[i]);
Console.WriteLine("\nНовый массив: ");
myArray = new int[] { 99, 10, 100, 18, 78, 23, 163, 9, 87, 49 };
for (i = 0; i < 10; i++)
Console.Write(" " + myArray[i]);
}

1.переменная myArray ссылалась на 6-ти элементный массив.
2.переменной myArray была присвоена ссылка на новый 10-элементный массив, в результате чего исходный массив оказался неиспользуемым, т.к. на него теперь не ссылается ни один объект.
3.он автоматически будет удален сборщиком мусора.

Существующей ссылке на одномерный массив присваивается ссылка на новый массивint [ ] myArray = new int [

Слайд 7Массивы и исключения
static void Main()
{

int[] myArray = { 0, 1,

2, 3, 4, 5, 6, 7, 8, 9 };
int i;
try
{
for (i = 0; i <= 10; i++) Console.WriteLine(myArray[i]);
}
catch (IndexOutOfRangeException)
{
Console.WriteLine("Exception: Выход за границу диапазона");
}
}

Выход за границы массива в C# расценивается как ошибка, в ответ на которую генерируется исключение - IndexOutOfRangeException

Массивы и исключенияstatic void Main()    {      int[] myArray =

Слайд 8Массив как параметр
Так как имя массива фактически является ссылкой, то

он передается в метод по ссылке
Все изменения элементов массива,

являющегося формальным параметром, отразятся на элементах соответствующего массива, являющимся фактическим параметром.

Массив как параметрТак как имя массива фактически является ссылкой, то он передается в метод по ссылке Все

Слайд 9class Program
{
static void

Print(int n, int[] a) //n – размерность массива, а –

ссылка на массив
{
for (int i = 0; i < n; i++) Console.Write("{0} ", a[i]);
Console.WriteLine(); }
 
static void Change(int n, int[] a)
{
for (int i = 0; i < n; i++)
if (a[i] > 0) a[i] = 0; // изменяются элементы массива
}
 
static void Main()
{
int[] myArray = { 0, -1, -2, 3, 4, 5, -6, -7, 8, -9 };
Print(10, myArray);
Change(10, myArray);
Print(10, myArray); }
}


Слайд 10  Массив как объект

  Массив как объект

Слайд 11Вызов статических методов происходит через обращение к имени класса
Например:
/*Обращение к

статическому методу Sort класса Array и передача данному методу в качестве параметра

объект myArray - экземпляр класса Array*/
Array.Sort(myArray)

Обращение к свойству или вызов экземплярного метода производится через обращение к экземпляру класса
Например:
myArray.Length
или
myArray.GetValue(i)

Вызов статических методов происходит через обращение к имени классаНапример:/*Обращение к статическому методу Sort класса Array и передача данному методу

Слайд 12class Program {
static void Main()

{

try {
int[] MyArray;
Console.Write("Введите размерность массива: ");
int n = int.Parse(Console.ReadLine());
MyArray = new int[n];
for (int i = 0; i < MyArray.Length; ++i)
{ Console.Write("a[{0}]=",i);
MyArray[i] = int.Parse(Console.ReadLine()); }
PrintArray("исходный массив:", MyArray);
Array.Sort(MyArray);
PrintArray("массив отсортирован по возрастанию", MyArray);
Array.Reverse(MyArray);
PrintArray("массив отсортирован по убыванию", MyArray); }
catch (FormatException) {
Console.WriteLine("неверный формат ввода данных"); }
catch (OverflowException)
{ Console.WriteLine("переполнение"); }
catch (OutOfMemoryException) {
Console.WriteLine("недостаточно памяти для создания нового объекта"); } }
static void PrintArray(string a, int[] mas) { Console.WriteLine(a);
for (int i = 0; i < mas.Length; i++) Console.Write("{0} ", mas[i]);
Console.WriteLine(); } } }

class Program  {    static void Main()      {

Слайд 13Многомерные массивы
 тип [,] имя__массива;

тип [,] имя__массива = new тип [размер1,

размер2];

тип [,] имя__массива={{элементы 1-ой строки}, … , {элементы n-ой строки}};

тип

[,] имя__массива= new тип [,]{{элементы 1-ой строки}, … ,{элементы n-ой строки}};

Например:
int [,] a;

int [,] a= new int [3, 4];

int [,] a={{0, 1, 2}, {3, 4, 5}};

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

Многомерные массивы тип [,] имя__массива;тип [,] имя__массива = new тип [размер1, размер2];тип [,] имя__массива={{элементы 1-ой строки}, … ,

Слайд 14class Program {
static void PrintArray(string a, int[,] mas) {
Console.WriteLine(a);
for (int i =

0; i < mas.GetLength(0); i++)
{ for (int j = 0; j

< mas.GetLength(1); j++)
Console.Write("{0} ", mas[i, j]);
Console.WriteLine(); }
}
  static void Change(int[,] mas) {
for (int i = 0; i < mas.GetLength(0); i++)
for (int j = 0; j < mas.GetLength(1); j++)
if (mas[i, j] % 2 == 0) mas[i, j] = 0; }
  static void Main(){
try { int[,] MyArray ={ { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };
PrintArray("исходный массив:", MyArray);
Change(MyArray);
PrintArray("итоговый массив", MyArray); }
catch (FormatException)
{ Console.WriteLine("неверный формат ввода данных"); }
catch (OverflowException)
{ Console.WriteLine("переполнение"); }
catch (OutOfMemoryException)
{ Console.WriteLine("недостаточно памяти для создания нового объекта"); } } }
class Program	{		static void PrintArray(string a, int[,] mas)	{			Console.WriteLine(a);			for (int i = 0; i < mas.GetLength(0); i++)			{	for (int j

Слайд 15Рваные массивы
тип[ ] [ ] имя = new тип[размер][ ];




int

[ ] [ ] jagged = new int [ 3

] [ ] ;
jagged [0] = new int [ 4 ] ;
jagged [1] = new int [ 3 ] ;
jagged [2] = new int [ 5 ] ;

Так как каждая строка ступенчатого массива фактически является одномерным массивом, то с каждой строкой можно работать как с экземпляром класса Array.
Это является преимуществом ступенчатых массивов перед двумерными массивами.

Рваные массивытип[ ] [ ] имя = new тип[размер][ ];int [ ] [ ] jagged = new

Слайд 16class Program {
static void Main()

{
try

{ int[][] MyArray; Console.Write("Ввведите количесвто строк: ");
int n = int.Parse(Console.ReadLine()); MyArray = new int[n][];
for (int i = 0; i < MyArray.Length; i++)
{ Console.Write("введите количество элементов в {0} строке: ", i);
int j = int.Parse(Console.ReadLine()); MyArray[i] = new int[j];
for (j = 0; j < MyArray[i].Length; j++)
{ Console.Write("a[{0}][{1}]= ", i, j); MyArray[i][j] = int.Parse(Console.ReadLine()); } }
PrintArray("исходный массив:", MyArray);
for (int i = 0; i < MyArray.Length; i++) Array.Sort(MyArray[i]);
PrintArray("измененный массив", MyArray); }
catch (FormatException)
{ Console.WriteLine("неверный формат ввода данных"); }
catch (OverflowException)
{ Console.WriteLine("переполнение"); }
catch (OutOfMemoryException)
{ Console.WriteLine("недостаточно памяти для создания нового объекта"); } }
  static void PrintArray(string a, int[][] mas) {
Console.WriteLine(a);
for (int i = 0; i < mas.Length; i++)
{ for (int j = 0; j < mas[i].Length; j++) Console.Write("{0} ", mas[i][j]); Console.WriteLine(); } } }
class Program  {    static void Main()    {

Слайд 18Оператор foreach
Применяется для перебора элементов в специальным образом организованной

группе данных, в том числе и в массиве.
Удобство заключается

в том, что не требуется определять количество элементов в группе и выполнять перебор по индексу –просто указываем на необходимость перебрать все элементы группы.

foreach (<тип> <имя> in <группа>) <тело цикла>
 
где имя определяет локальную по отношению к циклу переменную, которая будет по очереди принимать все значения из указанной группы, а тип соответствует базовому типу элементов группы.

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

Оператор foreach Применяется для перебора элементов в специальным образом организованной группе данных, в том числе и в

Слайд 19Использование оператора foreach
1) для работы с одномерными массивами:
 static void PrintArray(string

a, int [] mas)
{

Console.WriteLine(a);
foreach (int x in mas)Console.Write("{0} ", x);
Console.WriteLine(); }

2) для работы с двумерными массивами:
static int Sum (int [,] mas)
{
int s=0;
foreach (int x in mas) s += x;
return s; }
 
3) для работы со ступенчатыми массивами:
static void PrintArray3(string a, int[][] mas)
{
Console.WriteLine(a);
for (int i = 0; i < mas.Length; i++)
{
foreach (int x in mas[i]) Console.Write("{0} ", x);
Console.WriteLine(); } }

Использование оператора foreach1) для работы с одномерными массивами: static void PrintArray(string a, int [] mas)

Обратная связь

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

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика