🗊Презентация Структуры данных. Контейнерные классы. Работа с файлами

Нажмите для полного просмотра!
Структуры данных. Контейнерные классы. Работа с файлами, слайд №1Структуры данных. Контейнерные классы. Работа с файлами, слайд №2Структуры данных. Контейнерные классы. Работа с файлами, слайд №3Структуры данных. Контейнерные классы. Работа с файлами, слайд №4Структуры данных. Контейнерные классы. Работа с файлами, слайд №5Структуры данных. Контейнерные классы. Работа с файлами, слайд №6Структуры данных. Контейнерные классы. Работа с файлами, слайд №7Структуры данных. Контейнерные классы. Работа с файлами, слайд №8Структуры данных. Контейнерные классы. Работа с файлами, слайд №9Структуры данных. Контейнерные классы. Работа с файлами, слайд №10Структуры данных. Контейнерные классы. Работа с файлами, слайд №11Структуры данных. Контейнерные классы. Работа с файлами, слайд №12Структуры данных. Контейнерные классы. Работа с файлами, слайд №13Структуры данных. Контейнерные классы. Работа с файлами, слайд №14Структуры данных. Контейнерные классы. Работа с файлами, слайд №15Структуры данных. Контейнерные классы. Работа с файлами, слайд №16Структуры данных. Контейнерные классы. Работа с файлами, слайд №17Структуры данных. Контейнерные классы. Работа с файлами, слайд №18Структуры данных. Контейнерные классы. Работа с файлами, слайд №19Структуры данных. Контейнерные классы. Работа с файлами, слайд №20Структуры данных. Контейнерные классы. Работа с файлами, слайд №21Структуры данных. Контейнерные классы. Работа с файлами, слайд №22Структуры данных. Контейнерные классы. Работа с файлами, слайд №23Структуры данных. Контейнерные классы. Работа с файлами, слайд №24Структуры данных. Контейнерные классы. Работа с файлами, слайд №25Структуры данных. Контейнерные классы. Работа с файлами, слайд №26Структуры данных. Контейнерные классы. Работа с файлами, слайд №27Структуры данных. Контейнерные классы. Работа с файлами, слайд №28Структуры данных. Контейнерные классы. Работа с файлами, слайд №29Структуры данных. Контейнерные классы. Работа с файлами, слайд №30Структуры данных. Контейнерные классы. Работа с файлами, слайд №31Структуры данных. Контейнерные классы. Работа с файлами, слайд №32Структуры данных. Контейнерные классы. Работа с файлами, слайд №33Структуры данных. Контейнерные классы. Работа с файлами, слайд №34Структуры данных. Контейнерные классы. Работа с файлами, слайд №35Структуры данных. Контейнерные классы. Работа с файлами, слайд №36Структуры данных. Контейнерные классы. Работа с файлами, слайд №37Структуры данных. Контейнерные классы. Работа с файлами, слайд №38Структуры данных. Контейнерные классы. Работа с файлами, слайд №39Структуры данных. Контейнерные классы. Работа с файлами, слайд №40Структуры данных. Контейнерные классы. Работа с файлами, слайд №41Структуры данных. Контейнерные классы. Работа с файлами, слайд №42Структуры данных. Контейнерные классы. Работа с файлами, слайд №43Структуры данных. Контейнерные классы. Работа с файлами, слайд №44Структуры данных. Контейнерные классы. Работа с файлами, слайд №45Структуры данных. Контейнерные классы. Работа с файлами, слайд №46Структуры данных. Контейнерные классы. Работа с файлами, слайд №47Структуры данных. Контейнерные классы. Работа с файлами, слайд №48Структуры данных. Контейнерные классы. Работа с файлами, слайд №49Структуры данных. Контейнерные классы. Работа с файлами, слайд №50

Содержание

Вы можете ознакомиться и скачать презентацию на тему Структуры данных. Контейнерные классы. Работа с файлами. Доклад-сообщение содержит 50 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

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


Слайд 1






Структуры данных
Контейнерные классы
Работа с файлами
Описание слайда:
Структуры данных Контейнерные классы Работа с файлами

Слайд 2





Абстрактные структуры данных 
Массив
   конечная совокупность однотипных величин. Занимает непрерывную область памяти и предоставляет прямой (произвольный) доступ к элементам по индексу. 
Линейный список
Стек
Очередь 
Дерево 
Бинарное дерево
Хеш-таблица (ассоциативный массив, словарь)
Граф
Множество
Описание слайда:
Абстрактные структуры данных Массив конечная совокупность однотипных величин. Занимает непрерывную область памяти и предоставляет прямой (произвольный) доступ к элементам по индексу. Линейный список Стек Очередь Дерево Бинарное дерево Хеш-таблица (ассоциативный массив, словарь) Граф Множество

Слайд 3





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

Слайд 4





Двусвязный список
Описание слайда:
Двусвязный список

