Презентация на тему: Лекция №1

Лекция №1
C#
C# Список ключевых слов в C# 7.3
C#
C#
Переменные и константы
C# Типы данных
C#
C#
C# Ссылочные типы
C# Упаковка/Распаковка типов значений
C#
C#
C#
C#
C#
C#
C#
C# Литералы
C# Литералы
C#
Пример использования литералов
C#
C# Пример использования условного оператора
C#
C#
C# Пример использования условного оператора
C#
C#
C#
Цикл While
Пример цикла While
Еще While
Цикл Do-While
Пример цикла Do-While
Оператор switch
Как переписать Switch-case через if
Оператор Switch
Switch break
Тернарный оператор (краткий if)
Практическое задание
Блок-схема алгоритма
Практическое задание №2
Блок схема алгоритма
Попробовать дома
1/45
Средняя оценка: 5.0/5 (всего оценок: 62)
Код скопирован в буфер обмена
Скачать (786 Кб)
1

Первый слайд презентации: Лекция №1

C# Базовые конструкции языка

Изображение слайда
2

Слайд 2: C#

Ключевые слова C# Основу любого языка программирования составляют его ключевые слова, поскольку они определяют средства, встроенные в этот язык. В C# определены два общих типа ключевых слов: зарезервированные и контекстные. Зарезервированные ключевые слова нельзя использовать в именах переменных, классов или методов. Их можно использовать только в качестве ключевых слов. Именно поэтому они и называются зарезервированными. Их иногда еще называют зарезервированными словами, или зарезервированными идентификаторами. В настоящее время в версии 8. 0 языка С# определены следующие ключевые слова:

Изображение слайда
3

Слайд 3: C# Список ключевых слов в C# 7.3

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 using static virtual void volatile while

Изображение слайда
4

Слайд 4: C#

Кроме того, в версии C# 8.0 определены 18 контекстных ключевых слов, которые приобретают особое значение в определенном контексте. В таком контексте они выполняют роль ключевых слов, а вне его они могут использоваться в именах других элементов программы, например в именах переменных. Следовательно, контекстные ключевые слова формально не являются зарезервированными. Но, как правило, их следует считать зарезервированными, избегая их применения в любых других целях. Ведь применение контекстного ключевого слова в качестве имени какого-нибудь другого элемента программы может привести к путанице, и поэтому считается многими программистами плохой практикой. Контекстные ключевые слова приведены в таблице ниже. add alias ascending async await by descending dynamic equals from get global group into join let nameof on orderby partial ( тип) partial ( метод) remove select set value var when ( условие фильтра) where ( ограничение универсального типа) where ( предложение запроса) yield

Изображение слайда
5

Слайд 5: C#

Идентификаторы В C# идентификатор представляет собой имя, присваиваемое методу, переменной или любому другому определяемому пользователем элементу программы. Идентификаторы могут состоять из одного или нескольких символов. Имена переменных могут начинаться с любой буквы алфавита или знака подчеркивания. Далее может следовать буква, цифра или знак подчеркивания. С помощью знака подчеркивания можно повысить удобочитаемость имени переменной, как, например, line_count. Но идентификаторы, содержащие два знака подчеркивания подряд, например, max__value, зарезервированы для применения в компиляторе. Прописные и строчные буквы в C# различаются. Так, например myvar и MyVar — это разные имена переменных. Ниже приведены некоторые примеры допустимых идентификаторов. Помните, что идентификатор не может начинаться с цифры. Например, 12х — недействительный идентификатор. Хорошая практика программирования требует выбирать идентификаторы, отражающие назначение или применение именуемых элементов.

Изображение слайда
6

Слайд 6: Переменные и константы

Переменная — это именованная область памяти, для которой может быть установлено значение. Константы — это постоянные значения, которые известны во время компиляции и не изменяются во время выполнения программы. Константы должны объявляться с модификатором  const.

Изображение слайда
7

Слайд 7: C# Типы данных

Система типов C# включает в себя следующие категории: Типы значений Ссылочные типы Типы указателей Переменные с типом значения содержат данные. Переменные ссылочного типа хранят ссылки на фактические данные. Экземпляры ссылочных типов также называются объектами. Типы указателей можно использовать только в  небезопасном  режиме. Типы значений можно преобразовывать в ссылочные типы и обратно с помощью  упаковки-преобразования и распаковки-преобразования. Преобразование из ссылочного типа в тип значений возможно только для упакованного типа значения.

Изображение слайда
8

Слайд 8: C#

Типы значений в C# В C# имеются две общие категории встроенных типов данных: типы значений и ссылочные типы. Они отличаются по содержимому переменной. Если переменная относится к типу значения, то она содержит само значение, например 3,1416 или 212. А если переменная относится к ссылочному типу, то она содержит ссылку на значение. В основу языка C# положены 13 типов значений, перечисленных в таблице на следующем слайде. Все они называются простыми типами, поскольку состоят из единственного значения. (Иными словами, они не состоят из двух или более значений.) Они составляют основу системы типов С#, предоставляя простейшие, низкоуровневые элементы данных, которыми можно оперировать в программе. Простые типы данных иногда еще называют примитивными.

Изображение слайда
9

Слайд 9: C#

Изображение слайда
10

Слайд 10: C# Ссылочные типы

В переменных ссылочных типов хранятся ссылки на их данные (объекты), а переменные типа значений содержат свои данные непосредственно. Две переменные ссылочного типа могут ссылаться на один и тот же объект, поэтому операции над одной переменной могут затрагивать объект, на который ссылается другая переменная. Каждая переменная типа значения имеет собственную копию данных, и операции над одной переменной не могут затрагивать другую (за исключением переменных параметров in, ref и out ; Для объявления ссылочных типов используются следующие ключевые слова: class interface delegate Встроенные ссылочные типы : Dynamic Object String

Изображение слайда
11

Слайд 11: C# Упаковка/Распаковка типов значений

int i = 123; // a value type object o = i; // boxing int j = ( int )o; // unboxing

Изображение слайда
12

Слайд 12: C#

Целочисленные типы В C# определены девять целочисленных типов: char, byte, sbyte, short, ushort, int, uint, long и ulong. Но тип char применяется, главным образом, для представления символов и поэтому рассматривается далее.

Изображение слайда
13

Слайд 13: C#

Типы для представления чисел с плавающей точкой Типы с плавающей точкой позволяют представлять числа с дробной частью. В С# имеются две разновидности типов данных с плавающей точкой: float и double. Они представляют числовые значения с одинарной и двойной точностью соответственно. Так, разрядность типа float составляет 32 бита, что приближенно соответствует диапазону представления чисел от 5Е-45 до 3,4Е+38. А разрядность типа double составляет 64 бита, что приближенно соответствует диапазону представления чисел от 5Е-324 до 1,7Е+308. В программировании на С# чаще применяется тип double, в частности, потому, что во многих математических функциях из библиотеки классов С#, которая одновременно является библиотекой классов для среды.NET Framework, используются числовые значения типа double. Например, метод Sqrt (), определенный в библиотеке классов System.Math, возвращает значение типа double, которое представляет собой квадратный корень из аргумента типа double, передаваемого данному методу. В приведенном ниже примере программы метод Sqrt () используется для вычисления радиусаокружности по площади круга.

Изображение слайда
14

Слайд 14: C#

В приведенном выше примере программы следует обратить внимание на вызов метода Sqrt (). Как упоминалось выше, метод Sqrt () относится к классу Math, поэтому в его Вызове имя Math предшествует имени самого метода. Аналогичным образом имя класса Console предшествует имени метода WriteLine () в его вызове. Такой синтаксис вызова характерен для статических методов.

Изображение слайда
15

Слайд 15: C#

Десятичный тип данных Вероятно, самым интересным среди всех числовых типов данных в C# является тип decimal, который предназначен для применения в финансовых расчетах. Этот тип имеет разрядность 128 бит для представления числовых значений в пределах от 1Е-28 до 7,9Е+28. Известно, что для обычных арифметических вычислений с плавающей точкой характерны ошибки округления десятичных значений. Эти ошибки исключаются при использовании типа decimal, который позволяет представить числа с точностью до 28 (а иногда и 29) десятичных разрядов. Благодаря тому что этот тип данных способен представлять десятичные значения без ошибок округления, он особенно удобен для расчетов, связанных с финансами. Ниже приведен пример программы, в которой тип decimal используется в конкретном финансовом расчете. В этой программе цена со скидкой рассчитывается на основании исходной цены и скидки в процентах.

Изображение слайда
16

Слайд 16: C#

З начения констант типа decimal в приведенном выше примере программы указываются с суффиксом m. Дело в том, что без суффикса m эти значения интерпретировались бы как стандартные константы с плавающей точкой, которые несовместимы с типом данных decimal. Тем не менее переменной типа decimal можно присвоить целое значение без суффикса m, например 10.

Изображение слайда
17

Слайд 17: C#

Символы В C# символы представлены не 8-разрядным кодом, как во многих других языках программирования, например C++, а 16-разрядным кодом, который называется уникодом ( Unicode ). В уникоде набор символов представлен настолько широко, что он охватывает символы практически из всех естественных языков на свете. Если для многих естественных языков, в том числе английского, французского и немецкого, характерны относительно небольшие алфавиты, то в ряде других языков, например китайском, употребляются довольно обширные наборы символов, которые нельзя представить 8-разрядным кодом. Для преодоления этого ограничения в C# определен тип char, представляющий 16-разрядные значения без знака в пределах от 0 до 65 535. При этом стандартный набор символов в 8-разрядном коде ASCII является подмножеством уникода в пределах от 0 до 127. Следовательно, символы в коде ASCII по-прежнему остаются действительными в С#.

Изображение слайда
18

Слайд 18: C#

Литералы В C# литералами называются постоянные значения, представленные в удобной для восприятия форме. Например, число 100 является литералом. В С# литералы могут быть любого простого типа. Представление каждого литерала зависит от конкретного типа. Как пояснялось ранее, символьные литералы заключаются в одинарные кавычки. Например, 'а' и '%' являются символьными литералами. Целочисленные литералы указываются в виде чисел без дробной части. Например, 10 и -100 — это целочисленные литералы. Для обозначения литералов с плавающей точкой требуется указывать десятичную точку и дробную часть числа. Например, 11.123 — это литерал с плавающей точкой.

Изображение слайда
19

Слайд 19: C# Литералы

Во-первых, у целочисленных литералов должен быть самый мелкий целочисленный тип, которым они могут быть представлены, начиная с типа int. Таким образом, у целочисленных литералов может быть один из следующих типов: int, uint, long или ulong в зависимости от значения литерала. И во-вторых, литералы с плавающей точкой относятся к типу double. Если вас не устраивает используемый по умолчанию тип литерала, вы можете явно указать другой его тип с помощью суффикса. Так, для указания типа long к литералу присоединяется суффикс l или L. Например, 12 — это литерал типа int, a 12L — литерал типа long. Для указания целочисленного типа без знака к литералу присоединяется суффикс u или U. Следовательно, 100 — это литерал типа int, a 100U — литерал типа uint.

Изображение слайда
20

Слайд 20: C# Литералы

А для указания длинного целочисленного типа без знака к литералу присоединяется суффикс ul или UL. Например, 984375UL — это литерал типа ulong. Кроме того, для указания типа float к литералу присоединяется суффикс F или f. Например, 10.19F — это литерал типа float. Можете даже указать тип double, присоединив к литералу суффикс d или D, хотя это излишне. Ведь, как упоминалось выше, по умолчанию литералы с плавающей точкой относятся к типу double. И наконец, для указания типа decimal к литералу присоединяется суффикс m или М. Например, 9.95М — это десятичный литерал типа decimal.

Изображение слайда
21

Слайд 21: C#

Строковые литералы В С# поддерживается еще один тип литералов — строковый. Строковый литерал представляет собой набор символов, заключенных в двойные кавычки. Например следующий фрагмент кода:"это тест" представляет собой текстовую строку. Помимо обычных символов, строковый литерал может содержать одну или несколько управляющих последовательностей символов, о которых речь шла выше. Рассмотрим для примера программу, в которой используются управляющие последовательности \n и \ t.

Изображение слайда
22

Слайд 22: Пример использования литералов

Изображение слайда
23

Слайд 23: C#

Управляющий оператор if Выполнение программы внутри метода (т.е. в его теле) происходит последовательно от одного оператора к другому, т.е. по цепочке сверху вниз. Этот порядок выполнения программы можно изменить с помощью различных управляющих операторов, поддерживаемых в С#. С помощью условного оператора if в C# можно организовать выборочное выполнение части программы. if (условие) оператор; else оператор; В C# определен полный набор операторов отношения, которые можно использовать в условных выражениях. Ниже перечислены все эти операторы и их обозначения.

Изображение слайда
24

Слайд 24: C# Пример использования условного оператора

Изображение слайда
25

Слайд 25: C#

Использование кодовых блоков Еще одним важным элементом C# является кодовый блок, который представляет собой группу операторов. Для его организации достаточно расположить операторы между открывающей и закрывающей фигурными скобками. В частности, кодовый блок может использоваться в if и for, если необходимо выполнить более одной команды. Рассмотрим следующий оператор if. if(w < h) { v = w * h; w = 0; } Если в данном примере кода значение переменной w меньше значения переменной h, то оба оператора выполняются в кодовом блоке. Они образуют внутри кодового блока единый логический элемент, причем один не может выполняться без другого. Таким образом, если требуется логически связать два (или более) оператора, то для этой цели следует создать кодовый блок. С помощью кодовых блоков можно более эффективно и ясно реализовать многие алгоритмы.

Изображение слайда
26

Слайд 26: C#

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

Изображение слайда
27

Слайд 27: C# Пример использования условного оператора

Внимание! Следите за читаемостью кода!

Изображение слайда
28

Слайд 28: C#

Оператор цикла Для повторного выполнения последовательности операций в программе можно организовать цикл. Язык C# отличается большим разнообразием циклических конструкций. Здесь будет рассмотрен оператор цикла for. Как и у оператора if, у оператора for в C# имеются аналоги в С, C++ и Java. Ниже приведена простейшая форма этого оператора. for ( инициализация; условие; итерация) оператор; В самой общей форме в части инициализация данного оператора задается начальное значение переменной управления циклом. Часть условие представляет собой булево выражение, проверяющее значение переменной управления циклом. Если результат проверки истинен, то цикл продолжается. Если же он ложен, то цикл завершается. В части итерация определяется порядок изменения переменной управления циклом на каждом шаге цикла, когда он повторяется. Ниже приведен пример краткой программы, демонстрирующей применение оператора цикла for.

Изображение слайда
29

Слайд 29: C#

count = count + 1; count++ В C# имеется также оператор декремента, обозначаемый двумя дефисами (--). Этот оператор уменьшает значение операнда на 1.

Изображение слайда
30

Слайд 30: C#

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

Изображение слайда
31

Слайд 31: Цикл While

Оператор while выполняет оператор или блок операторов, пока определенное логическое выражение равно значению true. Так как это выражение оценивается перед каждым выполнением цикла, цикл while выполняется ноль или несколько раз. Это отличает его от цикла do, который выполняется от одного до нескольких раз. В любой точке блока операторов while можно разорвать цикл с помощью оператора break. Можно перейти непосредственно к оценке выражения while, воспользовавшись оператором continue. Если значение выражения оценивается как true, выполнение продолжается с первого оператора цикла. В противном случае выполнение продолжается с первого оператора после цикла. Также можно выйти из цикла while с помощью операторов goto, return или throw.

Изображение слайда
32

Слайд 32: Пример цикла While

В результате бесконечный цикл

Изображение слайда
33

Слайд 33: Еще While

Изображение слайда
34

Слайд 34: Цикл Do-While

Оператор do выполняет оператор или блок операторов, пока определенное логическое выражение равно значению true. Так как это выражение оценивается после каждого выполнения цикла, цикл do-while выполняется один или несколько раз. Это отличает его от цикла while, который выполняется от нуля до нескольких раз. В любой точке блока операторов do можно разорвать цикл с помощью оператора break. Можно перейти непосредственно к оценке выражения while, воспользовавшись оператором continue. Если значение выражения оценивается как true, выполнение продолжается с первого оператора цикла. В противном случае выполнение продолжается с первого оператора после цикла. Также можно выйти из цикла do-while с помощью операторов goto, return или throw.

Изображение слайда
35

Слайд 35: Пример цикла Do-While

Изображение слайда
36

Слайд 36: Оператор switch

switch — это оператор выбора, который выбирает для выполнения один раздел switch из списка кандидатов, сравнивая их с выражением соответствия.

Изображение слайда
37

Слайд 37: Как переписать Switch-case через if

Изображение слайда
38

Слайд 38: Оператор Switch

В одном выражении case не может быть более одного выражения. Для сокращения дублирования кода операторы case записываются друг за другом, если требуется объединение выражений по ИЛИ

Изображение слайда
39

Слайд 39: Switch break

После выполнения одной секции case невозможно перейти к выполнению следующей секции, поэтому раздел case нужно завершать break В связи с этим приведенный ниже код создает ошибку компилятора CS0163: "Управление не может передаваться вниз от одной метки case ( ) к другой".

Изображение слайда
40

Слайд 40: Тернарный оператор (краткий if)

Условный оператор ?:, известный как тернарный условный оператор, вычисляет логическое выражение и возвращает результат вычисления одного из двух выражений, в зависимости от того, чему равно значение логического выражения: true или false. int i = true ? 10 : 1;

Изображение слайда
41

Слайд 41: Практическое задание

Написать программу, которая проверяет принадлежит ли число n ряду Фибоначчи. 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144,... Решение.  Словесный алгоритм: Ввести число n. Установить значение первых трех чисел Фибоначчи: 1, 1, 2 (сумма двух предыдущих чисел). Пока введенное число n больше очередного числа Фибоначчи, взять два последних числа Фибоначчи и получить из них новое число Фибоначчи. Если число Фибоначчи равно введенному n или было введено число n = 1, значит, что было введено число Фибоначчи, в противном случае — введенное число не является числом Фибоначчи.

Изображение слайда
42

Слайд 42: Блок-схема алгоритма

Изображение слайда
43

Слайд 43: Практическое задание №2

Вычислить сумму знакопеременного ряда с заданной точностью x [0; 1] Переменные S — частичная сумма ряда (стартовое значение равно 0); ε — точность вычисления; i — номер очередного слагаемого; m — значение очередного слагаемого; p — числитель очередного слагаемого.

Изображение слайда
44

Слайд 44: Блок схема алгоритма

Изображение слайда
45

Последний слайд презентации: Лекция №1: Попробовать дома

Найти сумму ряда с заданной точностью ответ = 16/3 (примерно … наверное…)

Изображение слайда