Студопедия — ТЕОРЕТИЧЕСКОЕ ВВЕДЕНИЕ. Алфавит (или множество литер) языка программирования С# составляют символы таблицы кодов ASCII
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

ТЕОРЕТИЧЕСКОЕ ВВЕДЕНИЕ. Алфавит (или множество литер) языка программирования С# составляют символы таблицы кодов ASCII






 

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ

1.1. Алфавит языка С#

Алфавит (или множество литер) языка программирования С# составляют символы таблицы кодов ASCII. Алфавит С# включает:

• строчные и прописные буквы латинского алфавита (мы их будем называть буквами);

• цифры от 0 до 9 (назовем их буквами-цифрами);

• символ «_» (подчеркивание — также считается буквой);

• набор специальных символов: " { }, 1 [ ] + — %/ \; ':? < > =! & # ~ *-

• прочие символы.

Алфавит С# служит для построения слов, которые в C++ называются лексемами. Различают пять типов лексем:

• идентификаторы;

• ключевые слова;

• знаки (символы) операций;

• литералы;

• разделители.

Идентификатор может включать латинские буквы и буквы национальных алфавитов, цифры и символ подчеркивания. Прописные и строчные буквы различаются, например, myname, myName и MyName — три различных имени. Первым символом идентификатора может быть буква или знак подчеркивания, но не цифра. Могут быть зарезервированные идентификаторы, которые имеют специальное значение для компилятора, например, include, main, int и т.д.

Часть идентификаторов С# входит в фиксированный словарь ключевых слов. Эти идентификаторы образуют подмножество ключевых слов (они так и называются ключевыми словами).

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

Существуют переменные, значение которых нельзя изменить(константы). Константы бывают трех видов: литералы, символические константы и перечисления.

В операторе присваивания: x=32. Число 32 является литеральной константой и его значение всегда равно 32 и его нельзя изменить.

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

const <тип> <идентификатор> = <значение>;

Перечисления (enumerations) являются альтернативой константам. Перечисление - это особый размерный тип, состоящий из набора именованных констант (называемых списком перечисления).

К знакам операций относится один или более символов, определяющих действие над операндами. Внутри знака операции пробелы не допускаются. Например, в выражении а + b знак + является знаком операции, а а и b — операндами. Символы, составляющие знак операций, могут быть как специальными, например, &&, | и <, так и буквенными, такими как as или new.

Операции делятся на унарные, бинарные и тернарную по количеству участвующих в них операндов. Один и тот же знак может интерпретироваться по-разному в зависимости от контекста. Все знаки операций, за исключением [ ], ().и?:, представляют собой отдельные лексемы. Для разделения используются скобки, точка, запятая. Ниже перечислены все знаки операций и разделители, использующиеся в С#:

{} [] ()..:: + - * / * % & | ˆ! ˜ =

< >? ++ -- && || «» ==!= <=>= += - =.*=

/= %= &= |= ˆ= <<= >>= ->

Существуют следующие виды операций:

- Операции инкремента (++) и декремента (--), называемые также операциями увеличения и уменьшения на единицу, имеют две формы записи префиксную, когда знак операции записывается перед операндом, и постфиксную.

- Операция new служит для создания нового объекта. Формат операции: new тип ([ аргументы ])

- Арифметическое отрицание (унарный минус -) меняет знак операнда на противоположный. Стандартная операция отрицания определена для типов int, long, float, double и decimal.

- Логическое отрицание (!) определено для типа boo!. Результат операции значение false, если операнд равен true, и значение true, если операнд равен false.

- Поразрядное отрицание (~), часто называемое побитовым, инвертирует каждый разряд в двоичном представлении операнда типа int, uint, long или ulong.

- Операция остатка от деления (%).

Также в языке С# очень часто используются управляющие символы, все используемые символы представлены в таблице 1.1

Управляющие символы

\a - Звуковой сигнал;

\b - Возврат на шаг назад;

\f - Перевод страницы;

\r - Возврат каретки;

\t - Горизонтальная табуляция;

\v - Вертикальная табуляция;

\\ - Обратная косая черта;

\’ - Апостроф

С# является языком со строгой типизацией. В нем необходимо объявлять тип всех создаваемых программных элементов (например, переменных, объектов, окон, кнопок и т. д.). Тип программного элемента сообщает компилятору о его размере (например, тип int показывает, что объект занимает 4 байта) и возможностях.

В С# типы делятся на две группы: базовые типы, предлагаемые языком, и типы, определяемые пользователем. Кроме того, типы С# разбиваются на две другие категории: размерные типы (типы по значению) и ссылочные типы.

Типы можно классифицировать по разным признакам. Если принять за основу строение элемента, все типы можно разделить на простые (не имеют внутренней структуры) и структурированные (состоят из элементов других типов). Для данных динамического типа размер данных в момент объявления может быть неизвестен, и память под них выделяется по запросу в процессе выполнения программы.

Почти все базовые типы являются размерными типами. Исключение составляют типы Object и String. Все пользовательские типы, кроме структур, являются ссылочными. Дополнительно к упомянутым типам, язык С# поддерживает типы указателей, однако они используются только с неуправляемым кодом. Принципиальное различие между размерными и ссылочными типами состоит в способе хранения их значений в памяти.

Целые типы, а также символьный, вещественные и финансовый типы можно объединить под названием арифметических типов.

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

Все вещественные типы могут представлять как положительные, так и отрицательные числа. Чаще всего в программах используется тип double, поскольку его диапазон и точность покрывают большинство потребностей. Этот тип имеют вещественные литералы и многие стандартные математические функции.

Тип decimal предназначен для денежных вычислений, в которых критичны ошибки округления. Величины типа decimal позволяют хранить 28-29 десятичных разрядов.

Чаще всего типы С# разделяют по способу хранения элементов на типы-значения и ссылочные типы.

Язык С# предлагает обычный набор базовых типов, представленных в таблице 1.1

Таблица 1.1

Базовый набор типов данных

Тип Размер в байтах Тип.NET Описание
Базовый тип
object   Object Может хранить все что угодно, т.к. является всеобщим предком
Логический тип
bool   Bolean true или false
Целые типы
sbyte   SByte Целое со знаком (от -128 до 127)
byte   Byte Целое без знака (от 0 до 255)
short   Int16 Целое со знака (от -32768 до 32767)
ushort   UInt16 Целое без знака (от 0 до 65535)
int   Int32 Целое со знаком (от -2147483648 до 2147483647)
uint   UInt Целое число без знака (от 0 до 4 294 967 295)
long   Int64 Целое со знаком (от -9223372036854775808 до 9223372036854775807)
ulong   UInt64 Целое без знака (от 0 до 0fffffffffffffff)
Вещественные типы
Float   Single Число с плавающей точкой двойной точности. Содержит значения приблизительно от 1.5*10-45 до 3.4*1038 c 7 значащими цифрами

 

Продолжение табл.1.2

double   Double Число с плавающей точкой двойной точности. Содержит значения приблизительно от 5. 0*10-324 до 1.7*10308 c 15-16 значащими цифрами
Символьный тип
char   Сhar Символы Unicode
Строковый тип
string   String Строка из Unicode-символов
Финансовый тип
decimal     Decimal   Число до 28 знаков с фиксированным положением десятичной точки. Обычно используется в финансовых расчетах. Требует суффикса <<m>> или <<М>>

 

Операнды, связанные знаками операций, образуют выражения. Понятие «выражение» в языке программирования соответствует понятию «словосочетание» в языке человека. Тип выражения определяется типом операндов.

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

1.2. Операторы языка С#

Операторы управляют процессом выполнения программы. Набор операторов языка С++ содержит все управляющие конструкции структурного программирования.

Составной оператор ограничивается фигурными скобками. Все другие операторы заканчиваются точкой с запятой.

· Пустой оператор –;

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

· Составной оператор – {...}

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

· Оператор обработки исключений

· try { <операторы>; }

· catch (<объявление исключения>;) { <операторы>; }