Слайд 5





Преимущества списка перед массивом
 – Простая вставка элемента:
Удаление элемента
Сортировка элементов (??)
Описание слайда:
Преимущества списка перед массивом – Простая вставка элемента: Удаление элемента Сортировка элементов (??)

Слайд 6





Стек 
Стек — частный случай однонаправленного списка, добавление элементов в который и выборка из которого выполняются с одного конца, называемого вершиной стека (стек реализует принцип обслуживания LIFO). 
Другие операции со стеком не определены. 
При выборке элемент исключается из стека.
Описание слайда:
Стек Стек — частный случай однонаправленного списка, добавление элементов в который и выборка из которого выполняются с одного конца, называемого вершиной стека (стек реализует принцип обслуживания LIFO). Другие операции со стеком не определены. При выборке элемент исключается из стека.

Слайд 7





Очередь
Описание слайда:
Очередь

Слайд 8





Бинарное дерево
Бинарное дерево — динамическая структура данных, состоящая из узлов, каждый из которых содержит, помимо данных, не более двух ссылок на различные бинарные поддеревья. 
На каждый узел имеется ровно одна ссылка. Начальный узел называется корнем дерева. 
Узел, не имеющий поддеревьев, называется листом. Исходящие узлы называются предками, входящие — потомками. 
Высота дерева определяется количеством уровней, на которых располагаются его узлы.
Описание слайда:
Бинарное дерево Бинарное дерево — динамическая структура данных, состоящая из узлов, каждый из которых содержит, помимо данных, не более двух ссылок на различные бинарные поддеревья. На каждый узел имеется ровно одна ссылка. Начальный узел называется корнем дерева. Узел, не имеющий поддеревьев, называется листом. Исходящие узлы называются предками, входящие — потомками. Высота дерева определяется количеством уровней, на которых располагаются его узлы.

Слайд 9





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

Слайд 10





Обход дерева
procedure print_tree( дерево );
begin
	print_tree( левое_поддерево )
	посещение корня
	print_tree( правое_поддерево )
end;
Описание слайда:
Обход дерева procedure print_tree( дерево ); begin print_tree( левое_поддерево ) посещение корня print_tree( правое_поддерево ) end;

Слайд 11





Хеш-таблица
Хеш-таблица (ассоциативный массив, словарь) — массив, доступ к элементам которого осуществляется не по номеру, а по ключу (т.е. это таблица, состоящая из пар «ключ-значение»)
рус-англ-словарь:
  {кукла} -> doll     
  
Хеш-таблица эффективно реализует операцию поиска значения по ключу. Ключ преобразуется в число (хэш-код), которое используется для быстрого нахождения нужного значения в хеш-таблице.
Описание слайда:
Хеш-таблица Хеш-таблица (ассоциативный массив, словарь) — массив, доступ к элементам которого осуществляется не по номеру, а по ключу (т.е. это таблица, состоящая из пар «ключ-значение») рус-англ-словарь: {кукла} -> doll Хеш-таблица эффективно реализует операцию поиска значения по ключу. Ключ преобразуется в число (хэш-код), которое используется для быстрого нахождения нужного значения в хеш-таблице.

Слайд 12





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

Слайд 13





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

Слайд 14





Контейнеры  http://msdn.microsoft.com/ru-ru/library/ybcx56wz.aspx?ppud=4
Контейнер (коллекция) - стандартный класс, реализующий абстрактную структуру данных. 
Для каждого типа коллекции определены методы работы с ее элементами, не зависящие от конкретного типа хранимых данных.
Использование коллекций позволяет сократить сроки разработки программ и повысить их надежность. 
Каждый вид коллекции поддерживает свой набор операций над данными, и быстродействие этих операций может быть разным. 
Выбор вида коллекции зависит от того, что требуется делать с данными в программе и какие требования предъявляются к ее быстродействию. 
В библиотеке .NET определено множество стандартных контейнеров.
Основные пространства имен, в которых они описаны  — System.Collections, System.Collections.Specialized и System.Collections.Generic
Описание слайда:
Контейнеры http://msdn.microsoft.com/ru-ru/library/ybcx56wz.aspx?ppud=4 Контейнер (коллекция) - стандартный класс, реализующий абстрактную структуру данных. Для каждого типа коллекции определены методы работы с ее элементами, не зависящие от конкретного типа хранимых данных. Использование коллекций позволяет сократить сроки разработки программ и повысить их надежность. Каждый вид коллекции поддерживает свой набор операций над данными, и быстродействие этих операций может быть разным. Выбор вида коллекции зависит от того, что требуется делать с данными в программе и какие требования предъявляются к ее быстродействию. В библиотеке .NET определено множество стандартных контейнеров. Основные пространства имен, в которых они описаны  — System.Collections, System.Collections.Specialized и System.Collections.Generic

Слайд 15





