PPt4Web Хостинг презентаций

Главная / Информатика / Перечисления и массивы
X Код для использования на сайте:

Скопируйте этот код и вставьте его на свой сайт

X

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

После чего скачивание начнётся автоматически!

Кнопки:

Презентация на тему: Перечисления и массивы


Скачать эту презентацию

Презентация на тему: Перечисления и массивы


Скачать эту презентацию

№ слайда 1
Описание слайда:

№ слайда 2 Перечисление — отдельный тип-значение, содержащий совокупность именованных конст
Описание слайда:

Перечисление — отдельный тип-значение, содержащий совокупность именованных констант. Перечисление — отдельный тип-значение, содержащий совокупность именованных констант. Пример:   enum Color : long { Red, Green, Blue } Каждый элемент перечисления имеет связанное с ним константное значение, тип которого определяется базовым типом перечисления. Базовые типы: byte, sbyte, short, ushort, int, uint, long и ulong. По умолчанию – int.

№ слайда 3 Значение элемента задается либо явно, либо неявно, а именно: Значение элемента з
Описание слайда:

Значение элемента задается либо явно, либо неявно, а именно: Значение элемента задается либо явно, либо неявно, а именно: Первый элемент автоматически принимает значение 0. Последующие элементы принимают значение предыдущего + 1. enum Button {Start, Stop, Play, Next, Prev }; // неявно enum Color { Red, // 0 неявно Green = 10, // 10 явно Blue // 11 неявно } enum Nums { two = 2, three, ten = 10, eleven, fifty = ten + 40 }; Несколько элементов перечисления могут иметь одно и то же значение. Элементы одного перечисления не могут иметь одинаковые имена.

№ слайда 4
Описание слайда:

№ слайда 5 enum Color enum Color { Red = 0x000000FF, Green = 0x0000FF00, Blue = 0x00FF0000
Описание слайда:

enum Color enum Color { Red = 0x000000FF, Green = 0x0000FF00, Blue = 0x00FF0000 } class Test { static void Main() { Console.WriteLine(StringFromColor(Color.Green)); } static string StringFromColor(Color c) { switch (c) { case Color.Red: return String.Format("Red = {0:X}", (int)c); case Color.Green: return String.Format("Green = {0:X}", (int)c); case Color.Blue: return String.Format("Blue = {0:X}", (int)c); default: return "Invalid color"; } } }

№ слайда 6
Описание слайда:

№ слайда 7 Массив относится к ссылочным типам данных (располагается в хипе), поэтому создан
Описание слайда:

Массив относится к ссылочным типам данных (располагается в хипе), поэтому создание массива начинается с выделения памяти под его элементы. Массив относится к ссылочным типам данных (располагается в хипе), поэтому создание массива начинается с выделения памяти под его элементы. Элементами массива могут быть величины как значимых, так и ссылочных типов (в том числе массивы), например: int[] w = new int[10]; // массив из 10 целых чисел string[] z = new string[100]; // массив из 100 строк Массив значимых типов хранит значения, массив ссылочных типов — ссылки на элементы. Всем элементам при создании массива присваиваются значения по умолчанию: нули для значимых типов и null для ссылочных.

№ слайда 8
Описание слайда:

№ слайда 9 Количество элементов в массиве (размерность) задается при выделении памяти и не
Описание слайда:

Количество элементов в массиве (размерность) задается при выделении памяти и не может быть изменена впоследствии. Она может задаваться выражением: Количество элементов в массиве (размерность) задается при выделении памяти и не может быть изменена впоследствии. Она может задаваться выражением: short n = ...; string[] z = new string[2*n + 1]; Размерность не является частью типа массива. Элементы массива нумеруются с нуля. Для обращения к элементу массива после имени массива указывается номер элемента в квадратных скобках, например: w[4] z[i] С элементом массива можно делать все, что допустимо для переменных того же типа. При работе с массивом автоматически выполняется контроль выхода за его границы: если значение индекса выходит за границы массива, генерируется исключение IndexOutOfRangeException.

№ слайда 10 Массивы одного типа можно присваивать друг другу. При этом происходит присваиван
Описание слайда:

Массивы одного типа можно присваивать друг другу. При этом происходит присваивание ссылок, а не элементов: Массивы одного типа можно присваивать друг другу. При этом происходит присваивание ссылок, а не элементов: int[] a = new int[10]; int[] b = a; // b и a указывают на один и тот же массив Все массивы в C# имеют общий базовый класс Array, определенный в пространстве имен System. Некоторые элементы класса Array: Length (Свойство) - Количество элементов массива (по всем размерностям) BinarySearch (Статический метод) - Двоичный поиск в отсортированном массиве IndexOf – (Статический метод) - Поиск первого вхождения элемента в одномерный массив Sort (Статический метод) - Упорядочивание элементов одномерного массива

№ слайда 11 Варианты описания массива: Варианты описания массива: тип[] имя; тип[] имя = new
Описание слайда:

Варианты описания массива: Варианты описания массива: тип[] имя; тип[] имя = new тип [ размерность ]; тип[] имя = { список_инициализаторов }; тип[] имя = new тип [] { список_инициализаторов }; тип[] имя = new тип [ размерность ] { список_инициализаторов }; Примеры описаний (один пример на каждый вариант описания, соответственно): int[] a; // элементов нет int[] b = new int[4]; // элементы равны 0 int[] c = { 61, 2, 5, -9 }; // new подразумевается int[] d = new int[] { 61, 2, 5, -9 }; // размерность вычисляется int[] e = new int[4] { 61, 2, 5, -9 }; // избыточное описание

№ слайда 12 Для массива, состоящего из 6 целочисленных элементов, программа определяет: Для
Описание слайда:

Для массива, состоящего из 6 целочисленных элементов, программа определяет: Для массива, состоящего из 6 целочисленных элементов, программа определяет: сумму и количество отрицательных элементов; максимальный элемент.

№ слайда 13 const int n = 6; const int n = 6; int[] a = new int[n] { 3, 12, 5, -9, 8, -4 };
Описание слайда:

const int n = 6; 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_otr = 0; // cумма отрицательных элементов int num_otr = 0; // количество отрицательных элементов for ( int i = 0; i < n; ++i ) if ( a[i] < 0 ) { sum_otr += a[i]; ++num_otr; } Console.WriteLine( "Сумма отрицательных = " + sum_otr ); Console.WriteLine( "Кол-во отрицательных = " + num_otr ); int max = a[0]; // максимальный элемент for ( int i = 0; i < n; ++i ) if ( a[i] > max ) max = a[i]; Console.WriteLine( "Максимальный элемент = " + max );

№ слайда 14 Применяется для перебора элементов массива. Синтаксис: Применяется для перебора
Описание слайда:

Применяется для перебора элементов массива. Синтаксис: Применяется для перебора элементов массива. Синтаксис: foreach ( тип имя in имя_массива ) тело_цикла имя задает локальную по отношению к циклу переменную, которая будет по очереди принимать все значения из массива, например: int[] massiv = { 24, 50, 18, 3, 16, -7, 9, -1 }; foreach ( int x in massiv ) Console.WriteLine( x );

№ слайда 15 int[] a = { 3, 12, 5, -9, 8, -4 }; int[] a = { 3, 12, 5, -9, 8, -4 }; Console.Wr
Описание слайда:

int[] a = { 3, 12, 5, -9, 8, -4 }; int[] a = { 3, 12, 5, -9, 8, -4 }; Console.WriteLine( "Исходный массив:" ); foreach ( int elem in a ) Console.Write( "\t" + elem ); Console.WriteLine(); long sum_otr = 0; // cумма отрицательных элементов int num_otr = 0; // количество отрицательных элементов foreach ( int elem in a ) if ( elem < 0 ) { sum_otr += elem; ++num_otr; } Console.WriteLine( "sum = " + sum_otr ); Console.WriteLine( "num = " + num_otr ); int max = a[0]; // максимальный элемент foreach ( int elem in a ) if ( elem > max ) max = elem; Console.WriteLine( "max = " + max );

№ слайда 16 class Mas_1 // класс для работы с 1-мерным массивом class Mas_1 // класс для раб
Описание слайда:

class Mas_1 // класс для работы с 1-мерным массивом class Mas_1 // класс для работы с 1-мерным массивом { int[] a = { 3, 12, 5, -9, 8, -4 }; // для простоты слайда public void PrintMas() // вывод массива { Console.Write("Массив: "); foreach (int elem in a) Console.Write(" " + elem); Console.WriteLine(); } public long SumOtr() // cумма отрицательных элементов { long sum_otr = 0; foreach (int elem in a) if (elem < 0) sum_otr += elem; return sum_otr; }

№ слайда 17 public int NumOtr() // кол-во отрицательных элементов public int NumOtr() // кол
Описание слайда:

public int NumOtr() // кол-во отрицательных элементов public int NumOtr() // кол-во отрицательных элементов { int num_otr = 0; foreach (int elem in a) if (elem < 0) ++num_otr; return num_otr; } public int MaxElem() // максимальный элемент { int max = a[0]; foreach (int elem in a) if (elem > max) max = elem; return max; } }

№ слайда 18 class Program // класс-клиент class Program // класс-клиент { static void Main(s
Описание слайда:

class Program // класс-клиент class Program // класс-клиент { static void Main(string[] args) { Mas_1 mas = new Mas_1(); mas.PrintMas(); long sum_otr = mas.SumOtr(); if (sum_otr != 0) Console.WriteLine("Сумма отриц. = " + sum_otr); else Console.WriteLine("Отриц-х эл-тов нет"); int num_otr = mas.NumOtr(); if (num_otr != 0) Console.WriteLine("Кол-во отриц. = " + num_otr); else Console.WriteLine("Отриц-х эл-тов нет"); Console.WriteLine("Макс. элемент = " + mas.MaxElem()); } }

№ слайда 19 Найти среднее арифметическое элементов, расположенных между минимумом и максимум
Описание слайда:

Найти среднее арифметическое элементов, расположенных между минимумом и максимумом Найти среднее арифметическое элементов, расположенных между минимумом и максимумом Варианты результата: выводится среднее арифметическое выводится сообщение «таких элементов нет» (мин. и макс. рядом или все элементы массива одинаковы) Вопрос: если макс. или мин. эл-тов несколько? Варианты тестовых данных: минимум левее максимума наоборот рядом более одного мин/макс все элементы массива равны все элементы отрицательные

№ слайда 20 Найти сумму элементов, расположенных между первым и последним элементами, равным
Описание слайда:

Найти сумму элементов, расположенных между первым и последним элементами, равными нулю Найти сумму элементов, расположенных между первым и последним элементами, равными нулю Варианты результата: выводится сумма выводится сообщение «таких элементов нет» (нулевые эл-ты рядом или их меньше двух) Варианты тестовых данных: два эл-та, равных нулю, не рядом два эл-та, равных нулю, рядом один эл-т, равный нулю ни одного более двух …

№ слайда 21
Описание слайда:

№ слайда 22 Найти, где расположен минимальный элемент массива Найти, где расположен минималь
Описание слайда:

Найти, где расположен минимальный элемент массива Найти, где расположен минимальный элемент массива Поменять его местами с 1-м элементом. Первый элемент теперь на нужном месте. Среди элементов, начиная со 2-го, найти, где расположен минимальный элемент массива Поменять его местами со 2-м элементом. Второй элемент теперь на нужном месте. Среди элементов, начиная с 3-го, найти, где расположен минимальный элемент массива Поменять его местами с 3-м элементом. Третий элемент теперь на нужном месте. ... Среди элементов, начиная с предпоследнего (n-1), найти, где расположен минимальный элемент массива Поменять его местами с (n-1)-м элементом.

№ слайда 23
Описание слайда:

№ слайда 24 static void Main() static void Main() { int[] a = { 24, 50, 18, 3, 16, -7, 9, -1
Описание слайда:

static void Main() static void Main() { int[] a = { 24, 50, 18, 3, 16, -7, 9, -1 }; PrintArray( "Исходный массив:", a ); Console.WriteLine( Array.IndexOf( a, 18 ) ); Array.Sort(a); // Array.Sort(a, 1, 5); PrintArray( "Упорядоченный массив:", a ); Console.WriteLine( Array.BinarySearch( a, 18) ); Array.Reverse(a); // Array.Reverse(a, 2, 4); } 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(); }

№ слайда 25 минимум/максимум [по модулю] минимум/максимум [по модулю] номер минимума/максиму
Описание слайда:

минимум/максимум [по модулю] минимум/максимум [по модулю] номер минимума/максимума [по модулю] номер первого/второго/последнего положительного/отрицательного/нулевого эл-та сумма/произведение/количество/сред. арифм-е положительных/отрицательных/нулевых эл-тов упорядочить массив НЕ методом пузырька. анализировать все возможные варианты расположения исходных данных

№ слайда 26 Прямоугольный массив имеет более одного измерения. Чаще всего в программах испол
Описание слайда:

Прямоугольный массив имеет более одного измерения. Чаще всего в программах используются двумерные массивы. Варианты описания двумерного массива: Прямоугольный массив имеет более одного измерения. Чаще всего в программах используются двумерные массивы. Варианты описания двумерного массива: тип[,] имя; тип[,] имя = new тип [ разм_1, разм_2 ]; тип[,] имя = { список_инициализаторов }; тип[,] имя = new тип [,] { список_инициализаторов }; тип[,] имя = new тип [ разм_1, разм_2 ] { список_инициализаторов }; Примеры описаний (один пример на каждый вариант описания): int[,] a; // элементов нет int[,] b = new int[2, 3]; // элементы равны 0 int[,] c = {{1, 2, 3}, {4, 5, 6}}; // new подразумевается int[,] c = new int[,] {{1, 2, 3}, {4, 5, 6}}; // разм-сть вычисляется int[,] d = new int[2,3] {{1, 2, 3}, {4, 5, 6}}; // избыточное описание

№ слайда 27 К элементу двумерного массива обращаются, указывая номера строки и столбца, на п
Описание слайда:

К элементу двумерного массива обращаются, указывая номера строки и столбца, на пересечении которых он расположен: К элементу двумерного массива обращаются, указывая номера строки и столбца, на пересечении которых он расположен: a[1, 4] b[i, j] b[j, i] Компилятор воспринимает как номер строки первый индекс, как бы он ни был обозначен в программе.

№ слайда 28
Описание слайда:

№ слайда 29 const int m = 3, n = 4; const int m = 3, n = 4; int[,] a = new int[m, n] { { 2,-
Описание слайда:

const int m = 3, n = 4; 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(); }

№ слайда 30 int nPosEl; int nPosEl; for ( int i = 0; i < m; ++i ) { nPosEl = 0; for ( int
Описание слайда:

int nPosEl; int nPosEl; for ( int i = 0; i < m; ++i ) { nPosEl = 0; for ( int j = 0; j < n; ++j ) if ( a[i, j] > 0 ) ++nPosEl; Console.WriteLine( "В строке {0} {1} положит-х эл-в", i, nPosEl); } double sum = 0; foreach ( int x in a ) sum += x; // все элементы двумерного массива! Console.WriteLine( "Среднее арифметическое всех элементов: " + sum / m / n );

№ слайда 31 В ступенчатых массивах количество элементов в разных строках может различаться.
Описание слайда:

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

№ слайда 32 тип[][] имя; тип[][] имя; Под каждый из массивов, составляющих ступенчатый масси
Описание слайда:

тип[][] имя; тип[][] имя; Под каждый из массивов, составляющих ступенчатый массив, память требуется выделять явным образом: int[][] a = new int[3][]; // память под ссылки на 3 строки a[0] = new int[5]; // память под 0-ю строку (5 эл-в) a[1] = new int[3]; // память под 1-ю строку (3 эл-та) a[2] = new int[4]; // память под 2-ю строку (4 эл-та) Или: int[][] a = { new int[5], new int[3], new int[4] }; Обращение к элементу ступенчатого массива: a[1][2] a[i][j] a[j][i]

№ слайда 33 int[][] a = new int[3][]; int[][] a = new int[3][]; a[0] = new int [5] { 24, 50,
Описание слайда:

int[][] a = new int[3][]; 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(); } // поиск числа 18 в нулевой строке: Console.WriteLine( Array.IndexOf( a[0], 18 ) );

№ слайда 34
Описание слайда:

№ слайда 35 class Program { class Program { static void Main(string[] args) { const int n =
Описание слайда:

class Program { class Program { static void Main(string[] args) { const int n = 3, m = 4; double[,] a = new double[n, m] {{2,3,4,7}, {4,3,2,0}, {2,0,1,8}}; Console.WriteLine("Сумма элементов: " + Sum(a)); bool[] nums = RowsWithNulls(a, n, m); Console.Write("Номера строк, содержащих нули: "); for (int i = 0; i < n; ++i) if (nums[i]) Console.Write(" " + i); } static double Sum(double[,] x) { double sum = 0; foreach (double elem in x) sum += elem; return sum; } }

Скачать эту презентацию

Презентации по предмету
Презентации из категории
Лучшее на fresher.ru