Методические указания По проведению самостоятельных работ по
Скачать 1.54 Mb.
|
1.5. Операторы ввода-выводаКак мы уже говорили, любой алгоритм должен быть результативным. В общем случае это означает, что он должен сообщать результат своей работы потребителю: пользователю-человеку или другой программе (например, программе управления принтером). Мы не будем описывать здесь внутренние автоматические процессы, использующие сигналы непрерывно функционирующих программ, а сосредоточим внимание на взаимодействии программы и человека, то есть на процессах ввода информации с клавиатуры и вывода ее на экран. В программировании существует специальное понятие консоль, которое обозначает клавиатуру при вводе и монитор при выводе. 1.5.1. Операторы вводаДля того чтобы получить данные, вводимые пользователем вручную (то есть с консоли), применяются команды <строковая переменная>=Console.ReadLine(); Для того чтобы преобразовать к нужному типу данных используем объект Convert <переменная целого типа> = Convert.ToInt32(<строковая переменная>); <переменная действ типа> = Convert.ToDouble(<строковая переменная>); <переменная логического типа> = Convert.ToBoolean(<строковая переменная>); <переменная целого типа> = Convert.ToByte(<строковая переменная>); <переменная символьного типа> = Convert.ToChar(<строковая переменная>); <переменная целого типа> = Convert.ToInt64(<строковая переменная>); Пример Int32 x; Double y; string s; s = Console.ReadLine(); x = Convert.ToInt32(s); //без промежуточной строковой переменной y = Convert.ToDouble(Console.ReadLine()); Типы вводимых значений должны совпадать с типами указанных переменных, иначе возникает ошибка. Поэтому нужно внимательно следить за правильностью вводимых данных. Для того, чтобы обеспечить ожидание ввода любой клавиши в конце программы используют Console.ReadKey(); 1.5.2. Операторы выводаСделаем одно важное замечание: ожидая от человека ввода с клавиатуры, не нужно полагать, что он окажется ясновидящим и просто по мерцанию курсора на черном экране догадается, какого типа переменная нужна ожидающей программе. Старайтесь всегда придерживаться правила: "лысый" ввод недопустим! Перед тем как считывать что-либо с консоли, необходимо сообщить пользователю, что именно он должен ввести: смысл вводимой информации, тип данных, максимальное и минимальное допустимые значения и т.п. Примером неплохого приглашения служит, скажем, такая строчка: Введите два вещественных числа (0.1<1000000) - длины катетов. Впрочем, и ее можно улучшить, сообщив пользователю не только допустимый диапазон ввода, но и ожидаемую точность (количество знаков после запятой). Средства, позволяющие организовать выдачу информации на экран, мы здесь и рассмотрим. Для того чтобы вывести на экран какое-либо сообщение, воспользуйтесь процедурой Console.Write или Console.WriteLine Первая из них, напечатав на экране все, о чем ее просили, оставит курсор в конце выведенной строки, а вторая переведет его в начало следующей строчки. Console.WriteLine(s);// переменная Console.WriteLine(55.3);// константа Console.WriteLine(y*3+7);// выражение Console.Write(z);// переменная Console.Write(-5.3);// константа Console.Write(i*3+7/j);// выражение Чтобы при выводе данных они не склеивались, нужно позаботиться о пробелах между выводимыми переменными, также можно выводить списком несколько переменных: Console.WriteLine("Это число А={0} далее B={1} и, наконец их сумма {2}", a, b, a + b); Для форматирования числовых результатов можно использовать метод String.Format или метод Console.Write, вызывающий метод String.Format. Формат задается с помощью строк формата. Спецификация формата следующая: {N,M:Axx}, где N указывает позицию элемента в списке выводимых переменных (нумерация начинается с 0); M - задаёт ширину области, в которую будет помещено форматированное значение, если M отсутствует или отрицательно, значение будет выровнено влево, в противном случае - вправо; Axx - является необязательной строкой форматирующих кодов, которые используются для управениея форматированием чисел, даты и времени, денежных знаков и т.д. В следующей таблице приведены поддерживаемые строки стандартных форматов. Строка формата принимает следующую форму: Axx, где A — описатель формата, а xx — описатель точности. Описатель формата управляет типом форматирования, применяемым к числовому значению, а описатель точности управляет количеством значащих цифр или десятичных знаков форматированного результата. C или c Валюта Console.Write("{0:C}", 2.5); Console.Write("{0:C}", -2.5); // $2.50 ($2.50) D или d Десятичный формат Console.Write("{0:D5}", 25); // 00025 E или e Инженерный формат Console.Write("{0:E}", 250000); //2.500000E+005 F или f Формат с фиксированной запятой Console.Write("{0:F2}", 25); Console.Write("{0:F0}", 25); // 25.00 25 G или g Общий формат Console.Write("{0:G}", 2.5); // 2.5 N или n Числовой формат Console.Write("{0:N}", 2500000); //2,500,000.00 X или x Шестнадцатеричный формат Console.Write("{0:X}", 250); Console.Write("{0:X}", 0xffff); // FA FFFF Пример Int32 x; Double y; string s; Console.Write("Введите X="); s = Console.ReadLine(); x = Convert.ToInt32(s); Console.Write("Введите Y="); s = Console.ReadLine(); y = Convert.ToDouble(s); Console.WriteLine("Произведение X*Y= {0,9:g}" ,x*y); Console.ReadKey(); Пример простейшей программы string s1; Console.Write("Введите ваше имя "); s1 = Console.ReadLine(); Console.WriteLine("Мы рады вас приветствовать, {0:g}, в нашей программе",s1); Console.ReadKey(); Во время работы этой программы на экране появится примерно следующее: Введите ваше имя Джон Мы рады вас приветствовать, Джон, в нашей программе |