System.Collections
Описание слайда:
System.Collections

Слайд 16





Параметризованные коллекции
(классы-прототипы, generics) 
- классы, имеющие типы данных в качестве параметров
Описание слайда:
Параметризованные коллекции (классы-прототипы, generics) - классы, имеющие типы данных в качестве параметров

Слайд 17





Выбор класса коллекции
Нужен ли последовательный список, элемент которого обычно удаляется сразу после извлечения его значения (Queue, Stack)
Нужен ли доступ к элементам в определенном порядке (FIFO - Queue, LIFO - Stack) или в произвольным порядке (LinkedList)
Необходимо ли иметь доступ к каждому элементу по индексу? (ArrayList, StringCollection, List, …)
Будет ли каждый элемент содержать только одно значение, сочетание из одного ключа и одного значения или сочетание из одного ключа и нескольких значений?
Нужна ли возможность отсортировать элементы в порядке, отличном от порядка их поступления? (HashTable, SortedList, SortedDictionary, …)
Необходимы ли быстрый поиск и извлечение данных? (Dictionary)
Нужна ли коллекция только для хранения строк? (StringCollection,  StringDictionary, типиз_коллекция<String>)
Описание слайда:
Выбор класса коллекции Нужен ли последовательный список, элемент которого обычно удаляется сразу после извлечения его значения (Queue, Stack) Нужен ли доступ к элементам в определенном порядке (FIFO - Queue, LIFO - Stack) или в произвольным порядке (LinkedList) Необходимо ли иметь доступ к каждому элементу по индексу? (ArrayList, StringCollection, List, …) Будет ли каждый элемент содержать только одно значение, сочетание из одного ключа и одного значения или сочетание из одного ключа и нескольких значений? Нужна ли возможность отсортировать элементы в порядке, отличном от порядка их поступления? (HashTable, SortedList, SortedDictionary, …) Необходимы ли быстрый поиск и извлечение данных? (Dictionary) Нужна ли коллекция только для хранения строк? (StringCollection, StringDictionary, типиз_коллекция<String>)

Слайд 18





