Разделы презентаций


Часть I

Содержание

©Павловская Т.А. (НИУ ИТМО)Основные понятия языка С#Состав языка:СимволыЛексемы: константы, имена, ключевые слова, разделителиВыраженияОператоры

Слайды и текст этой презентации

Слайд 1©Павловская Т.А. (НИУ ИТМО)
Часть I
Введение в программирование на языке C#

©Павловская Т.А. (НИУ ИТМО)Часть IВведение в программирование на языке C#

Слайд 2©Павловская Т.А. (НИУ ИТМО)
Основные понятия языка С#
Состав языка:
Символы
Лексемы: константы, имена,

ключевые слова, разделители
Выражения
Операторы

©Павловская Т.А. (НИУ ИТМО)Основные понятия языка С#Состав языка:СимволыЛексемы: константы, имена, ключевые слова, разделителиВыраженияОператоры

Слайд 3©Павловская Т.А. (НИУ ИТМО)
Состав языка
Символы:
буквы: A-Z, a-z, _, буквы

нац. алфавитов
цифры: 0-9, A-F
спец. символы: +, *, {, …
пробельные

символы

Лексемы:
константы 2 0.11 “Вася”
имена Vasia a _11
ключевые слова double do if
знаки операций + <= new
разделители ; [ ] ,

Выражения
выражение - правило вычисления значения: a + b
Операторы
исполняемые: c = a + b;
описания: double a, b;

static void Main()
{ Самолёт АН24 =
new Самолёт();
АН24.Полетели();
}

Лексема (token, токен) – минимальная единица языка, имеющая самостоятельный смысл

©Павловская Т.А. (НИУ ИТМО)Состав языкаСимволы:буквы: 		 A-Z, a-z, _, буквы нац. алфавитовцифры: 	 0-9, A-Fспец. символы: +,

Слайд 4©Павловская Т.А. (НИУ ИТМО)
Вид Примеры
Булевские true false
Целые десятич. 8 199226 0Lu

16-ричн. 0xA 0x1B8 0X00FFL
Веществ. с тчк 5.7 .001f 35m
с порядком 0.2E6 .11e–3 5E12
Символьные 'A' '\x74'

'\0' '\\' '\uA81B' Строковые "Здесь был Vasia"
"\tЗначение r=\xF5\n"
"Здесь был \u0056\u0061"
@"C:\temp\file1.txt"
Константа null null

Константы (литералы) C#

Кодировка Unicode

Суффикс
типа

Управляющий символ

5∙1012

©Павловская Т.А. (НИУ ИТМО)  Вид				ПримерыБулевские		true	false				Целые  десятич.	8	 199226 	0Lu			  16-ричн.	0xA	0x1B8		0X00FFL	Веществ.  с тчк	5.7	 .001f		 35m		с

Слайд 5©Павловская Т.А. (НИУ ИТМО)
Имена (идентификаторы)
имя должно начинаться с буквы или

_;
имя должно содержать только буквы, знак подчеркивания и цифры;
прописные и

строчные буквы различаются;
длина имени практически не ограничена.
имена не должны совпадать с ключевыми словами, однако допускается: @if, @float…
в именах можно использовать управляющие последовательности Unicode

Примеры правильных имен:
Vasia, Вася, _13, \u00F2\u01DD, @while.

Примеры неправильных имен:
2late, Big gig, Б#г

©Павловская Т.А. (НИУ ИТМО)Имена (идентификаторы)имя должно начинаться с буквы или _;имя должно содержать только буквы, знак подчеркивания

Слайд 6©Павловская Т.А. (НИУ ИТМО)
Нотации
Понятные и согласованные между собой имена —

основа хорошего стиля. Существует несколько нотаций — соглашений о правилах

создания имен.
В C# для именования различных видов программных объектов чаще всего используются две нотации:
Нотация Паскаля - каждое слово начинается с прописной буквы:
MaxLength, MyFuzzyShooshpanchik
Camel notation - с прописной буквы начинается каждое слово, составляющее идентификатор, кроме первого:
maxLength, myFuzzyShooshpanchik
©Павловская Т.А. (НИУ ИТМО)НотацииПонятные и согласованные между собой имена — основа хорошего стиля. Существует несколько нотаций —

Слайд 7©Павловская Т.А. (НИУ ИТМО)
Ключевые слова, знаки операций, разделители
Ключевые слова — идентификаторы,

имеющие специальное значение для компилятора. Их можно использовать только в

том смысле, в котором они определены.
Например, для оператора перехода определено слово goto.
Знак операции — один или более символов, определяющих действие над операндами. Внутри знака операции пробелы не допускаются.
Например: + - = == %= new is
Операции делятся на унарные (с одним операндом), бинарные (с двумя) и тернарную (с тремя).

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

©Павловская Т.А. (НИУ ИТМО)Ключевые слова, знаки операций, разделителиКлючевые слова — идентификаторы, имеющие специальное значение для компилятора. Их можно

Слайд 8©Павловская Т.А. (НИУ ИТМО)
Ключевые слова C#
abstract as base bool break byte case catch char checked class const continue decimal default delegate do double else enum event explicit extern false finally fixed float for foreach goto if implicit in int interface internal is lock long namespace new null object operator out override params private protected public readonly ref return sbyte sealed short sizeof stackalloc static string struct switch this throw true try typeof uint ulong unchecked unsafe

ushort using virtual void volatile while

©Павловская Т.А. (НИУ ИТМО)Ключевые слова C#abstract	as	base	bool	break	byte	case	catch	 char	checked	class	const	continue	decimal	default	delegate	do	double	else	enum	event	explicit	extern	false	finally	fixed	float	for	foreach	goto	if	implicit	in	int	interface	internal	is	lock	long	namespace	new	null	object	operator	out	override	params	private	protected	public	readonly	ref	return	sbyte	sealed	short	sizeof	stackalloc	static	string	struct	switch	this	throw	true	try	typeof	uint		ulong	 unchecked	 unsafe	  ushort	using	 virtual	void	volatile	while

Слайд 9©Павловская Т.А. (НИУ ИТМО)
Типы данных:
Концепция
Классификация
Встроенные типы данных

©Павловская Т.А. (НИУ ИТМО)Типы данных:КонцепцияКлассификацияВстроенные типы данных

Слайд 10©Павловская Т.А. (НИУ ИТМО)
внутреннее представление данных => множество их

возможных значений

допустимые действия над данными => операции и функции
Тип данных

определяет:

Концепция типа данных

©Павловская Т.А. (НИУ ИТМО)внутреннее представление данных  => множество их возможных значенийдопустимые действия над данными => операции

Слайд 11©Павловская Т.А. (НИУ ИТМО)
Различные классификации типов данных

©Павловская Т.А. (НИУ ИТМО)Различные классификации типов данных

Слайд 12©Павловская Т.А. (НИУ ИТМО)
Основная классификация типов C#

©Павловская Т.А. (НИУ ИТМО)Основная классификация типов C#

Слайд 13©Павловская Т.А. (НИУ ИТМО)
Хранение в памяти величин значимого и ссылочного

типа

©Павловская Т.А. (НИУ ИТМО)Хранение в памяти величин значимого и ссылочного типа

Слайд 14©Павловская Т.А. (НИУ ИТМО)

Встроенные типы данных C#:
Булевский
Целые
Вещественные

Финансовый
Символьный
object

©Павловская Т.А. (НИУ ИТМО)Встроенные типы данных C#: Булевский Целые Вещественные Финансовый Символьный object

Слайд 15©Павловская Т.А. (НИУ ИТМО)
Логический (булевский) и целые

©Павловская Т.А. (НИУ ИТМО)Логический (булевский) и целые

Слайд 16©Павловская Т.А. (НИУ ИТМО)
Остальные

©Павловская Т.А. (НИУ ИТМО)Остальные

Слайд 17©Павловская Т.А. (НИУ ИТМО)
Поля и методы встроенных типов
Любой встроенный тип

C# построен на основе стандартного класса библиотеки .NET. Это значит,

что у встроенных типов данных C# есть методы и поля. С помощью них можно, например, получить:
double.MaxValue (или System.Double.MaxValue) — максимальное число типа double;
uint.MinValue (или System.UInt32.MinValue) — минимальное число типа uint.
В вещественных классах есть элементы:
положительная бесконечность PositiveInfinity;
отрицательная бесконечность NegativeInfinity;
«не является числом»: NaN.
©Павловская Т.А. (НИУ ИТМО)Поля и методы встроенных типовЛюбой встроенный тип C# построен на основе стандартного класса библиотеки

Слайд 18©Павловская Т.А. (НИУ ИТМО)
Математические функции: класс Math

©Павловская Т.А. (НИУ ИТМО)Математические функции: класс Math

Слайд 19©Павловская Т.А. (НИУ ИТМО)

©Павловская Т.А. (НИУ ИТМО)

Слайд 20©Павловская Т.А. (НИУ ИТМО)
Линейные программы:
Структура программы
Переменные
Операции
Выражения

Введение в обработку исключительных ситуаций
Простейший ввод-вывод


©Павловская Т.А. (НИУ ИТМО)Линейные программы: Структура программы Переменные Операции Выражения Введение в обработку исключительных ситуаций Простейший ввод-вывод

Слайд 21©Павловская Т.А. (НИУ ИТМО)
using System;
namespace A
{
class

Class1
{
static void Main()

{
// описания и операторы, например:
Console.Write("Превед медвед");
}

// описания
}
}

Структура простейшей программы на С#

©Павловская Т.А. (НИУ ИТМО)using System;namespace A{    class Class1    {

Слайд 22©Павловская Т.А. (НИУ ИТМО)
Переменные
Переменная — это величина, которая

во время работы программы может изменять свое значение.
Все

переменные, используемые в программе, должны быть описаны.
Для каждой переменной задается ее имя и тип:
int number; float x, y; char option;

Тип переменной выбирается исходя из диапазона и требуемой точности представления данных.
©Павловская Т.А. (НИУ ИТМО)Переменные Переменная — это величина, которая во время работы программы может изменять свое значение.

Слайд 23©Павловская Т.А. (НИУ ИТМО)
Общая структура программы на С#
пространство имен
Класс А
Класс

В
Метод Main
Переменные класса
Методы класса:
Переменные класса
Локальные переменные
Методы класса:

©Павловская Т.А. (НИУ ИТМО)Общая структура программы на С#пространство именКласс АКласс ВМетод MainПеременные классаМетоды класса:Переменные классаЛокальные переменные Методы

Слайд 24©Павловская Т.А. (НИУ ИТМО)
Область действия и время жизни переменных
Переменные описываются

внутри какого-л. блока:
1) класса
2)

метода или блока внутри метода
Переменные, описанные непосредственно внутри класса, называются полями класса.
Переменные, описанные внутри метода класса, называются локальными переменными.
Область действия переменной - область программы, где можно использовать переменную.
Область действия переменной начинается в точке ее описания и длится до конца блока, внутри которого она описана.
Время жизни: переменные создаются при входе в их область действия (блок) и уничтожаются при выходе.

Блок — код, заключенный в фигурные скобки. Основное назначение блока — группировка операторов.

©Павловская Т.А. (НИУ ИТМО)Область действия и время жизни переменныхПеременные описываются внутри какого-л. блока: 	  1) класса

