- •Уровни языков программирования
- •Язык c#
- •Переменные и константы
- •Числа без знака
- •Числа со знаком
- •Числа с плавающей точкой
- •Текстовые символы
- •Логический тип данных
- •Выражения и операторы с#
- •Составные операторы
- •Поразрядные операторы
- •Логические операторы
- •Операторы отношения
- •Приоритеты операторов
- •Работа с консолью
- •Преобразование типов
- •Оператор явного преобразования типов
- •Преобразование типов констант
- •Алгоритмизация и решение задач Понятие алгоритма
- •Словесное описание
- •Блок-схема
- •Описание Блоков
- •Псевдокод
- •Реализация алгоритмических конструкций в с# Следование
- •Ветвление
- •Ветвление и условный оператор
- •Вложенные условия
- •Применение логических операций
- •Цикл Пока
- •Цикл Делать-Пока
- •Цикл с параметром
- •Прерывание и возобновление цикла
- •Оператор goto
- •Особые виды циклов
- •Сложные типы данных – массивы чисел и символов Одномерные массивы
- •Использование оператора foreach
- •Типы задач обработки одномерных числовых массивов
- •Многомерные массивы
- •Типы задач обработки двумерных числовых массивов
- •Невыровненные (ступенчатые) массивы
- •Обработка массива символов
- •Работа с текстовыми строками
- •Базовые операции со строками
- •Методы типа string
- •Форматирование текстовых строк
- •Функции
- •Описание и использование функций
- •Возвращаемые значения
- •Передача параметров
- •Массивы параметров
- •Передача параметров по ссылке и по значению
- •Выходные параметры
- •Область действия переменных
- •Глобальные переменные
- •Область действия переменных и управляющие конструкции
- •Рекурсия
- •Структуры
- •Работа с текстовыми файлами
- •Работа с двоичными файлами
Работа с консолью
Задание переменным начальных значений с помощью оператора присваивания – очень постой и полезный способ при разработке первых программ, поэтому он будет использоваться во многих примерах начальной части данного курса.
В реальной жизни (а также при выполнении лабораторных работ) часто необходимо, чтобы программа обрабатывала данные, которые пользователь вводит с консоли (то есть с клавиатуры) и выводить результаты обратно в консоль.
Данные выводятся на консоль при помощи метода WriteLine:
Console.WriteLine("Hello World!");
Console.WriteLine(x);
Console.WriteLine("x = {0}, у = {1}, z = {2}", x, y, z) ;
Здесь использован новый формат вызова метода WriteLine. Теперь этому методу передаются несколько параметров (в данном случае четыре), разделенных запятыми. Первый из них представляет собой строковый литерал, а остальные — числовые переменные, значения которых нас интересуют.
Метод WriteLine обладает большими возможностями, но мы будем изучать их постепенно по мере изложения материала. В данном случае мы передали методу в качестве первого параметра так называемую строку формата, определяющую, что и как нужно выводить на консоль. Остальные параметр представляет собой переменные, содержимое которой нужно вывести.
Во время работы программы метод WriteLine вначале выведет на консоль строку "x = ", а затем вместо конструкции "{0}" подставит значение второго параметра метода, т. е. содержимое переменной х. После этого строка форматирования просматривается дальше, значения "y = " и "z = " выводятся на экран без изменения, а вместо "{1}" и "{2}" подставляются значения следующих параметров метода, т. е. содержимое переменных y и z соответственно.
Данные считываются с консоли при помощи метода ReadLine
text = Console.ReadLine();
Этот метод может ввести с консоли любую информацию в виде строки символов, включая числовые данные (т.к. каждая цифра числа при вводе выступает как отдельный символ).
Преобразование типов
Проблема заключается не в том, чтобы ввести строку символов, содержащую число, а чтобы присвоить введенное значение числовой переменной. Для этого используется специальный класс, выполняющий преобразование данных из одно типа в другой (если, конечно, это вообще возможно) – класс Convert.
Строка символов, которая вводится после приглашения с помощью метода ReadLine, преобразуется в нужный нам тип данных с помощью метода ToInt32 класса Convert:
int a = Convert.ToInt32(Console.ReadLine());
Такая запись (помещение вызова метода ReadLine внутри круглых скобок метода ToInt32) означает, что первым выполнится метод ReadLine, а введенная им строка символов будет затем передана методу ToInt32 для преобразования в число. Число, полученное в результате преобразования, будет присвоено переменной а.
Использование класса Convert дает нам возможность вводить с консоли значения любых типов, так как в этом классе имеются функции преобразования ко всем числовым типам С# и к логическому типу:
Метод |
Тип числовых данных |
Метод |
Тип числовых данных |
ToBoolean |
bool |
ToUIntl6 |
ushort |
ToChar |
char |
ToUInt32 |
uint |
ToSbyte |
sbyte |
ToUInt64 |
ulong |
ToByte |
byte |
ToSingle |
float |
ToIntl6 |
short |
ToDouble |
double |
ToInt32 |
int |
ToDecimal |
decimal |
ToInt64 |
long |
|
|
Все эти методы прекрасно работают, пока вводимые с консоли данные можно преобразовать к необходимому типу. Если же это не так, метод завершится с ошибкой и произойдет преждевременное завершение работы программы – иными словами, возникнет исключительная ситуация, препятствующая ее нормальному продолжению.
Ситуация с вводом некорректных данных, к сожалению, не является редкой, поэтому отдельный раздел этого курса посвящен методам корректной обработки таких ситуаций. Этот материал изучается позже, поэтому пока постарайтесь правильно вводить исходные данные.
