Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
C# / C#Лаб1 / ЛабРабота2.doc
Скачиваний:
35
Добавлен:
31.05.2015
Размер:
1.66 Mб
Скачать

26

Программирование на C#

Лабораторная работа № 2

ОПЕРАТОРЫ ЯЗЫКОВ С/С++ и С#

Цель работы: составление алгоритмов и программ разветвленной и циклической структуры на С/С++ и С# с использованием простых типов, явного и неявного преобразования типов.

Теоретические сведения Структура программы. Переменные и выражения

Код на С/С++ и C# представлен последовательностью операторов, оканчивающихся ; .

Пробельные символы игнорируются компилятором, поэтому удобно писать 1 оператор в строке, делать отступы и пропускать строки. Т.е. стиль программирования не страдает.

Программа обладает блочной структурой, скобки { } отмечают начало и конец блока, который может содержать 0 или более операторов. В С# { } не сопровождается ; .

Блоки могут быть вложенными

{

<строка1 кода>;

{

<строка2 кода>;

<строка3 кода>;

}

<строка4 кода>;

}

Для записи комментариев используются /* */, // , /// .

Переменные отличаются по своему типу. Для объявления переменных используется запись

<тип> <имя>;

<тип> <список имен>;

Одновременно с объявлением можно проводить инициализацию. Переменные создаются не при объявлении, а при инициализации. Для задания имени переменной пользуются правилами:

  • 1-й символ обязательно буква, или _ , или @ (только для C#);

  • 2-й и последующие символы – буквы, цифры, знак _ ;

  • имена переменных не должны совпадать с ключевыми словами;

  • компилятор чувствителен к регистру.

Для выбора имен можно пользоваться соглашениями:

  • венгерской нотацией (szString1);

  • нотацией PascalCase (MyVar);

  • нотацией camelCase (myVar).

Рассмотрим дальнейшие правила, относящиеся к языку С#, как более легкому для самостоятельного изучения. В дальнейшем, имея опыт программирования на С#, можно быстрее освоить языки С/С++, тем более, что он изначально поддерживает объектно-ориентированный стиль.

Система типов имеет принципиальный характер, согласно которой в С# все типы можно разделить на 4 категории:

- типы-значения (value) или значимые типы;

- ссылочные (reference).;

- указатели (pointer);

- тип void.

Классификация основана на том, где и как хранятся значения типов. Для ссылочного типа значение задает ссылку на область памяти в "куче", где расположен соответствующий объект. Для значимого типа используется прямая адресация, значение хранит собственно данные, и память для них отводится, как правило, в стеке. Указатели могут использоваться только в небезопасных блоках, помеченных как unsafe. Тип void указывает на отсутствие какого-либо значения. В языке C# к значимым типам относятся: логический, арифметический, структуры, перечисление. Массивы, строки и классы относятся к ссылочным типам.

В C# массивы рассматриваются как динамические, их размер может определяться на этапе вычислений, а не в момент трансляции. Строки могут менять свою длину. Структуры C#, также и как и в С++, представляют частный случай класса. Определив свой класс как структуру, программист получает возможность отнести класс к значимым типам.

Также типы делятся на встроенные и определенные пользователем. Встроенные типы фактически совпадают с системными типами каркаса .Net Framework из пространства имен System.

Таблица 1

Логический тип

Имя типа

Системный тип

Значения

Размер

bool

System.Boolean

true, false

8 бит

Арифметические целочисленные типы

Имя типа

Системный тип

Диапазон

Размер

sbyte

System.SByte

-128 — 127

Знаковое, 8 Бит

byte

System.Byte

0 — 255

Беззнаковое, 8 Бит

short

System.Short

-32768 —32767

Знаковое, 16 Бит

ushort

System.UShort

0 — 65535

Беззнаковое, 16 Бит

int

System.Int32

≈(-2*10^9 — 2*10^9)

Знаковое, 32 Бит

uint

System.UInt32

≈(0 — 4*10^9)

Беззнаковое, 32 Бит

long

System.Int64

≈(-9*10^18 — 9*10^18)

Знаковое, 64 Бит

ulong

System.UInt64

≈(0— 18*10^18)

Беззнаковое, 64 Бит

Арифметический тип с плавающей точкой

Имя типа

Системный тип

Диапазон

Точность

float

System.Single

+1.5*10^-45 - +3.4*10^38

7 цифр

double

System.Double

+5.0*10^-324 - +1.7*10^308

15-16 цифр

Арифметический тип с фиксированной точкой

Имя типа

Системный тип

Диапазон

Точность

decimal

System.Decimal

+1.0*10^-28 - +7.9*10^28

28-29 значащих цифр

Символьные типы

Имя типа

Системный тип

Диапазон

Точность

char

System.Char

U+0000 - U+ffff

16 бит Unicode символ

string

System.String

Строка из символов Unicode

Объектный тип

Имя типа

Системный тип

Примечание

object

System.Object

Прародитель всех встроенных и пользовательских типов

Соседние файлы в папке C#Лаб1