![]()
Главная Обратная связь Дисциплины:
Архитектура (936) ![]()
|
Явное и неявное преобразование данных
Каширина Н.В., Маран М.М. Программирование на языке C#. Методическое пособие по курсу «Программирование на языках высокого уровня». – М.: Издательство МГТУ «СТАНКИН», 2007. – 94 с.
Учебное пособие содержит описание языка программирования C#, рассмотрены основные конструкции, методики процедурного и объектно-ориентированного программирования. Во второй части пособия приведены основные сведения о работе в среде Microsoft Visual Studio 2005 и описано создание одно- и многооконных интерфейсов пользователя. Предназначено для студентов, обучающихся по направлению «Информатика и вычислительная техника».
© Каширина н.В., М.М.Маран, 2007 © Московский государственный технологический университет «СТАНКИН», 2007 Оглавление Введение.. 6 1 . Базовые элементы языка C#. 7 1.1. Структура программы.. 7 1.2. Типы данных. 8 1.3. Арифметические и логические операции. 10 1.4. Условный оператор и оператор выбора. 11 1.5. Ввод/вывод в консольном режиме. 12 1.6. Комментарии. 14 1.7. Массивы.. 14 1.8. Операторы цикла. 15 1.9. Работа со ступенчатыми массивами. 15 Контрольные вопросы... 15 2. Работа с функциями.. 15 2.1. Общие принципы.. 15 2.2. Процедурное программирование в C#. 15 Контрольные вопросы... 15 3. Объектно-ориентированное программирование на C#. 15 3.1. Общие принципы.. 15 3.2. Объявление и работа с классами. 15 3.3. Перегрузка операторов. 15 3.4. Индексаторы.. 15 3.5. Свойства. 15 3.6. Использование класса в качестве типа данных. 15 3.7. Работа со структурами. 15 3.8. Наследование. 15 3.9. Ссылки на объекты.. 15 3.10. Конструктор копирования. 15 3.11. Виртуальные методы.. 15 3.12. Абстрактные методы и классы.. 15 3.13. Интерфейсы.. 15 3.14. Делегаты и события. 15 3.15. Исключительные ситуации. 15 Контрольные вопросы... 15 4. Среда Microsoft Visual Studio 2005. 15 4.1. Простейший пример. 15 4.2. Средства управления работой программы.. 15 4.3. Создание меню.. 15 4.4. Ввод/вывод массивов. 15 4.4.1. Ввод/вывод и обработка одномерного массива-строки. 15 4.4.2. Ввод/вывод и обработка одномерного массива-столбца. 15 4.4.3. Ввод/вывод и обработка двумерного массива. 15 4.4.4. Форматированный ввод/вывод двумерного массива. 15 4.5. Создание многооконных приложений. 15 4.5.1. Создание SDI –приложения. 15 4.5.2. Создание MDI –приложения. 15 Контрольные вопросы... 15 5. Объектно-ориентированное программирование в Microsoft Visual Studio 2005. 15 5.1. Дополнение класса формы средствами решения прикладной задачи. 15 5.2. Создание отдельных классов. 15 5.3. Передача в классы указателей на формы.. 15 5.4. Создание форм в классах пользователя. 15 Контрольные вопросы... 15 Заключение.. 15 Библиографический список.. 15
Введение
Язык программирования С++ уже давно широко используется для составления самых разнообразных программ. Язык С# — это очередная ступень бесконечной эволюции языков программирования. Его создание вызвано процессом усовершенствования и адаптации, который определял разработку компьютерных языков в течение последних лет. Подобно всем успешным языкам, которые увидели свет раньше, С# опирается на прошлые достижения постоянно развивающегося искусства программирования. В языке С# (созданном компанией Microsoft для поддержки среды .NET Framework) проверенные временем средства усовершенствованы с помощью самых современных технологий. С# предоставляет очень удобный и эффективный способ написания программ для современной среды вычислительной обработки данных, которая включает операционную систему Windows, Internet, компоненты и пр. Компьютерные языки существуют не в вакууме. Они связаны друг с другом, причем на каждый новый язык в той или иной форме влияют его предшественники. В процессе такого "перекрестного опыления" средства из одного языка адаптируются другим, удачная новинка интегрируется в существующий контекст, а отжившая конструкция отбрасывается за ненадобностью. Примерно так и происходит эволюция компьютерных языков и развитие искусства программирования. Не избежал подобной участи и С#. Языку С# "досталось" богатое наследство. Он — прямой потомок двух самых успешных языков программирования (С и C++) и знающие язык Pascal, точнее его версию, реализованную на Delphi, наверняка узнают многие конструкции. С# — это новый язык, разработанный Эндерсом Хейлсбергом в корпорации Microsoft в качестве основной среды разработки для .Net Framework и всех будущих продуктов Microsoft. C# берет свое начало в других языках, в основном, в C++, Java, Delphi, Modula-2 и Smalltalk. Про Хейлсберга следует сказать, что он был главным архитектором Turbo Pascal и Borland Delphi, и его огромный опыт способствовал весьма тщательной проработке нового языка. С одной стороны, для С# в еще большей степени, чем для упомянутых выше языков, характерна внутренняя объектная ориентация; с другой стороны, в нем реализована новая концепция упрощения объектов, что существенно облегчает освоение мира объектно-ориентированного программирования. Формально для чтения данного пособия не требуется никакая предварительная подготовка, кроме базовой подготовки по программированию. Тем не менее знание языков программирования С++ и Delphi существенно упростят этот процесс 1 . Базовые элементы языка C# Структура программы Все приведенные в данном пособии примеры разработаны в среде Microsoft Studio 2005. Данная среда, как и другие среды визуально программирования, позволяет работать как в консольном, так и в режиме диалоговых окон. В первой части учебного пособия для изучения именно языка C# мы будем использовать консольный режим, во второй части рассмотрим разработку диалоговых окон. Для создания новой программы в консольном режиме после запуска Studio 2005 необходимо: - Выбрать по очереди File – New – Project; - Выбрать язык реализации Visual C#, тип проекта Windows, Console Application; - Определить местонахождение нового проекта (Location) и дать ему имя (Name), в нашем случае ConsApp. В ответ увидите следующую картину: using System; //подключение стандартных библиотек using System.Collections.Generic; using System.Text;
namespace ConsApp { // здесь должны находиться созданные пользователем классы class Program { // здесь должны быть функции пользователя при отсутствии классов static void Main(string[] args) { // главная функция, здесь должны быть операторы Console.WriteLine("Привет из Москвы”); Console.ReadLine(); } } } Программа начинается с области имен (ее имя мы определили при создании проекта), которая содержит созданный автоматически класс (Program), а составе этого класса – главная функция (Main). Наш пример содержит простейшую программу – традиционное приветствие. Заодно она показывает вывод символьных строк. Строка Console.ReadLine(); необходима как и в других консольных приложениях для задержки экрана пользователя после завершения программы. Как видите, ввод/вывод очень похож на Pascal. При отсутствии классов и функций пользователя весь текст программы находится в главной функции. Типы данных
В C# имеются следующие типы данных
В C#, как и в С++ большие и маленькие буквы разные, как в именах переменных, так и при написании служебных слов. Объявление данных и присвоение начальных значений. int i, k; float x, y; decimal d1; short n; string s1; char c1; bool b1; i = 3; n=9; x = -6.7f; //или x = -456.43F; double z; z = 5.76; //или z = 5.34D; z = -76.45d; d1 = 123.43m; // или d1 = 154.65M; s1 = "ABCDEF"; c1 = '?'; b1=true; Обратим внимание на то обстоятельство, что константа -6.7 имеет тип double и присвоение x = -6.7; является ошибкой! Также было бы ошибкой присвоение d1 = 123.43; Приведенные примеры показывают и обозначения констант float, double, decimal. Данные типа decimal можно рассматривать как аналог распространенного в системах управления базами данных типа данных Currency (денежный): вычисления с ними выполняются с большой точностью и без округления (если это возможно). Явное и неявное преобразование данных. Общее правило: неявно можно выполнять все преобразования, которые не приведут к потере информации. Поэтому данные типов bool, double, decimal не могут быть неявно преобразованы ни в какие типы данных. float может быть преобразован в double; int может быть преобразован в long, float, double, decimal; long может быть преобразован в float, double, decimal. Явное преобразование выполняется следующим образом (новый_тип_данных) переменная Примеры (объявление данных - см. выше). x=(float)56.3; // константа типа double // преобразуется в float d1 = (decimal)25.6; // константа типа double // преобразуется в decimal i = (int)8.6; //результат i=8 Ответственность за явные преобразования несет программист. Например, следующее преобразование формально не является ошибкой: x=(float)56.6e+300; несмотря на то, что преобразовываемое значение не входит в диапазон допустимых значений данных типа float. Результаты таких преобразований в общем случае не определены. Однако, присвоения short n=123456789; и n=( short)123456789; являются синтаксическими ошибками. В C# всем переменным до их использования в выражениях должны быть присвоены значения, в том числе нули и пустые строки. Использование в выражениях неинициализированных переменных считается ошибкой! Очевидна рекомендация: без необходимости не предпринимайте подозрительных экспериментов с типами данных; если нет на то особых причин, можно рекомендовать ограничиться данными типа int, double, bool, string.
![]() |