Студопедия КАТЕГОРИИ: АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Встроенные функции (методы).
Создание первого проекта Создание нового проекта возможно следуюшими способами.
После выбора одного из способов появляется окно New Project, в котором необходимо выбрать тип проекта(поле Templates), язык для создания проекта, имя проекта и его местонахождение. После чего откроется диалоговое меню New Project (см. рис.1). Рис.1.
В поле Project types следует выбрать Visual C#, в поле Templates – Console Application. В строчке Name введите имя приложения Hello. Обратите внимание на то, что это же имя появится в строчке Solution Name. Уберите галочку в поле Create directory for Application (пока мы создаем простое приложение, и нам нет необходимости усложнять его структуру). В строке Location определите положение на диске, куда нужно сохранять ваш проект. И нажмите кнопку OK. Примерный вид экрана изображен на рис 2.
Рис. 2.
Основное пространство экрана занимает окно редактора, в котором располагается текст программы, созданный средой автоматически. Текст представляет собой каркас, в который программист будет добавлять нужный код. При этом зарезервированные слова отображаются синим цветом, комментарии – зеленым, основной текст – черным. Текст структурирован. Щелкнув на знак минус, мы скроем блок кода, щелкнув на знаке плюс – откроем. Добавим в метод следующий код: Console.WriteLine("Hello!"); Здесь Console имя стандартного класса из пространства имен System. Его метод WriteLine выводит на экран текст, заданный в кавычках
Программа также может быть откомпилирована и выполнена несколькими различными способами.
Организация ввода-вывода данных. Форматирование. Программа при вводе данных и выводе результатов взаимодействует с внешними устройствами. Совокупность стандартных устройств ввода (клавиатура) и вывода (экран) называется консолью. В языке С# нет операторов ввода и вывода. Вместо них для обмена данными с внешними устройствами используются специальные объекты. В частности, для работы с консолью используется стандартный класс Console, определенный в пространстве имен System. Вывод данных В приведенных выше примерах мы уже рассматривали метод WriteLine, реализованный в классе Console, который позволяет организовывать вывод данных на экран. Однако существует несколько способов применения данного метода: 1. Console.WriteLine(x); //на экран выводится значение идентификатора х 2. Console.WriteLine("x=" + x +"y=" + y); /* на экран выводится строка, образованная последовательным слиянием строки "x=", значения x, строки "у=" и значения у */ 3. Console.WriteLine("x={0} y={1}", x, y); /* на экран выводится строка, формат которой задан первым аргументом метода, при этом вместо параметра {0} выводится значение x, а вместо {1} – значение y*/ Двойная кавычка (") используется для вывода строкового литерала.
Замечание. Рассмотрим следующий фрагмент программы:
int i=3, j=4; Console.WriteLine("{0} {1}", i, j);
При обращении к методу WriteLine через запятую перечисляются три аргумента: "{0} {1}", i, j. Первый аргумент определяет формат выходной строки. Следующие аргументы нумеруются с нуля, так переменная i имеет номер 0, j – номер 1. Значение переменной i будет помещено в выходную строку на место {0}, а значение переменной j –на место {1}. В результате на экран будет выведена строка: 3 4. Если мы обратимся к методу WriteLine следующим образом Console.WriteLine("{0} {1} {2)", j, i, j), то на экран будет выведена строка: 4 3 4.
Последний вариант использования метода WriteLine является наиболее универсальным, потому что он позволяет не только выводить данные на экран, но и управлять форматом их вывода. Рассмотрим несколько примеров: 1) Использование управляющих последовательностей: Управляющей последовательностью называют определенный символ, предваряемый обратной косой чертой. Данная совокупность символов интерпретируется как одиночный символ и используется для представления кодов символов, не имеющих графического обозначения (например, символа перевода курсора на новую строку) или символов, имеющих специальное обозначение в символьных и строковых константах (например, апостроф). Рассмотрим управляющие символы:
Пример:
static void Main() { Console.WriteLine("Ура!\nСегодня \"Информатика\"!!!"); }
Управляющая последовательность \n используется для перехода на новую строку, благодаря чему не нужно многократно вызывать метод WriteLine ().
2) Управление размером поля вывода: Первым аргументом WriteLine указывается строка вида {n, m} – где n определяет номер идентификатора из списка аргументов метода WriteLine, а m – количество позиций (размер поля вывода), отводимых под значение данного идентификатора. При этом значение идентификатора выравнивается по правому краю. Если выделенных позиций для размещения значения идентификатора окажется недостаточно, то автоматически добавит
3) Управление размещением вещественных данных: Первым аргументом WriteLine указывается строка вида {n: ##.###} – где n определяет номер идентификатора из списка аргументов метода WriteLine, а ##.### определяет формат вывода вещественного числа. В данном случае под целую часть числа отводится две позиции, под дробную – три. Если выделенных позиций для размещения целой части значения идентификатора окажется недостаточно, то автоматически добавит
Задание. Измените программу так, чтобы число e выводилось на экран с точностью до 6 знаков после запятой. 4) Управление форматом числовых данных: Первым аргументом WriteLine указывается строка вида {n: <спецификатор>m} – где n определяет номер идентификатора из списка аргументов метода WriteLine, <спецификатор> - определяет формат данных, а m – количество позиций для дробной части значения идентификатора. В качестве спецификаторов могут использоваться следующие значения:
Пример:
static void Main() { Console.WriteLine("C Format:{0,14:C} \t{0:C2}", 12345.678); Console.WriteLine("D Format:{0,14:D} \t{0:D6}", 123); Console.WriteLine("E Format:{0,14:E} \t{0:E8}", 12345.6789); Console.WriteLine("G Format:{0,14:G} \t{0:G10}", 12345.6789); Console.WriteLine("N Format:{0,14:N} \t{0:N4}", 12345.6789); Console.WriteLine("X Format:{0,14:X} ", 1234); Console.WriteLine("P Format:{0,14:P} ", 0.9); }
Ввод данных Для ввода данных обычно используется метод ReadLine, реализованный в классе Console. Но здесь необходимо помнить, что тип переменной после использования данной командной строки будет char, поэтому при вводе значений переменных другого типа небходимо использование инструкций преобразования. Пример int tr1; tr1 = Convert.ToInt16(Console.ReadLine()); Console.WriteLine(tr1); Пример:
static void Main() { string s = Console.ReadLine(); Console.WriteLine(s); }
Для того чтобы получить числовое значение необходимо воспользоваться преобразованием данных. Пример:
static void Main() { string s = Console.ReadLine(); int x = int.Parse(s); //преобразование строки в число Console.WriteLine(x); } Или сокращенный вариант:
static void Main() { int x = int.Parse(Console.ReadLine()); //преобразование введенной строки в число Console.WriteLine(x); }
Для преобразования строкового представления целого числа в тип int мы используем метод int.Parse(), который реализован для всех числовых типов данных. Таким образом, если нам потребуется преобразовать строковое представление в вещественное, мы можем воспользоваться методом float.Parse() или double.Parse(). В случае, если соответствующее преобразование выполнить невозможно, сто выполнение программы прерывается и генерируется исключение System.FormatExeption (входная строка имела неверный формат).
Задание. Измените предыдущий фрагмент программы так, чтобы с клавиатуры вводилось вещественное число, а на экран это число выводилось с точностью до 3 знаков после запятой. Встроенные функции (методы).
Условный оператор if Условный оператор if используется для разветвления процесса обработки данных на два направления. Он может иметь одну из форм: сокращенную или полную. Форма сокращенного оператора if:
if (B) S;
где В – логическое или арифметическое выражение, истинность которого проверяется; S – оператор: простой или составной. При выполнении сокращенной формы оператора if сначала вычисляется выражение B, затем проводится анализ его результата: если B истинно, то выполняется оператор S; если B ложно, то оператор S пропускается. Таким образом, с помощью сокращенной формы оператора if можно либо выполнить оператор S, либо пропустить его. Форма полного оператора if:
if (B) S1; else S2;
где B – логическое или арифметическое выражение, истинность которого проверяется; S1, S2- оператор: простой или составной. if {<условие>) { код, который выполняется, если вычисление <условия> дает результат true>; } Else { код, который выполняется, если вычисление <условия> дает результат £alse>; }
При выполнении полной формы оператора if сначала вычисляется выражение B, затем анализируется его результат: если B истинно, то выполняется оператор S1, а оператор S2 пропускается; если B ложно, то выполняется оператор S2, а S1 – пропускается. Таким образом, с помощью полной формы оператора if можно выбрать одно из двух альтернативных действий процесса обработки данных. Рассмотрим несколько примеров записи условного оператора if: if (a > 0) x=y; // Сокращенная форма c простым оператором if (++i) {x=y; y=2*z;} // Сокращенная форма c составным оператором if (a > 0 || b<0) x=y; else x=z; // Полная форма с простым оператором if (i+j-1) { x= 0; y= 1;} else {x=1; y:=0;} // Полная форма с составными операторами
Рассмотрим пример использования условного оператора.
static void Main() { Console.Write("x= "); float x = float.Parse(Console.ReadLine()); Console.Write("y="); float y = float.Parse(Console.ReadLine()); if (x < y ) Console.WriteLine("min= "+x); else Console.WriteLine("min= "+y); }
Результат работы программы: x y min 0 0 0 1 -1 -1 -2 2 -2
Задание. Измените программу так, чтобы вычислялось наибольшее значение из х и у.
Операторы S1 и S2 могут также являться операторами if. Такие операторы называют вложенными. При этом ключевое слово else связывается с ближайшим предыдущим словом if, которое еще не связано ни с одним else. Рассмотрим пример программы, использующей вложенные условные операторы. Пример: Дана мишень. Подсчитать количество очков после выстрела по данной мишени.
static void Main() { int Ball=0; Console.Write("x= "); float x = float.Parse(Console.ReadLine()); Console.Write("y= "); float y = float.Parse(Console.ReadLine()); if (x * x + y * y <=1) Ball = 10; //окружность с радиусом 1 else if (x * x + y * y <= 4) Ball = 5; //окружность с радиусом 2 Console.WriteLine("Ball= "+ Ball); }
Результат работы программы: x y Ball 0 0 10 1 -1 5 -2 2 0 Задание.Измените программу так, чтобы подсчитывалось количество очков для мишени вида Пример. По заданному виду арифметической операции (сложение, вычитание, умножение и деление) и двум операндам, вывести на экран результат применения данной операции к операндам.
static void Main() { Console.Write("OPER= "); char oper=char.Parse(Console.ReadLine()); bool ok=true; Console.Write("A= "); int a=int.Parse(Console.ReadLine()); Console.Write("B= "); int b=int.Parse(Console.ReadLine()); float res=0; switch (oper) { case '+': res = a + b; break; //1 case '-': res = a - b; break; case '*': res = a * b; break; case ':': if (b != 0) { res = (float)a / b; break; } else goto default; default: ok = false; break; } if (ok) Console.WriteLine("{0} {1} {2} = {3}", a, oper, b, res); else Console.WriteLine("error"); }
Результат выполнения программы: oper x y rez + 4 5 9 : 4 0 error % 4 3 error Практикум
I. Дана точка на плоскости с координатами (х, у). Составить программу, которая выдает одно из сообщений «Да», «Нет», «На границе» в зависимости от того, лежит ли точка внутри заштрихованной области, вне заштрихованной области или на ее границе. Пример:
Области задаются графически следующим образом:
II. Составить программу. Замечание. При решении данных задач возможно использовать оператор switch или вложенные операторы if.
1) Дан порядковый номер дня недели, вывести на экран его название. Пример: using System; namespace Hello { class Program { static void Main() { Console.Write("n="); byte n = byte.Parse(Console.ReadLine()); switch (n) { case 1: Console.WriteLine("понедельник"); break; case 2: Console.WriteLine("вторник"); break; case 3: Console.WriteLine("среда"); break; case 4: Console.WriteLine("четверг"); break; case 5: Console.WriteLine("пятница"); break; case 6: Console.WriteLine("суббота"); break; case 7: Console.WriteLine("воскресенье"); break; default: Console.WriteLine("ВЫ ОШИБЛИСЬ"); break; } } } }
2) Дан порядковый номер месяца, вывести на экран количество месяцев оставшихся до конца года. 3) Дан порядковый номер дня месяца, вывести на экран количество дней оставшихся до конца месяца. 4) Дан номер масти m (1 £ m £ 4), определить название масти. Масти нумеруются: «пики» - 1, «трефы» - 2, «бубны» - 3, «червы» - 4. 5) Дан номер карты k (6 £ k £ 14), определить достоинство карты. Достоинства определяются по следующему правилу: «туз» - 14, «король» - 13, «дама» - 12, «валет» - 11, «десятка» - 10, …, «шестерка» - 6. 6) Дан номер масти m (1 £ m £ 4) и номер достоинства карты k (6 £ k £ 14). Определить полное название соответствующей карты в виде «дама пик», «шестерка бубен» и т.д. 7) С 1 января 1990 года по некоторый день прошло n дней, определить название текущего месяца. 8) С 1 января 1990 года по некоторый день прошло m месяцев, определить название текущего месяца. 9) С некоторой даты по настоящий день прошло m месяцев, определить название месяца неизвестной даты. 10) С некоторой даты по настоящий день прошло m месяцев, найти неизвестную дату. 11) С некоторой даты по настоящий день прошло n дней, найти неизвестную дату. 12) С 1 января 1990 года по некоторый день прошло m месяцев и n дней, определить название текущего месяца. 13) Дано расписание приемных часов врача. Вывести на экран приемные часы врача в заданный день недели (расписание придумать самостоятельно). 14) Проведен тест, оцениваемый в целочисленный баллах от нуля до ста. Вывести на экран оценку тестируемого в зависимости от набранного количества баллов: от 90 до 100 – «отлично», от 70 до 89 – «хорошо», от 50 до 69 – «удовлетворительно», менее 50 – «неудовлетворительно». 15) Дан год. Вывести на экран название животного, символизирующего заданный год по восточному календарю. 16) Дан возраст человека мужского пола в годах. Вывести на экран возрастную категорию: до года – «младенец», от года до 11 лет – «ребенок», от 12 до 15 лет – «подросток», от 16 до 25 лет – «юноша», от 26 до 70 лет – «мужчина», более 70 лет – «старик». 17) Дан пол человека: м – мужчина, ж – женщина. Вывести на экран возможные мужские и женские имена в зависимости от введенного пола. 18) Дан признак транспортного средства: a – автомобиль, в – велосипед, м - мотоцикл, с – самолет, п – поезд. Вывести на экран максимальную скорость транспортного средства в зависимости от введенного признака. 19) Дан номер телевизионного канала. Вывести на экран наиболее популярные программы заданного канала. 20) Дан признак геометрической фигуры на плоскости: к – круг, п – прямоугольник, т - треугольник. Вывести на экран периметр и площадь заданной фигуры (данные, необходимые для расчетов, запросить у пользователя).
III. Вывести на экран: Замечание. Решите каждую задачу тремя способами – используя операторы цикла while, do while и for. 1) целые числа 1, 3, 5, …, 21 в строчку через пробел: Пример: using System; namespace Hello { class Program {
static void Main() { Console.Write("n="); byte n = byte.Parse(Console.ReadLine());
Console.Write("while: "); int i = 1; while (i <= n) { Console.Write(" " + i); i += 2; }
Console.Write("do while: "); i = 1; do { Console.Write(" " + i); i += 2; } while (i <= n);
Console.Write("For: "); for (i = 1; i<=n; i+=2) { Console.Write(" " + i); } } } }
2) целые числа 10, 12, 14, …, 60 в обратном порядке в столбик;
5) таблицу соответствия между весом в фунтах и весом в килограммах для значений 1, 2, 3, …, 10 фунтов (1 фунтов = 453г); 6) таблицу перевода 5, 10, 15, …, 120 долларов США в рубли по текущему курсу (значение курса вводится с клавиатуры); 7) таблицу стоимости для 10, 20, 30,…, 100 штук товара, при условии, что одна штука товара стоит х руб (значение х водится с клавиатуры); 8) таблицу перевода расстояний в дюймах в сантиметры для значений 2, 4, 6, …, 12 дюймов (1 дюйм = 25.4 мм); 9) кубы всех целых чисел из диапазона от А до В (А£В) в обратном порядке; 10) все целые числа из диапазона от А до В (А£В), оканчивающиеся на цифру Х; 11) все целые числа из диапазона от А до В (А£В), оканчивающиеся на цифру Х или У; 12) все целые числа из диапазона от А до В (А£В), оканчивающиеся на любую четную цифру; 13) только положительные целые числа из диапазона от А до В (А£В); 14) все целые числа из диапазона от А до В, кратные трем (А£В); 15) все четные числа из диапазона от А до В, кратные трем (А£В); 16) только отрицательные четные числа из диапазона от А до В (А£В); 17) все двухзначные числа, в записи которых все цифры разные; 18) все двухзначные числа, в которых старшая цифра отличается от младшей не больше чем на 1; 19) все трехзначные числа, которые начинаются и заканчиваются на одну и ту же цифру; 20) все трехзначные числа, в которых хотя бы две цифры повторяются.
IV. Вывести на экран числа следующим образом:
Пример:
using System; namespace Hello { class Program { static void Main() { for (int i = 1; i<=4; ++i, Console.WriteLine()) { for(int j=1; j<=6; ++j) Console.Write(" " + i); } } } }
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2018-05-30; просмотров: 549. stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда... |