Опубликован: 28.04.2014 | Доступ: свободный | Студентов: 987 / 89 | Длительность: 01:30:00
Специальности: Программист
Лекция 6:

Основы программирования. Типы данных, переменные, операторы

< Лекция 1 || Лекция 6: 123456

Константы

Константы в языке C# также являются объектами. В отличие от переменных константы имеют значение и тип, но не имеют имени. Значение и тип определяется самой константой.

Последовательность цифр возможно с предшествующим знаком "плюс" или "минус" рассматривается как константа типа int. Сама последовательность рассматривается как десятичное целое число.

Пример: -1235

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

Пример: -12.35

Последовательность любых символов, заключенная в "двойные кавычки" рассматривается как константа типа string.

Пример: "-12.35"

Любой символ, заключенный в одиночные кавычки, рассматривается как константа типа char.

Пример: '1'

Программа. Операторы программы

Как было показано на предыдущих уроках, при создании программного проекта в Visual Studio мы выбираем тип проекта, а студия создает заготовку – начальную программу для этого типа проекта. После чего нам необходимо в соответствующие места добавить программный код, позволяющий решить поставленную задачу.

Добавляемый код можно рассматривать как текст, состоящий из предложений, написанных на языке программирования (в нашем случае на языке C#). Как всякий разумный текст, написанный на каком-либо языке, он должен отвечать требованиям синтаксиса. Алгоритмические языки предъявляют жесткие требования к синтаксису предложений, которые мы пишем. Программа с синтаксическими ошибками не допускается на выполнение. Но ошибки свойственны человеку. К счастью компилятор (программа, преобразующая текст, написанный на C#, в текст, состоящий из команд, понятных для выполнения процессору компьютера) способен обнаруживать синтаксические ошибки и уведомлять о них программиста. Так что, благодаря помощи компилятора, синтаксические ошибки легко исправляются, и синтаксически корректная программа будет выполняться. Конечно, выполняемый текст должен иметь смысл – быть семантически корректна, чтобы она правильно решала поставленную задачу. К сожалению, вся ответственность за семантическую корректность программы лежит на программисте.

Если при записи константы типа double для отделения целой части числа от дробной вместо точки использовать запятую, то это синтаксическая ошибка, которая будет обнаружена компилятором. Но если при необходимости вычисления суммы двух переменных a + b написать a – b, то никакой компилятор ошибки не обнаружит, вычисления будут производиться, но результат будет не верен, - не соответствуя требуемому смыслу задачи. Для исправления семантических ошибок требуется процесс "отладки программы".

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

Рассмотрим основные операторы языка C#.

Оператор присваивания

Этот оператор предназначен, как следует из названия, для присваивания переменным значений. Синтаксис этого оператора следующий:

<имя переменной> = <выражение>;

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

В методе TestTypesAndObjects после объявления переменных написаны три оператора присваивания:

x = 5 * 2; y = -2;
z = (x + y) * (x + 2 * y - 5);

В первых двух операторах переменные x и y получают значения. Выражения в правых частях содержат константы типа int. В третьем операторе присваивается значение переменной z. Выражение в правой части содержит кроме констант переменные x и y, которые к моменту выполнения уже имеют значения.

Как строятся выражения? Выражения в языках программирования строятся примерно также, как и в математике. Выражение строится из переменных и констант, объединенных знаками операций и скобками. В выражении могут также использоваться вызовы различных функций. Такие примеры появятся позже.

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

u = u + v;
v = u + v;
u = u + v;
v = u + v;

Вычисленные значения переменных в методе TestTypesAndObjects выводятся на консоль:

Console.WriteLine("x = " + x);
Console.WriteLine("y = " + y);
Console.WriteLine("z = " + z);
Console.WriteLine("u = " + u);
Console.WriteLine("v = " + v); 

Для вывода используется известный нам метод WriteLine класса Console. Обратите внимание на важную деталь. Аргументом метода является выражение, построенное из константы типа string и переменной арифметического типа (int и double), объединенных знаком операции "+". Как вычисляется такое выражение? В данном случае второй аргумент арифметического типа преобразуется в более общий строковый тип и затем выполняется конкатенация строк (уже знакомая нам операция).

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

< Лекция 1 || Лекция 6: 123456
Дмитрий Лубченков
Дмитрий Лубченков
Николай Молдован
Николай Молдован