Сахалинский филиал Дальневосточного федерального университета Кафедра прикладной информатики и математики Сахалинский научный центр Институт морской геологии и геофизики ДВО РАН Профессиональное программирование на языке C# Лекция №2 «Правый поворот» Доктор физ.-мат. наук, профессор Р.В. Шамин План сегодняшней лекции: Понятия переменных в C# Простейшее использование функций Методы рисования в Windows средствами GDI+ .NET Понятия о событиях в Windows Мультипликация методами C# Что мы с вами сегодня создадим? Улыбку Чеширского кота Машинку, катающуюся по экрану … Понятие переменных в C#: Переменная – это основное понятие в программировании! Джон фон Нейман – автор концепции современного программирования: данные отделены от исполняемых команд Переменная – это ячейка памяти для хранения данных, которые могут быть модифицированы по ходу выполнения программы Присвоение: a = 120 основная операция! C# - строго типизированный язык программирования! перед использованием переменной нужно: • объявить переменную • указать ее тип В C# все переменные являются объектами, но об этом потом… Типы переменных: Скалярные типы переменных: Составные типы переменных: числовые символьные логические массивы классы перечисления Помним, что каждая переменная – это объект класса и ссылка! Числовые: • целый тип: int / long / uint • дробные: float / double Символьные: • символ: char • строка: string / StringBuilder Логические: • булев тип: bool Пустой тип: • void Объявление переменных: int a; long b = 120; double c = 3.1415; float d = 2*2; char e = ‘A’; string s = “Мама мыла раму”; string p = @”http://shamin.ru/”; bool r = true; bool q = false; Понятие функции: Функция (процедура, подпрограмма) – это отдельный код, который выполняется только при вызове его из другого программного кода. Код функции – замкнутый код, независящий от других участков программы. Функция имеет входные параметры и возвращаемое значение. Определение функции: int Summa(int a, int b) { int c; c = a + b; return c; } void Print(string name) { string s = “Привет, “ + Name; } Console.Writeln(s); В C# все функции являются членами классов, поэтому эти функции называются методами! Как рисуют под Windows? Рисуют на холсте Canvas (Device Context) – аппаратнонезависимая технология. Линии рисуют перьями (Pen), фигуры закрашивают кистями (Brush), тексты пишут шрифтами (Font). Принципиальный момент! Оконные координаты: Преобразование из классических: 𝑥 ′ = 𝑥 + 𝑊/2 𝑦 ′ = 𝐻/2 − 𝑦 Единица измерения - пиксель Обычно используют относительные координаты – каждый холст принадлежит какому-нибудь окну, а окном в Windows является почти все, что видимо – окна приложений, элементы управления и т.д. Сами окна тоже часто позиционируются относительно родительского окна. Проба пера: Инструменты – методы холста Clear – очищает холст и заливает все одним цветом DrawArc – рисует дугу, часть эллипса DrawEllipse / FillEllipse – рисует эллипс DrawLine – рисует линию DrawLines – рисует ломанную DrawPie / FillPie – рисует сектор эллипса DrawPoligon / FillPoligon – рисует многоугольник DrawRectangle / FillRectangle – рисует прямоугольник DrawString – пишет графический текст Еще один момент: Преобразование координат Удобно рисовать в относительных пропорциях, отображая его в реальности холста. Пусть наш рисунок на листе (-Xm, Xm)x(-Ym, Ym) с центром (0, 0). А холст имеет ширину = W, высоту = H. Код для преобразования: Событийно-управляемая система: Программный код может вызываться явно из другого кода, либо в результате наступления события. События – это клавиатура, мышь, сообщения от операционной системы и так далее. Каждое окно в Windows может обрабатывать различные события. Рассмотрим событие – onPaint. Это событие возникает, когда необходимо перерисовать окно. Вывод: Например, если окно было перекрыто другим окном или рисуется впервые. Рисовать на форме нужно в обработчике события onPaint! Можно вызвать это событие вручную с помощью метода Invalidate() Тогда наш рисунок всегда будет на виду! Почему нужно поворачивать направо? • Компьютеры и программирование – это торжество правой идеи! • Нет ничего лучше свободной конкуренции для прогресса и цивилизации • Правый поворот – это прогресс и цивилизация • Программирование позволяет строить свое индивидуальное будущее! • Будьте творческими и свободными! Помните, что сейчас неминуемая третья волна, поэтому своевременность – это требование любого успеха. Поворот налево – это тупик. Вспомним три шага успеха: Не бойтесь, творите! «Бог ждет от человека творческого акта как ответ человека на творческий акт Бога» Николай Бердяев Очевидно, что смысл человека – в творчестве! Зачем ребенок играет? – он творит! Нет ничего интереснее нового, своего! Творите с целью! Успех = ясность цели + целеустремленность Для настоящего успеха нужно образование и воля, желание успеха. Будьте конкурентоспособнее – сильнее! Имея цель – общайтесь! IP / Labs предлагает: Формирование команд: 1. Научное программирование 2. Веб-программирование 3. Программирование для мобильных устройств Участие в научной работе Института морской геологии и геофизики ДВО РАН: Интересная работа в профессиональном молодежном коллективе из Москвы, Нижнего Новгорода, Новосибирска и Южно-Сахалинска Написание научных статей, выступление на международных конференциях, защита диссертации – возможность обучения / работы заграницей… Наша основная область – это исследования волн-убийц в океане. Основной метод – компьютерное моделирование и вычислительные эксперименты.