- •20 Июня 2011 г.
- •Вопрос 1. Понятие информации. Предмет информатика, его цели и задачи.
- •Вопрос 2. Подходы к измерению информации.
- •Семантический подход
- •Вопрос 3. Системы счисления. Основные понятия. Классификация. Смешанные системы счисления.
- •Вопрос 4. Арифметические операции в различных системах счисления.
- •Вопрос 5. Перевод целых чисел из одной системы счисления в другую.
- •Вопрос 6. Перевод правильных дробей из одной системы счисления в другую.
- •Вопрос 7. Варианты представления информации в пк. Текст, числа, графика.
- •Графическая информация
- •Звуковая информация.
- •Вопрос 8. Представление числовой информации в пк.
- •Вопрос 9. Размещение чисел в разрядной сетке пк. Форматы представления чисел.
- •Вопрос 10. Машинные коды.
- •Вопрос 11. Арифметические операции над числами с фиксированной запятой.
- •А и в отрицательные, сумма абсолютных величин а и в больше, либо равна 2n–1.
- •2. А положительное, b отрицательное и по абсолютной величине больше, чем а.
- •3. А положительное, b отрицательное и по абсолютной величине меньше, чем а.
- •Вопрос 12. Арифметические операции над числами с плавающей запятой.
- •Вопрос 13. Основные операции алгебры логики. Таблицы истинности
- •Вопрос 14. Основные операции алгебры логики. Таблицы истинности
- •Вопрос 15. Представление текстовой информации в эвм.
- •Вопрос 16. Представление растровой информации в эвм. Характеристики растрового изображения.
- •Вопрос 17. Представление цвета. Цветовые модели.
- •Вопрос 18. Представление векторной информации в эвм. Векторизация.
- •Вопрос 19. Основные структуры данных.
- •Вопрос 20. Операции с данными.
- •Вопрос 21. Функции программного обеспечения.
- •Вопрос 22. Структура программного обеспечения эвм.
- •Вопрос 23. Алгоритмы архивации.
- •Вопрос 24. Определение компьютерного вируса. Классификация компьютерных вирусов.
- •Вопрос 25. Антивирусные программы. Способы обнаружения компьютерных вирусов.
- •Вопрос 26. Алгоритм. Свойства.
- •Вопрос 27. Способы описания алгоритмов.
- •Словесный – понятные слова и фразы.
- •Вопрос 28. Еспд. Гост 19.701-90.
- •Вопрос 29. Унифицированные структуры. Развилки и выбор.
- •Вопрос 30. Унифицированные структуры. Циклы.
- •Вопрос 31. Инструментарий технологии программирования. Средства разработки приложений.
- •Вопрос 32. Состав системы программирования. Общий принцип работы компилятора и интерпретатора.
- •Вопрос 33. Классификация языков программирования?
- •Вопрос 34. Алфавит языка программирования.
- •Вопрос 35. Простые типы данных в яп c#.
- •Вопрос 36. Реализация на яп c# алгоритмов с ветвлениями.
- •Вопрос 37. Реализация на яп c# циклов с предусловием.
- •Вопрос 38. Реализация на яп c# циклов с постусловием
- •Вопрос 39. Реализация на яп c# циклов с параметром.
- •Вопрос 40. Работа с одномерными массивами в c#.
- •Вопрос 41. Работа с двумерными массивами в c#.
- •Вопрос 42. Алгоритмы сортировки массивов.
- •1) Метод сортировки обменами ("пузырьковая");
- •2) Метод сортировки выбором элемента;
- •Вопрос 43. Работа со строками в c#. Методы для работы со строками.
- •Вопрос 44. Структуры в яп c#.
- •Вопрос 45. Организация методов в c#. Формальные и фактические параметры.
- •Вопрос 46. Работа с классом List. Сериализация
Вопрос 46. Работа с классом List. Сериализация
Класс List призван для работы со списками. В классе List есть методы по добавлению, удалению, вставке элементов и прочее.
Класс List призван для работы со списками. Списки - очень удобный инструмент для программирования.
Списки применяются там, где количество элементов в коллекции на перед не известно. Списки выгодно отличаются от массивов тем, что по ходу выполнения программы их размер можно изменять в любую сторону.
List <тип> имя = new List <тип> ();
Пример:
List <string> L = new List <string> ();
while (true)
{ string st = Console.ReadLine();
if (st.Length == 0) break;
L.Add(st); }
Печать листа:
foreach (string s in L)
Console.WriteLine(s);
Методы класса List
Имя |
Описание |
Add |
Добавляет объект в конец коллекции List <T>. |
AddRange |
Добавляет элементы указанной коллекции в конец списка List <T>. |
AsReadOnly |
Возвращает для текущей коллекции оболочку IList <T>, доступную только для чтения. |
BinarySearch |
Перегружен. Использует алгоритм двоичного поиска для нахождения определенного элемента в отсортированном списке List <T> или в его части. |
Clear |
Удаляет все элементы из коллекции List <T>. |
Contains |
Определяет, входит ли элемент в состав List <T>. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Sort |
Перегружен. Сортирует элементы в списке List <T> или в его части. |
ToArray |
Копирует элементы списка List <T> в новый массив. |
ToString |
Возвращает объект String, который представляет текущий объект Object. (Унаследовано от Object.) |
|
|
|
|
Сериализация
При работе с программной системой зачастую возникает необходимость в сериализации объектов. Под сериализацией понимают процесс сохранения объектов в долговременной памяти (файлах) в период выполнения системы. Под десериализацией понимают обратный процесс - восстановление состояния объектов, хранимых в долговременной памяти. Механизмы сериализации C# и Framework .Net поддерживают два формата сохранения данных - в бинарном файле и XML-файле. В первом случае данные при сериализации преобразуются в бинарный поток символов, который при десериализации автоматически преобразуется в нужное состояние объектов. Другой возможный преобразователь (SOAP formatter) запоминает состояние объекта в формате xml.
Сериализация позволяет запомнить рубежные состояния системы объектов с возможностью последующего возвращения к этим состояниям. Она необходима, когда завершение сеанса работы не означает завершение вычислений. В этом случае очередной сеанс работы начинается с восстановления состояния, сохраненного в конце предыдущего сеанса работы. Альтернативой сериализации является работа с обычной файловой системой, с базами данных и другими хранилищами данных. Поскольку механизмы сериализации, предоставляемые языком C#, эффективно поддерживаются .Net Framework, то при необходимости сохранения данных значительно проще и эффективнее пользоваться сериализацией, чем самому организовывать их хранение и восстановление.
Еще одно важное применение сериализации - это обмен данными удаленных систем. При удаленном обмене данными предпочтительнее формат xml из-за открытого стандарта передачи данных в Интернете по soap-протоколу, из-за открытого стандарта на структуру xml-документов. Обмен становится достаточно простым даже для систем, построенных на разных платформах и в разных средах разработки.
Так же, как и клонирование, сериализация может быть поверхностной, когда сериализуется на одном шаге единственный объект, и глубокой, когда, начиная с корневого объекта, сериализуется совокупность объектов, связанных взаимными ссылками (граф объектов). Глубокую сериализацию, часто обязательную, самому организовать непросто, так как она требует, как правило, рекурсивного обхода структуры объектов.
Если класс объявить с атрибутом [Serializable], то в него встраивается стандартный механизм сериализации, поддерживающий, что крайне приятно, глубокую сериализацию. Если по каким-либо причинам стандартнаясериализация нас не устраивает, то класс следует объявить наследником интерфейса ISerializable, реализация методов которого позволит управлять процессом сериализации.
[Serializable]
public class Test
{
public string name;
int age;
//другие поля и методы класса
}
Для запуска механизма необходимо создать объект, называемый форматером и выполняющий сериализацию и десериализацию данных с подходящим им форматированием. Библиотека FCL предоставляет два класса форматеров. Бинарный форматер, направляющий данные в бинарный поток, принадлежит классу BinaryFormatter.
void SaveState()
{BinaryFormatter bf = new BinaryFormatter();
FileStream fs = new FileStream
("State.bin",FileMode.Create, FileAccess.Write);
bf.Serialize(fs,this);
fs.Close();}
Здесь и выполняется сериализация графа объектов. Как видите, все просто. Вначале создается форматер – объект bf класса BinaryFormatter. Затем определяется файл, в котором будет сохраняться состояние объектов, - объект fs класса FileStream.
ПРИЛОЖЕНИЕ 1
P=10 |
P=2 |
P=4 |
P=8 |
P=16 |
P=2-10 |
0 |
0 |
0 |
0 |
0 |
0000 |
1 |
1 |
1 |
1 |
1 |
0001 |
2 |
10 |
2 |
2 |
2 |
0010 |
3 |
11 |
3 |
3 |
3 |
0011 |
4 |
100 |
10 |
4 |
4 |
0100 |
5 |
101 |
11 |
5 |
5 |
0101 |
6 |
110 |
12 |
6 |
6 |
0110 |
7 |
111 |
13 |
7 |
7 |
0111 |
8 |
1000 |
20 |
10 |
8 |
1000 |
9 |
1001 |
21 |
11 |
9 |
1001 |
10 |
1010 |
22 |
12 |
A |
0001 0000 |
11 |
1011 |
23 |
13 |
B |
0001 0001 |
12 |
1100 |
30 |
14 |
C |
0001 0010 |
13 |
1101 |
31 |
15 |
D |
0001 0011 |
14 |
1110 |
32 |
16 |
E |
0001 0100 |
15 |
1111 |
33 |
17 |
F |
0001 0101 |
16 |
10000 |
100 |
20 |
10 |
0001 0110 |