- •Лабораторная работа 1 Тема: Типы данных и операторы языка с#. Массивы. Строки. Регулярные выражения
- •Типы данных c#
- •Преобразования типов
- •Преобразования строк в число. Класс Convert
- •Массивы в c#
- •Int[] k; //k – одномерный массив
- •Базовый класс System.Array
- •Строки в с# Класс Сhar
- •Класс String
- •Строковые константы
- •Пространство имен RegularExpression и классы регулярных выражений
- •Синтаксис регулярных выражений
- •Классы пространства RegularExpressions
- •1. Проработать примеры 1-8, данные в теоретических сведениях. Создать на их основе программы. Получить результаты работы программ и уметь их объяснить. Внести их в отчет с комментариями.
- •2. Выполнить два задания на двумерный массив по заданному номеру варианта и номеру, отсчитанному с конца.
- •3. Выполнить два задания на строки по заданному номеру варианта и номеру, отсчитанному с конца. Использовать в задачах два класса строк: String и StringBuilder.
- •4. Выполнить задание на применение регулярных выражений. Выбрать одно по заданному номеру.
- •Лабораторная работа 2 Тема: Структуры и перечисления как частные виды классов. Классы. Интерфейсы
- •[Атрибуты][модификаторы]enum имя_перечисления[: базовый класс] {список_возможных_значений}
- •[Атрибуты][модификаторы]struct имя_структуры [:список_интерфейсов] {тело_структуры}
- •Классы в c# [атрибуты][модификаторы]class имя_класса [:список_родителей] {тело_класса}
- •Индексаторы
- •Статические поля и методы класса
- •Наследование
- •Интерфейсы
- •Две стратегии реализации интерфейса
- •Преобразование к классу интерфейса
- •Проблемы множественного наследования
- •Коллизия имен
- •Ip1.Prop1("интерфейс iProps: свойство 1");
- •Ip1.Prop2("интерфейс 1 ", 88);
- •Ip2.Prop1("интерфейс iPropsOne: свойство1");
- •2. Наследование от общего предка
- •Обработка исключительных ситуаций
- •Блок finally
- •Лабораторная работа 3 Тема: Разработка gui. Создание sdi-приложений. Обработка событий
- •Создание простых форм с помощью комплекса инструментальных средств разработки программ .Net sdk
- •Режимы дизайна и кода
- •Элементы управления
- •Общие свойства, события и методы элементов управления
- •Обработка событий в Windows Forms
- •События MouseDown и Keypress
- •Форматирование элементов управления
- •Создание меню
- •Закрытие формы
- •Диалоговые окна
- •Создание панели инструментов
- •Список элементов ListBox
- •Потоковые классы
- •Встроенные типы данных и потоки
- •Класс File
- •Сериализация объектов
- •Создание многооконного приложения
- •Для каждого пункта меню пишем обработчики событий, выполняющие соответсвтвующие пункту действия. Перечисление MdiLayout
- •Вырезание, копирование и вставка текстовых фрагментов
- •Контекстное меню
- •Диалоговые окна
- •Сохранение файла при закрытии формы
- •OpenFileDialog и SaveFileDialog для sdi-приложений
- •Лабораторная работа 5 Тема: Создание и вывод графический изображений на форму. Анимация.
- •Класс Region
- •Вывод графических объектов без события Paint
- •Возможности класса Graphics
- •Класс Pen
- •Вывод изображений
- •Элемент управления PictureBox
- •Вывод изображений и двойная буферизация
4. Выполнить задание на применение регулярных выражений. Выбрать одно по заданному номеру.
Задан текст. Определить входит ли в него заданное слово и сколько раз.
Задан текст. Определить является ли он кодом HTML : содержит теги <html>, <form>, <h1>.
Задан текст. Определить является ли он текстом на английском языке.
Задан текст. После каждой буквы «о» вставить сочетание «Oк».
Задан текст. Определить является ли он текстом на русском языке.
Задан текст. Определить содержит ли он цифры.
Задан текст. Определить сколько предложений начинается со слова “Информатика”.
Задан текст. Выбрать из него все 7-значные номера телефонов.
Задан текст. Определить содержит ли он цифры.
Задан текст. Выбрать из него все e-mail адреса.
Задан текст, содержащий буквы и цифры. Найти произведение все чисел в тексте.
Задано предложение. Распечатать все слова в столбик.
Задан текст. Определить количество согласных букв в нем и распечатать их.
Лабораторная работа 2 Тема: Структуры и перечисления как частные виды классов. Классы. Интерфейсы
Цель работы:
Научиться создавать типы данных структуры и перечисление.
Изучить методы работы со структурами и перечислениями в программе на С#.
Ознакомиться со структурой класса, его созданием и использованием, описанием членов-данных класса и различных методов доступа к ним, возможностью создания и инициализации объектов класса с помощью различных конструкторов.
Теоретические сведения
Перечисление - это частный случай класса. Перечисление задает конечное множество возможных значений, которые могут получать объекты класса перечисление. Поскольку у перечислений нет собственных методов, то синтаксис объявления этого класса упрощается - остается заголовок и тело класса, содержащее список возможных значений:
[Атрибуты][модификаторы]enum имя_перечисления[: базовый класс] {список_возможных_значений}
Особенности объявления перечислений:
как и другие классы, перечисления могут быть объявлены непосредственно в пространстве имен проекта или могут быть вложены в описание класса. Последний вариант часто применяется, когда перечисление используется в одном классе и имеет атрибут доступа private;
константы разных перечислений могут совпадать. Имя константы всегда уточняется именем перечисления;
константы могут задаваться словами русского языка;
разрешается задавать базовый класс перечисления.
разрешается задавать не только базовый класс, но и указывать начальный элемент подмножества, на которое проецируется множество значений перечисления.
Часто бывает удобным создать набор значимых имен, которые будут представлять числовые значения. Представим себе, что вы создаете систему расчета заработной платы для сотрудников. Скорее всего, вам покажется более удобным вместо значений {0, 1, 2, 3} использовать понятные имена VP, Manager, Grunt и Contractor. Создание перечисления для наших целей может выглядеть так:
Значения по умолчанию: еnиm ЕmрТуре { Manager, // = 0 Grunt, // = 1 Contractor, // = 2 VP // = 3 }
|
При необходимости можно задать значения: enum EmpType { Manager = 102, Grunt, // = 103 Contractor, // = 104 VP // = 105 } |
Для элементов перечисления вовсе не обязательно использовать строго последовательные числовые значения.
class EnumClass {
public static void AskForBonus(EmpType e) {
switch(e) {
case EmpType.Contractor:
Console.WriteLine(“You are already get enough cash..."); break;
case EmpType.Grunt:
Console.WriteLine("You havve got to be kidding..."); break;
case EmpType.Manager:
Console.WriteLine(“How about stock options instead?"); break;
case'EmpType.VP:
Console.WriteLine(“VERY GOOD. Sir!"); break;
default: break;
} }
public static int Main(string[] args) {
EmpType fred;
fred = EmpType.Contractor;
AskForBonus(fred);
return 0;
}}
Структуры С# можно рассматривать как особую разновидность классов. С классами структуры роднит многое: для структур можно определять конструкторы (только с параметрами), структуры могут реализовывать интерфейсы. Синтаксис объявления структуры аналогичен синтаксису объявления класса:
