Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Встроенные функции (методы).




Создание первого проекта

Создание нового проекта возможно следуюшими способами.

 

  1. Выборе команд File-New-Project
  2. Посредством нажатия клавиш Ctrl+Shift+N
  3. Щелчком мышью по соответствующему значку на панели инструментов

После выбора одного из способов появляется окно New Project, в котором необходимо выбрать тип проекта(поле Templates), язык для создания проекта, имя проекта и его местонахождение.

 После чего откроется диалоговое меню New Project (см. рис.1).

Рис.1.

 

В поле Project types следует выбрать Visual C#, в поле TemplatesConsole Application.

В строчке Name введите имя приложения Hello. Обратите внимание на то, что это же имя появится в строчке Solution Name. Уберите галочку в поле Create directory for Application (пока мы создаем простое приложение, и нам нет необходимости усложнять его структуру).

В строке Location определите положение на диске, куда нужно сохранять ваш проект. И нажмите кнопку OK. Примерный вид экрана изображен на рис 2.

 

Рис. 2.

 

 

Основное пространство экрана занимает окно редактора, в котором располагается текст программы, созданный средой автоматически. Текст представляет собой каркас, в который программист будет добавлять нужный код. При этом зарезервированные слова отображаются синим цветом, комментарии – зеленым, основной текст – черным.

Текст структурирован. Щелкнув на знак минус, мы скроем блок кода, щелкнув на знаке плюс – откроем.

Добавим в метод следующий код:                   Console.WriteLine("Hello!");

Здесь Console имя стандартного класса из пространства имен System. Его метод WriteLine выводит на экран текст, заданный в кавычках

 

Программа также может быть откомпилирована и выполнена несколькими различными способами.

  1. Пункт меню Debug | Start Without Debugging, имеет два упрощенных способа вызова: с клавиатуры (Ctrl+F5) и посредством иконки на панели инструментов.
  2. Кроме этого, существует возможность запускать код в режиме отладки с помощью пункта меню Debug | Start (тот же результат можно получить при нажатии клавиши F5 или при щелчке мышью по соответствующей иконке)
  3. Можно откомпилировать проект, вообще не запуская его (с разрешением отладки или без), воспользовавшись пунктом меню Build | Build, комбинацией клавиш Ctrl+Shift+B или еще одной иконкой на панели инструментов.

Организация ввода-вывода данных. Форматирование.

Программа при вводе данных и выводе результатов взаимодействует с внешними устройствами. Совокупность стандартных устройств ввода (клавиатура) и вывода (экран) называется консолью. В языке С# нет операторов ввода и вывода. Вместо них для обмена данными с внешними устройствами используются специальные объекты. В частности, для работы с консолью используется стандартный класс 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) Использование управляющих последовательностей:

Управляющей последовательностью называют определенный символ, предваряемый обратной косой чертой. Данная совокупность символов интерпретируется как одиночный символ и используется для представления кодов символов, не имеющих графического обозначения (например, символа перевода курсора на новую строку) или символов, имеющих специальное обозначение в символьных и строковых константах (например, апостроф). Рассмотрим управляющие символы:

 

Вид Наименование
\a Звуковой сигнал
\b Возврат на шаг назад
\f Перевод страницы
\n Перевод строки
\r Возврат каретки
\t Горизонтальная табуляция
\v Вертикальная табуляция
\\ Обратная косая черта
\’ Апостроф
\” Кавычки

 

Пример:

 

static void Main()

{

Console.WriteLine("Ура!\nСегодня \"Информатика\"!!!");   

}

 

Управляющая последовательность \n используется для перехода на новую строку, благодаря чему не нужно многократно вызывать метод WriteLine ().

 

 

2) Управление размером поля вывода:

Первым аргументом WriteLine  указывается строка вида {n, m} – где n определяет номер идентификатора из списка аргументов метода WriteLine, а m – количество позиций (размер поля вывода), отводимых под значение данного идентификатора. При этом значение идентификатора выравнивается по правому краю. Если выделенных позиций для размещения значения идентификатора окажется недостаточно, то автоматически добавиться необходимое количество позиций. Пример:

 

static void Main() { double x= Math.E; Console.WriteLine("E={0,20}", x); Console.WriteLine("E={0,10}", x); }

 

