Лекция № 2 «Переменные и...

22
Курс «Программирование» Лекция № 2 «Переменные и графика» заведующий кафедрой, доктор физико-математических наук Роман Вячеславович Шамин shamin.ru, lector.ru, calcs.ru МИРЭА – Российский технологический университет кафедра информатики Института комплексной безопасности и специального приборостроения Москва, 2020 г. Лекции по программированию, Р.В. Шамин: shamin.ru, lector.ru, calcs.ru

Upload: others

Post on 30-Aug-2020

10 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Лекция № 2 «Переменные и графика»shamin.ru/zip/programming/shamin_lection02.pdf · 2020. 3. 14. · Курс «Программирование» Лекция

Курс «Программирование»

Лекция № 2

«Переменные и графика»

заведующий кафедрой, доктор физико-математических наук

Роман Вячеславович Шамин

shamin.ru, lector.ru, calcs.ru

МИРЭА – Российский технологический университеткафедра информатики Института комплексной безопасности и специального приборостроения

Москва, 2020 г.

Лекции по программированию, Р.В. Шамин: shamin.ru, lector.ru, calcs.ru

Page 2: Лекция № 2 «Переменные и графика»shamin.ru/zip/programming/shamin_lection02.pdf · 2020. 3. 14. · Курс «Программирование» Лекция

Структура программы на C#

Лекции по программированию, Р.В. Шамин: shamin.ru, lector.ru, calcs.ru

Рассмотрим код нашей программы Hello.

Текст программы начинается с директивusing, которые показывают какиепространства имен (можно понимать какбиблиотеки) будет использовать нашапрограмма.

Жирным выделяются те имена, которыереально используются.

Page 3: Лекция № 2 «Переменные и графика»shamin.ru/zip/programming/shamin_lection02.pdf · 2020. 3. 14. · Курс «Программирование» Лекция

Структура программы на C#

Лекции по программированию, Р.В. Шамин: shamin.ru, lector.ru, calcs.ru

Рассмотрим код нашей программы Hello.

В строке 16 мы указываемпространство имен нашейпрограммы, котороесовпадает с именем проекта.

В строке 21 мы наследуемкласс MainWindow от классаWindow.

Строки 23-26 содержатконструктор класса.

Page 4: Лекция № 2 «Переменные и графика»shamin.ru/zip/programming/shamin_lection02.pdf · 2020. 3. 14. · Курс «Программирование» Лекция

Структура программы на C#

Лекции по программированию, Р.В. Шамин: shamin.ru, lector.ru, calcs.ru

Рассмотрим код нашей программы Hello.

Строки 28-37 содержат код методов, которые обрабатывают события, связанные снажатием кнопок.

Page 5: Лекция № 2 «Переменные и графика»shamin.ru/zip/programming/shamin_lection02.pdf · 2020. 3. 14. · Курс «Программирование» Лекция

Переменные C#

Лекции по программированию, Р.В. Шамин: shamin.ru, lector.ru, calcs.ru

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

Во-первых, каждая инструкция в программе завершается точкой с запятой. Во-вторых,язык C# является регистрозависимым, поэтому имена переменных: abc, Abc, ABC – это всеразные имена. В-третьих, комментарии бывают одно строчными, которые начинаютсясимволами // при этом вся дальнейшая строка рассматривается как комментарий.Многострочный комментарий начинается с /* а заканчивается */.

Page 6: Лекция № 2 «Переменные и графика»shamin.ru/zip/programming/shamin_lection02.pdf · 2020. 3. 14. · Курс «Программирование» Лекция

Типы переменных C#

Лекции по программированию, Р.В. Шамин: shamin.ru, lector.ru, calcs.ru

Рассмотрим наиболее распространенные типы переменных в C#.

int: целочисленный тип, переменная этого типа может хранить целое число в диапазонеот -2147483648 до 2147483647;long: тоже целочисленный тип, но диапазон от –9223372036854775808 до9223372036854775807;

double: вещественный тип с диапазоном порядка ±10324;

char: один символ;string: строка символов;

bool: логический тип, может принимать только значения true или false;

object: абстрактный тип, который может принимать значения любых типов.

Page 7: Лекция № 2 «Переменные и графика»shamin.ru/zip/programming/shamin_lection02.pdf · 2020. 3. 14. · Курс «Программирование» Лекция

Арифметические переменные C#

Лекции по программированию, Р.В. Шамин: shamin.ru, lector.ru, calcs.ru

С переменными можно выполнять различные операции. С переменными целого типаможно увеличивать и уменьшать на единицу следующим образом:

Можно использовать следующие сокращения:

Page 8: Лекция № 2 «Переменные и графика»shamin.ru/zip/programming/shamin_lection02.pdf · 2020. 3. 14. · Курс «Программирование» Лекция

Преобразование типов

Лекции по программированию, Р.В. Шамин: shamin.ru, lector.ru, calcs.ru

Довольно часто возникает необходимость приводить один тип в другой. Например,приведение целого типа к вещественному:

Такое приведение возможно, поскольку при присвоении в строке 3 не происходит потериинформации. В тоже время попытка присвоить целочисленной переменнойвещественный тип вызовет ошибку:

Page 9: Лекция № 2 «Переменные и графика»shamin.ru/zip/programming/shamin_lection02.pdf · 2020. 3. 14. · Курс «Программирование» Лекция

Преобразование типов

Лекции по программированию, Р.В. Шамин: shamin.ru, lector.ru, calcs.ru

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

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

Page 10: Лекция № 2 «Переменные и графика»shamin.ru/zip/programming/shamin_lection02.pdf · 2020. 3. 14. · Курс «Программирование» Лекция

