- •1. Эволюция языков прогр-я.
- •2. Что такое .Net? Обзор технологий программирования под Windows.
- •3. Компоненты платформы .Net. Что такое .Net Framework?
- •4. Модель выполнения приложения в среде .NetFramework. Промежуточныйязык Microsoft (Microsoft Intermediate Language, msil). Сборки
- •5. Обзор встр. Типов данных в с#. Применение встроенной функц-сти типов данных.
- •6. Операции ввода-вывода. Формат вывода. Пространство имён System. Класс Math. Пространство имён System и класс Math
- •7. Арифметические операции. Операции отношений и логические операции. Операторы и выражения в c# .
- •Операторы сравнения в c#. Лог. Операции для условий
- •Операторы
- •8. Одномерные массивы в c#. Класс System.Random, применение его методов для создания массива случайных чисел. Класс System.Array, использование его методов и свойства Length.
- •9. Двумерныемассивы в c#. Виды двумерных массивови способы их определения; способы создания; построчный вывод на экран
- •10. Структуры в c#. Создание структур, доступ к элементам, массивы структур.
- •11.Объект и его свойства. Характеристики ооп.
- •12.Классы в c#. Форма определения класса. Члены класса: методы, поля, свойства и события.
- •13.Конструкторы. Параметризованные конструкторы. Использование оператора new.
- •14. Типы значений и ссылочные типы. Динамическое использование памяти: стеки и кучи. Упаковка и распаковка.
- •15. Деструкторы. Сборка «мусора».
- •16. Определение методов класса. Модификаторы доступа к методам класса. Параметры методов класса, передача аргументов.
- •17. Модификаторы ref, out, params параметров методов.
- •18. Общие (статические) члены класса. Доступ к общим членам. Ограничения на static-методы.
- •19.Область видимости и время существования переменных.
- •20. Преобразование и приведение типов.
- •21. Обработка исключительных ситуаций.
- •22. Перегрузка методов и перегрузка конструкторовкак механизм реализации полиморфизма. Виды конструкторов.
- •23. Понятие стека. Класс «Стек из символов», его основные методы.
- •24. Перегрузка операторов. Перегрузка бинарных, унарных и операторов отношений.
- •25. Свойства как механизм реализации инкапсуляции. Формат записи свойств.
- •26. Индексаторы. Специальные приемы построения типов. Создание одномерных и двумерных индексаторов.
- •27.Наследование. Базовые и производные классы. Доступы к членам базовых классов.
- •28.Конструкторы и наследование (проект «Наследование»).
- •29. Ссылки на базовый класс и объекты производных классов.
- •30. Виртуальные методы и их переопределение.
- •31. Абстрактные классы.
- •32. Понятие интерфейса. Определение интерфейса.
- •33. Способы реализации интерфейса.
- •34.Некоторые станд.Интерфейсы среды .Net Framework.
- •35. Механизмы реализации полиморфизма в c#.
- •36. Понятие обобщенного программирования. Принципы обобщенного программирования (абстрагирование, иерархия, типизация).
- •37. Коллекции и наборы. Обзор коллекций. Интерфейсы коллекций. Классы коллекций общего назначения.
- •38. Классы ArrayList, Queue, Stack. Методы работы с различными структурами данных.
- •39. Динамическая идентификация типов. Проверка типа с помощью ключевого слова is. Использование операторов as, typeof.
- •40. Обобщение. Разработка обобщенных наборов, методов, классов.
- •41. Отражение и атрибуты. Понятие отражения. Класс System.Type. Получение информации о методах и типах. Атрибуты. Основы применения атрибутов.
- •42.Принципы работы Windows-приложений c пользователем.
- •43. Делегаты. Назначение делегатов. Многоадресатная передача.
- •44. События. Объявление и генерация событий. Реализация обработчиков событий.
- •Объявление события:
- •45.Понятие компонента и компонентной модели, компонентно-ориентированного программирования.
- •46.Принципы и технологии внедрения и связывания объектов. Ос Windows позволяет:
9. Двумерныемассивы в c#. Виды двумерных массивови способы их определения; способы создания; построчный вывод на экран
Двумерный массив - это одномерный массив, элементами которого являются одномерные массивы. Другими словами, это набор однотипных данных, имеющий общее имя, доступ к элементам которого осуществляется по двум индексам. Наглядно двумерный массив удобно представлять в виде таблицы, в которой n строк и m столбцов, а под ячейкой таблицы, стоящей в i-й строке и j-м столбце понимают некоторый элемент массива a[i,j].
Массивы в С# могут быть объявлены с любым кол-вом измерений. Рассм. простейший многом. массив – двумерный или прямоугольный. При объявлении в [ ] через запятую указывается размер массива для каждого измерения. Объявим, например, матрицу 1020 целых чисел: int [,] Matrix = newint[10,20]; // Создаётся ссылочная переменная двухмерного массива
Пример: заполняем матрицу 34 числами от 1 до 12
using System; Class Dwumas
{ public static void Main() { int i, j; int [,] Matr = new int [3,4];
for (i = 0; i < 3; i + +) { for (j = 0; j < 4; j ++) { Matr [i,j] = (i*4) + j + 1;
Console. Write(Matr [i,j] + “ ”); } Console. WriteLine(); }
Альтернативный способ доступа к элементам массива – цикл foreach.
Пример использования foreach для вывода элементов массива:
using System; class use mas { static void Main() {
Console. WriteLine(“Сколько чисел вы хотите ввести”);
int n = int32. Parse(Console. ReadLine());
int [ ] Mas = new int [n]; for (int k = 0; k < n; k + +)
{ Console. WriteLine(“Введитечисло”);
Mas [k] = int32.Parse(Console. ReadLine()); }
foreach(int z in Mas) Console. WriteLine(“Это число {0}”, z); } }
Массивом наз. упорядоченную совок-сть эл-тов одного типа. Каждый эл-т массива имеет индексы, определяющие порядок эл-тов. Число индексов хар-ет размерность массива. Каждый индекс измен. в некот. диапазоне [a,b]. Диапазон [a,b] наз. граничной парой, a - нижней границей, b - верхней границей индекса. При объявлении массива границы задаются выражениями. Если все границы заданы константными выражениями, то число эл-тов массива известно в момент его объявления и ему может быть выделена память еще на этапе трансляции. Такие массивы наз. статическими. Если же выражения, задающие границы, зависят от переменных, то такие массивы наз. Динамическими. Массиву выделяется непрерывная обл. памяти.
C# поддерживает многомерные массивы двух видов. Первый вид - прямоугольные массивы.
int [] k = new int [2, 3]
int[,] k = {{ 2, -2 }, { 3, -22 }, { 0, 4 }};
Двумерный прямоугольный массив - это массив в каждой строке которых одинаковое число столбцов. Он инициализируется так: string [,] (двумерный массив строк). Второй вид - неровные массивы. Каждый ряд неровного двумерного массива может содержать различное число столбцов. При создании нервных массивов на самом деле формируется массив массивов
Наряду с прямоугольными массивами существуют так называемые ступенчатые. Вот пример: //Объявляем 2-мерный ступенчатый массив int[][] k = new int [2][];
Обратите внимание, что у ступенчатых массивов мы задаем несколько пар квадратных скобок (по размерности массива). И точно так же мы что-нибудь делаем с элементами массива — записываем, читаем и т. п. Самая важная и интересная возможность ступенчатых массивов — это их «непрямоугольность». Так, в приведенном выше примере в первой «строке» массива к три целых числа, а во второй — восемь.
Реализовать построчный вывод на экран можно с помощью такого вида программного кода:
for (kk = 0; kk < n; kk++) { for (mm = 0; mm < n; mm++) Console.WriteLine(mas[kk, mm] + " "); }