· catch (<объявление исключения>;) { <операторы>; }

·...

· catch (<объявление исключения>;) { <операторы>; }

· Условный оператор

· if (<выражение>;) <оператор 1>; [ else <оператор 2>;]

· Оператор-переключатель

· switch (<выражение>;)

· { case <константное выражение 1>;: <операторы 1>;

· case <константное выражение 2>;: <операторы 2>;

·...

· case <константное выражение N>;: <операторы N>;

· [ default: <операторы>;]

· }

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

· Оператор цикла с предусловием

· while (<выражение>;) <оператор>;

· Оператор цикла с постусловием

· do <оператор>; while <выражение>;;

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

· Оператор пошагового цикла

· for ([ <начальное выражение>;];

· [ <условное выражение>;];

· [ <выражение приращения>;])

· <оператор>;

Тело оператора for выполняется до тех пор, пока условное выражение не станет ложным (равным 0). Начальное выражение и выражение приращения обычно используются для инициализации и модификации параметров цикла и других значений. Начальное выражение вычисляется один раз до первой проверки условного выражения, а выражение приращения вычисляется после каждого выполнения оператора. Любое из трех выражений заголовка цикла, и даже все три могут быть опущены (не забывайте только оставлять точки с запятой). Если опущено условное выражение, то оно считается истинным, и цикл становится бесконечным.

Оператор пошагового цикла в языке С++ является гибкой и удобной конструкцией, поэтому оператор цикла с предусловием while используется в языке С++ крайне редко, т.к. в большинстве случаев удобнее пользоваться оператором for.

· Оператор разрыва

· break;

Оператор разрыва прерывает выполнение операторов while, do, for и switch. Он может содержаться только в теле этих операторов. Управление передается оператору программы, следующему за прерванным. Если оператор разрыва записан внутри вложенных операторов while, do, for, switch, то он завершает только непосредственно охватывающий его оператор.

· Оператор продолжения

· continue;

Оператор продолжения передает управление на следующую итерацию в операторах цикла while, do, for. Он может содержаться только в теле этих операторов. В операторах do и while следующая итерация начинается с вычисления условного выражения. В операторе for следующая итерация начинается с вычисления выражения приращения, а затем происходит вычисление условного выражения.

· Оператор возврата

· return [ <выражение>;];

Оператора возврата заканчивает выполнение функции, в которой он содержится, и возвращает управление в вызывающую функцию. Управление передается в точку вызывающей функции, непосредственно следующую за оператором вызова. Значение выражения, если она задано, вычисляется, приводится к типу, объявленному для функции, содержащей оператор возврата, и возвращается в вызывающую функцию. Если выражение опущено, то возвращаемое функцией значение не определено.

С формальной точки зрения операторы break, continue и return не являются операторами структурного программирования. Однако их использование в ограниченных количествах оправдано, когда они упрощают понимание программы и позволяют избегать больших вложенных структур. Например, мы проверяем входные данные на аномалии. Если не использовать эти операторы, то всю обработку придется вложить в условный блок, что ухудшает читабельность программы. Вместо этого можно написать небольшой условный блок, который организует выход из функции при неверных исходных данных.

Ввод/вывод не является частью языка С++, а осуществляется функциями, входящими в состав стандартной библиотеки







Дата добавления: 2015-10-01; просмотров: 373. Нарушение авторских прав; Мы поможем в написании вашей работы!



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

Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...

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

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

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

Случайной величины Плотностью распределения вероятностей непрерывной случайной величины Х называют функцию f(x) – первую производную от функции распределения F(x): Понятие плотность распределения вероятностей случайной величины Х для дискретной величины неприменима...

Сравнительно-исторический метод в языкознании сравнительно-исторический метод в языкознании является одним из основных и представляет собой совокупность приёмов...

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

Конституционно-правовые нормы, их особенности и виды Характеристика отрасли права немыслима без уяснения особенностей составляющих ее норм...

Studopedia.info - Студопедия - 2014-2024 год . (0.01 сек.) русская версия | украинская версия