С# лекция№1
.pdfНотации
Понятные и согласованные между собой имена — основа хорошего стиля. Существует несколько нотаций — соглашений о правилах создания имен.
В C# для именования различных видов программных объектов чаще всего используются две нотации:
Нотация Паскаля - каждое слово начинается с прописной буквы:
MaxLength, NewWorldOrder
Camelnotation - с прописной буквы начинается каждое слово, составляющее идентификатор, кроме первого:
maxLength, newWorldOrder
21
Другие типы данных
int – целочисленный (например: 100);
float, double – с плавающей точкой (например: 100.1);
string – строковый.
Пример программы, демонстрирующей отличия между типами int и double:
static void Main(string[] args)
{
int ivar; // объявить целочисленную переменную
double dvar; // объявить переменную с плавающей точкой ivar = 100; // присвоить переменной ivar значение 100 dvar = 100.0; // присвоить переменной dvar значение 100.0 Console.WriteLine("Исходное значение ivar: " + ivar); Console.WriteLine("Исходное значение dvar: " + dvar); Console.WriteLine(); // вывести пустую строку
// Разделить значения обеих переменных на 3. ivar = ivar / 3;
dvar = dvar / 3.0; -
Console.WriteLine("Значение ivar после деления: " + ivar);
Console.WriteLine("Значение dvar после деления: " + dvar);
}
Результат выполнения программы:
Исходное значение ivar: 100
Исходное значение dvar: 100
Значение ivar после деления: 33
Значение dvar после деления: 33.3333333333333
22
Другие типы данных
Пример программы, вычисляющей площадь круга:
static void Main(string[] args)
{
double radius; double area; radius = 10.0;
area = radius * radius * 3.1416; Console.WriteLine("Площадь равна " + area);
}
Результат выполнения программы:
Площадь равна 314.16
23
Типы значений в C#
Помимопростых типов, в С# определены еще три категории типов значений: перечисления, структуры и обнуляемыетипы.
24
Целочисленные типы
Целочисленные типы со знаком по абсолютнойвеличине наполовинуменьше своих аналогов без знака.Вот как, например, выглядитчисло 32 767типа short в двоичном представлении.
0111111111111111
Еслиустановить старшийразряд этого числа равным1, чтобы получить значение со знаком, то оно будет интерпретировано как-1, принимая во вниманиеформат дополнения до двух.
Но если объявитьего как значениетипа ushort, то после установки в 1старшего разряда оно станет равным65535.
25
Целочисленные типы
Пример: Вычисление расстояния от Земли до Солнца в дюймах
static void Main(string[] args)
{
long inches; long miles;
miles = 93000000; // 93 000 000 миль до Солнца
// 5 280 футов в миле, 12 дюймов в футе, inches = miles * 5280 * 12;
Console.WriteLine("Расстояние до Солнца: " + inches + " дюймов.");
}
результат выполненияэтойпрограммы:
Расстояние до Солнца: 5892480000000 дюймов.
26
Типы дляпредставлениячисел с плавающей точкой
Разрядность типа float составляет 32 бита, что приближенно соответствует диапазону представления чисел от 5Е-45 до 3,4Е+38.
А разрядность типа double составляет 64 бита, что приближенно соответствует диапазону представления чисел от 5Е-324 до 1,7Е+308.
Пример:Вычисление площади круга
static void Main(string[] args)
{
Double r; Double area; area = 10.0;
r = Math.Sqrt(area / 3.1416); Console.WriteLine("Радиус равен " + г);
}
Результат выполнения программы :
Радиус равен 1.78412203012729
27
Десятичный тип данных
Десятичный тип имеет разрядность 128 бит для представления числовых значений в пределах от 1Е-28 до 7,9Е+28.
Пример: цена со скидкойрассчитывается на основании исходной цены и скидки в процентах
static void Main(string[] args)
{
decimal price; decimal discount;
decimal discounted_price;
// Рассчитать цену со скидкой. price = 19.95m;
discount = 0.15m; // норма скидки составляет 15% discounted_price = price - (price * discount); Console.WriteLine("Цена со скидкой: $" + discounted_price);
}
Результат выполнения программы:
Цена со скидкой: $16.9575
28
Символы
В С# символыпредставлены не 8-разрядным кодом, как во многих других языкахпрограммирования, например C++, а 16-разрядным кодом, который называется уникодом(Unicode).
В С# определен тип char, представляющий 16-разрядные значения без знака в пределах от 0 до 65 535. При этом стандартный набор символовв 8-разрядном коде ASCII является подмножеством уникодав пределах от 0 до 127.
Следовательно, символыв коде ASCII по-прежнему остаются действительными в С#.
Пример:переменной ch присваивается символ X.
char ch;
ch = ‘X’;
Значениетипа char можно вывести наэкран с помощью метода WriteLine ().
Console.WriteLine ("Значение ch равно: " + ch);
В С# отсутствует автоматическое преобразование символьныхзначенийвцелочисленные:
char ch;
ch = 88; // ошибка преобразования
29
Логический тип данных
Типbool представляет два логических значения:«истина» и «ложь» (true и false).
Кроме того, вС# неопределено взаимное преобразованиелогических и целых значений.Например, 1 не преобразуется в значениеtrue, а 0 — в значение false.
Пример:
static void Main(string[] args)
{
bool b;
b = falser -
Console.WriteLine("b равно " + b); b = true;
Console.WriteLine("b равно " + b);
//Логическое значение может управлять оператором if. if (b) Console.WriteLine("Выполняется.");
b = false;
if (b) Console.WriteLine("He выполняется.");
//Результатом выполнения оператора отношения
//является логическое значение.
Console.WriteLine("10 > 9 равно " + A0 > 9);
}
Эта программа дает следующий результат:
b равно False
b равно True
Выполняется.
10 > 9 равно True
30