Преобразование типов

Лекции по программированию, Р.В. Шамин: shamin.ru, lector.ru, calcs.ru

Переменную любого типа можно привести к текстовому виду с помощью методаToString(), который есть у каждого класса. Вот как это работает:

Page 11: Лекция № 2 «Переменные и графика»shamin.ru/zip/programming/shamin_lection02.pdf · 2020. 3. 14. · Курс «Программирование» Лекция

Преобразование типов

Лекции по программированию, Р.В. Шамин: shamin.ru, lector.ru, calcs.ru

Для того, чтобы преобразовать строку в числовой тип нужно воспользоваться методомParse(), который есть у типа int и double:

Заметим, что если строка не будет содержать числа, то возникнет ошибка. Также ошибкаможет возникнуть, если при преобразовании вещественного типа разделитель дробнойчасти будет не совпадать с указанным в настройках Windows. Обычно в настройкахустановлено, что разделителем дробной части является запятая.

Page 12: Лекция № 2 «Переменные и графика»shamin.ru/zip/programming/shamin_lection02.pdf · 2020. 3. 14. · Курс «Программирование» Лекция

Условный оператор и оператор цикла

Лекции по программированию, Р.В. Шамин: shamin.ru, lector.ru, calcs.ru

Для любой программы нужны условные операторы и операторы цикла.Условным оператором называется оператор, который выполняет блок кода привыполнении заданного условия. Основным условным оператором в языке C# являютсяоператоры if() и if() – else.

Операторы if() и if() – else действуют по схеме:

Page 13: Лекция № 2 «Переменные и графика»shamin.ru/zip/programming/shamin_lection02.pdf · 2020. 3. 14. · Курс «Программирование» Лекция

Условный оператор и оператор цикла

Лекции по программированию, Р.В. Шамин: shamin.ru, lector.ru, calcs.ru

Если мы хотим сравнить два значения переменных, то для этого нужно использоватьоператор ==.

Page 14: Лекция № 2 «Переменные и графика»shamin.ru/zip/programming/shamin_lection02.pdf · 2020. 3. 14. · Курс «Программирование» Лекция

Условный оператор и оператор цикла

Лекции по программированию, Р.В. Шамин: shamin.ru, lector.ru, calcs.ru

Если мы хотим в одном операторе комбинировать несколько условий, то для этого нампонадобятся логические операторы:

! – логическое НЕ;&& – логическое И;|| – логическое ИЛИ.

Page 15: Лекция № 2 «Переменные и графика»shamin.ru/zip/programming/shamin_lection02.pdf · 2020. 3. 14. · Курс «Программирование» Лекция

Условный оператор и оператор цикла

Лекции по программированию, Р.В. Шамин: shamin.ru, lector.ru, calcs.ru

Операторы цикла позволяют повторять действия много раз. Основным оператором циклаявляется оператор for(), который определяется следующим образом:

Выполняется этот оператор так: сначала выполняется выражение [инициализация] – этовыражение выполняется только один раз. Далее проверяется <условие>. Если это условиеверное, то выполняется блок кода, в противном случае цикл завершается. Послевыполнения блока кода выполняется [изменение], после этого проверяется <условие> ивсе повторяется.

Page 16: Лекция № 2 «Переменные и графика»shamin.ru/zip/programming/shamin_lection02.pdf · 2020. 3. 14. · Курс «Программирование» Лекция

Условный оператор и оператор цикла

Лекции по программированию, Р.В. Шамин: shamin.ru, lector.ru, calcs.ru

Теперь приведем пример цикла, который найдет сумму чисел от 1 до 100:

Page 17: Лекция № 2 «Переменные и графика»shamin.ru/zip/programming/shamin_lection02.pdf · 2020. 3. 14. · Курс «Программирование» Лекция

Условный оператор и оператор цикла

Лекции по программированию, Р.В. Шамин: shamin.ru, lector.ru, calcs.ru

Есть и более простой цикл while(), который действует по следующей схеме:

Сначала проверяется <условие>, если оно верное, то выполняетсяблок кода, после чего снова проверяется <условие>. Как толькоусловие не выполнится, то цикл завершится. Вот пример такогоцикла:

Page 18: Лекция № 2 «Переменные и графика»shamin.ru/zip/programming/shamin_lection02.pdf · 2020. 3. 14. · Курс «Программирование» Лекция

Пример графики

Лекции по программированию, Р.В. Шамин: shamin.ru, lector.ru, calcs.ru

Page 19: Лекция № 2 «Переменные и графика»shamin.ru/zip/programming/shamin_lection02.pdf · 2020. 3. 14. · Курс «Программирование» Лекция

Пример графики

Лекции по программированию, Р.В. Шамин: shamin.ru, lector.ru, calcs.ru

Page 20: Лекция № 2 «Переменные и графика»shamin.ru/zip/programming/shamin_lection02.pdf · 2020. 3. 14. · Курс «Программирование» Лекция

Пример графики

Лекции по программированию, Р.В. Шамин: shamin.ru, lector.ru, calcs.ru

Page 21: Лекция № 2 «Переменные и графика»shamin.ru/zip/programming/shamin_lection02.pdf · 2020. 3. 14. · Курс «Программирование» Лекция

Пример графики

Лекции по программированию, Р.В. Шамин: shamin.ru, lector.ru, calcs.ru

Page 22: Лекция № 2 «Переменные и графика»shamin.ru/zip/programming/shamin_lection02.pdf · 2020. 3. 14. · Курс «Программирование» Лекция

Пример графики

Лекции по программированию, Р.В. Шамин: shamin.ru, lector.ru, calcs.ru