Слайд 25©Павловская Т.А. (НИУ ИТМО)
Инициализация переменных
При объявлении можно присвоить переменной

начальное значение (инициализировать).
int number = 100; float x = 0.02; char option

= ’ю’;
При инициализации можно использовать не только константы, но и выражения — главное, чтобы на момент описания они были вычислимыми, например:
int b = 1, a = 100;
int x = b * a + 25;
Поля класса инициализируются «значением по умолчанию» (0 соответствующего типа).
Локальные переменные автоматически НЕ инициализируются. Рекомендуется всегда явным образом инициализировать переменные при описании.
©Павловская Т.А. (НИУ ИТМО)Инициализация переменных При объявлении можно присвоить переменной начальное значение (инициализировать). int	number = 100;

Слайд 26©Павловская Т.А. (НИУ ИТМО)
Пример описания переменных
using System;
namespace CA1
{ class

Class1
{ static void Main()

{
int i = 3;
double y = 4.12;
decimal d = 600m;
string s = "Вася";

}
}
}
©Павловская Т.А. (НИУ ИТМО)Пример описания переменныхusing System;namespace CA1{  class Class1  {  static void Main()

Слайд 27©Павловская Т.А. (НИУ ИТМО)
Именованные константы
Вместо значений констант можно (и нужно!)

использовать в программе их имена.

Это облегчает читабельность программы и

внесение в нее изменений:

const float weight = 61.5;
const int n = 10;
const float g = 9.8;

Никаких чисел, кроме 0 и 1, в программе быть не должно (нигде, кроме описаний именованных констант)

©Павловская Т.А. (НИУ ИТМО)Именованные константыВместо значений констант можно (и нужно!) использовать в программе их имена. Это облегчает

Слайд 28©Павловская Т.А. (НИУ ИТМО)
Выражения
Выражение — правило вычисления значения.
В выражении

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

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

t + Math.Sin(x)/2 * x
результат имеет вещественный тип

a <= b + 2
результат имеет логический тип

x > 0 && y < 0
результат имеет логический тип

©Павловская Т.А. (НИУ ИТМО)ВыраженияВыражение — правило вычисления значения. В выражении участвуют операнды, объединенные знаками операций. Операндами выражения

Слайд 29©Павловская Т.А. (НИУ ИТМО)
Ассоциативность выражений
Слева направо
a + b – c

+ d
( ( ( a

+ b ) – c ) + d )
a * b / c * d
( ( ( a * b ) / c ) * d )

Справа налево
a = b = c = d
( a = ( b = ( c = d ) ) )
©Павловская Т.А. (НИУ ИТМО)Ассоциативность выраженийСлева направоa + b – c + d     (

Слайд 30©Павловская Т.А. (НИУ ИТМО)
Первичные

(), [], ++, --, new,


Унарные ~, !, ++, --, -, …
Типа умножения (мультипликативные) *, /, %
Типа сложения (аддитивные) +, -
Сдвига <<, >>
Отношения и проверки типа <, >, is, …
Проверки на равенство ==, !=
Поразрядные логические &, ^, |
Условные логические &&, ||
Условная  ?:
Присваивания            =, *=, /=,…

Приоритеты операций C#

©Павловская Т.А. (НИУ ИТМО)Первичные 		           (), [],

Слайд 31©Павловская Т.А. (НИУ ИТМО)
Тип результата выражения
Если входящие в выражение операнды

одного типа и операция для этого типа определена, то результат

выражения будет иметь тот же тип.
Если операнды разного типа и (или) операция для этого типа не определена, перед вычислениями автоматически выполняется преобразование типа по правилам, обеспечивающим приведение более коротких типов к более длинным для сохранения значимости и точности.
char c = 'A';
int i = 100;
double d = 1;
double summa = c + i + d; // 166

©Павловская Т.А. (НИУ ИТМО)Тип результата выраженияЕсли входящие в выражение операнды одного типа и операция для этого типа

Слайд 32©Павловская Т.А. (НИУ ИТМО)
Явное преобразование типа
Автоматическое (неявное) преобразование возможно не

всегда, а только если при этом не может случиться потеря

значимости.
Если неявного преобразования из одного типа в другой не существует, программист может задать явное преобразование типа с помощью операции (тип) x.
char c = 'A';
int i = 100;
double d = 1;
с = (char) i; // 'd'
c = (char) d;
i = (int) d;

©Павловская Т.А. (НИУ ИТМО)Явное преобразование типаАвтоматическое (неявное) преобразование возможно не всегда, а только если при этом не

Слайд 33©Павловская Т.А. (НИУ ИТМО)
Неявные арифметические преобразования типов в C#
при отсутствии

линии возникает ошибка компиляции

©Павловская Т.А. (НИУ ИТМО)Неявные арифметические преобразования типов в C#при отсутствии линии возникает ошибка компиляции

Слайд 34©Павловская Т.А. (НИУ ИТМО)
Понятие «исключительная ситуация»
При вычислении выражений могут

возникнуть ошибки (переполнение, деление на ноль).
В C# есть механизм

обработки исключительных ситуаций (исключений), который позволяет избегать аварийного завершения программы.
Если в процессе вычислений возникла ошибка, система сигнализирует об этом с помощью выбрасывания (генерирования) исключения.
Каждому типу ошибки соответствует свое исключение. Исключения являются классами, которые имеют общего предка — класс Exception, определенный в пространстве имен System.
Например, при делении на ноль будет выброшено исключение DivideByZeroException, при переполнении — исключение OverflowException.
В программе необходимо предусмотреть обработку исключений.
©Павловская Т.А. (НИУ ИТМО)Понятие «исключительная ситуация» При вычислении выражений могут возникнуть ошибки (переполнение, деление на ноль). В

Слайд 35©Павловская Т.А. (НИУ ИТМО)
Инкремент и декремент
using System;
namespace CA1
{

class C1
{ static void Main()

{ int x = 3, y = 3;
Console.Write( "Значение префиксного выражения: " );
Console.WriteLine( ++x );
Console.Write( "Значение х после приращения: " );
Console.WriteLine( x );

Console.Write( "Значение постфиксного выражения: " );
Console.WriteLine( y++ );
Console.Write( "Значение у после приращения: " );
Console.WriteLine( y );
}}}

Результат работы программы:
Значение префиксного выражения: 4
Значение х после приращения: 4
Значение постфиксного выражения: 3
Значение у после приращения: 4

©Павловская Т.А. (НИУ ИТМО)Инкремент и декремент using System;namespace CA1{  class C1  {  static void

Слайд 36©Павловская Т.А. (НИУ ИТМО)
Операция new
Cлужит для создания нового объекта

(выделение памяти в хипе + инициализация).
Формат:
new тип ( [

аргументы ] )

С помощью этой операции можно создавать объекты как ссылочных, так и значимых типов, например:

object z = new object();
Monster Вася = new Monster(100);
int i = new int(); // то же самое, что int i = 0;

Для значимых типов обычно не применяется.
©Павловская Т.А. (НИУ ИТМО)Операция new Cлужит для создания нового объекта (выделение памяти в хипе + инициализация). Формат:new

Слайд 37©Павловская Т.А. (НИУ ИТМО)
Операции отрицания

- !

~

using System;
namespace ConsoleApplication1
{ class Class1
{ static void Main()
{
sbyte a = 3, b = -63, c = 126;
bool d = true;
Console.WriteLine( -a ); // Результат -3
Console.WriteLine( -c ); // Результат -126
Console.WriteLine( !d ); // Результат false
Console.WriteLine( ~a ); // Результат -4
Console.WriteLine( ~b ); // Результат 62
Console.WriteLine( ~c ); // Результат -127
}}}

a = 00000011
~a = 11111100

b = 11000001
~b = 00111110

c = 01111110
~c = 10000001

©Павловская Т.А. (НИУ ИТМО)Операции отрицания

Слайд 38©Павловская Т.А. (НИУ ИТМО)
Явное преобразование типа
long b = 300;
int

a = (int) b; // данные не

теряются
byte d = (byte) a; // данные теряются
©Павловская Т.А. (НИУ ИТМО)Явное преобразование типа long b = 300;int a = (int) b;

Слайд 39©Павловская Т.А. (НИУ ИТМО)
Умножение *
Возвращает результат перемножения двух операндов.


Стандартная операция умножения определена для типов int, uint, long, ulong,

float, double и decimal.
К величинам других типов ее можно применять, если для них возможно неявное преобразование к этим типам.
Тип результата операции равен «наибольшему» из типов операндов, но не менее int.
Если оба операнда целочисленные или типа decimal и результат операции слишком велик для представления с помощью заданного типа, генерируется исключение System.OverflowException
©Павловская Т.А. (НИУ ИТМО)Умножение  *Возвращает результат перемножения двух операндов. Стандартная операция умножения определена для типов int,

Слайд 40©Павловская Т.А. (НИУ ИТМО)
Результаты вещественного умножения

©Павловская Т.А. (НИУ ИТМО)Результаты вещественного умножения

Слайд 41©Павловская Т.А. (НИУ ИТМО)
Пример (умножение *, деление /, остаток %)
using

System;
namespace ConsoleApplication1
{ class Class1
{ static void

Main()
{
int x = 11, y = 4;
float z = 4;
Console.WriteLine( z * y ); // Результат 16
Console.WriteLine( z * 1e308 ); // Рез. "бесконечность"
Console.WriteLine( x / y ); // Результат 2
Console.WriteLine( x / z ); // Результат 2,75
Console.WriteLine( x % y ); // Результат 3
Console.WriteLine( 1e-324 / 1e-324 ); // Результат NaN
}}}
©Павловская Т.А. (НИУ ИТМО)Пример (умножение *, деление /, остаток %)using System;namespace ConsoleApplication1{  class Class1  {

Слайд 42©Павловская Т.А. (НИУ ИТМО)
Операции сдвига (>)
Применяются к

целочисленным операндам.
Сдвигают двоичное представление первого операнда влево или вправо

на количество двоичных разрядов, заданное вторым операндом.
При сдвиге влево (<<) освободившиеся разряды обнуляются.
При сдвиге вправо (>>) освободившиеся биты заполняются нулями, если первый операнд беззнакового типа, и знаковым разрядом в противном случае.
Стандартные операции сдвига определены для типов int, uint, long и ulong.
©Павловская Т.А. (НИУ ИТМО)Операции сдвига (>) Применяются к целочисленным операндам. Сдвигают двоичное представление первого операнда влево или

Слайд 43©Павловская Т.А. (НИУ ИТМО)
Пример
using System;
namespace ConsoleApplication1
{ class Class1

{ static void Main()
{

byte a = 3, b = 9;
sbyte c = 9, d = -9;
Console.WriteLine( a << 1 ); // Результат 6
Console.WriteLine( a << 2 ); // Результат 12
Console.WriteLine( b >> 1 ); // Результат 4
Console.WriteLine( c >> 1 ); // Результат 4
Console.WriteLine( d >> 1 ); // Результат -5
}
}
}

00000011

00000110

00001100

©Павловская Т.А. (НИУ ИТМО)Примерusing System;namespace ConsoleApplication1{  class Class1  {  static void Main()

Слайд 44©Павловская Т.А. (НИУ ИТМО)
Операции отношения и проверки на равенство
Операции отношения

(=, ==, !=) сравнивают первый операнд со

вторым.
Операнды должны быть арифметического типа.
Результат операции — логического типа, равен true или false.
x == y -- true, если x равно y, иначе false
x != y -- true, если x не равно y, иначе false
x < y -- true, если x меньше y, иначе false
x > y -- true, если x больше y, иначе false
x <= y -- true, если x меньше или равно y, иначе false
x >= y -- true, если x больше или равно y, иначе false
©Павловская Т.А. (НИУ ИТМО)Операции отношения и проверки на равенствоОперации отношения (=, ==, !=) сравнивают первый операнд со

Слайд 45©Павловская Т.А. (НИУ ИТМО)
Условные логические операции && и ||
using

System;
namespace ConsoleApplication1
{ class Class1
{ static void

Main()
{
Console.WriteLine( true && true ); // Результат true
Console.WriteLine( true && false ); // Результат false
Console.WriteLine( true || true ); // Результат true
Console.WriteLine( true || false ); // Результат true
}
}
}

(a < b) || (a < c)
Если первое условие истинно, второе не вычисляется

©Павловская Т.А. (НИУ ИТМО)Условные логические операции && и || using System;namespace ConsoleApplication1{  class Class1  {

Слайд 46©Павловская Т.А. (НИУ ИТМО)
Условная операция
операнд_1 ? операнд_2 : операнд_3

Операнд_1 —

выражение, для которого существует неявное преобразование к логическому типу.
Если

результат вычисления операнда_1 равен true, результат операции — значение операнда_2,
иначе — значение операнда_3.

using System;
namespace ConsoleApplication1
{ class Class1
{ static void Main()
{
int a = 11, b = 4;
int max = b > a ? b : a;
Console.WriteLine( max ); // Результат 11
}}}
©Павловская Т.А. (НИУ ИТМО)Условная операция операнд_1 ? операнд_2 : операнд_3Операнд_1 — выражение, для которого существует неявное преобразование к

Слайд 47©Павловская Т.А. (НИУ ИТМО)
Присваивание – это замена старого значения переменной

на новое. Старое значение стирается бесследно.
Операция может использоваться в программе

как законченный оператор.
переменная = выражение

a = b + c;
x = 1;
x = x + 0.5;


Правый операнд операции присваивания должен иметь неявное преобразование к типу левого операнда, например:
вещественная переменная = целое выражение;

Операция присваивания

1

x

1+0.5

1.5

©Павловская Т.А. (НИУ ИТМО)Присваивание – это замена старого значения переменной на новое. Старое значение стирается бесследно.Операция может

Слайд 48©Павловская Т.А. (НИУ ИТМО)
Сложное присваивание в C#
x += 0.5; соответствует

x = x + 0.5;
x *= 0.5; соответствует x =

x * 0.5;

a %= 3; соответствует a = a % 3;
a <<= 2; соответствует a = a << 2;

и т.п.


©Павловская Т.А. (НИУ ИТМО)Сложное присваивание в C#x += 0.5; 		соответствует 	x = x + 0.5;x *= 0.5;

Слайд 49©Павловская Т.А. (НИУ ИТМО)
Консольный ввод-вывод

©Павловская Т.А. (НИУ ИТМО)Консольный ввод-вывод

Слайд 50©Павловская Т.А. (НИУ ИТМО)
Приложение: консольное или Windows?
class A
{
public

static void Main()
{
System.Windows.Forms.MessageBox.Show("Hello!");

}
}

// Необходимо добавить ссылку на System.Windows.Forms
// (Add Reference…)
©Павловская Т.А. (НИУ ИТМО)Приложение: консольное или Windows?class A{  public static void Main()  {

Слайд 51©Павловская Т.А. (НИУ ИТМО)
using System;
namespace A
{ class Class1

{ static void Main()
{

int i = 3;
double y = 4.12;
decimal d = 600m;
string s = "Вася";





}
}
}

Вывод на консоль – 1/4

Результат работы программы:
3 y = 4,12
d = 600 s = Вася

Console.Write( i );
Console.WriteLine( " y = " + y);
Console.WriteLine("d = " + d + " s = " + s );

©Павловская Т.А. (НИУ ИТМО)using System;namespace A{  class Class1  {  static void Main()

Слайд 52©Павловская Т.А. (НИУ ИТМО)
using System;
namespace A
{ class Class1

{ static void Main()
{

int i = 3;
double y = 4.12;
decimal d = 600m;
string s = "Вася";




}
}
}

Вывод на консоль – 2/4

Результат работы программы:
3 y = 4,12
d = 600 s = Вася

Console.Write( i );
Console.Write( " y = {0} \nd = {1}", y, d );
Console.WriteLine( " s = " + s );

©Павловская Т.А. (НИУ ИТМО)using System;namespace A{  class Class1  {  static void Main()

Слайд 53©Павловская Т.А. (НИУ ИТМО)
using System;
namespace A
{ class Class1

{ static void Main()
{

int i = 3;
double y = 4.12;
decimal d = 600m;
string s = "Вася";




}
}
}

Вывод на консоль – 3/4

Результат работы программы:
3 y = 4,12
d = 600 s = Вася

Console.Write( i );
Console.Write( " y = {0:F2} \nd = {1:D3}", y, d );
Console.WriteLine( " s = " + s );

Формат

Формат

©Павловская Т.А. (НИУ ИТМО)using System;namespace A{  class Class1  {  static void Main()

Слайд 54©Павловская Т.А. (НИУ ИТМО)
using System;
namespace A
{ class Class1

{ static void Main()
{

int i = 3;
double y = 4.12;
decimal d = 600m;
string s = "Вася";
Console.Write( " y = {0,5:0.# ' руб. '} \n", y );

}
}
}

Вывод на консоль – 4/4

y = 4,1 руб.

5 позиций под значение

пользовательский формат

©Павловская Т.А. (НИУ ИТМО)using System;namespace A{  class Class1  {  static void Main()

Слайд 55Формат местозаполнителя
{ номер [ , длина ] [ : формат

] }

номер – номер элемента в списке вывода (может

идти не по порядку и повторяться)
длина – количество позиций под значение. Если длина отрицательная, значение выравнивается по левому краю, иначе - по правому.
формат – строка формата для выводимого значения (описатели формата на следующем слайде)

Примеры:
{0,-6:F4}
{2:X4}
{1:hh}

©Павловская Т.А. (НИУ ИТМО)

Формат местозаполнителя		{ номер [ , длина ] [ : формат ] } номер – номер элемента в

Слайд 56Описатели формата – 1/3
©Павловская Т.А. (НИУ ИТМО)

Описатели формата – 1/3©Павловская Т.А. (НИУ ИТМО)

Слайд 57Описатели формата – 2/3
©Павловская Т.А. (НИУ ИТМО)

Описатели формата – 2/3©Павловская Т.А. (НИУ ИТМО)

Слайд 58Описатели формата – 3/3
©Павловская Т.А. (НИУ ИТМО)

Описатели формата – 3/3©Павловская Т.А. (НИУ ИТМО)

Слайд 59©Павловская Т.А. (НИУ ИТМО)
using System;
namespace A
{ class Class1

{ static void Main()
{

string s = Console.ReadLine(); // ввод строки

char c = (char)Console.Read(); // ввод символа
Console.ReadLine();

string buf; // буфер для ввода чисел
buf = Console.ReadLine();
int i = Convert.ToInt32( buf ); // преобразование в целое

buf = Console.ReadLine();
double x = Convert.ToDouble( buf ); // преобразование в вещ.

buf = Console.ReadLine();
double y = double.Parse( buf ); // преобразование в вещ.
}
}
}

Ввод с консоли – 1/2

©Павловская Т.А. (НИУ ИТМО)using System;namespace A{  class Class1  {  static void Main()

Слайд 60©Павловская Т.А. (НИУ ИТМО)
using System;
namespace A
{ class Class1

{ static void Main()
{

string s = Console.ReadLine(); // ввод строки

char c = (char)Console.Read(); // ввод символа
Console.ReadLine();

int i = Convert.ToInt32( Console.ReadLine() );

double x = Convert.ToDouble( Console.ReadLine() );

double y = double.Parse( Console.ReadLine() );
}
}
}

Ввод с консоли – 2/2

©Павловская Т.А. (НИУ ИТМО)using System;namespace A{  class Class1  {  static void Main()

Слайд 61©Павловская Т.А. (НИУ ИТМО)
using System;
namespace CA1
{ class Class1

{ static void Main()
{
Console.WriteLine(

"Введите температуру по Фаренгейту" );
double fahr = Convert.ToDouble( Console.ReadLine() );

double cels =5.0 / 9 * (fahr - 32);

Console.WriteLine( "По Фаренгейту: {0} в градусах Цельсия: {1}",
fahr, cels );
}
}
}

Пример: перевод температуры из F в С

©Павловская Т.А. (НИУ ИТМО)using System;namespace CA1{  class Class1  {  static void Main()

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика