Курс по програмиране на c# 2013 - 1. Въведение в...
DESCRIPTION
Занятие №1 на курса по програмиране на C# 2013 провеждан от ДАВИД академия в ПМГ "Никола Обрешков" - Казанлък. Включва темите: - Въведение в компютърното програмиране и C#TRANSCRIPT
2013Copyright © 2013 DAVID Holding Company
Курс по програмиране на C#
Занятие №1Въведение в компютърното
програмиране и C#
Copyright © 2013 DAVID Holding CompanyCopyright © 2013 DAVID Holding Company
Съдържание 1/2
• Въведение в компютърното програмиране• Програмиране на C#• Ключови думи• Коментари• Идентификатори• Типове данни
Copyright © 2013 DAVID Holding CompanyCopyright © 2013 DAVID Holding Company
Съдържание 2/2
• Литерали• Променливи и константи• Стойностни и референтни типове данни• Класове и обекти• Оператори и изрази
Copyright © 2013 DAVID Holding CompanyCopyright © 2013 DAVID Holding Company
Въведение в комп. програмиране• Какво е компютърно програмиране?– Компютърно програмиране– Програмирането като част от софтуерното
инженерство– Езици за програмиране
Copyright © 2013 DAVID Holding CompanyCopyright © 2013 DAVID Holding Company
Въведение в комп. програмиране• Етапи на разработката– Събиране на изискванията за продукта и
формулиране на задание– Планиране и изготвяне на архитектура и
дизайн– Реализация (имплементация)– Изпитване на продукта (тестване) и
отстраняване на грешки– Внедряване и експлоатация– Поддръжка
• Документиране
Copyright © 2013 DAVID Holding CompanyCopyright © 2013 DAVID Holding Company
Програмиране на C#
• Езикът за програмиране C#– Какво е .NET Framework?;– Какво е CLI?;– Какво е CLR?;– Какво е BCL?;– Езикът C#. Защо C#?
Copyright © 2013 DAVID Holding CompanyCopyright © 2013 DAVID Holding Company
Програмиране на C#
• Програма “Hello, world!”– Кратко запознаване с Microsoft Visual Studio– Кратко запознаване с MSDN Library– Въвеждане на програмата– Дисекция на програмата
• Какво означават думичките?• Добро и лошо форматиране на програма• Конвенции за кодиране
Copyright © 2013 DAVID Holding CompanyCopyright © 2013 DAVID Holding Company
Програма “Hello, world!”
using System;
namespace HelloWorld{
class Program{
static void Main(string[] args){
Console.WriteLine("Hello, world!");}
}}
Дефиниция на метод Main
Дефиниция на клас Program
Пространство на имената HelloWorld
ТекстНаименование на клас
Console
Използване пространство на имената System
Извикване на метод WriteLine
Copyright © 2013 DAVID Holding CompanyCopyright © 2013 DAVID Holding Company
Програмиране на C#• Помощни средства– JustCode, ReSharper и др.
• Компилиране на програма• Изпълнение на програма• Откриване, проследяване и отстраняване
на грешки
Copyright © 2013 DAVID Holding CompanyCopyright © 2013 DAVID Holding Company
Програмиране на C#• Програма “Click me!”– Какво е визуално програмиране?– Създаване на потребителски интерфейс– Въвеждане на програмата– Дисекция на програмата
• Какво означават думичките?• Събития и обработка на събития• Манипулиране на потребителския интерфейс
– Възможности за развитие на програмата
Copyright © 2013 DAVID Holding CompanyCopyright © 2013 DAVID Holding Company
Програма “Click me!”
// Демонстрация
Copyright © 2013 DAVID Holding CompanyCopyright © 2013 DAVID Holding Company
Програмиране на C#
• Какво е „потребителски интефейс“?• Видове потребителски интерфейс– Command line– GUI (Graphical User Interface)– WUI (Web User Interface)– Touchscreens– Други
Copyright © 2013 DAVID Holding CompanyCopyright © 2013 DAVID Holding Company
Ключови думи
• Запазени думи със специално значение• Част от самия език за програмиране• Списък в глава “C# Keywords” на “C#
Reference” в MSDN
Copyright © 2013 DAVID Holding CompanyCopyright © 2013 DAVID Holding Company
Коментари
• Части от кода, които компилаторът не взима предвид
• Служат за документиране на кода• Едноредови коментари – започват с “//” и
завършват с края на реда• Многоредови коментари – започват с “/*”
и завършват с “*/”• Машинно четимо документиране на кода
с XML-базирани коментари
Copyright © 2013 DAVID Holding CompanyCopyright © 2013 DAVID Holding Company
Идентификатори
• Какво е „идентификатор“?– Идентификаторът е наименование дадено от
програмиста на определена програмна единица в кода.
Copyright © 2013 DAVID Holding CompanyCopyright © 2013 DAVID Holding Company
Идентификатори
• Правила за идентификаторите:– Трябва да бъдат уникални в дадената област;– Не трябва да съвпадат с ключова дума на
езика, освен ако за префикс не се използва символът „@”;
– Трябва да започват с малка или голяма буква или символа „_“;
– Трябва да съдържат само малки и големи букви, числа и символа „_“;
– Могат да съдържат Unicode символи, ако за префикс се използва със символа „@” или съответните символи са екранирани (escaped).
Copyright © 2013 DAVID Holding CompanyCopyright © 2013 DAVID Holding Company
Конвенции за идентификаторите• Наименованията на идентификаторите се
определят от програмиста.• Свободата в избора на програмиста може
да доведе до нечетим програмен код.• Принципите на доброто кодиране и
конвенциите изискват наименованията да носят смисъла на това, което идентифицират.
• Спазването на конвенциите води до по-четим, по-качествен и по-разбираем програмен код.
Copyright © 2013 DAVID Holding CompanyCopyright © 2013 DAVID Holding Company
Типове данни
• Какво е „тип данни“?– Класификационна система на видовете
данните– Типът данни определя
• Множеството от възможни стойности• Възможните операциите извършвани с данните• Смисъла на данните• Начина на тяхното съхранение
• Характеристики– Наименование– Размер/обем– Стойност по подразбиране
Copyright © 2013 DAVID Holding CompanyCopyright © 2013 DAVID Holding Company
Типове данни
• Примитивни типове данни– Целочислени– Реални с плаваща запетая– Реални с десетична точност– Булеви– Дата/час– Символи– Символни низове
Copyright © 2013 DAVID Holding CompanyCopyright © 2013 DAVID Holding Company
Типове данни
• Изброими типове данни– Дават ефикасен начин за групиране на
изброимо множество от константни стойности– Всяка стойност се задава с нейното име и
приема стойност от целочислен тип
Copyright © 2013 DAVID Holding CompanyCopyright © 2013 DAVID Holding Company
Типове данни
• Изброими типове данни (примери)– Дните от седмицата– Месеците в годината– Състоянията на светофар– Програмите на автоматична пералня– Други
Copyright © 2013 DAVID Holding CompanyCopyright © 2013 DAVID Holding Company
Типове данни
• Структури– Дават възможност за обединяването на
характерни за монолитна логическа единица данни, свойства и функции
– Монолитна в случая се разбира, че промяната на която и да е от данните всъщност представлява друга логическа единица
Copyright © 2013 DAVID Holding CompanyCopyright © 2013 DAVID Holding Company
Типове данни
• Структури (примери)– Точка в двумерното пространство
• Данни: вътрешно представяне на точката в двумерното пространство
• Свойства: X- и Y- координати, ъгъл спрямо оста, разстояние до началото на координатната система, и др.
• Функции: определяне на разстоянието до друга точка, принадлежност към вътрешността на затворен контур и др.
– Цвят• Данни: вътрешно представяне на цвят• Свойства: червена, зелена и синя компонента на
цвета• Функции: смесване на цвета с друг цвят за
получаване на трети
Copyright © 2013 DAVID Holding CompanyCopyright © 2013 DAVID Holding Company
Литерали
• Какво е „литерал“?– Запис в изходния код представляващ
фиксирана стойност от определен тип– Обикновено задаваните от литералите
стойности са от примитивен тип– Езикът C# дава възможност с литерали да се
описват и по-сложни структури
Copyright © 2013 DAVID Holding CompanyCopyright © 2013 DAVID Holding Company
Литерали
• Видове литерали според типа данни– Булев тип– Цели числа– Реални числа– Символи– Символни низове– Нулев литерал (null)
• Екраниране (escaping) на литерали– Kогато литералите съдържат специални
символи– Начини за екраниране на литерали
Copyright © 2013 DAVID Holding CompanyCopyright © 2013 DAVID Holding Company
Променливи и константи
• Какво е „променлива“?– Идентификатор с асоциирана с него стойност,
която може да бъде променяна по време на изпълнение
• Характеристики на променливите– Наименование (напр. courseName)– Тип (напр. string)– Текуща стойност (напр. “Програмиране на
C#”)
• Обявяване на променливи– (тип) (наименование)
• Използване на променливи
Copyright © 2013 DAVID Holding CompanyCopyright © 2013 DAVID Holding Company
Променливи и константи
• Присвояване на стойност на променливи– (променлива) = (израз)
• Инициализация на променливи– Първоначално задаване на стойност на
променливи– Променливите не могат да се използват,
преди да бъдат инициализирани
Copyright © 2013 DAVID Holding CompanyCopyright © 2013 DAVID Holding Company
Променливи и константи
• Какво е „константа“?– Идентификатор с асоциирана с него стойност,
която не може да бъде променяна по време на изпълнение
• Характеристики на константите– Наименование (напр. Pi)– Тип (напр. double)– Стойност (напр. 3.14159265359d)
• Обявяване на константи– const (тип) (наименование) = (константен
израз)
• Използване на константи
Copyright © 2013 DAVID Holding CompanyCopyright © 2013 DAVID Holding Company
Стойностни и референтни типове данни• Същност– Стойностни типове данни
• По-малки по обем• Съхраняват се в “stack” – бърз достъп• Предават се по стойност• Примитивни и изброими типове, както и структури
– Референтни типове данни• По-големи по обем• Съхраняват се в “heap” – бавен достъп• Предават се по референция• Класове
Copyright © 2013 DAVID Holding CompanyCopyright © 2013 DAVID Holding Company
Стойностни и референтни типове данни• Стойности по подразбиране– Числовите типове – нула– Символен тип – символът ‘\0’– Символен низ – null (литерал указващ нулева
позиция в паметта, буквално „нищо“)– Дата/час – 1 януари 1, 00:00:00;– Структури – съответства на структурата,
чиито всички полета имат своите подразбиращи се стойности;
– Класовете – null (литерал указващ нулева позиция в паметта, буквално „нищо“)
Copyright © 2013 DAVID Holding CompanyCopyright © 2013 DAVID Holding Company
Стойностни и референтни типове данни• Нулируеми типове данни– Понякога се налага добавянето на стойността
null към множеството от възможни стойности– Примери:
• Средна аритметична оценка, когато не всички изпити са положени
• Други
– Обявяване на променливи от нулируем тип• Добавяне на символа „?” към наименованието на
типа
Copyright © 2013 DAVID Holding CompanyCopyright © 2013 DAVID Holding Company
Класове и обекти
• Какво е „клас“?– Основа на обектно-ориентираното
програмиране– Подобни на структурите типове данни със
значително по-разширени възможности– Подробно изучавани във втората част на курса
• Какво е „обект“?– Обектът е променлива, типът на която е клас– Обектът е проява на определен клас– Пример:
• Планетите от Слънчевата система са от клас Планета
Copyright © 2013 DAVID Holding CompanyCopyright © 2013 DAVID Holding Company
Оператори, изрази и съждения
• Какво е „оператор“? Какво е „операнд“?– Операторите са синтактични конструкции на
езика предназначени за извършване на операции върху определени програмни единици – операнди.
• Видове оператори според броя на операндите– Унарни – с един операнд– Бинарни – с два операнда– Тернарни – с три операнда
Copyright © 2013 DAVID Holding CompanyCopyright © 2013 DAVID Holding Company
Оператори, изрази и съждения
• Видове оператори според вида на операциите (1)– Аритметични операции– Логически операции– Побитови операции– Оператори за сравнение– Оператори за присвоявяне
Copyright © 2013 DAVID Holding CompanyCopyright © 2013 DAVID Holding Company
Оператори, изрази и съждения
• Видове оператори според вида на операциите (2)– Други оператори
• Слепване на низове• Достъпване на член-променливи и член-функции• Достъпване на индексиран елемент• Групиране• Преобразуване на типове• Условен оператор• Създаване на обект/структура• Взимане на тип данни и големина на тип данни• Проверка на тип данни• Null-coalescing
Copyright © 2013 DAVID Holding CompanyCopyright © 2013 DAVID Holding Company
Оператори, изрази и съждения
• Преобразуване на типовете данни– Какво е „преобразуване на типовете данни“?– Неявно преобразуване на типове данни –
автоматично без загуба на информация– Явно преобразуване на типове данни – ръчно с
възможна загуба на информация– Преобразуване на типове данни с функции
Copyright © 2013 DAVID Holding CompanyCopyright © 2013 DAVID Holding Company
Оператори, изрази и съждения
• Какво е „израз“?– Поредица от оператори, литерали и
променливи даващи като резултат определена стойност
– Изразите се изчисляват на базата на определени правила за приоритет и асоциативност
• Приоритет на операциите– Определя реда, в който се изпълняват
операциите при изчисляване на даден израз
• Асоциативност на операциите– Набор от правила определящ реда на
изпълнение на две операции с един и същи приоритет около един и същи операнд
Copyright © 2013 DAVID Holding CompanyCopyright © 2013 DAVID Holding Company
Оператори, изрази и съждения
• Какво е „съждение“?– Съждението в езиците за програмиране е
аналог на изречението – то дава смисъл на „казаното“ и инструктира компютъра да извърши определена дейност.
– В езика C# съжденията се отделят със символа “;”.
• Какво е „блок“?– Блокът е поредица от едно или повече
съждения.– В езика C# блоковете се оформят със
затваряне на съжденията между символите “{“ и “}”.
Copyright © 2013 DAVID Holding CompanyCopyright © 2013 DAVID Holding Company
Въпроси?
Copyright © 2013 DAVID Holding CompanyCopyright © 2013 DAVID Holding Company
Благодаря!
• Валери Дачев– [email protected]– http://vdachev.net/– @vdachev– https://www.facebook.com/vdachev
• ДАВИД академия– [email protected]– http://acad.david.bg/– @david_academy– https://www.facebook.com/groups/david.academy/