- •1. Особенности объектно-ориентированного программирования. Понятия класс, объект, метод, событие
- •2. Основные принципы объектно-ориентированного программирования. Характеристика абстрактного класса
- •3. Достоинства и недостатки объектно-ориентированного программирования.
- •4. Характеристика системы программирования Delphi. Историчекские сведения о создании Delphi.
- •5. Структура проекта в Delphi. Понятие компонента. Палитра компонент. Примеры работы с компонентами Label, Edit.
- •6. События и их обработка в Delphi (OnClick, OnFormShow, OnKeyPress). Примеры.
- •7. Операторы безусловного и условного переходов. Составные условия. Оператор выбора варианта (вывод на экран результатов в среде Delphi).
- •10. Создание главного и выплывающего меню. Пример работы с видеофайлами.
- •8. Оператор цикла for. Вложенные циклы. Примеры реализации в среде Delphi.
- •9. Операторы цикла while, repeat.Использование Listbox для вывода результата в среде Delphi. Сочетание циклов и команды ветвления.
- •11. Одномерные массивы в среде Delphi. Удаление элемента из одномерного массива, вставка элемента в заданную позицию. Использование компонента Stringgrid.
- •12. Преобразование матрицы в одномерный массив, пересылка одномерного массива в матрицу.
- •13. Сортировка одномерного массива методом пузырьков.
- •14. Сортировка одномерного массива методом выбора.
- •15. Двумерные массивы в среде Delphi. Описание. Транспонирование матрицы без дополнительных массивов.
- •16. Двумерные массивы в среде Delphi. Перестановка строк. Вставка строки в матрицу.
- •17. Различные способы создания простейших графических образов в среде Delphi , вывод готовых фигур, рисунков. Примеры движения фигур по горизонтали, по вертикали, по окружности.
- •19. Функции и процедуры пользователя (пример реализации в среде Delphi).
- •20. Записи. Оператор with. Пример обработки массива записей (сортировка в среде Delphi).
- •21. Множества. Операции (не менее 6 штук) работы с множеством. Определить количество гласных букв в заданном слове (пример реализации в среде Delphi)..
- •24. Использование возможностей среды Delphi для создания педагогических программных средств.
- •25. Развитие технологий программирования Логическое программирование.
- •26. Case-технология.
- •27. Характеристика среды .Net Framework
- •28. Создание с# (история, предшественники, характеристика).
- •29. Среда разработки Microsoft Visual Studio. Общая характеристика.
- •30. Алфавит, синтаксис, семантика. Стандартные операции, математические функции в c#.
- •36. Символы и строки в c#. Примеры.
- •37. Создание структуры в c#. Пример.
- •38. Создание класса в c#. Пример.
- •39. Примеры создания графических изображений в c#.
- •40. Использование возможностей среды ms Visual Studio для создания педагогических программных средств.
- •41. Особенности создания простейшего web-браузера.
36. Символы и строки в c#. Примеры.
Работа со строками в C#.
Строки в C# – это не простые переменные типа int или bool. Когда мы объявляем какую-либо переменную, то система сразу знает сколько памяти необходимо выделить для хранения значения. Как в этом случае системе быть со строками? Каждый символ в строке занимает 2 байта (в .NET по умолчанию используется Unicode), но количество символов может быть разным.
В Win32 и классических приложениях на, например, Delphi, программисту требовалось выделить память под строку, например, с помощью объявления массива символов или, используя специализированные функции. Способы эти не идеальны, т.к. ошибка в определении размера выделяемой памяти вела к ошибкам в программе, выходу за пределы выделенной памяти и т.д.
C# – это довольно молодой язык программирования и его разработчики постарались учесть все возможные нюансы и тонкости работы со строками. Вот об том мы сегодня с вами и поговорим.
Строки в C# – это объекты типа String значением которого является текст. Что это значит? Как я и обещал, вначале рассмотрим аналогию строк в Delphi и C#.
И такой код в Delphi компилируется на ура. В итоге мы бы получили в Caption пустую строку. Но в C# строка – объект. Проведите аналогия с объектом в Delphi. Что получим, если попробуем обратиться к свойству объекта, когда его ещё не существует, он не создан? Правильно – AV, со всеми вытекающими последствиями. Примерно то же самое и при обращении к непроинициализированной строке в C#. Если написать в Visual Studio: private void button1_Click(object sender, EventArgs e)
{
string s;
label1.Text = s;
}
То сразу получим сообщение об ошибке "Ошибка: Использование локальной переменной "s", которой не присвоено значение". Так то. Прежде, чем обращаться к строке ей следует создать, т.е. передать объекту какое-либо значение. В C# строки (да и любые переменные в принципе) можно объявлять следующим образом: string s;//объявление без инициализации
string s = null; //инициализируем, присваивая значение null
string s = "Hello World";//инициализируем, присвоив в качестве значения текст
Теперь исправим немного листинг и напишем: private void button1_Click(object sender, EventArgs e)
{
string s = null;
label1.Text = s;
}
Вот после этого код Delphi и код C# будут работать идентично – в Caption метки выведется пустая строка. Это что касается объявления строк.
Теперь следующий момент – в .NET нельзя изменять строки. Что это значит? Например, есть код:string str;
str = "Строка 1";
str = "Строка с другим количеством символов"
Также приведет к переопределению памяти и созданию нового объекта строки. Как видите процесс работы со строками с одной стороны довольно прост – всю рутинную работу берет на себя система, но с другой стороны можно легко в ходе работы программы нарваться на пустую или неинициализированную строку. Как избежать подобных случаев? В C# есть замечательный метод под названием IsNullOrEmpty, которые возвращает True в случае, если передаваемый параметр равен null или пустой строке. Использовать метод можно, например так: string s=null;
if (String.IsNullOrEmpty(s))
{
label1.Text = "Пустая строка";
}
Методы для работы со строками
Contains() – позволяет узнать, содержит ли строка подстроку, переданную в качестве параметра. Если содержит, то метод вернет
Format() – статичный метод ( аналог классового метода в Delphi), который позволяет форматировать строки. Внутри строки можно указывать в фигурных скобках места куда должны вставляться второй, третий и т.д. параметры, например:
IndexOf() – возвращает индекс символа, начиная с которого в строке найдена подстрока, переданная в качестве параметра. Если ничего не найдено, то результат равен -1. Пример использован
Insert() – вставляет подстроку, переданную во втором параметре, в строку, начиная с символа, указанного в первом параметре. Например, вставим слово "мир" в переменную str, начиная с седьмой позиции
Remove() – удаляет из строки символы, начиная с индекса, указанного в первом параметре, и ровно столько символов, сколько указано во втором параметре. Если во втором параметре ничего не указано, то удаление производится до конца строки. Сама строка при этом не изменяется, а измененный вариант возвращается в качестве результата. Например, чтобы удалить из строки все символы, начиная с третьего можно сделать так: string str="Привет";
Replace() – ищет в строке подстроку, указанную в качестве первого параметра и заменяет её на строку из второго параметра, возвращая результат замены. Например: string
ToUpper(), ToLower() – возвращают строку, все символы которой приведены к верхнему или нижнему регистру.
ToCharArray() – переводит строку в массив символов. Удобно использовать, когда необходимо проанализировать строку посимвольно, например, с использованием цикла foreach: string
