Лекция №2 Общая структура программы. Данные. Типы данных. Оператор присваивания. Арифметические операции. Пространства имен.

Понятие класса

Для представления объектов в C# используется понятие класс, аналогичное обыденному смыслу этого слова в контексте "класс членистоногих", "класс млекопитающих", "класс задач" и т.п. Класс является обобщенным понятием, определяющим характеристики и поведение некоторого множества конкретных объектов этого класса, называемых экземплярами класса.

"Классический" класс содержит данные, задающие свойства объектов класса, и функции, определяющие их поведение.

Все классы библиотеки .NET, а также все классы, которые создает программист в среде .NET, имеют одного общего предка — класс object, и организованы в единую иерархическую структуру. Внутри нее классы логически сгруппированы в так называемые пространства имен, которые служат для упорядочивания имен классов и предотвращения конфликтов имен: в разных пространствах имена могут совпадать. Пространства имен могут быть вложенными, их идея аналогична знакомой вам иерархической структуре каталогов на компьютере.

Любая программа, создаваемая в .NET, использует пространство имен System. В нем определены классы, которые обеспечивают базовую функциональность, например, поддерживают выполнение математических операций, управление памятью и ввод-вывод.

Общая структура программы на С# выглядит следующим образом:

using System;

namespace MyProgram

{

class Program

{

static void Main()

{

}

}

}

Директива using System разрешает использовать имена стандартных классов из пространства имен Systemнепосредственно (без указания имени пространства).

Ключевое слово namespace создает для проекта собственное пространство имен, названное по умолчанию ConsoleApplication1. В нашем случае MyProgram. Это сделано для того, чтобы можно было давать программным объектам имена, не заботясь о том, что они могут совпасть с именами в других пространствах имен.

C# — объектно-ориентированный язык, поэтому написанная на нем программа представляет собой совокупность взаимодействующих между собой классов. В нашей заготовке программы всего один класс, которому по умолчанию задано имя Program. Описание классаначинается с ключевого слова class, за которым следуют его имя и далее в фигурных скобках — список элементов класса (его данных и функций, называемых также методами).

Фигурные скобки являются важным элементом синтаксиса. Каждой открывающей скобке соответствует своя закрывающая, которая обычно располагается ниже по тексту с тем же отступом. Эти скобки ограничивают блок, внутри которого могут располагаться другие блоки, вложенные в него, как матрешки. Блок может применяться в любом месте, где допускается отдельный оператор.

В данном случае внутри класса только один элемент — метод Main. Каждое приложение должно содержать метод Main — с него начинается выполнение программы.

Все языки программирования состоят из алфавита, синтаксиса и семантики.

Алфавит - это набор различимых символов: букв, цифр, специальных знаков и т.п. Например, алфавит машинного языка состоит из двух символов: 0 и 1

Синтаксис – правила построения конструкций языка

Семантика – совокупность правил истолкования конструкций языка, образованных в соответствии с синтаксисом.

Алфавит C# включает:

- Буквы (латинские и национальных алфавитов) и символ подчеркивания ( _ ), который употребляется наряду с буквами;

- цифры;

- специальные символы, например +, *, { и &;

- пробельные символы (пробел и символы табуляции);

- символы перевода строки.

Из символов составляются более крупные строительные блоки: лексемы, директивы препроцессора и комментарии.

Имена, или идентификаторы, служат для того чтобы обращаться к программным объектам и различать их, то есть идентифицировать. В идентификаторе могут использоваться буквы, цифры и символ подчеркивания. Прописные и строчные буквы различаются, например, hacker, Hacker и hAcKeR — три разных имени.

Первым символом идентификатора может быть буква или знак подчеркивания, но не цифра. Длина идентификатора не ограничена. Пробелы внутри имен не допускаются.

Ключевые слова — это зарезервированные идентификаторы, которые имеют специальное значение для компилятора. Их можно использовать только в том смысле, в котором они определены. В редакторе кода они выделены голубым цветом.

Любая программа обрабатывает данные. Данные могут быть постоянными (константы) и переменными. Константы записываются следующим образом:

Целое число 123 или -12

Вещественное число должно содержать точку в качестве разделителя и суффикс, например 0.3f или 0.25d – позже подробнее.

Одиночный символ заключается в одинарную кавычку ''

'А' или '3'

Строка заключается в двойную кавычку ""

"HELLO" или "WORLD"

Существуют также зарезервированные константы, например

Логические: TRUE, FALSE

Неопределенно: NULL.

Комментарии предназначены для записи пояснений к программе и формирования документации. Компилятор комментарии игнорирует. Внутри комментария можно использовать любые символы. В C# есть два вида комментариев: однострочные и многострочные.

Однострочный комментарий начинается с двух символов прямой косой черты (//) и заканчивается символом перехода на новую строку, многострочный заключается между символами-скобками /* и */ и может занимать часть строки, целую строку или несколько строк. Комментарии не вкладываются друг в друга.

Типы данных в С#

Тип данных – это множество значений, которое может принимать переменная.

Данные, с которыми работает программа, хранятся в оперативной памяти. Естественно, что компилятору необходимо точно знать, сколько места они занимают, как именно закодированы и какие действия с ними можно выполнять. Все это задается при описании данных с помощью типа.

Тип данных однозначно определяет:

- внутреннее представление данных, а, следовательно, и множество их возможных значений;

- допустимые действия над данными (операции и функции).

Например, целые и вещественные числа, даже если они занимают одинаковый объем памяти, имеют совершенно разные диапазоны возможных значений.

Каждое выражение в программе имеет определенный тип. Компилятор использует информацию о типе при проверке допустимости описанных в программе действий.

Память, в которой хранятся данные во время выполнения программы, делится на две области: стек (stack) и динамическая область, или хип (heap), чаще называемый кучей. Стек используется для хранения величин, память под которые выделяет компилятор, а в динамической области память резервируется и освобождается во время выполнения программы с помощью специальных команд. Основным местом для хранения данных в C# является хип.

Все типы можно разделить на простые (не имеют внутренней структуры) и структурированные (состоят из элементов других типов).

Встроенные типы не требуют предварительного определения. Для каждого типа существует ключевое слово, которое используется при описании переменных, констант и т.д. Встроенные типы C# приведены в таблице Они однозначно соответствуют стандартным классам библиотеки .NET, определенным в пространстве имен System. Как видно из таблицы, существуют несколько вариантов представления целых и вещественных величин. Программист выбирает тип каждой величины, используемой в программе, с учетом необходимого ему диапазона и точности представления данных.

Лекция №2 Общая структура программы. Данные. Типы данных. Оператор присваивания. Арифметические операции. Пространства имен. - student2.ru

Переменная — это именованная область памяти, предназначенная для хранения данных определенного типа. Во время выполнения программы значение переменной можно изменять. Все переменные, используемые в программе, должны быть описаны явным образом. При описании для каждой переменной задаются ее имя и тип.

Пример описания целой переменной с именем a и вещественной переменной x:

int a; float x;

Имя переменной служит для обращения к области памяти, в которой хранится значение переменной. Имя дает программист. Тип переменной выбирается, исходя из диапазона и требуемой точности представления данных. При объявлении можно присвоить переменной некоторое начальное значение, то есть инициализировать ее, например:

int a, b = 1;

float x = 0.1f, y = 0.1f;

Здесь описаны:

Переменная a типа int, начальное значение которой не присваивается;

Переменная b типа int, ее начальное значение равно 1;

Переменные х и y типа float, которым присвоены одинаковые начальные значения 0.1. Рекомендуется всегда инициализировать переменные при описании. При инициализации можно использовать не только константу, но и выражение — главное, чтобы на момент описания оно было вычисляемым, например:

int b = 1, a = 100;

int x = b * a + 25;

Операции и выражения

Выражение — это правило вычисления значения. В выражении участвуют операнды, объединенные знаками операций. Операндами простейшего выражения могут быть константы, переменные и вызовы функций.

Например, a + 2— это выражение, в котором + является знаком операции, а a и 2 — операндами. Пробелы внутри знака операции, состоящей из нескольких символов, не допускаются.

Операции:

Лекция №2 Общая структура программы. Данные. Типы данных. Оператор присваивания. Арифметические операции. Пространства имен. - student2.ru

Лекция №2 Общая структура программы. Данные. Типы данных. Оператор присваивания. Арифметические операции. Пространства имен. - student2.ru

Лекция №2 Общая структура программы. Данные. Типы данных. Оператор присваивания. Арифметические операции. Пространства имен. - student2.ru

Лекция №2 Общая структура программы. Данные. Типы данных. Оператор присваивания. Арифметические операции. Пространства имен. - student2.ru

Операции в выражении выполняются в определенном порядке в соответствии с приоритетами, как и в математике. Результат вычисления выражения характеризуется значением и типом. Например, пусть a и b— переменные целого типа и описаны так:

int a = 2, b = 5;

Тогда выражение a + b имеет значение 7 и тип int

Пример Типы, преобразование типов.

using System;

namespace MyProgram

{ class Program

{ static void Main(string[] args)

{ decimal A=0.3m;

float x = 0.1f, y=0.2f;

int b = 0;

double Z = 0.3;

b = A + 1; //недопустимо

x = b + 2; // Допускается

x = A + 2; //недопустимо

b = Z * 2;//недопустимо

Z = A * 2;//недопустимо

Z = x * 2; // Допускается

} }}

Пример Операция присваивания. Работа в отладчике.

Для запуска отладчика, достаточно поставить точку остановы (F9) в требуемом месте. Для того чтобы перейти к следующей строке кода в отладчике используется клавиша F10, чтобы продолжить отладку целиком F5.

В отладчике рассмотрим операции присваивания.

Наши рекомендации