Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

лекции все вместе / Lektsia_1_chast_2

.doc
Скачиваний:
4
Добавлен:
20.04.2015
Размер:
99.33 Кб
Скачать

9

Лекция 1 часть 2. Введение.

Пример. Объявление и инициализация переменной типа bool. Вывод данных на консоль.

using System;

namespace ConsoleApplication3

{

class Program

{

static void Main(string[] args)

{

bool b = true;

// WriteLine автоматически конвертирует значение переменной b в текст.

Console.WriteLine(b);

}

}

}

Тип char представляет 16-разрядные целые числа без знака в диапазоне от 0 до 65535. Набор возможных значений для типа char соответствует набору символов Юникода.

Пример. Объявление и инициализация четырех переменных типа char, имеющих одно и тоже значение ­- символ X.

using System;

namespace ConsoleApplication3

{

class Program

{

static void Main(string[] args)

{

char char0 = 'X'; // Символьный литерал

char char1 = '\x0058'; // шестнадцатеричная escape-последовательность

char char2 = (char)88; // Преобразование типа int в char

char char3 = '\u0058'; // Юникод

Console.WriteLine("{0} {1} {2} {3}", char0, char1, char2, char3);

}

}

}

Использование класса System.Console.

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

Пример. Чтение из стандартного входного потока и запись в стандартный выходной поток

using System;

namespace ConsoleApplication5

{

class Program

{

static void Main(string[] args)

{

Console.WriteLine("Введите x");

String name = Console.ReadLine();

int a = int.Parse(name);

Console.WriteLine(a);

}

}

}

В примере статический метод Console.WriteLine("Введите x") записывает данные в стандартный выходной поток; статический метод Console.ReadLine() считывает входные данные из стандартного входного потока. Возвращаемое методом Console.ReadLine() значение присваивается переменной name типа String; статический метод int.Parse(name) преобразует строковое представление числа в эквивалентное ему 32-битовое целое число со знаком. Возвращаемое методом значение присваивается переменной а типа int; Статический метод Console.WriteLine(a) выводит результирующее целочисленное значение на консоль.

Пример

using System;

namespace ConsoleApplication5

{

class Program

{

static void Main(string[] args)

{

int i = 5;

double y = 9;

Console.WriteLine(i.ToString("d")+" "+y.ToString("f2"));

}

}

}

Использование аргументов командной строки в консольном приложении.

К аргументам командной строки можно получить доступ при помощи дополнительного массива строк, связанного с методом Main. При выполнении приложения в Visual Studio можно указать аргументы командной строки в Страница "Отладка" в конструкторе проектов.

Пример.

using System;

namespace ConsoleApplication5

{

class Program

{

static void Main(string[] args)

{

System.Console.WriteLine("parameter count = {0}", args.Length);

for (int i = 0; i < args.Length; i++)

{

System.Console.WriteLine("Arg[{0}] = [{1}]", i, args[i]);

}

}

}

}

Идентификаторы используются для обозначения переменных. В идентификаторах разрешены: знак подчеркивания в качестве начального символа, escape-последовательности Юникода, символ «@» в качестве префикса, чтобы можно было использовать ключевые слова в качестве идентификаторов.

Ключевое слово — это зарезервированная последовательность символов.

Операторы языка

Действия программы выражаются с помощью операторов. Оператор может состоять из одной строки кода, которая заканчивается точкой с запятой, или из ряда однострочных операторов в блоке. Блок оператора заключен в скобки ({}) и может содержать вложенные блоки.

Типы операторов.

Операторы объявления

Операторы выражений

Операторы выбора

Операторы итераций

Операторы перехода

Внедренный оператор. В операторах do, while, for и foreach, всегда есть внедренный оператор, следующий за ними. Этот внедренный оператор может быть либо одним оператором, либо несколькими операторами, заключенными в скобки ({}) в блоке оператора. Даже однострочные внедренные операторы могут быть заключены в скобки ({}).

Вложенные блоки операторов. Блоки операторов могут быть вложенными.

Области объявления

Объявление определяет имя в области объявления, которому принадлежит объявление.

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

Пространства имен могут содержать объявления типов и вложенных пространств имен.

Пространства имен и типы, имеющие родительское пространство имен, являются членами глобального пространства имен.

Пространства имен и типы, объявленные в рамках пространства имен, являются членами данного пространства имен.

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

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

Каждый блок или блок_switch, а также инструкции for, foreach и using создают область объявлений для локальных переменных и локальных констант .

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

Области видимости

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

Пример программы, которая завершится с ошибкой «Невозможно объявить локальную переменную с именем "a" в этой области видимости, т.к. другое значение "a", уже используется в области видимости "родительский или текущий"

using System;

namespace ConsoleApplication5

{

class Program

{

static void Main(string[] args)

{

int a = 0;

Console.WriteLine(a);

{

int a = 6;

Console.WriteLine(a);

}

}

}

}

