Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
C# Лекция_3 Выражения и операции.docx
Скачиваний:
28
Добавлен:
18.12.2018
Размер:
667.21 Кб
Скачать
    1. Класс Console и его методы

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

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

      1. Методы Read и ReadLine

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

public void ReadTest()

{

Console.WriteLine("Введите текст." +

"Признаком конца текста являются два подряд идущих !! ");

char ch = Convert.ToChar(Console.Read());

char next =' ';

string result = "";

bool finish = false;

do

{

result += ch.ToString();

next = Convert.ToChar(Console.Read());

if (ch != '!')

ch = next;

else

{

if (next == '!') finish = true;

else ch = next;

}

}while (!finish);

Console.ReadLine();

Console.WriteLine(result);

}

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

Вызов метода ReadLine, завершающий процедуру, позволяет "дочитать" оставшиеся символы отображаемой строки текста и перевести курсор ввода на новую строку. Такие символы всегда будут, поскольку всякая строка завершается символом конца строки, не прочитанным методом Read. На рис. 3.8 показаны результаты работы при вызове процедуры ReadTest.

увеличить изображение Рис. 3.8. Результаты работы метода ReadTest

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

      1. Вывод данных на консоль. Методы Write и WriteLine

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

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

Строка называется форматированной, если она содержит форматы. Формат, включаемый в строку, задается последовательностью символов, заключенной в фигурные скобки. Каждый формат задает место подстановки. В процессе форматизации в строку вместо формата подставляется некоторая другая строка. Форматы могут быть разными, и подробнее о них поговорим при описании работы со строками. В простейшем случае задания формата в фигурных скобках стоит целое число k. Это число определяет порядковый номер аргумента из дополнительного списка, при этом нумерация аргументов списка начинается с нуля. Аргумент с номером k из дополнительного списка преобразуется в строку и подставляется вместо соответствующего формата. Преобразование аргумента в строку происходит автоматически, используя метод ToString, который имеют все типы данных.

Рассмотрим применение методов Write, WrteLine, ReadLine на примере ввода и вывода с консоли квадратной матрицы:

/// <summary>

/// Ввод-вывод с консоли квадратной матрицы

/// </summary>

public void InOutMatrix()

{

int n;

Console.WriteLine("Ввод квадратной матрицы A размерности n");

Console.WriteLine("Введите целое - n");

n = Convert.ToInt32(Console.ReadLine());

double[,] A = new double[n,n];

for(int i = 0; i<n; i++)

for (int j = 0; j < n; j++)

{

Console.WriteLine("Введите A[{0}],[{1}]", i, j);

A[i, j] = Convert.ToDouble(Console.ReadLine());

}

Console.WriteLine("Вывод матрицы A");

for (int i = 0; i < n; i++)

{

for (int j = 0; j < n; j++)

Console.Write("A[{0}],[{1}] = {2} ", i, j, A[i, j]);

Console.WriteLine();

}

}

На рис. 3.9 показаны результаты вызова этого метода.

Рис. 3.9. Результаты работы метода InOutMatrix

  1. Задачи

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

  • 2. Построить Windows-приложение "Арифметические операции". В одно или два текстовых окна пользователь вводит значения. По нажатию командной кнопки, задающей тип арифметической операции, над введенными значениями выполняется соответствующая операция, и ее результат выводится в текстовое окно, предназначенное для вывода значений.

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

  • 4. Построить Windows-приложение "Логические операции". В одно или два текстовых окна пользователь вводит значения, которые могут быть логическими или целочисленными константами. По нажатию командной кнопки, задающей тип логической или условной логической операции, над введенными значениями выполняется соответствующая операция, и ее результат выводится в текстовое окно, предназначенное для вывода значений.

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

  • 6. Построить Windows-приложение "Операции отношения и сдвига". В текстовые окна пользователь вводит значения операндов операции. По нажатию командной кнопки, задающей операцию отношения или сдвига, над введенными значениями выполняется соответствующая операция, и ее результат выводится в текстовое окно, предназначенное для вывода значений.

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

  • 8. Построить Windows-приложение "Класс Math". В одно или два текстовых окна пользователь вводит значения. По нажатию командной кнопки, задающей функцию класса Math, к введенным значениям применяется соответствующая функция, и ее результат выводится в текстовое окно, предназначенное для вывода значений.