3) Управление размещением вещественных данных:

Первым аргументом WriteLine  указывается строка вида {n: ##.###} – где n определяет номер идентификатора из списка аргументов метода WriteLine, а ##.### определяет формат вывода вещественного числа. В данном случае под целую часть числа отводится две позиции, под дробную – три. Если выделенных позиций для размещения целой части значения идентификатора окажется недостаточно, то автоматически добавиться необходимое количество позиций. Пример:

 

static void Main() { double x= Math.E; Console.WriteLine("E={0:##.###}", x); Console.WriteLine("E={0:.####}", x); }

Задание.  Измените программу так, чтобы число e выводилось на экран с точностью до 6 знаков после запятой.

4) Управление форматом числовых данных:

Первым аргументом WriteLine указывается строка вида {n: <спецификатор>m} – где n определяет номер идентификатора из списка аргументов метода WriteLine, <спецификатор> - определяет формат данных, а m – количество позиций для дробной части значения идентификатора. В качестве спецификаторов могут использоваться следующие значения:

 

Параметр Формат Значение
C или c Денежный. По умолчанию ставит знак р. Изменить его можно с помощь объекта NumberFormatInfo Задается количество десятичных разрядов.
D или d Целочисленный (используется только с целыми числами) Задается минимальное количество цифр. При необходимости результат дополняется начальными нулями
E или e Экспоненциальное представление чисел Задается количество символов после запятой. По умолчанию используется 6
F или f Представление чисел с фиксированной точкой Задается количество символов после запятой
G или g Общий формат (или экспоненциальный, или с фиксированной точкой) Задается количество символов после запятой. По умолчанию выводится целая часть
N или n Стандартное форматирование с использованием запятых и пробелов в качестве разделителей между разрядами Задается количество символов после запятой. По умолчанию – 2, если число целое, то ставятся нули
X или x Шестнадцатеричный формат  
P или p Процентный  

 

Пример:

 

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 знаков после запятой.

Встроенные функции (методы).

Название Описание
Math.Abs(<выражение>) Модуль
Math.Ceiling(<выражение>) Округление для большего целого
Math.Cos(<выражение>) Косинус
Math.Е Число е
Math.Exp(<выражение>) Экспонента
Math.Floor(<выражение>) Округление до меньшего целого
Math.Log(<выражение>) Натуральный логарифм
Math.Log10(<выражение>) Десятичный логарифм
Math.Max(<выражение1>, <выражение2>) Максимум из двух значений
Math.Min(<выражение1>, <выражение2>) Минимум из двух значений
Math.PI Число p
Math.Pow(<выражение1>, <выражение2>) Возведение в степень
Math.Round(<выражение>) Простое округление
Math.Sign(<выражение>) Знак числа
Math.Sin(<выражение>) Синус
Math.Sqrt(<выражение>) Квадратный корень
Math.Тan(<выражение>) Тангенс

Условный оператор 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. Дана точка на плоскости с координатами (х, у). Составить программу, которая выдает одно из сообщений «Да», «Нет», «На границе» в зависимости от того, лежит ли точка внутри заштрихованной области, вне заштрихованной области или на ее границе.

Пример:

1. using System; namespace Hello { class Program {        static void Main()        {         Console.Write("x=");                    float x = float.Parse(Console.ReadLine());         Console.Write("y=");         float y = float.Parse(Console.ReadLine());         if (x * x + y * y < 9 && y > 0)             Console.WriteLine("внутри");         else if (x * x + y * y > 9 || y < 0)               Console.WriteLine("вне");                else Console.WriteLine("на границе");        } } }

Области задаются графически следующим образом:

2. 3. 4.  
5. 6. 7. 8.
9. 10. 11. 12.
13. 14. 15. 16.
17. 18. 19. 20.

 

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 в обратном порядке в столбик;

3) числа следующим образом: 10 10.4 11 11.4 … 25 25.4 4) числа следующим образом: 25 25.5 24.8 26 26.5 25.8 … 35 35.5 34.8

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. Вывести на экран числа следующим образом:

 

Пример:

1) 1 1 1 1 1 1
  2 2 2 2 2 2
  3 3 3 3 3 3
  4 4 4 4 4 4
             

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 не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда...