Главная Обратная связь

Дисциплины:

Архитектура (936)
Биология (6393)
География (744)
История (25)
Компьютеры (1497)
Кулинария (2184)
Культура (3938)
Литература (5778)
Математика (5918)
Медицина (9278)
Механика (2776)
Образование (13883)
Политика (26404)
Правоведение (321)
Психология (56518)
Религия (1833)
Социология (23400)
Спорт (2350)
Строительство (17942)
Технология (5741)
Транспорт (14634)
Физика (1043)
Философия (440)
Финансы (17336)
Химия (4931)
Экология (6055)
Экономика (9200)
Электроника (7621)


 

 

 

 



Явное и неявное преобразование данных



Каширина Н.В., Маран М.М.

Программирование на языке 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# имеются следующие типы данных

 

Тип данных Размер Диапазон значений
Целочисленные типы данных
sbyte 1 байт, со знаком -128 … 127
byte 1байт, без знака 0 … 255
char 2 байта, символ Unicode 0000 … FFFF
short 2 байта, со знаком -32768 … 32767
ushort 2 байта, без знака 0 … 65535
int 4 байта, со знаком -2 147 483 646 … 2 147 483 647
uint 4 байта, без знака 0 … 4 294 967 295
long 8 байтов, со знаком -9 223 372 036 854 775 808 … 9 223 372 036 854 775 807
ulong 8 байтов, без знака 0 … 18 446 744 073 709 551 615
decimal 28, 29 десятичных знаков ±10e-28 … ±7.9e+28
Данные с плавающей точкой
float 7 десятичных знаков 1.5e-45 … 3.4e38
double 15-16 десятичных знаков 5.0e-324 … 1.7e308
Логические данные
bool   true … false
Символьные данные
string   Строка любых символов

 

В 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.

 



Просмотров 1217

Эта страница нарушает авторские права




allrefrs.su - 2024 год. Все права принадлежат их авторам!