Похожие презентации:
2Линейные программы С_
1. Тема: Линейные программы
2. Линейные программы
Пространство имен (namespace) в C# представляетсобой некий контейнер для логического объединения
именованных сущностей, таких как классы,
интерфейсы, перечисления и др.
Для чего нужны такие контейнеры?
1 пространства имен позволяют логически
группировать классы и другие сущности;
2 позволяют использовать одни и те же имена для
сущностей в разных пространствах имен.
3. Линейные программы на языке C#
Исходный текст программы содержит операторы и комментарии.Основными видами операторов в C# являются следующие:
• Оператор-выражение. Под выражением может пониматься
вызов метода, присваивание, а также допустимые комбинации
операндов и операций. Оператор-выражение завершается
символом “;” (точка с запятой).
• Операторы управления ходом выполнения программы, такие
как оператор условного перехода или операторы циклов.
• Блок операторов. Блок – это набор операторов, обрамленных
фигурными скобками –{}. Блоки необходимо использовать там,
где синтаксис языка требует выполнение более одного оператора.
• Операторы объявлений пользовательских типов, элементов
типов и локальных переменных и констант.
4. Статический метод Main
Язык c# являетсярегистрозависимым, и если
напишите имя статического метода
Main с маленькой буквы (main) или
все буквы будут большими (MAIN),
то получите ошибку, потому что для
компилятора все эти три слова
являются абсолютно разными, при
чём это касается не только данного
метода.
5. Класс System.Console
Класс Console инкапсулирует средства манипуляции вводом,выводом и потоками ошибок для консольных приложений.
В таблице перечислены некоторые интересные члены класса
Член
Описание
Beep()
Метод позволяет выдать звуковой сигнал указанной
частоты и длительности
BackgroundColor Свойства устанавливают цвет фона и переднего плана
ForegroundColor для текущего вывода. Им может быть присвоен любой
член перечисления ConsoleColor
Title
Установить заголовок текущей консоли
WindowHeight
WindowWidth
WindowTop
WindowLeft
Свойства управления размерами консоли по
отношению к установленному буферу
(BufferHeight, BufferWidth)
Clear
Метод очищения буфера и области отображения
консоли
6. Простейший ввод-вывод
Любая программа при вводе исходных данных и выводерезультатов взаимодействует с внешними устройствами
Совокупность стандартных устройств ввода и вывода, то есть
клавиатуры и экрана, называется консолью.
В языке C# нет операторов ввода и вывода.
Вместо них для обмена с внешними устройствами применяются
стандартные объекты.
Для работы с консолью в C# применяется класс Console,
определенный в пространстве имен System, который определяет
статические методы, позволяющие захватывать ввод и вывод
Методы класса Write() и WriteLine() – позволяют поместить в
поток вывода текст
7. Простейший ввод-вывод
Для того чтобы вывести на экран какое-либо сообщение,воспользуйтесь методами:
Console.Write() или Console.WriteLine()
Первая из них, напечатав на экране все, о чем ее просили, оставит
курсор в конце выведенной строки, а вторая переведет его в
начало следующей строки.
Console.WriteLine(s);
// вывод переменной
Console.WriteLine(55.3);
// вывод константы
Console.WriteLine(y*3+7);
// вывод выражения
string hello = "Привет мир";
Console.WriteLine(hello);
// вывод строки
Console.WriteLine("Добро пожаловать в C#!"); // вывод строки
8. Вывод с интерполяцией
Для встраивания отдельных значений в выводимую на консольстроку используются фигурные скобки, в которые заключается
встраиваемое значение. Это может быть значение переменной
({name}) или выражение (например, {4 + 7}).
Перед всей строкой вывода ставится знак доллара $.
string name = "Tom";
int age = 34;
double height = 1.7;
Console.WriteLine($"Имя:{name} Возраст:{age} Рост:{height}м");
При выводе на консоль вместо помещенных в фигурные скобки
выражений будут выводиться их значения:
Имя: Tom Возраст: 34 Рост: 1,7м
9. Метод WriteLine
Второй вариант вывода:WriteLine("строковый литерал", список выводимых выражений );
Первым параметром методу передается строковый литерал,
содержащий, помимо обычных символов, предназначенных для
вывода на консоль, заполнители в фигурных скобках, а также
символы управляющих последовательностей.
Заполнители {0} ,{1}, {2} нумеруются с нуля, перед выводом
они заменяются значениями соответствующих переменных
( констант, выражений) , указанных в списке вывода.
10. Методы Write
Пример вывода на консоль сразу нескольких значений:Console.WriteLine("Имя: {0} Возраст: {2} Рост: {1}м",
name, height, age);
Этот способ подразумевает, что первый параметр в методе
Console.WriteLine представляет выводимую строку
("Имя: {0} Возраст: {2} Рост: {1}м").
Все последующие параметры представляют значения, которые
могут быть встроенны в эту строку (name, height, age).
При этом важен порядок выводимых параметров.
Например, вначале идет name, потом height и потом age.
Поэтому у name будет представлять параметр с номером 0 (нумерация начинается с 0),
height имеет номер 1, а age - номер 2.
Поэтому в строке "Имя: {0} Возраст: {2} Рост: {1}м" на место плейсхолдеров {0}, {2},
{1} будут вставляться значения соответствующих параметров.
11. Метод WriteLine
Третий вариант .Если требуется вывести в строке не одну, а две и более
переменные без форматирования, можно передавать их для
вывода выполнив «склеивание» в одну строку с помощью
операции +.
Console.WriteLine("a=" +a+ " b= "+b +"c=" + c+ "d="+d);
12. Форматирование строк в Си-шарп
Потребность в форматировании строк возникает довольночасто (вывод определенного количества знаков после запятой для
числа, или дата в нужом формате и. т.д.).
В Си-шарп возможностью задать форматирование обладают
следующие методы:
- System.String.Format
- Console.WriteLine
- StreamWriter.Write
- ToString
13. Форматирование строк Параметр "ширина“
Форматирование строкПараметр "ширина“
Можно отформатировать строки, содержащие числа, чтобы они
были выравнены по левому или правому краю и имели
одинаковую длину. К числу, которое имеет меньше символов,
чем значение ширины, будут добавлены пробелы слева
(положительная ширина) или справа (отрицательная ширина):
Console.WriteLine("Result is {0, 6}", 1.2789);
Console.WriteLine("Result is {0, 6}", 7.54);
Console.WriteLine("Result is {0, -6}", 1.2789);
Console.WriteLine("Result is {0, -6}", 7.54);
В результате получится, что в первых двух строках числа выровнены по
правому краю, в двух других по левому:
Resultis 1,2789
Resultis 7,54
Resultis 1,2789
Resultis 7,54
14. Методы Write - параметры форматирования
ПараметрЗначение
С или c
Используется для вывода значений в денежном формате
D или d
Используется для вывода десятичных чисел. После этих
символов можно указать минимальное количество цифр
E или e
Для вывода значений в экспоненциальном формате
F или f
Вывод значений с фиксированной точкой
G или g
Общий формат. Применяется для вывода значений с фиксированной точностью или в экспоненциальном формате
N или n
Стандартное числовое форматирование с использованием
разделителей между разрядами.
X или x
Вывод значений в шестнадцатеричном формате. При использовании прописной буквы Х символы в шестнадцатеричном
формате тоже будут прописными
15. Форматируемый вывод
Символы форматирования следуют в подстановочныхвыражениях сразу же за номером подставляемого параметра
через двоеточие:
{0:С}, {l:d}, {2:X} и т.п.
16. Форматируемый вывод
double d = -12.345678956789;int i = 123456789;
Console.Write("Число c плавающей точкой "); Console.WriteLine(d);
Console.WriteLine();
Console.Write("G формат - общий ");
Console.WriteLine("{0,8:G}", d);
Console.Write("F формат - c фикс. точкой "); Console.WriteLine("{0,8:F}", d);
Console.Write("N формат - числовой ");
Console.WriteLine("{0,8:N}", d);
Console.Write("E формат - научный ");
Console.WriteLine("{0,8:E}", d);
Console.Write("C формат - денежный ");
Console.WriteLine("{0,8:C}", d);
Console.Write("P формат - процентный ");
Console.WriteLine("{0,8:P}", d);
Console.WriteLine();
Console.Write("Число целое "); Console.WriteLine(i);
Console.WriteLine();
Console.Write("D формат - десятичный "); Console.WriteLine("{0,8:D}", i);
Console.Write("C формат - денежный ");
Console.WriteLine("{0,8:C}", i);
Console.Write("P формат - процентный "); Console.WriteLine("{0,8:P}", i);
Console.Write("X формат - 16-ричный "); Console.WriteLine("{0,8:X}", i);
Console.Readline();
17. Пользовательский формат числовых данных
Для создания пользовательских форматов используются специальные символыСпециальный
Значение
символ
0
Цифра или ноль
#
Цифра
.
Разделитель дроби
,
Разделитель тысяч
%
Процент
e
Экспонента
;
Определяет разделы, которые описывают форматы
для положительных, отрицательных чисел и нуля
\
Экранирование специальных символов. Позволяет
вставлять спец-символы как текст
18. Пример использования пользовательских форматов:
Console.WriteLine("{0:0000.00}", 1024.32);// "1024,32"
Console.WriteLine("{0:00000.000}", 1024.32); // "01024,320"
Console.WriteLine("{0:####.###}", 1024.32); // "1024,32"
Console.WriteLine("{0:####.#}", 1024.32);
// "1024,3"
Console.WriteLine("{0:#,###.##}", 1024.32);
// "1 024,32"
Console.WriteLine("{0:##%}", 0.32);
// "32%"
Console.WriteLine("{0:<####.###>;[####.###];ноль}", 1024.32);
// "<1024,32>"
Console.WriteLine("{0:<####.###>;[####.###];ноль}", -1024.32);
// "[1024,32]"
Console.WriteLine("{0:<####.###>;[####.###];ноль}", 0);
// "ноль"
Стоит отметить, что если количество цифр целой части числа больше чем
количество символов «0» или «#» в формате, целая часть числа всё равно будет
выводиться полностью.
19. Консольный ввод с клавиатуры
Для ввода предназначен метод Console.ReadLine().Он позволяет получить введенную строку.
static void Main(string[] args)
{
Console.Write("Введите свое имя: ");
string name = Console.ReadLine();
Console.WriteLine($"Привет {name}");
Console.ReadKey();
}
20. ввод с клавиатуры
В классе Console определены методы ввода строки и отдельногосимвола, но нет методов, которые позволяют непосредственно
считывать с клавиатуры числа.
Ввод числовых данных выполняется в два этапа:
• Символы, представляющие собой число, вводятся с клавиатуры
в строковую переменную.
• Выполняется преобразование из строки в переменную
соответствующего типа.
Преобразование можно выполнить либо с помощью
специального класса Convert, определенного в пространстве
имен System, либо с помощью метода Parse, имеющегося в
каждом стандартном арифметическом классе.
21. Преобразование строки в числовое значение
Преобразование можно использовать при получении числовыхвходных данных из аргументов командной строки.
Numeric Type
Method
decimal
ToDecimal(String)
float
ToSingle(String)
double
ToDouble(String)
short
ToInt16(String)
long
ToInt64(String)
ushort
ToUInt16(String)
uint
ToUInt32(String)
ulong
ToUInt64(String)
22. Ввод чисел
Console.Write( "Введите имя: " );string name = Console.ReadLine();
Console.Write( "Введите возраст: ");
int age = Convert.ToInt32(Console.ReadLine());
Console.Write( "Введите рост: ");
double height=Convert.ToDouble(Console.ReadLine());
Console.Write( "Введите размер зарплаты: ");
decimal salary=Convert.ToDecimal(Console.ReadLine());
Console.WriteLine($"Имя: {name} Возраст: {age} Рост:
{height} м Зарплата: {salary} $");
Console.ReadKey();
23. Методы ввода
Console.WriteLine( "Введите символ" );// считывается 1 символ из входного потока
char c = (char)Console.Read();
Console.WriteLine( "c = " + c );
При вводе важно учитывать текущую операционную систему.
В одних культурах разделителем между целой и дробной
частью является точка (США, Великобритания...),
в других - запятая (Россия, Германия...).
Например, если текущая ОС - русскоязычная, значит, надо
вводить дробные числа с разделителем запятой.
Если локализация англоязычная, значит, разделителем целой и
дробной части при вводе будет точка.
24. Метод Read
Метод Read возвращает значение типа int, представляющеесобой код символа, или –1, если символов во входном потоке нет
(например, пользователь нажал клавишу Enter).
Если требуется не int, а char, а неявного преобразования от int к
char не существует, нужно применить операцию явного
преобразования типа.
Ввод данных выполняется через буфер — специальную область
оперативной памяти. Фактически данные сначала заносятся в
буфер, а затем считываются оттуда процедурами ввода.
Занесение в буфер выполняется по нажатию клавиши Enter
вместе с ее кодом.
Метод Read, в отличие от ReadLine, не очищает буфер, поэтому
следующий после него ввод будет выполняться с того места, на
котором закончился предыдущий.
25. Метод Parse()
Метод Parse() в качестве параметра принимает строку ивозвращает объект текущего типа. Например:
int a = int.Parse("10");
double b = double.Parse("23,56");
decimal c = decimal.Parse("12,45");
byte d = byte.Parse("4");
Console.WriteLine($"a={a} b={b} c={c} d={d}")
;
Стоит отметить, что парсинг дробных чисел зависит от настроек.
В частности, для получения числа double передаем строку "23,56" с
запятой в качестве разделителя. Если бы передали точку вместо
запятой, то приложение выдало ошибку выполнения.
26. Метод TryParse ()
Метод TryParse () возвращает булево значение, указывающее,поддается ли строка преобразованию. Если возвращается
значение true, то тогда строка преобразуется, а результат
сохраняется в параметре, обозначенном идентификатором out.
int n;
Console.WriteLine("Введите строку:"); string t = Console.ReadLine();
bool result = int.TryParse( t, out n);
if (result == true)
Console.WriteLine("Преобразование прошло успешно");
else
Console.WriteLine("Преобразование завершилось неудачно");
Если преобразование пройдет неудачно, то исключения никакого не будет
выброшено, просто метод TryParse возвратит false, а переменная n будет содержать
значение по умолчанию.
27. Пример
{int st, oc;
Console.WriteLine ("Сколько лет Вы изучаете программирование?");
int.TryParse(Console.ReadLine(), out st);
Console.WriteLine ("\nКакую оценку Вы получили на экзамене?");
int.TryParse(Console.ReadLine(), out oc);
Console.WriteLine("\nДля того, чтобы прилично изучить язык C#,
\nВам понадобится {0} лет.\n",100/2/st/oc);
}
28. Программа
Математические функции — класс MathВ выражениях часто используются математические
функции, например, sin или возведение в степень. Они
реализованы в классе Math, определенном в
пространстве имен System.
Распечатать и вклеить таблицу функций
класса Math в конспект
29. пример
using System;namespace ConsoleApplication1
{
class Class1
{
static void Main()
{
Console.Write( "Введите х: " );
string buf = Console.ReadLine();
double x = double.Parse( buf );
Console.WriteLine( "Значение sin: " + Math.Sin(x) );
Console.Write( "Введите y: " ); buf = Console.ReadLine();
double y = double.Parse( buf );
Console.WriteLine( "Максимум : " + Math.Max(x, y) );
}
}
}
30. пример
Составить программу для вычисления значения y(x) и для некоторых xпроизвести вычисления
31. пример
Double x,y; string s;//Описываем переменные
Console.Write("Введите x=");
// приглашение для ввода х
s = Console.ReadLine();
//Вводим строку s
x = Convert.ToDouble(s);
//Преобразовываем строку в х
//Вычисляем y по формуле
y = (x / 2 * Math.Exp(x) + Math.Log(1 + Math.Exp(x))) / (Math.Pow(Math.Sin(x),
2)+ Math.Sin(Math.Sqrt(x)));
Console.Write("y(x)={0}",y);
//Печатаем полученный результат
Console.ReadKey();
//Ожидаем нажатия на любую клавишу в конце программы
32. пример
Пример №2С начала суток прошло N секунд (N — целое).
Записать текущее время выраженное в часах, минутах, секундах.
Даже если прошло несколько суток, отобразить время последних суток.
33. пример
int N, hours, minutes, seconds; string s;Console.Write("Введите число секунд, прошедших от начала суток N=");
s = Console.ReadLine();
//вводим произвольное число секунд
N = Convert.ToInt32(s);
hours = N / 3600 % 24;
// находим число часов, и оставляем только
//часы в последних сутках, если их больше 24
minutes = N % 3600 / 60; // определяем число минут
seconds = N % 3600 % 60; // определяем число секунд
Console.Write("Время {0}:{1}:{2}", hours, minutes, seconds);
Console.ReadKey();
Программирование