Пример использования класса List
using System;
using System.Collections.Generic;
namespace ConsoleApplication1{
class Program {
        static void Main()  {
		  List<int> lint = new List<int>(); // массив из целых
            lint.Add( 5 ); lint.Add( 1 ); lint.Add( 3 );
            lint.Sort();
            int a = lint[2];          Console.WriteLine( a );
            foreach ( int x in lint ) Console.Write( x + " ");
// массив из монстров:
		  List<Monster> stado = new List<Monster>(); 
            stado.Add( new Monster( "Monia" ) ); /*  …  */
            foreach ( Monster x in stado ) x.Passport();
}}}
Описание слайда:
Пример использования класса List using System; using System.Collections.Generic; namespace ConsoleApplication1{ class Program { static void Main() { List<int> lint = new List<int>(); // массив из целых lint.Add( 5 ); lint.Add( 1 ); lint.Add( 3 ); lint.Sort(); int a = lint[2]; Console.WriteLine( a ); foreach ( int x in lint ) Console.Write( x + " "); // массив из монстров: List<Monster> stado = new List<Monster>(); stado.Add( new Monster( "Monia" ) ); /* … */ foreach ( Monster x in stado ) x.Passport(); }}}

Слайд 19





Пример использования класса Dictionary: формирование частотного словаря
class Program {
    static void Main() {
    StreamReader f = new StreamReader( @"d:\C#\text.txt" ); 
    string s = f.ReadToEnd();
    char[] separators = { '.', ' ', ',', '!' }; 
    List<string> words = new List<string>( s.Split(separators) );
    Dictionary<string, int> map = new Dictionary<string, int>(); 
    foreach ( string w in words ) { 
          if ( map.ContainsKey( w ) ) map[w]++; 
          else  map[w] = 1;                // слово встретилось впервые
          }
    foreach ( string w in map.Keys )     
          Console.WriteLine( "{0}\t{1}", w, map[w] );
 }}
Описание слайда:
Пример использования класса Dictionary: формирование частотного словаря class Program { static void Main() { StreamReader f = new StreamReader( @"d:\C#\text.txt" ); string s = f.ReadToEnd();   char[] separators = { '.', ' ', ',', '!' }; List<string> words = new List<string>( s.Split(separators) ); Dictionary<string, int> map = new Dictionary<string, int>();  foreach ( string w in words ) { if ( map.ContainsKey( w ) ) map[w]++; else map[w] = 1; // слово встретилось впервые }   foreach ( string w in map.Keys ) Console.WriteLine( "{0}\t{1}", w, map[w] ); }}

Слайд 20





Обобщенные методы (generic methods)
// Пример: сортировка выбором
class Program {
        static void Sort<T> ( ref T[] a )                               // 1
            where T : IComparable<T>                                  // 2
        {  T buf;
            int n = a.Length;
            for ( int i = 0; i < n - 1; ++i ) {
                int im = i;
                for ( int j = i + 1; j < n; ++j )
                    if ( a[j].CompareTo(a[im]) < 0 ) im = j;        // 3
                buf = a[i]; a[i] = a[im]; a[im] = buf;
            }
        }
Описание слайда:
Обобщенные методы (generic methods) // Пример: сортировка выбором class Program { static void Sort<T> ( ref T[] a ) // 1 where T : IComparable<T> // 2 { T buf; int n = a.Length; for ( int i = 0; i < n - 1; ++i ) { int im = i; for ( int j = i + 1; j < n; ++j ) if ( a[j].CompareTo(a[im]) < 0 ) im = j; // 3 buf = a[i]; a[i] = a[im]; a[im] = buf; } }

Слайд 21





Продолжение примера
static void Main() {
            int[] a = { 1, 6, 4, 2, 7, 5, 3 };
            Sort<int>( ref a );                                                    // 4
            foreach ( int elem in a ) Console.WriteLine( elem );
 
            double[] b = { 1.1, 5.2, 5.21, 2, 7, 6, 3 };
            Sort( ref b );                                                             // 5
            foreach ( double elem in b ) Console.WriteLine( elem );
 
            string[] s = { "qwe", "qwer", "df", "asd" };
            Sort( ref s );                                                              // 6
            foreach ( string elem in s ) Console.WriteLine( elem );
        }
    }
Описание слайда:
Продолжение примера static void Main() { int[] a = { 1, 6, 4, 2, 7, 5, 3 }; Sort<int>( ref a ); // 4 foreach ( int elem in a ) Console.WriteLine( elem );   double[] b = { 1.1, 5.2, 5.21, 2, 7, 6, 3 }; Sort( ref b ); // 5 foreach ( double elem in b ) Console.WriteLine( elem );   string[] s = { "qwe", "qwer", "df", "asd" }; Sort( ref s ); // 6 foreach ( string elem in s ) Console.WriteLine( elem ); } }

Слайд 22





Преимущества generics
Параметризованные типы и методы позволяют:
описывать способы хранения и алгоритмы обработки данных независимо от типов данных;
выполнять контроль типов во время компиляции программы.
Применение generics увеличивает надежность программ и уменьшает сроки их разработки.
Описание слайда:
Преимущества generics Параметризованные типы и методы позволяют: описывать способы хранения и алгоритмы обработки данных независимо от типов данных; выполнять контроль типов во время компиляции программы. Применение generics увеличивает надежность программ и уменьшает сроки их разработки.

Слайд 23





Организация справки MSDN
Для каждого элемента:
Имя
Назначение
Пространство имен, сборка
Синтаксис (Syntax)
Описание (Remarks)
Примеры (Examples)
Иерархия наследования, платформы, версия, …
Ссылки на родственную информацию (See also)
Описание слайда:
Организация справки MSDN Для каждого элемента: Имя Назначение Пространство имен, сборка Синтаксис (Syntax) Описание (Remarks) Примеры (Examples) Иерархия наследования, платформы, версия, … Ссылки на родственную информацию (See also)

Слайд 24





Пример справки для List <T>
List <T> Class
Represents a strongly typed list of objects that can be accessed by index. Provides methods to search, sort, and manipulate lists.
Namespace:   System.Collections.Generic
Syntax:
[SerializableAttribute] 
public class List<T> : IList<T>, ICollection<T>, IEnumerable<T>, IList, ICollection, IEnumerable
Type Parameters: 
T - The type of elements in the list.
Описание слайда:
Пример справки для List <T> List <T> Class Represents a strongly typed list of objects that can be accessed by index. Provides methods to search, sort, and manipulate lists. Namespace:   System.Collections.Generic Syntax: [SerializableAttribute] public class List<T> : IList<T>, ICollection<T>, IEnumerable<T>, IList, ICollection, IEnumerable Type Parameters: T - The type of elements in the list.

Слайд 25





Remarks
The List <T > class is the generic equivalent of the ArrayList class. It implements the IList <T > generic interface using an array whose size is dynamically increased as required. 
The List <T > class uses both an equality comparer and an ordering comparer. 
Methods such as Contains, IndexOf, LastIndexOf, and Remove use an equality comparer for the list elements. The default equality comparer for type T is determined as follows. If type T implements the IEquatable <T > generic interface, then the equality comparer is the Equals(T) method of that interface; otherwise, the default equality comparer is Object .Equals(Object) . 
Methods such as BinarySearch and Sort use an ordering comparer for the list elements. The default comparer for type T is determined as follows. If type T implements the IComparable <T > generic interface, then the default comparer is the CompareTo(T) method of that interface; otherwise, if type T implements the nongeneric IComparable interface, then the default comparer is the CompareTo(Object) method of that interface. If type T implements neither interface, then there is no default comparer, and a comparer or comparison delegate must be provided explicitly. 
The List <T > is not guaranteed to be sorted. You must sort the List <T > before performing operations (such as BinarySearch) that require the List <T > to be sorted. 
Elements in this collection can be accessed using an integer index. Indexes in this collection are zero-based.
List <T > accepts null as a valid value for reference types and allows duplicate elements.
Описание слайда:
Remarks The List <T > class is the generic equivalent of the ArrayList class. It implements the IList <T > generic interface using an array whose size is dynamically increased as required. The List <T > class uses both an equality comparer and an ordering comparer. Methods such as Contains, IndexOf, LastIndexOf, and Remove use an equality comparer for the list elements. The default equality comparer for type T is determined as follows. If type T implements the IEquatable <T > generic interface, then the equality comparer is the Equals(T) method of that interface; otherwise, the default equality comparer is Object .Equals(Object) . Methods such as BinarySearch and Sort use an ordering comparer for the list elements. The default comparer for type T is determined as follows. If type T implements the IComparable <T > generic interface, then the default comparer is the CompareTo(T) method of that interface; otherwise, if type T implements the nongeneric IComparable interface, then the default comparer is the CompareTo(Object) method of that interface. If type T implements neither interface, then there is no default comparer, and a comparer or comparison delegate must be provided explicitly. The List <T > is not guaranteed to be sorted. You must sort the List <T > before performing operations (such as BinarySearch) that require the List <T > to be sorted. Elements in this collection can be accessed using an integer index. Indexes in this collection are zero-based. List <T > accepts null as a valid value for reference types and allows duplicate elements.

Слайд 26





Examples
The following code example demonstrates several properties and methods of the List <T > generic class of type string. (For an example of a List <T > of complex types, see the Contains method.) 
The default constructor is used to create a list of strings with the default capacity. The Capacity property is displayed and then the Add method is used to add several items. The items are listed, and the Capacity property is displayed again, along with the Count property, to show that the capacity has been increased as needed. 
The Contains method is used to test for the presence of an item in the list, the Insert method is used to insert a new item in the middle of the list, and the contents of the list are displayed again. 
The default Item property (the indexer in C#) is used to retrieve an item, the Remove method is used to remove the first instance of the duplicate item added earlier, and the contents are displayed again. The Remove method always removes the first instance it encounters. 
The TrimExcess method is used to reduce the capacity to match the count, and the Capacity and Count properties are displayed. If the unused capacity had been less than 10 percent of total capacity, the list would not have been resized. 
Finally, the Clear method is used to remove all items from the list, and the Capacity and Count properties are displayed.
Описание слайда:
Examples The following code example demonstrates several properties and methods of the List <T > generic class of type string. (For an example of a List <T > of complex types, see the Contains method.) The default constructor is used to create a list of strings with the default capacity. The Capacity property is displayed and then the Add method is used to add several items. The items are listed, and the Capacity property is displayed again, along with the Count property, to show that the capacity has been increased as needed. The Contains method is used to test for the presence of an item in the list, the Insert method is used to insert a new item in the middle of the list, and the contents of the list are displayed again. The default Item property (the indexer in C#) is used to retrieve an item, the Remove method is used to remove the first instance of the duplicate item added earlier, and the contents are displayed again. The Remove method always removes the first instance it encounters. The TrimExcess method is used to reduce the capacity to match the count, and the Capacity and Count properties are displayed. If the unused capacity had been less than 10 percent of total capacity, the list would not have been resized. Finally, the Clear method is used to remove all items from the list, and the Capacity and Count properties are displayed.

Слайд 27






using System; 
using System.Collections.Generic; 
public class Example { 
public static void Main() { 
   List<string> dinosaurs = new List<string>();
   Console.WriteLine("\nCapacity: {0}", dinosaurs.Capacity); 
   dinosaurs.Add("Tyrannosaurus"); 
   dinosaurs.Add("Amargasaurus"); 
   foreach(string dinosaur in dinosaurs) { Console.WriteLine(dinosaur); } 
   Console.WriteLine("Count: {0}", dinosaurs.Count); 
   Console.WriteLine("\nContains(\"Deinonychus\"): {0}", dinosaurs.Contains("Deinonychus")); 
   Console.WriteLine("\nInsert(2, \"Compsognathus\")"); dinosaurs.Insert(2, "Compsognathus"); 
   foreach(string dinosaur in dinosaurs) { Console.WriteLine(dinosaur); }
…
Описание слайда:
using System; using System.Collections.Generic; public class Example { public static void Main() { List<string> dinosaurs = new List<string>(); Console.WriteLine("\nCapacity: {0}", dinosaurs.Capacity); dinosaurs.Add("Tyrannosaurus"); dinosaurs.Add("Amargasaurus"); foreach(string dinosaur in dinosaurs) { Console.WriteLine(dinosaur); } Console.WriteLine("Count: {0}", dinosaurs.Count); Console.WriteLine("\nContains(\"Deinonychus\"): {0}", dinosaurs.Contains("Deinonychus")); Console.WriteLine("\nInsert(2, \"Compsognathus\")"); dinosaurs.Insert(2, "Compsognathus"); foreach(string dinosaur in dinosaurs) { Console.WriteLine(dinosaur); } …

Слайд 28





Результат работы примера
/* This code example produces the following output: 
Capacity: 0 
Tyrannosaurus 
Amargasaurus 
Capacity: 8 
Count: 5 
Contains("Deinonychus"): True 
Insert(2, "Compsognathus")
…
Описание слайда:
Результат работы примера /* This code example produces the following output: Capacity: 0 Tyrannosaurus Amargasaurus Capacity: 8 Count: 5 Contains("Deinonychus"): True Insert(2, "Compsognathus") …

Слайд 29





See Also
Reference
List <T > Members 
System.Collections.Generic Namespace
IList
Описание слайда:
See Also Reference List <T > Members System.Collections.Generic Namespace IList

Слайд 30





List <T > Members 
Properties
Описание слайда:
List <T > Members Properties

Слайд 31





Методы
Methods
ForEach, GetEnumerator, GetHashCode, GetRange, GetType, IndexOf(T), IndexOf(T, Int32), IndexOf(T, Int32, Int32), Insert, InsertRange, LastIndexOf(T), LastIndexOf(T, Int32), LastIndexOf(T, Int32, Int32), MemberwiseClone, Remove, RemoveAll, RemoveAt, RemoveRange, Reverse (), Reverse(Int32, Int32), Sort (), Sort(Comparison <T >) , Sort(IComparer <T >) , Sort(Int32, Int32, IComparer <T >) , ToArray, ToString, TrimExcess, TrueForAll, …
Описание слайда:
Методы Methods ForEach, GetEnumerator, GetHashCode, GetRange, GetType, IndexOf(T), IndexOf(T, Int32), IndexOf(T, Int32, Int32), Insert, InsertRange, LastIndexOf(T), LastIndexOf(T, Int32), LastIndexOf(T, Int32, Int32), MemberwiseClone, Remove, RemoveAll, RemoveAt, RemoveRange, Reverse (), Reverse(Int32, Int32), Sort (), Sort(Comparison <T >) , Sort(IComparer <T >) , Sort(Int32, Int32, IComparer <T >) , ToArray, ToString, TrimExcess, TrueForAll, …

Слайд 32






Insert
Inserts an element into the List <T > at the specified index. 
Идем на страницу этого метода ->
Описание слайда:
Insert Inserts an element into the List <T > at the specified index. Идем на страницу этого метода ->

Слайд 33





List <T>.Insert Method
Inserts an element into the List <T > at the specified index. 
Syntax
public void Insert( int index, T item ) 
Parameters
indexType: System .Int32 
The zero-based index at which item should be inserted. 
itemType: T
The object to insert. The value can be null for reference types.
Описание слайда:
List <T>.Insert Method Inserts an element into the List <T > at the specified index. Syntax public void Insert( int index, T item ) Parameters indexType: System .Int32 The zero-based index at which item should be inserted. itemType: T The object to insert. The value can be null for reference types.

Слайд 34





Exceptions
Exceptions
ExceptionCondition
ArgumentOutOfRangeExceptionindex is less than 0. 
-or- index is greater than Count. 
Remarks
List <T > accepts null as a valid value for reference types and allows duplicate elements. 
If Count already equals Capacity, the capacity of the List <T > is increased by automatically reallocating the internal array, and the existing elements are copied to the new array before the new element is added. 
If index is equal to Count, item is added to the end of List <T >. 
This method is an O( n) operation, where n is Count. 
Examples
The following code example demonstrates the Insert method, along with various other properties and methods of the List <T > generic class. After the list is created, elements are added. The Insert method is used to insert an item into the middle of the list. The item inserted is a duplicate, which is later removed using the Remove method.
Описание слайда:
Exceptions Exceptions ExceptionCondition ArgumentOutOfRangeExceptionindex is less than 0. -or- index is greater than Count. Remarks List <T > accepts null as a valid value for reference types and allows duplicate elements. If Count already equals Capacity, the capacity of the List <T > is increased by automatically reallocating the internal array, and the existing elements are copied to the new array before the new element is added. If index is equal to Count, item is added to the end of List <T >. This method is an O( n) operation, where n is Count. Examples The following code example demonstrates the Insert method, along with various other properties and methods of the List <T > generic class. After the list is created, elements are added. The Insert method is used to insert an item into the middle of the list. The item inserted is a duplicate, which is later removed using the Remove method.

Слайд 35





See Also
Reference
List <T > Class 
List <T > Members 
System.Collections.Generic Namespace
InsertRange
Add
Remove
И так далее!
Описание слайда:
See Also Reference List <T > Class List <T > Members System.Collections.Generic Namespace InsertRange Add Remove И так далее!

Слайд 36





Работа с файлами
Описание слайда:
Работа с файлами

Слайд 37





Общие принципы работы с файлами 
Чтение (ввод)  — передача данных с внешнего устройства в оперативную память, обратный процесс — запись (вывод). 
Ввод-вывод в C# выполняется с помощью подсистемы ввода-вывода и классов библиотеки .NET. Обмен данными реализуется с помощью потоков.
Поток (stream) — абстрактное понятие, относящееся к любому переносу данных от источника к приемнику. Потоки обеспечивают надежную работу как со стандартными, так и с определенными пользователем типами данных, а также единообразный и понятный синтаксис. 
Поток определяется как последовательность байтов и не зависит от конкретного устройства, с которым производится обмен.
Обмен с потоком для повышения скорости передачи данных производится, как правило, через буфер. Буфер выделяется для каждого открытого файла.
Описание слайда:
Общие принципы работы с файлами Чтение (ввод)  — передача данных с внешнего устройства в оперативную память, обратный процесс — запись (вывод). Ввод-вывод в C# выполняется с помощью подсистемы ввода-вывода и классов библиотеки .NET. Обмен данными реализуется с помощью потоков. Поток (stream) — абстрактное понятие, относящееся к любому переносу данных от источника к приемнику. Потоки обеспечивают надежную работу как со стандартными, так и с определенными пользователем типами данных, а также единообразный и понятный синтаксис. Поток определяется как последовательность байтов и не зависит от конкретного устройства, с которым производится обмен. Обмен с потоком для повышения скорости передачи данных производится, как правило, через буфер. Буфер выделяется для каждого открытого файла.

Слайд 38





Классы .NET для работы с потоками
Описание слайда:
Классы .NET для работы с потоками

Слайд 39





Уровни обмена с внешними устройствами
Выполнять обмен с внешними устройствами можно на уровне:

двоичного представления данных 
(BinaryReader, BinaryWriter);

байтов 
(FileStream);

текста, то есть символов 
(StreamWriter, StreamReader).
Описание слайда:
Уровни обмена с внешними устройствами Выполнять обмен с внешними устройствами можно на уровне: двоичного представления данных (BinaryReader, BinaryWriter); байтов (FileStream); текста, то есть символов (StreamWriter, StreamReader).

Слайд 40





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

Слайд 41





Пример чтения из текстового файла 
   static void Main()   // весь файл -> в одну строку
   {       try
            {
                StreamReader f = new StreamReader( "text.txt" );
                string s = f.ReadToEnd();
                Console.WriteLine(s);
                f.Close();
            }
            catch( FileNotFoundException e )
            {
                Console.WriteLine( e.Message );
                Console.WriteLine( " Проверьте правильность имени файла!" );
                return;
            }
            catch
            {
		     Console.WriteLine( " Неопознанное исключение!" );
                 return;
            }
   }
Описание слайда:
Пример чтения из текстового файла static void Main() // весь файл -> в одну строку { try { StreamReader f = new StreamReader( "text.txt" ); string s = f.ReadToEnd(); Console.WriteLine(s); f.Close(); } catch( FileNotFoundException e ) { Console.WriteLine( e.Message ); Console.WriteLine( " Проверьте правильность имени файла!" ); return; } catch { Console.WriteLine( " Неопознанное исключение!" ); return; } }

Слайд 42





Построчное чтение текстового файла 
		     StreamReader f = new StreamReader( "text.txt" );
                string s;
                long i = 0; 
                
                while ( ( s = f.ReadLine() ) != null )
                     Console.WriteLine( "{0}: {1}", ++i, s );
                f.Close();
Описание слайда:
Построчное чтение текстового файла StreamReader f = new StreamReader( "text.txt" ); string s; long i = 0; while ( ( s = f.ReadLine() ) != null ) Console.WriteLine( "{0}: {1}", ++i, s ); f.Close();

Слайд 43





Чтение целых чисел из текстового файла (вар. 1)
try {
        List<int> list_int = new List<int>();
	    StreamReader file_in = new StreamReader( @"D:\FILES\1024" );
        Regex regex = new Regex( "[^0-9-+]+" );  
        List<string> list_string = new List<string>(
                       regex.Split( file_in.ReadToEnd().TrimStart(' ') ) );
        foreach (string temp in list_string)
                  list_int.Add( Convert.ToInt32(temp) );
        
        foreach (int temp in list_int) Console.WriteLine(temp);
        ...
}
catch (FileNotFoundException e)
        {  Console.WriteLine("Нет файла" + e.Message); return; }
catch (FormatException e)
        {  Console.WriteLine(e.Message); return;     }
catch { … }
Описание слайда:
Чтение целых чисел из текстового файла (вар. 1) try { List<int> list_int = new List<int>(); StreamReader file_in = new StreamReader( @"D:\FILES\1024" ); Regex regex = new Regex( "[^0-9-+]+" ); List<string> list_string = new List<string>( regex.Split( file_in.ReadToEnd().TrimStart(' ') ) ); foreach (string temp in list_string) list_int.Add( Convert.ToInt32(temp) ); foreach (int temp in list_int) Console.WriteLine(temp); ... } catch (FileNotFoundException e) { Console.WriteLine("Нет файла" + e.Message); return; } catch (FormatException e) { Console.WriteLine(e.Message); return; } catch { … }

Слайд 44





Чтение чисел из текстового файла – вар. 2
Описание слайда:
Чтение чисел из текстового файла – вар. 2

Слайд 45





Работа с каталогами и файлами
Пространство имен System.IO: классы 
Directory, DirectoryInfo
File, FileInfo
(создание, удаление, перемещение файлов и каталогов, получение их свойств)
Описание слайда:
Работа с каталогами и файлами Пространство имен System.IO: классы Directory, DirectoryInfo File, FileInfo (создание, удаление, перемещение файлов и каталогов, получение их свойств)

Слайд 46





Элементы класса DirectoryInfo
Описание слайда:
Элементы класса DirectoryInfo

Слайд 47





Пример: копирование файлов *.jpg - 1
class Class1                    // из каталога d:\foto в каталог d:\temp
   static void Main() {
       try {
	      string destName = @"d:\temp\";
		DirectoryInfo dir = new DirectoryInfo( @"d:\foto" );
          if ( ! dir.Exists )          // проверка существования каталога
          {
	 	    Console.WriteLine( "Каталог " + dir.Name + " не сущ." );
	 	    return;
          }
 		DirectoryInfo dest = new DirectoryInfo( destName );
		dest.Create();                     // создание целевого каталога
Описание слайда:
Пример: копирование файлов *.jpg - 1 class Class1 // из каталога d:\foto в каталог d:\temp static void Main() { try { string destName = @"d:\temp\"; DirectoryInfo dir = new DirectoryInfo( @"d:\foto" );   if ( ! dir.Exists ) // проверка существования каталога { Console.WriteLine( "Каталог " + dir.Name + " не сущ." ); return; }   DirectoryInfo dest = new DirectoryInfo( destName ); dest.Create(); // создание целевого каталога

Слайд 48





Пример: копирование файлов *.jpg - 2
       FileInfo[] files = dir.GetFiles( "*.jpg" ); //список файлов
 	   foreach( FileInfo f in files )
             f.CopyTo( dest + f.Name );        // копирование файлов
  	   Console.WriteLine( "Скопировано файлов " + files.Length);
 
  }	   // конец блока try 
    catch ( Exception e ) 
			 {
				 Console.WriteLine( "Error: " + e.Message );
			 }
}}
Описание слайда:
Пример: копирование файлов *.jpg - 2 FileInfo[] files = dir.GetFiles( "*.jpg" ); //список файлов   foreach( FileInfo f in files ) f.CopyTo( dest + f.Name ); // копирование файлов Console.WriteLine( "Скопировано файлов " + files.Length); } // конец блока try catch ( Exception e ) { Console.WriteLine( "Error: " + e.Message ); } }}

Слайд 49





Рубежный контроль по модулю 2
Теор. часть (10 вопросов, 5 баллов):
Оператор switch -1
Параметры методов (передача по значению и по ссылке) – 3
Принципы ООП – 2
Синтаксис обращения к полям и методам, спецификаторы, описание объектов – 4
Практ. часть (задача, 5 баллов):
Задание на массивы (на сайте) или задание по выбору преподавателя.

Практическая часть и по первому, и по второму модулю выполняется на компьютере на лабораторной работе в присутствии преподавателя (дома – только в виде исключения)
Описание слайда:
Рубежный контроль по модулю 2 Теор. часть (10 вопросов, 5 баллов): Оператор switch -1 Параметры методов (передача по значению и по ссылке) – 3 Принципы ООП – 2 Синтаксис обращения к полям и методам, спецификаторы, описание объектов – 4 Практ. часть (задача, 5 баллов): Задание на массивы (на сайте) или задание по выбору преподавателя. Практическая часть и по первому, и по второму модулю выполняется на компьютере на лабораторной работе в присутствии преподавателя (дома – только в виде исключения)

Слайд 50





Экзамены
1100, 1101 – 25.01
1120, 1125 – 26.01
1105, 1106 – 29.01
Досрочный экзамен 25.12 (старосты -> списки)
Описание слайда:
Экзамены 1100, 1101 – 25.01 1120, 1125 – 26.01 1105, 1106 – 29.01 Досрочный экзамен 25.12 (старосты -> списки)



Похожие презентации
Mypresentation.ru
Загрузить презентацию