Курс по уеб програмиране (2014), занятие №3 - JavaScript (част 1/2)
Курс по програмиране на C# 2013 - 1. Въведение в...
-
Upload
david-academy -
Category
Education
-
view
171 -
download
6
description
Transcript of Курс по програмиране на C# 2013 - 1. Въведение в...
![Page 1: Курс по програмиране на C# 2013 - 1. Въведение в компютърното програмиране и C#](https://reader031.fdocument.pub/reader031/viewer/2022013115/557a9e77d8b42a835f8b4d1d/html5/thumbnails/1.jpg)
2013Copyright © 2013 DAVID Holding Company
Курс по програмиране на C#
Занятие №1Въведение в компютърното
програмиране и C#
![Page 2: Курс по програмиране на C# 2013 - 1. Въведение в компютърното програмиране и C#](https://reader031.fdocument.pub/reader031/viewer/2022013115/557a9e77d8b42a835f8b4d1d/html5/thumbnails/2.jpg)
Copyright © 2013 DAVID Holding CompanyCopyright © 2013 DAVID Holding Company
Съдържание 1/2
• Въведение в компютърното програмиране• Програмиране на C#• Ключови думи• Коментари• Идентификатори• Типове данни
![Page 3: Курс по програмиране на C# 2013 - 1. Въведение в компютърното програмиране и C#](https://reader031.fdocument.pub/reader031/viewer/2022013115/557a9e77d8b42a835f8b4d1d/html5/thumbnails/3.jpg)
Copyright © 2013 DAVID Holding CompanyCopyright © 2013 DAVID Holding Company
Съдържание 2/2
• Литерали• Променливи и константи• Стойностни и референтни типове данни• Класове и обекти• Оператори и изрази
![Page 4: Курс по програмиране на C# 2013 - 1. Въведение в компютърното програмиране и C#](https://reader031.fdocument.pub/reader031/viewer/2022013115/557a9e77d8b42a835f8b4d1d/html5/thumbnails/4.jpg)
Copyright © 2013 DAVID Holding CompanyCopyright © 2013 DAVID Holding Company
Въведение в комп. програмиране• Какво е компютърно програмиране?– Компютърно програмиране– Програмирането като част от софтуерното
инженерство– Езици за програмиране
![Page 5: Курс по програмиране на C# 2013 - 1. Въведение в компютърното програмиране и C#](https://reader031.fdocument.pub/reader031/viewer/2022013115/557a9e77d8b42a835f8b4d1d/html5/thumbnails/5.jpg)
Copyright © 2013 DAVID Holding CompanyCopyright © 2013 DAVID Holding Company
Въведение в комп. програмиране• Етапи на разработката– Събиране на изискванията за продукта и
формулиране на задание– Планиране и изготвяне на архитектура и
дизайн– Реализация (имплементация)– Изпитване на продукта (тестване) и
отстраняване на грешки– Внедряване и експлоатация– Поддръжка
• Документиране
![Page 6: Курс по програмиране на C# 2013 - 1. Въведение в компютърното програмиране и C#](https://reader031.fdocument.pub/reader031/viewer/2022013115/557a9e77d8b42a835f8b4d1d/html5/thumbnails/6.jpg)
Copyright © 2013 DAVID Holding CompanyCopyright © 2013 DAVID Holding Company
Програмиране на C#
• Езикът за програмиране C#– Какво е .NET Framework?;– Какво е CLI?;– Какво е CLR?;– Какво е BCL?;– Езикът C#. Защо C#?
![Page 7: Курс по програмиране на C# 2013 - 1. Въведение в компютърното програмиране и C#](https://reader031.fdocument.pub/reader031/viewer/2022013115/557a9e77d8b42a835f8b4d1d/html5/thumbnails/7.jpg)
Copyright © 2013 DAVID Holding CompanyCopyright © 2013 DAVID Holding Company
Програмиране на C#
• Програма “Hello, world!”– Кратко запознаване с Microsoft Visual Studio– Кратко запознаване с MSDN Library– Въвеждане на програмата– Дисекция на програмата
• Какво означават думичките?• Добро и лошо форматиране на програма• Конвенции за кодиране
![Page 8: Курс по програмиране на C# 2013 - 1. Въведение в компютърното програмиране и C#](https://reader031.fdocument.pub/reader031/viewer/2022013115/557a9e77d8b42a835f8b4d1d/html5/thumbnails/8.jpg)
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
![Page 9: Курс по програмиране на C# 2013 - 1. Въведение в компютърното програмиране и C#](https://reader031.fdocument.pub/reader031/viewer/2022013115/557a9e77d8b42a835f8b4d1d/html5/thumbnails/9.jpg)
Copyright © 2013 DAVID Holding CompanyCopyright © 2013 DAVID Holding Company
Програмиране на C#• Помощни средства– JustCode, ReSharper и др.
• Компилиране на програма• Изпълнение на програма• Откриване, проследяване и отстраняване
на грешки
![Page 10: Курс по програмиране на C# 2013 - 1. Въведение в компютърното програмиране и C#](https://reader031.fdocument.pub/reader031/viewer/2022013115/557a9e77d8b42a835f8b4d1d/html5/thumbnails/10.jpg)
Copyright © 2013 DAVID Holding CompanyCopyright © 2013 DAVID Holding Company
Програмиране на C#• Програма “Click me!”– Какво е визуално програмиране?– Създаване на потребителски интерфейс– Въвеждане на програмата– Дисекция на програмата
• Какво означават думичките?• Събития и обработка на събития• Манипулиране на потребителския интерфейс
– Възможности за развитие на програмата
![Page 11: Курс по програмиране на C# 2013 - 1. Въведение в компютърното програмиране и C#](https://reader031.fdocument.pub/reader031/viewer/2022013115/557a9e77d8b42a835f8b4d1d/html5/thumbnails/11.jpg)
Copyright © 2013 DAVID Holding CompanyCopyright © 2013 DAVID Holding Company
Програма “Click me!”
// Демонстрация
![Page 12: Курс по програмиране на C# 2013 - 1. Въведение в компютърното програмиране и C#](https://reader031.fdocument.pub/reader031/viewer/2022013115/557a9e77d8b42a835f8b4d1d/html5/thumbnails/12.jpg)
Copyright © 2013 DAVID Holding CompanyCopyright © 2013 DAVID Holding Company
Програмиране на C#
• Какво е „потребителски интефейс“?• Видове потребителски интерфейс– Command line– GUI (Graphical User Interface)– WUI (Web User Interface)– Touchscreens– Други
![Page 13: Курс по програмиране на C# 2013 - 1. Въведение в компютърното програмиране и C#](https://reader031.fdocument.pub/reader031/viewer/2022013115/557a9e77d8b42a835f8b4d1d/html5/thumbnails/13.jpg)
Copyright © 2013 DAVID Holding CompanyCopyright © 2013 DAVID Holding Company
Ключови думи
• Запазени думи със специално значение• Част от самия език за програмиране• Списък в глава “C# Keywords” на “C#
Reference” в MSDN
![Page 14: Курс по програмиране на C# 2013 - 1. Въведение в компютърното програмиране и C#](https://reader031.fdocument.pub/reader031/viewer/2022013115/557a9e77d8b42a835f8b4d1d/html5/thumbnails/14.jpg)
Copyright © 2013 DAVID Holding CompanyCopyright © 2013 DAVID Holding Company
Коментари
• Части от кода, които компилаторът не взима предвид
• Служат за документиране на кода• Едноредови коментари – започват с “//” и
завършват с края на реда• Многоредови коментари – започват с “/*”
и завършват с “*/”• Машинно четимо документиране на кода
с XML-базирани коментари
![Page 15: Курс по програмиране на C# 2013 - 1. Въведение в компютърното програмиране и C#](https://reader031.fdocument.pub/reader031/viewer/2022013115/557a9e77d8b42a835f8b4d1d/html5/thumbnails/15.jpg)
Copyright © 2013 DAVID Holding CompanyCopyright © 2013 DAVID Holding Company
Идентификатори
• Какво е „идентификатор“?– Идентификаторът е наименование дадено от
програмиста на определена програмна единица в кода.
![Page 16: Курс по програмиране на C# 2013 - 1. Въведение в компютърното програмиране и C#](https://reader031.fdocument.pub/reader031/viewer/2022013115/557a9e77d8b42a835f8b4d1d/html5/thumbnails/16.jpg)
Copyright © 2013 DAVID Holding CompanyCopyright © 2013 DAVID Holding Company
Идентификатори
• Правила за идентификаторите:– Трябва да бъдат уникални в дадената област;– Не трябва да съвпадат с ключова дума на
езика, освен ако за префикс не се използва символът „@”;
– Трябва да започват с малка или голяма буква или символа „_“;
– Трябва да съдържат само малки и големи букви, числа и символа „_“;
– Могат да съдържат Unicode символи, ако за префикс се използва със символа „@” или съответните символи са екранирани (escaped).
![Page 17: Курс по програмиране на C# 2013 - 1. Въведение в компютърното програмиране и C#](https://reader031.fdocument.pub/reader031/viewer/2022013115/557a9e77d8b42a835f8b4d1d/html5/thumbnails/17.jpg)
Copyright © 2013 DAVID Holding CompanyCopyright © 2013 DAVID Holding Company
Конвенции за идентификаторите• Наименованията на идентификаторите се
определят от програмиста.• Свободата в избора на програмиста може
да доведе до нечетим програмен код.• Принципите на доброто кодиране и
конвенциите изискват наименованията да носят смисъла на това, което идентифицират.
• Спазването на конвенциите води до по-четим, по-качествен и по-разбираем програмен код.
![Page 18: Курс по програмиране на C# 2013 - 1. Въведение в компютърното програмиране и C#](https://reader031.fdocument.pub/reader031/viewer/2022013115/557a9e77d8b42a835f8b4d1d/html5/thumbnails/18.jpg)
Copyright © 2013 DAVID Holding CompanyCopyright © 2013 DAVID Holding Company
Типове данни
• Какво е „тип данни“?– Класификационна система на видовете
данните– Типът данни определя
• Множеството от възможни стойности• Възможните операциите извършвани с данните• Смисъла на данните• Начина на тяхното съхранение
• Характеристики– Наименование– Размер/обем– Стойност по подразбиране
![Page 19: Курс по програмиране на C# 2013 - 1. Въведение в компютърното програмиране и C#](https://reader031.fdocument.pub/reader031/viewer/2022013115/557a9e77d8b42a835f8b4d1d/html5/thumbnails/19.jpg)
Copyright © 2013 DAVID Holding CompanyCopyright © 2013 DAVID Holding Company
Типове данни
• Примитивни типове данни– Целочислени– Реални с плаваща запетая– Реални с десетична точност– Булеви– Дата/час– Символи– Символни низове
![Page 20: Курс по програмиране на C# 2013 - 1. Въведение в компютърното програмиране и C#](https://reader031.fdocument.pub/reader031/viewer/2022013115/557a9e77d8b42a835f8b4d1d/html5/thumbnails/20.jpg)
Copyright © 2013 DAVID Holding CompanyCopyright © 2013 DAVID Holding Company
Типове данни
• Изброими типове данни– Дават ефикасен начин за групиране на
изброимо множество от константни стойности– Всяка стойност се задава с нейното име и
приема стойност от целочислен тип
![Page 21: Курс по програмиране на C# 2013 - 1. Въведение в компютърното програмиране и C#](https://reader031.fdocument.pub/reader031/viewer/2022013115/557a9e77d8b42a835f8b4d1d/html5/thumbnails/21.jpg)
Copyright © 2013 DAVID Holding CompanyCopyright © 2013 DAVID Holding Company
Типове данни
• Изброими типове данни (примери)– Дните от седмицата– Месеците в годината– Състоянията на светофар– Програмите на автоматична пералня– Други
![Page 22: Курс по програмиране на C# 2013 - 1. Въведение в компютърното програмиране и C#](https://reader031.fdocument.pub/reader031/viewer/2022013115/557a9e77d8b42a835f8b4d1d/html5/thumbnails/22.jpg)
Copyright © 2013 DAVID Holding CompanyCopyright © 2013 DAVID Holding Company
Типове данни
• Структури– Дават възможност за обединяването на
характерни за монолитна логическа единица данни, свойства и функции
– Монолитна в случая се разбира, че промяната на която и да е от данните всъщност представлява друга логическа единица
![Page 23: Курс по програмиране на C# 2013 - 1. Въведение в компютърното програмиране и C#](https://reader031.fdocument.pub/reader031/viewer/2022013115/557a9e77d8b42a835f8b4d1d/html5/thumbnails/23.jpg)
Copyright © 2013 DAVID Holding CompanyCopyright © 2013 DAVID Holding Company
Типове данни
• Структури (примери)– Точка в двумерното пространство
• Данни: вътрешно представяне на точката в двумерното пространство
• Свойства: X- и Y- координати, ъгъл спрямо оста, разстояние до началото на координатната система, и др.
• Функции: определяне на разстоянието до друга точка, принадлежност към вътрешността на затворен контур и др.
– Цвят• Данни: вътрешно представяне на цвят• Свойства: червена, зелена и синя компонента на
цвета• Функции: смесване на цвета с друг цвят за
получаване на трети
![Page 24: Курс по програмиране на C# 2013 - 1. Въведение в компютърното програмиране и C#](https://reader031.fdocument.pub/reader031/viewer/2022013115/557a9e77d8b42a835f8b4d1d/html5/thumbnails/24.jpg)
Copyright © 2013 DAVID Holding CompanyCopyright © 2013 DAVID Holding Company
Литерали
• Какво е „литерал“?– Запис в изходния код представляващ
фиксирана стойност от определен тип– Обикновено задаваните от литералите
стойности са от примитивен тип– Езикът C# дава възможност с литерали да се
описват и по-сложни структури
![Page 25: Курс по програмиране на C# 2013 - 1. Въведение в компютърното програмиране и C#](https://reader031.fdocument.pub/reader031/viewer/2022013115/557a9e77d8b42a835f8b4d1d/html5/thumbnails/25.jpg)
Copyright © 2013 DAVID Holding CompanyCopyright © 2013 DAVID Holding Company
Литерали
• Видове литерали според типа данни– Булев тип– Цели числа– Реални числа– Символи– Символни низове– Нулев литерал (null)
• Екраниране (escaping) на литерали– Kогато литералите съдържат специални
символи– Начини за екраниране на литерали
![Page 26: Курс по програмиране на C# 2013 - 1. Въведение в компютърното програмиране и C#](https://reader031.fdocument.pub/reader031/viewer/2022013115/557a9e77d8b42a835f8b4d1d/html5/thumbnails/26.jpg)
Copyright © 2013 DAVID Holding CompanyCopyright © 2013 DAVID Holding Company
Променливи и константи
• Какво е „променлива“?– Идентификатор с асоциирана с него стойност,
която може да бъде променяна по време на изпълнение
• Характеристики на променливите– Наименование (напр. courseName)– Тип (напр. string)– Текуща стойност (напр. “Програмиране на
C#”)
• Обявяване на променливи– (тип) (наименование)
• Използване на променливи
![Page 27: Курс по програмиране на C# 2013 - 1. Въведение в компютърното програмиране и C#](https://reader031.fdocument.pub/reader031/viewer/2022013115/557a9e77d8b42a835f8b4d1d/html5/thumbnails/27.jpg)
Copyright © 2013 DAVID Holding CompanyCopyright © 2013 DAVID Holding Company
Променливи и константи
• Присвояване на стойност на променливи– (променлива) = (израз)
• Инициализация на променливи– Първоначално задаване на стойност на
променливи– Променливите не могат да се използват,
преди да бъдат инициализирани
![Page 28: Курс по програмиране на C# 2013 - 1. Въведение в компютърното програмиране и C#](https://reader031.fdocument.pub/reader031/viewer/2022013115/557a9e77d8b42a835f8b4d1d/html5/thumbnails/28.jpg)
Copyright © 2013 DAVID Holding CompanyCopyright © 2013 DAVID Holding Company
Променливи и константи
• Какво е „константа“?– Идентификатор с асоциирана с него стойност,
която не може да бъде променяна по време на изпълнение
• Характеристики на константите– Наименование (напр. Pi)– Тип (напр. double)– Стойност (напр. 3.14159265359d)
• Обявяване на константи– const (тип) (наименование) = (константен
израз)
• Използване на константи
![Page 29: Курс по програмиране на C# 2013 - 1. Въведение в компютърното програмиране и C#](https://reader031.fdocument.pub/reader031/viewer/2022013115/557a9e77d8b42a835f8b4d1d/html5/thumbnails/29.jpg)
Copyright © 2013 DAVID Holding CompanyCopyright © 2013 DAVID Holding Company
Стойностни и референтни типове данни• Същност– Стойностни типове данни
• По-малки по обем• Съхраняват се в “stack” – бърз достъп• Предават се по стойност• Примитивни и изброими типове, както и структури
– Референтни типове данни• По-големи по обем• Съхраняват се в “heap” – бавен достъп• Предават се по референция• Класове
![Page 30: Курс по програмиране на C# 2013 - 1. Въведение в компютърното програмиране и C#](https://reader031.fdocument.pub/reader031/viewer/2022013115/557a9e77d8b42a835f8b4d1d/html5/thumbnails/30.jpg)
Copyright © 2013 DAVID Holding CompanyCopyright © 2013 DAVID Holding Company
Стойностни и референтни типове данни• Стойности по подразбиране– Числовите типове – нула– Символен тип – символът ‘\0’– Символен низ – null (литерал указващ нулева
позиция в паметта, буквално „нищо“)– Дата/час – 1 януари 1, 00:00:00;– Структури – съответства на структурата,
чиито всички полета имат своите подразбиращи се стойности;
– Класовете – null (литерал указващ нулева позиция в паметта, буквално „нищо“)
![Page 31: Курс по програмиране на C# 2013 - 1. Въведение в компютърното програмиране и C#](https://reader031.fdocument.pub/reader031/viewer/2022013115/557a9e77d8b42a835f8b4d1d/html5/thumbnails/31.jpg)
Copyright © 2013 DAVID Holding CompanyCopyright © 2013 DAVID Holding Company
Стойностни и референтни типове данни• Нулируеми типове данни– Понякога се налага добавянето на стойността
null към множеството от възможни стойности– Примери:
• Средна аритметична оценка, когато не всички изпити са положени
• Други
– Обявяване на променливи от нулируем тип• Добавяне на символа „?” към наименованието на
типа
![Page 32: Курс по програмиране на C# 2013 - 1. Въведение в компютърното програмиране и C#](https://reader031.fdocument.pub/reader031/viewer/2022013115/557a9e77d8b42a835f8b4d1d/html5/thumbnails/32.jpg)
Copyright © 2013 DAVID Holding CompanyCopyright © 2013 DAVID Holding Company
Класове и обекти
• Какво е „клас“?– Основа на обектно-ориентираното
програмиране– Подобни на структурите типове данни със
значително по-разширени възможности– Подробно изучавани във втората част на курса
• Какво е „обект“?– Обектът е променлива, типът на която е клас– Обектът е проява на определен клас– Пример:
• Планетите от Слънчевата система са от клас Планета
![Page 33: Курс по програмиране на C# 2013 - 1. Въведение в компютърното програмиране и C#](https://reader031.fdocument.pub/reader031/viewer/2022013115/557a9e77d8b42a835f8b4d1d/html5/thumbnails/33.jpg)
Copyright © 2013 DAVID Holding CompanyCopyright © 2013 DAVID Holding Company
Оператори, изрази и съждения
• Какво е „оператор“? Какво е „операнд“?– Операторите са синтактични конструкции на
езика предназначени за извършване на операции върху определени програмни единици – операнди.
• Видове оператори според броя на операндите– Унарни – с един операнд– Бинарни – с два операнда– Тернарни – с три операнда
![Page 34: Курс по програмиране на C# 2013 - 1. Въведение в компютърното програмиране и C#](https://reader031.fdocument.pub/reader031/viewer/2022013115/557a9e77d8b42a835f8b4d1d/html5/thumbnails/34.jpg)
Copyright © 2013 DAVID Holding CompanyCopyright © 2013 DAVID Holding Company
Оператори, изрази и съждения
• Видове оператори според вида на операциите (1)– Аритметични операции– Логически операции– Побитови операции– Оператори за сравнение– Оператори за присвоявяне
![Page 35: Курс по програмиране на C# 2013 - 1. Въведение в компютърното програмиране и C#](https://reader031.fdocument.pub/reader031/viewer/2022013115/557a9e77d8b42a835f8b4d1d/html5/thumbnails/35.jpg)
Copyright © 2013 DAVID Holding CompanyCopyright © 2013 DAVID Holding Company
Оператори, изрази и съждения
• Видове оператори според вида на операциите (2)– Други оператори
• Слепване на низове• Достъпване на член-променливи и член-функции• Достъпване на индексиран елемент• Групиране• Преобразуване на типове• Условен оператор• Създаване на обект/структура• Взимане на тип данни и големина на тип данни• Проверка на тип данни• Null-coalescing
![Page 36: Курс по програмиране на C# 2013 - 1. Въведение в компютърното програмиране и C#](https://reader031.fdocument.pub/reader031/viewer/2022013115/557a9e77d8b42a835f8b4d1d/html5/thumbnails/36.jpg)
Copyright © 2013 DAVID Holding CompanyCopyright © 2013 DAVID Holding Company
Оператори, изрази и съждения
• Преобразуване на типовете данни– Какво е „преобразуване на типовете данни“?– Неявно преобразуване на типове данни –
автоматично без загуба на информация– Явно преобразуване на типове данни – ръчно с
възможна загуба на информация– Преобразуване на типове данни с функции
![Page 37: Курс по програмиране на C# 2013 - 1. Въведение в компютърното програмиране и C#](https://reader031.fdocument.pub/reader031/viewer/2022013115/557a9e77d8b42a835f8b4d1d/html5/thumbnails/37.jpg)
Copyright © 2013 DAVID Holding CompanyCopyright © 2013 DAVID Holding Company
Оператори, изрази и съждения
• Какво е „израз“?– Поредица от оператори, литерали и
променливи даващи като резултат определена стойност
– Изразите се изчисляват на базата на определени правила за приоритет и асоциативност
• Приоритет на операциите– Определя реда, в който се изпълняват
операциите при изчисляване на даден израз
• Асоциативност на операциите– Набор от правила определящ реда на
изпълнение на две операции с един и същи приоритет около един и същи операнд
![Page 38: Курс по програмиране на C# 2013 - 1. Въведение в компютърното програмиране и C#](https://reader031.fdocument.pub/reader031/viewer/2022013115/557a9e77d8b42a835f8b4d1d/html5/thumbnails/38.jpg)
Copyright © 2013 DAVID Holding CompanyCopyright © 2013 DAVID Holding Company
Оператори, изрази и съждения
• Какво е „съждение“?– Съждението в езиците за програмиране е
аналог на изречението – то дава смисъл на „казаното“ и инструктира компютъра да извърши определена дейност.
– В езика C# съжденията се отделят със символа “;”.
• Какво е „блок“?– Блокът е поредица от едно или повече
съждения.– В езика C# блоковете се оформят със
затваряне на съжденията между символите “{“ и “}”.
![Page 39: Курс по програмиране на C# 2013 - 1. Въведение в компютърното програмиране и C#](https://reader031.fdocument.pub/reader031/viewer/2022013115/557a9e77d8b42a835f8b4d1d/html5/thumbnails/39.jpg)
Copyright © 2013 DAVID Holding CompanyCopyright © 2013 DAVID Holding Company
Въпроси?
![Page 40: Курс по програмиране на C# 2013 - 1. Въведение в компютърното програмиране и C#](https://reader031.fdocument.pub/reader031/viewer/2022013115/557a9e77d8b42a835f8b4d1d/html5/thumbnails/40.jpg)
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/