Пример. Объявление локальных переменных, которое не приведет к ошибке.

using System;

namespace ConsoleApplication5

{

class Program

{

static void Main(string[] args)

{

{

int a = 0;

Console.WriteLine(a);

}

{

int a = 6;

Console.WriteLine(a);

}

}

}

}

Областью члена пространства имен, объявленного объявлением члена пространства имен, является полный текст программы.

Областью члена, объявленного объявлением члена типа, является тело типа, в котором сделано объявление.

Областью параметра, объявленного в объявлении метода, является тело метода данного объявления метода.

Областью локальной переменной, объявленной в объявлении локальной переменной, является блок, в котором содержится объявление.

Областью локальной переменной, объявленной в блоке ветвления оператора switch, является блок ветвления.

Областью локальной переменной, объявленной в инициализаторе for оператора for, является инициализатор for, условие for, итератор for и содержащий оператор оператора for.

Областью локальной константы, объявленной в объявлении локальной константы, является блок, в котором содержится объявление. Ссылка на локальную константу в текстовой позиции, предшествующей декларатору константы, является ошибкой времени компилирования.

Переменные

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

Локальные переменные

Локальную переменную можно объявить в блоке, в операторе for, в операторе switch или операторе using, а также в операторе foreach или в конструкции catch в операторе try.

Объявление локальной переменной состоит из типа локальной переменной, идентификатора, определяющего имя переменной, за которым могут следовать оператор присваивание

и инициализатор локальной переменной, присваивающий переменной начальное значение.

При объявлении локальная переменная не инициализируется автоматически и поэтому не имеет значения по умолчанию (считается не имеющей начального значения).

Пример. Объявление нескольких локальных переменных.

int x = 1, y, z = x * 2;

Примеры. Операторы языка.

Оператор_итераций for

Цикл for повторно выполняет оператор или блок операторов, пока определенное выражение не примет значение false.

В цикле for может содержаться инициализатор for, условие for, итератор for, содержащий оператор оператора for (внедренный оператор).

оператор_for: for ( инициализатор_forнеобязательно ; условие_forнеобязательно ; итератор_forнеобязательно ) внедренный_оператор

Инициализатор содержит объявление локальной переменной.

Условием является логическое выражение.

Итератор это выражение.

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

using System;

namespace ConsoleApplication5

{

class Program

{

static void Main(string[] args)

{

int i = 0;

for (i = 1; i <= 5; i++)

{

Console.WriteLine(i);

}

}

}

}

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

C#

for (; ; )

{

// ...

}

Оператор_итераций while

Оператор while выполняет внедренный оператор несколько раз (возможно, ни разу) в зависимости от соблюдения условия.

оператор_while: while ( логическое_выражение ) внедренный_оператор

Оператор while выполняется следующим образом.

Вычисляется логическое_выражение Если результатом логического выражения является true, управление передается внедренному оператору. Если управление достигает конечной точки внедренного оператора (возможно, в результате выполнения оператора continue), управление передается в начало оператора while.

Если значением логического выражения является false, управление передается в конечную точку оператора while.

Пример

using System;

namespace ConsoleApplication5

{

class Program

{

static void Main(string[] args)

{

int n = 1;

while (n < 6)

{

Console.WriteLine("Current value of n is {0}", n);

n++;

}

}

}

}

Оператор выбора if

Оператор if выбирает оператор языка для выполнения на основании значения логического выражения.

оператор_if: if ( логическое_выражение ) внедренный_оператор if ( логическое_выражение ) внедренный_оператор else внедренный_оператор

Пример

using System;

namespace ConsoleApplication5

{

class Program

{

static void Main(string[] args)

{

// Проверяем четность числа

// Вводим проверяемое значение

int Num;

string Str;

Console.Write("Введите число: ");

Str = Console.ReadLine();

Num = int.Parse(Str);

// если число делится на 2 без остатка то четное

// оператор % - это остаток от целочисленного деления

if (Num % 2 == 0)

{

Console.WriteLine("Число {0} - четное", Num);

}

else

{

Console.WriteLine("Число {0} - нечетное", Num);

}

Console.ReadKey();

}

}

}

using System;

namespace ConsoleApplication5

{

class Program

{

static void Main(string[] args)

{

// Найти чему будет равно выражение C = min(A,B)

// A и B целые числа, которые нужно ввести с клавиатуры

// Вывести результат и исходное выражение, подставив числа

// Введем исходные значения A и B

int A, B;

string Str;

Console.Write("A = ");

Str = Console.ReadLine();

A = int.Parse(Str); // Parse - статический метод структуры int

Console.Write("B = ");

Str = Console.ReadLine();

B = int.Parse(Str);

//Находим значение выражения

int min;

if (A < B)

min = A;

else

min = B;

// Выводим результат

Console.WriteLine("min({0},{1})) = {2}", A, B, min);

Console.ReadKey();

}

}

}

Соседние файлы в папке лекции все вместе