SlideShare une entreprise Scribd logo
1  sur  40
Курс по програмиране на
C#
Занятие №1
Въведение в компютърното
програмиране и C#

2013
Съдържание 1/2
•
•
•
•
•
•

Въведение в компютърното програмиране
Програмиране на C#
Ключови думи
Коментари
Идентификатори
Типове данни
Съдържание 2/2
•
•
•
•
•

Литерали
Променливи и константи
Стойностни и референтни типове данни
Класове и обекти
Оператори и изрази
Въведение в комп. програмиране
• Какво е компютърно програмиране?
– Компютърно програмиране
– Програмирането като част от софтуерното
инженерство
– Езици за програмиране
Въведение в комп. програмиране
• Етапи на разработката
– Събиране на изискванията за продукта и
формулиране на задание
– Планиране и изготвяне на архитектура и дизайн
– Реализация (имплементация)
– Изпитване на продукта (тестване) и отстраняване на
грешки
– Внедряване и експлоатация
– Поддръжка

• Документиране
Програмиране на C#
• Езикът за програмиране C#
–
–
–
–
–

Какво е .NET Framework?;
Какво е CLI?;
Какво е CLR?;
Какво е BCL?;
Езикът C#. Защо C#?
Програмиране на C#
• Програма “Hello, world!”
–
–
–
–

Кратко запознаване с Microsoft Visual Studio
Кратко запознаване с MSDN Library
Въвеждане на програмата
Дисекция на програмата
• Какво означават думичките?
• Добро и лошо форматиране на програма
• Конвенции за кодиране
Програма “Hello, world!”
using System;

Използване пространство на имената System
Пространство на имената HelloWorld

namespace HelloWorld
Дефиниция на клас Program
{
class Program
Дефиниция на метод Main
{
static void Main(string[] args)
{
Console.WriteLine("Hello, world!");
}
}
}
Наименование на клас Console

Извикване на метод WriteLine

Текст
Програмиране на C#
• Помощни средства
– JustCode, ReSharper и др.

• Компилиране на програма
• Изпълнение на програма
• Откриване, проследяване и отстраняване на
грешки
Програмиране на C#
• Програма “Click me!”
–
–
–
–

Какво е визуално програмиране?
Създаване на потребителски интерфейс
Въвеждане на програмата
Дисекция на програмата
• Какво означават думичките?
• Събития и обработка на събития
• Манипулиране на потребителския интерфейс

– Възможности за развитие на програмата
Програма “Click me!”
// Демонстрация
Програмиране на C#
• Какво е „потребителски интефейс“?
• Видове потребителски интерфейс
–
–
–
–
–

Command line
GUI (Graphical User Interface)
WUI (Web User Interface)
Touchscreens
Други
Ключови думи
• Запазени думи със специално значение
• Част от самия език за програмиране
• Списък в глава “C# Keywords” на “C# Reference” в
MSDN
Коментари
• Части от кода, които компилаторът не взима
предвид
• Служат за документиране на кода
• Едноредови коментари – започват с “//” и
завършват с края на реда
• Многоредови коментари – започват с “/*” и
завършват с “*/”
• Машинно четимо документиране на кода с XMLбазирани коментари
Идентификатори
• Какво е „идентификатор“?
– Идентификаторът е наименование дадено от
програмиста на определена програмна единица в
кода.
Идентификатори
• Правила за идентификаторите:
– Трябва да бъдат уникални в дадената област;
– Не трябва да съвпадат с ключова дума на езика, освен
ако за префикс не се използва символът „@”;
– Трябва да започват с малка или голяма буква или
символа „_“;
– Трябва да съдържат само малки и големи букви, числа
и символа „_“;
– Могат да съдържат Unicode символи, ако за префикс
се използва със символа „@” или съответните
символи са екранирани (escaped).
Конвенции за идентификаторите
• Наименованията на идентификаторите се
определят от програмиста.
• Свободата в избора на програмиста може да
доведе до нечетим програмен код.
• Принципите на доброто кодиране и конвенциите
изискват наименованията да носят смисъла на
това, което идентифицират.
• Спазването на конвенциите води до по-четим,
по-качествен и по-разбираем програмен код.
Типове данни
• Какво е „тип данни“?
– Класификационна система на видовете данните
– Типът данни определя
•
•
•
•

Множеството от възможни стойности
Възможните операциите извършвани с данните
Смисъла на данните
Начина на тяхното съхранение

• Характеристики
– Наименование
– Размер/обем
– Стойност по подразбиране
Типове данни
• Примитивни типове данни
–
–
–
–
–
–
–

Целочислени
Реални с плаваща запетая
Реални с десетична точност
Булеви
Дата/час
Символи
Символни низове
Типове данни
• Изброими типове данни
– Дават ефикасен начин за групиране на изброимо
множество от константни стойности
– Всяка стойност се задава с нейното име и приема
стойност от целочислен тип
Типове данни
• Изброими типове данни (примери)
–
–
–
–
–

Дните от седмицата
Месеците в годината
Състоянията на светофар
Програмите на автоматична пералня
Други
Типове данни
• Структури
– Дават възможност за обединяването на характерни за
монолитна логическа единица данни, свойства и
функции
– Монолитна в случая се разбира, че промяната на
която и да е от данните всъщност представлява друга
логическа единица
Типове данни
• Структури (примери)
– Точка в двумерното пространство
• Данни: вътрешно представяне на точката в двумерното
пространство
• Свойства: X- и Y- координати, ъгъл спрямо оста, разстояние
до началото на координатната система, и др.
• Функции: определяне на разстоянието до друга точка,
принадлежност към вътрешността на затворен контур и др.

– Цвят
• Данни: вътрешно представяне на цвят
• Свойства: червена, зелена и синя компонента на цвета
• Функции: смесване на цвета с друг цвят за получаване на
трети
Литерали
• Какво е „литерал“?
– Запис в изходния код представляващ фиксирана
стойност от определен тип
– Обикновено задаваните от литералите стойности са от
примитивен тип
– Езикът C# дава възможност с литерали да се описват и
по-сложни структури
Литерали
• Видове литерали според типа данни
–
–
–
–
–
–

Булев тип
Цели числа
Реални числа
Символи
Символни низове
Нулев литерал (null)

• Екраниране (escaping) на литерали
– Kогато литералите съдържат специални символи
– Начини за екраниране на литерали
Променливи и константи
• Какво е „променлива“?
– Идентификатор с асоциирана с него стойност, която
може да бъде променяна по време на изпълнение

• Характеристики на променливите
– Наименование (напр. courseName)
– Тип (напр. string)
– Текуща стойност (напр. “Програмиране на C#”)

• Обявяване на променливи
– (тип) (наименование)

• Използване на променливи
Променливи и константи
• Присвояване на стойност на променливи
– (променлива) = (израз)

• Инициализация на променливи
– Първоначално задаване на стойност на променливи
– Променливите не могат да се използват, преди да
бъдат инициализирани
Променливи и константи
• Какво е „константа“?
– Идентификатор с асоциирана с него стойност, която
не може да бъде променяна по време на изпълнение

• Характеристики на константите
– Наименование (напр. Pi)
– Тип (напр. double)
– Стойност (напр. 3.14159265359d)

• Обявяване на константи
– const (тип) (наименование) = (константен израз)

• Използване на константи
Стойностни и референтни типове
данни
• Същност
– Стойностни типове данни
•
•
•
•

По-малки по обем
Съхраняват се в “stack” – бърз достъп
Предават се по стойност
Примитивни и изброими типове, както и структури

– Референтни типове данни
•
•
•
•

По-големи по обем
Съхраняват се в “heap” – бавен достъп
Предават се по референция
Класове
Стойностни и референтни типове
данни
• Стойности по подразбиране
– Числовите типове – нула
– Символен тип – символът ‘0’
– Символен низ – null (литерал указващ нулева позиция
в паметта, буквално „нищо“)
– Дата/час – 1 януари 1, 00:00:00;
– Структури – съответства на структурата, чиито всички
полета имат своите подразбиращи се стойности;
– Класовете – null (литерал указващ нулева позиция в
паметта, буквално „нищо“)
Стойностни и референтни типове
данни
• Нулируеми типове данни
– Понякога се налага добавянето на стойността null към
множеството от възможни стойности
– Примери:
• Средна аритметична оценка, когато не всички изпити са
положени
• Други

– Обявяване на променливи от нулируем тип
• Добавяне на символа „?” към наименованието на типа
Класове и обекти
• Какво е „клас“?
– Основа на обектно-ориентираното програмиране
– Подобни на структурите типове данни със значително
по-разширени възможности
– Подробно изучавани във втората част на курса

• Какво е „обект“?
– Обектът е променлива, типът на която е клас
– Обектът е проява на определен клас
– Пример:
• Планетите от Слънчевата система са от клас Планета
Оператори, изрази и съждения
• Какво е „оператор“? Какво е „операнд“?
– Операторите са синтактични конструкции на езика
предназначени за извършване на операции върху
определени програмни единици – операнди.

• Видове оператори според броя на операндите
– Унарни – с един операнд
– Бинарни – с два операнда
– Тернарни – с три операнда
Оператори, изрази и съждения
• Видове оператори според вида на операциите
(1)
–
–
–
–
–

Аритметични операции
Логически операции
Побитови операции
Оператори за сравнение
Оператори за присвоявяне
Оператори, изрази и съждения
• Видове оператори според вида на операциите
(2)
– Други оператори
•
•
•
•
•
•
•
•
•
•

Слепване на низове
Достъпване на член-променливи и член-функции
Достъпване на индексиран елемент
Групиране
Преобразуване на типове
Условен оператор
Създаване на обект/структура
Взимане на тип данни и големина на тип данни
Проверка на тип данни
Null-coalescing
Оператори, изрази и съждения
• Преобразуване на типовете данни
– Какво е „преобразуване на типовете данни“?
– Неявно преобразуване на типове данни –
автоматично без загуба на информация
– Явно преобразуване на типове данни – ръчно с
възможна загуба на информация
– Преобразуване на типове данни с функции
Оператори, изрази и съждения
• Какво е „израз“?
– Поредица от оператори, литерали и променливи
даващи като резултат определена стойност
– Изразите се изчисляват на базата на определени
правила за приоритет и асоциативност

• Приоритет на операциите
– Определя реда, в който се изпълняват операциите
при изчисляване на даден израз

• Асоциативност на операциите
– Набор от правила определящ реда на изпълнение на
две операции с един и същи приоритет около един и
същи операнд
Оператори, изрази и съждения
• Какво е „съждение“?
– Съждението в езиците за програмиране е аналог на
изречението – то дава смисъл на „казаното“ и
инструктира компютъра да извърши определена
дейност.
– В езика C# съжденията се отделят със символа “;”.

• Какво е „блок“?
– Блокът е поредица от едно или повече съждения.
– В езика C# блоковете се оформят със затваряне на
съжденията между символите “{“ и “}”.
Въпроси?
Благодаря!
• Валери Дачев
–
–
–
–

valery@david.bg
http://vdachev.net/
@vdachev
https://www.facebook.com/vdachev

• ДАВИД академия
–
–
–
–

acad@david.bg
http://acad.david.bg/
@david_academy
https://www.facebook.com/groups/david.academy/

Contenu connexe

Tendances

Курс по уеб програмиране (2015), занятие №3 - JavaScript (част 1/2)
Курс по уеб програмиране (2015), занятие №3 - JavaScript (част 1/2)Курс по уеб програмиране (2015), занятие №3 - JavaScript (част 1/2)
Курс по уеб програмиране (2015), занятие №3 - JavaScript (част 1/2)DAVID Academy
 
Училищен курс по програмиране на C# (2013/2014), занятие №9
Училищен курс по програмиране на C# (2013/2014), занятие №9Училищен курс по програмиране на C# (2013/2014), занятие №9
Училищен курс по програмиране на C# (2013/2014), занятие №9DAVID Academy
 
Училищен курс по програмиране на C# (2013/2014), занятие №12
Училищен курс по програмиране на C# (2013/2014), занятие №12Училищен курс по програмиране на C# (2013/2014), занятие №12
Училищен курс по програмиране на C# (2013/2014), занятие №12DAVID Academy
 
Курс по информационни технологии (2013) - 1. Desktop приложения. Windows Form...
Курс по информационни технологии (2013) - 1. Desktop приложения. Windows Form...Курс по информационни технологии (2013) - 1. Desktop приложения. Windows Form...
Курс по информационни технологии (2013) - 1. Desktop приложения. Windows Form...DAVID Academy
 
Курс по уеб програмиране (2014), занятие №4 - JavaScript (част 2/2)
Курс по уеб програмиране (2014), занятие №4 - JavaScript (част 2/2)Курс по уеб програмиране (2014), занятие №4 - JavaScript (част 2/2)
Курс по уеб програмиране (2014), занятие №4 - JavaScript (част 2/2)DAVID Academy
 
Училищен курс по програмиране на C# (2013/2014), занятие №2
Училищен курс по програмиране на C# (2013/2014), занятие №2Училищен курс по програмиране на C# (2013/2014), занятие №2
Училищен курс по програмиране на C# (2013/2014), занятие №2DAVID Academy
 
Курс по програмиране на C# 2013 - 8. Полиморфизъм. Абстракция. Шаблони. Вград...
Курс по програмиране на C# 2013 - 8. Полиморфизъм. Абстракция. Шаблони. Вград...Курс по програмиране на C# 2013 - 8. Полиморфизъм. Абстракция. Шаблони. Вград...
Курс по програмиране на C# 2013 - 8. Полиморфизъм. Абстракция. Шаблони. Вград...DAVID Academy
 
Училищен курс по програмиране на C# (2013/2014), занятие №4
Училищен курс по програмиране на C# (2013/2014), занятие №4Училищен курс по програмиране на C# (2013/2014), занятие №4
Училищен курс по програмиране на C# (2013/2014), занятие №4DAVID Academy
 
Курс по уеб програмиране (2015), занятие №1 - HTML
Курс по уеб програмиране (2015), занятие №1 - HTMLКурс по уеб програмиране (2015), занятие №1 - HTML
Курс по уеб програмиране (2015), занятие №1 - HTMLDAVID Academy
 
Курс по уеб програмиране (2015), занятие №2 - CSS
Курс по уеб програмиране (2015), занятие №2 - CSSКурс по уеб програмиране (2015), занятие №2 - CSS
Курс по уеб програмиране (2015), занятие №2 - CSSDAVID Academy
 
Курс по програмиране на C# 2013 - 7. Свойства. Индексатори. Наследяване. Изкл...
Курс по програмиране на C# 2013 - 7. Свойства. Индексатори. Наследяване. Изкл...Курс по програмиране на C# 2013 - 7. Свойства. Индексатори. Наследяване. Изкл...
Курс по програмиране на C# 2013 - 7. Свойства. Индексатори. Наследяване. Изкл...DAVID Academy
 
Курс по уеб програмиране (2014), занятие №3 - JavaScript (част 1/2)
Курс по уеб програмиране (2014), занятие №3 - JavaScript (част 1/2)Курс по уеб програмиране (2014), занятие №3 - JavaScript (част 1/2)
Курс по уеб програмиране (2014), занятие №3 - JavaScript (част 1/2)DAVID Academy
 
Училищен курс по програмиране на C# (2013/2014), занятие №3
Училищен курс по програмиране на C# (2013/2014), занятие №3Училищен курс по програмиране на C# (2013/2014), занятие №3
Училищен курс по програмиране на C# (2013/2014), занятие №3DAVID Academy
 
Училищен курс по програмиране на C# (2013/2014), занятие №1
Училищен курс по програмиране на C# (2013/2014), занятие №1Училищен курс по програмиране на C# (2013/2014), занятие №1
Училищен курс по програмиране на C# (2013/2014), занятие №1DAVID Academy
 
Основни структури за управление на изчислителния процес
Основни структури за управление на изчислителния процесОсновни структури за управление на изчислителния процес
Основни структури за управление на изчислителния процесAtelier for robotics
 
Nakov - RDBMS Systems - Intro
Nakov - RDBMS Systems - IntroNakov - RDBMS Systems - Intro
Nakov - RDBMS Systems - IntroSvetlin Nakov
 
5. vb promenlivi
5. vb promenlivi5. vb promenlivi
5. vb promenlividnaidenowa
 
Курс по уеб програмиране (2014), занятие №2 - CSS
Курс по уеб програмиране (2014), занятие №2 - CSSКурс по уеб програмиране (2014), занятие №2 - CSS
Курс по уеб програмиране (2014), занятие №2 - CSSDAVID Academy
 

Tendances (20)

Курс по уеб програмиране (2015), занятие №3 - JavaScript (част 1/2)
Курс по уеб програмиране (2015), занятие №3 - JavaScript (част 1/2)Курс по уеб програмиране (2015), занятие №3 - JavaScript (част 1/2)
Курс по уеб програмиране (2015), занятие №3 - JavaScript (част 1/2)
 
Училищен курс по програмиране на C# (2013/2014), занятие №9
Училищен курс по програмиране на C# (2013/2014), занятие №9Училищен курс по програмиране на C# (2013/2014), занятие №9
Училищен курс по програмиране на C# (2013/2014), занятие №9
 
Училищен курс по програмиране на C# (2013/2014), занятие №12
Училищен курс по програмиране на C# (2013/2014), занятие №12Училищен курс по програмиране на C# (2013/2014), занятие №12
Училищен курс по програмиране на C# (2013/2014), занятие №12
 
Курс по информационни технологии (2013) - 1. Desktop приложения. Windows Form...
Курс по информационни технологии (2013) - 1. Desktop приложения. Windows Form...Курс по информационни технологии (2013) - 1. Desktop приложения. Windows Form...
Курс по информационни технологии (2013) - 1. Desktop приложения. Windows Form...
 
Курс по уеб програмиране (2014), занятие №4 - JavaScript (част 2/2)
Курс по уеб програмиране (2014), занятие №4 - JavaScript (част 2/2)Курс по уеб програмиране (2014), занятие №4 - JavaScript (част 2/2)
Курс по уеб програмиране (2014), занятие №4 - JavaScript (част 2/2)
 
Училищен курс по програмиране на C# (2013/2014), занятие №2
Училищен курс по програмиране на C# (2013/2014), занятие №2Училищен курс по програмиране на C# (2013/2014), занятие №2
Училищен курс по програмиране на C# (2013/2014), занятие №2
 
Курс по програмиране на C# 2013 - 8. Полиморфизъм. Абстракция. Шаблони. Вград...
Курс по програмиране на C# 2013 - 8. Полиморфизъм. Абстракция. Шаблони. Вград...Курс по програмиране на C# 2013 - 8. Полиморфизъм. Абстракция. Шаблони. Вград...
Курс по програмиране на C# 2013 - 8. Полиморфизъм. Абстракция. Шаблони. Вград...
 
Училищен курс по програмиране на C# (2013/2014), занятие №4
Училищен курс по програмиране на C# (2013/2014), занятие №4Училищен курс по програмиране на C# (2013/2014), занятие №4
Училищен курс по програмиране на C# (2013/2014), занятие №4
 
Курс по уеб програмиране (2015), занятие №1 - HTML
Курс по уеб програмиране (2015), занятие №1 - HTMLКурс по уеб програмиране (2015), занятие №1 - HTML
Курс по уеб програмиране (2015), занятие №1 - HTML
 
Курс по уеб програмиране (2015), занятие №2 - CSS
Курс по уеб програмиране (2015), занятие №2 - CSSКурс по уеб програмиране (2015), занятие №2 - CSS
Курс по уеб програмиране (2015), занятие №2 - CSS
 
Курс по програмиране на C# 2013 - 7. Свойства. Индексатори. Наследяване. Изкл...
Курс по програмиране на C# 2013 - 7. Свойства. Индексатори. Наследяване. Изкл...Курс по програмиране на C# 2013 - 7. Свойства. Индексатори. Наследяване. Изкл...
Курс по програмиране на C# 2013 - 7. Свойства. Индексатори. Наследяване. Изкл...
 
Курс по уеб програмиране (2014), занятие №3 - JavaScript (част 1/2)
Курс по уеб програмиране (2014), занятие №3 - JavaScript (част 1/2)Курс по уеб програмиране (2014), занятие №3 - JavaScript (част 1/2)
Курс по уеб програмиране (2014), занятие №3 - JavaScript (част 1/2)
 
Въведение в Python
Въведение в PythonВъведение в Python
Въведение в Python
 
Училищен курс по програмиране на C# (2013/2014), занятие №3
Училищен курс по програмиране на C# (2013/2014), занятие №3Училищен курс по програмиране на C# (2013/2014), занятие №3
Училищен курс по програмиране на C# (2013/2014), занятие №3
 
Училищен курс по програмиране на C# (2013/2014), занятие №1
Училищен курс по програмиране на C# (2013/2014), занятие №1Училищен курс по програмиране на C# (2013/2014), занятие №1
Училищен курс по програмиране на C# (2013/2014), занятие №1
 
Основни структури за управление на изчислителния процес
Основни структури за управление на изчислителния процесОсновни структури за управление на изчислителния процес
Основни структури за управление на изчислителния процес
 
Nakov - RDBMS Systems - Intro
Nakov - RDBMS Systems - IntroNakov - RDBMS Systems - Intro
Nakov - RDBMS Systems - Intro
 
5. vb promenlivi
5. vb promenlivi5. vb promenlivi
5. vb promenlivi
 
Въведение в Perl
Въведение в PerlВъведение в Perl
Въведение в Perl
 
Курс по уеб програмиране (2014), занятие №2 - CSS
Курс по уеб програмиране (2014), занятие №2 - CSSКурс по уеб програмиране (2014), занятие №2 - CSS
Курс по уеб програмиране (2014), занятие №2 - CSS
 

Similaire à Курс по програмиране на C# 2013 - 1. Въведение в компютърното програмиране и C#

Курс по програмиране на C# 2013 - 3. Функции и методи. Рекурсия
Курс по програмиране на C# 2013 - 3. Функции и методи. РекурсияКурс по програмиране на C# 2013 - 3. Функции и методи. Рекурсия
Курс по програмиране на C# 2013 - 3. Функции и методи. РекурсияDAVID Academy
 
High Quality Code Introduction
High Quality Code IntroductionHigh Quality Code Introduction
High Quality Code IntroductionSvetlin Nakov
 
Nakov High Quality Code
Nakov High Quality CodeNakov High Quality Code
Nakov High Quality CodeSvetlin Nakov
 
18 operatori i funkcii
18 operatori i funkcii18 operatori i funkcii
18 operatori i funkciiIvan Peev
 
Курс по програмиране на C# 2013 - 6. Обектно-ориентирано програмиране. Класов...
Курс по програмиране на C# 2013 - 6. Обектно-ориентирано програмиране. Класов...Курс по програмиране на C# 2013 - 6. Обектно-ориентирано програмиране. Класов...
Курс по програмиране на C# 2013 - 6. Обектно-ориентирано програмиране. Класов...DAVID Academy
 
Курс по информационни технологии (2013) - 2. Бази данни. Системи за управлени...
Курс по информационни технологии (2013) - 2. Бази данни. Системи за управлени...Курс по информационни технологии (2013) - 2. Бази данни. Системи за управлени...
Курс по информационни технологии (2013) - 2. Бази данни. Системи за управлени...DAVID Academy
 
Introduction to-rdbms-systems
Introduction to-rdbms-systemsIntroduction to-rdbms-systems
Introduction to-rdbms-systemsRosen Spasov
 
Курс по информационни технологии (2013) - 4. XML, XSD, XML в .NET Framework
Курс по информационни технологии (2013) - 4. XML, XSD, XML в .NET FrameworkКурс по информационни технологии (2013) - 4. XML, XSD, XML в .NET Framework
Курс по информационни технологии (2013) - 4. XML, XSD, XML в .NET FrameworkDAVID Academy
 
Курс по информационни технологии (2013) - 3. ADO.NET, LINQ to SQL
Курс по информационни технологии (2013) - 3. ADO.NET, LINQ to SQLКурс по информационни технологии (2013) - 3. ADO.NET, LINQ to SQL
Курс по информационни технологии (2013) - 3. ADO.NET, LINQ to SQLDAVID Academy
 
BARS - Regular Expressions - Svetlin Nakov, George Penkov
BARS - Regular Expressions - Svetlin Nakov, George PenkovBARS - Regular Expressions - Svetlin Nakov, George Penkov
BARS - Regular Expressions - Svetlin Nakov, George PenkovSvetlin Nakov
 
Курс по програмиране за напреднали (2012) - 3. Бази данни. Системи за управле...
Курс по програмиране за напреднали (2012) - 3. Бази данни. Системи за управле...Курс по програмиране за напреднали (2012) - 3. Бази данни. Системи за управле...
Курс по програмиране за напреднали (2012) - 3. Бази данни. Системи за управле...DAVID Academy
 
Introduction To Object Oriented Design and UML
Introduction To Object Oriented Design and UMLIntroduction To Object Oriented Design and UML
Introduction To Object Oriented Design and UMLSvetlin Nakov
 
Курс по програмиране за напреднали (2012) - 9. Добър и лош код. Преработка и ...
Курс по програмиране за напреднали (2012) - 9. Добър и лош код. Преработка и ...Курс по програмиране за напреднали (2012) - 9. Добър и лош код. Преработка и ...
Курс по програмиране за напреднали (2012) - 9. Добър и лош код. Преработка и ...DAVID Academy
 
Svetlin Nakov - .NET Framework Overview
Svetlin Nakov - .NET Framework OverviewSvetlin Nakov - .NET Framework Overview
Svetlin Nakov - .NET Framework OverviewSvetlin Nakov
 
FABRIQ - Presentation Nakov 0.8
FABRIQ - Presentation Nakov 0.8FABRIQ - Presentation Nakov 0.8
FABRIQ - Presentation Nakov 0.8Svetlin Nakov
 
Курс по програмиране за напреднали (2012) - 1. Обектно-ориентирано програмира...
Курс по програмиране за напреднали (2012) - 1. Обектно-ориентирано програмира...Курс по програмиране за напреднали (2012) - 1. Обектно-ориентирано програмира...
Курс по програмиране за напреднали (2012) - 1. Обектно-ориентирано програмира...DAVID Academy
 

Similaire à Курс по програмиране на C# 2013 - 1. Въведение в компютърното програмиране и C# (20)

Курс по програмиране на C# 2013 - 3. Функции и методи. Рекурсия
Курс по програмиране на C# 2013 - 3. Функции и методи. РекурсияКурс по програмиране на C# 2013 - 3. Функции и методи. Рекурсия
Курс по програмиране на C# 2013 - 3. Функции и методи. Рекурсия
 
High Quality Code Introduction
High Quality Code IntroductionHigh Quality Code Introduction
High Quality Code Introduction
 
Nakov High Quality Code
Nakov High Quality CodeNakov High Quality Code
Nakov High Quality Code
 
18 operatori i funkcii
18 operatori i funkcii18 operatori i funkcii
18 operatori i funkcii
 
Курс по програмиране на C# 2013 - 6. Обектно-ориентирано програмиране. Класов...
Курс по програмиране на C# 2013 - 6. Обектно-ориентирано програмиране. Класов...Курс по програмиране на C# 2013 - 6. Обектно-ориентирано програмиране. Класов...
Курс по програмиране на C# 2013 - 6. Обектно-ориентирано програмиране. Класов...
 
Tema13
Tema13Tema13
Tema13
 
Курс по информационни технологии (2013) - 2. Бази данни. Системи за управлени...
Курс по информационни технологии (2013) - 2. Бази данни. Системи за управлени...Курс по информационни технологии (2013) - 2. Бази данни. Системи за управлени...
Курс по информационни технологии (2013) - 2. Бази данни. Системи за управлени...
 
Introduction to-RDBMS-systems
Introduction to-RDBMS-systemsIntroduction to-RDBMS-systems
Introduction to-RDBMS-systems
 
Introduction to-rdbms-systems
Introduction to-rdbms-systemsIntroduction to-rdbms-systems
Introduction to-rdbms-systems
 
Курс по информационни технологии (2013) - 4. XML, XSD, XML в .NET Framework
Курс по информационни технологии (2013) - 4. XML, XSD, XML в .NET FrameworkКурс по информационни технологии (2013) - 4. XML, XSD, XML в .NET Framework
Курс по информационни технологии (2013) - 4. XML, XSD, XML в .NET Framework
 
Курс по информационни технологии (2013) - 3. ADO.NET, LINQ to SQL
Курс по информационни технологии (2013) - 3. ADO.NET, LINQ to SQLКурс по информационни технологии (2013) - 3. ADO.NET, LINQ to SQL
Курс по информационни технологии (2013) - 3. ADO.NET, LINQ to SQL
 
BARS - Regular Expressions - Svetlin Nakov, George Penkov
BARS - Regular Expressions - Svetlin Nakov, George PenkovBARS - Regular Expressions - Svetlin Nakov, George Penkov
BARS - Regular Expressions - Svetlin Nakov, George Penkov
 
C++ datatypes
C++ datatypesC++ datatypes
C++ datatypes
 
Курс по програмиране за напреднали (2012) - 3. Бази данни. Системи за управле...
Курс по програмиране за напреднали (2012) - 3. Бази данни. Системи за управле...Курс по програмиране за напреднали (2012) - 3. Бази данни. Системи за управле...
Курс по програмиране за напреднали (2012) - 3. Бази данни. Системи за управле...
 
Introduction To Object Oriented Design and UML
Introduction To Object Oriented Design and UMLIntroduction To Object Oriented Design and UML
Introduction To Object Oriented Design and UML
 
2 bd project
2 bd project2 bd project
2 bd project
 
Курс по програмиране за напреднали (2012) - 9. Добър и лош код. Преработка и ...
Курс по програмиране за напреднали (2012) - 9. Добър и лош код. Преработка и ...Курс по програмиране за напреднали (2012) - 9. Добър и лош код. Преработка и ...
Курс по програмиране за напреднали (2012) - 9. Добър и лош код. Преработка и ...
 
Svetlin Nakov - .NET Framework Overview
Svetlin Nakov - .NET Framework OverviewSvetlin Nakov - .NET Framework Overview
Svetlin Nakov - .NET Framework Overview
 
FABRIQ - Presentation Nakov 0.8
FABRIQ - Presentation Nakov 0.8FABRIQ - Presentation Nakov 0.8
FABRIQ - Presentation Nakov 0.8
 
Курс по програмиране за напреднали (2012) - 1. Обектно-ориентирано програмира...
Курс по програмиране за напреднали (2012) - 1. Обектно-ориентирано програмира...Курс по програмиране за напреднали (2012) - 1. Обектно-ориентирано програмира...
Курс по програмиране за напреднали (2012) - 1. Обектно-ориентирано програмира...
 

Plus de DAVID Academy

Курс по уеб програмиране (2014), занятие №1 - HTML
Курс по уеб програмиране (2014), занятие №1 - HTMLКурс по уеб програмиране (2014), занятие №1 - HTML
Курс по уеб програмиране (2014), занятие №1 - HTMLDAVID Academy
 
Училищен курс по програмиране на C# (2013/2014) - Помагало
Училищен курс по програмиране на C# (2013/2014) - ПомагалоУчилищен курс по програмиране на C# (2013/2014) - Помагало
Училищен курс по програмиране на C# (2013/2014) - ПомагалоDAVID Academy
 
Училищен курс по програмиране на C# (2013/2014) - Упражнения
Училищен курс по програмиране на C# (2013/2014) - УпражненияУчилищен курс по програмиране на C# (2013/2014) - Упражнения
Училищен курс по програмиране на C# (2013/2014) - УпражненияDAVID Academy
 
Курс по информационни технологии (2013) - 5. HTTP & Web Services
Курс по информационни технологии (2013) - 5. HTTP & Web ServicesКурс по информационни технологии (2013) - 5. HTTP & Web Services
Курс по информационни технологии (2013) - 5. HTTP & Web ServicesDAVID Academy
 
Курс по информационни технологии (2013) - 0. Представяне
Курс по информационни технологии (2013) - 0. ПредставянеКурс по информационни технологии (2013) - 0. Представяне
Курс по информационни технологии (2013) - 0. ПредставянеDAVID Academy
 
Курс по информационни технологии (2013) - Помагало
Курс по информационни технологии (2013) - ПомагалоКурс по информационни технологии (2013) - Помагало
Курс по информационни технологии (2013) - ПомагалоDAVID Academy
 
Курс по програмиране на C# (2013) - Упражнения
Курс по програмиране на C# (2013) - УпражненияКурс по програмиране на C# (2013) - Упражнения
Курс по програмиране на C# (2013) - УпражненияDAVID Academy
 
Курс по програмиране на C# 2013 - 9. Делегати. Събития. Ламбда функции
Курс по програмиране на C# 2013 - 9. Делегати. Събития. Ламбда функцииКурс по програмиране на C# 2013 - 9. Делегати. Събития. Ламбда функции
Курс по програмиране на C# 2013 - 9. Делегати. Събития. Ламбда функцииDAVID Academy
 

Plus de DAVID Academy (8)

Курс по уеб програмиране (2014), занятие №1 - HTML
Курс по уеб програмиране (2014), занятие №1 - HTMLКурс по уеб програмиране (2014), занятие №1 - HTML
Курс по уеб програмиране (2014), занятие №1 - HTML
 
Училищен курс по програмиране на C# (2013/2014) - Помагало
Училищен курс по програмиране на C# (2013/2014) - ПомагалоУчилищен курс по програмиране на C# (2013/2014) - Помагало
Училищен курс по програмиране на C# (2013/2014) - Помагало
 
Училищен курс по програмиране на C# (2013/2014) - Упражнения
Училищен курс по програмиране на C# (2013/2014) - УпражненияУчилищен курс по програмиране на C# (2013/2014) - Упражнения
Училищен курс по програмиране на C# (2013/2014) - Упражнения
 
Курс по информационни технологии (2013) - 5. HTTP & Web Services
Курс по информационни технологии (2013) - 5. HTTP & Web ServicesКурс по информационни технологии (2013) - 5. HTTP & Web Services
Курс по информационни технологии (2013) - 5. HTTP & Web Services
 
Курс по информационни технологии (2013) - 0. Представяне
Курс по информационни технологии (2013) - 0. ПредставянеКурс по информационни технологии (2013) - 0. Представяне
Курс по информационни технологии (2013) - 0. Представяне
 
Курс по информационни технологии (2013) - Помагало
Курс по информационни технологии (2013) - ПомагалоКурс по информационни технологии (2013) - Помагало
Курс по информационни технологии (2013) - Помагало
 
Курс по програмиране на C# (2013) - Упражнения
Курс по програмиране на C# (2013) - УпражненияКурс по програмиране на C# (2013) - Упражнения
Курс по програмиране на C# (2013) - Упражнения
 
Курс по програмиране на C# 2013 - 9. Делегати. Събития. Ламбда функции
Курс по програмиране на C# 2013 - 9. Делегати. Събития. Ламбда функцииКурс по програмиране на C# 2013 - 9. Делегати. Събития. Ламбда функции
Курс по програмиране на C# 2013 - 9. Делегати. Събития. Ламбда функции
 

Курс по програмиране на C# 2013 - 1. Въведение в компютърното програмиране и C#

  • 1. Курс по програмиране на C# Занятие №1 Въведение в компютърното програмиране и C# 2013
  • 2. Съдържание 1/2 • • • • • • Въведение в компютърното програмиране Програмиране на C# Ключови думи Коментари Идентификатори Типове данни
  • 3. Съдържание 2/2 • • • • • Литерали Променливи и константи Стойностни и референтни типове данни Класове и обекти Оператори и изрази
  • 4. Въведение в комп. програмиране • Какво е компютърно програмиране? – Компютърно програмиране – Програмирането като част от софтуерното инженерство – Езици за програмиране
  • 5. Въведение в комп. програмиране • Етапи на разработката – Събиране на изискванията за продукта и формулиране на задание – Планиране и изготвяне на архитектура и дизайн – Реализация (имплементация) – Изпитване на продукта (тестване) и отстраняване на грешки – Внедряване и експлоатация – Поддръжка • Документиране
  • 6. Програмиране на C# • Езикът за програмиране C# – – – – – Какво е .NET Framework?; Какво е CLI?; Какво е CLR?; Какво е BCL?; Езикът C#. Защо C#?
  • 7. Програмиране на C# • Програма “Hello, world!” – – – – Кратко запознаване с Microsoft Visual Studio Кратко запознаване с MSDN Library Въвеждане на програмата Дисекция на програмата • Какво означават думичките? • Добро и лошо форматиране на програма • Конвенции за кодиране
  • 8. Програма “Hello, world!” using System; Използване пространство на имената System Пространство на имената HelloWorld namespace HelloWorld Дефиниция на клас Program { class Program Дефиниция на метод Main { static void Main(string[] args) { Console.WriteLine("Hello, world!"); } } } Наименование на клас Console Извикване на метод WriteLine Текст
  • 9. Програмиране на C# • Помощни средства – JustCode, ReSharper и др. • Компилиране на програма • Изпълнение на програма • Откриване, проследяване и отстраняване на грешки
  • 10. Програмиране на C# • Програма “Click me!” – – – – Какво е визуално програмиране? Създаване на потребителски интерфейс Въвеждане на програмата Дисекция на програмата • Какво означават думичките? • Събития и обработка на събития • Манипулиране на потребителския интерфейс – Възможности за развитие на програмата
  • 11. Програма “Click me!” // Демонстрация
  • 12. Програмиране на C# • Какво е „потребителски интефейс“? • Видове потребителски интерфейс – – – – – Command line GUI (Graphical User Interface) WUI (Web User Interface) Touchscreens Други
  • 13. Ключови думи • Запазени думи със специално значение • Част от самия език за програмиране • Списък в глава “C# Keywords” на “C# Reference” в MSDN
  • 14. Коментари • Части от кода, които компилаторът не взима предвид • Служат за документиране на кода • Едноредови коментари – започват с “//” и завършват с края на реда • Многоредови коментари – започват с “/*” и завършват с “*/” • Машинно четимо документиране на кода с XMLбазирани коментари
  • 15. Идентификатори • Какво е „идентификатор“? – Идентификаторът е наименование дадено от програмиста на определена програмна единица в кода.
  • 16. Идентификатори • Правила за идентификаторите: – Трябва да бъдат уникални в дадената област; – Не трябва да съвпадат с ключова дума на езика, освен ако за префикс не се използва символът „@”; – Трябва да започват с малка или голяма буква или символа „_“; – Трябва да съдържат само малки и големи букви, числа и символа „_“; – Могат да съдържат Unicode символи, ако за префикс се използва със символа „@” или съответните символи са екранирани (escaped).
  • 17. Конвенции за идентификаторите • Наименованията на идентификаторите се определят от програмиста. • Свободата в избора на програмиста може да доведе до нечетим програмен код. • Принципите на доброто кодиране и конвенциите изискват наименованията да носят смисъла на това, което идентифицират. • Спазването на конвенциите води до по-четим, по-качествен и по-разбираем програмен код.
  • 18. Типове данни • Какво е „тип данни“? – Класификационна система на видовете данните – Типът данни определя • • • • Множеството от възможни стойности Възможните операциите извършвани с данните Смисъла на данните Начина на тяхното съхранение • Характеристики – Наименование – Размер/обем – Стойност по подразбиране
  • 19. Типове данни • Примитивни типове данни – – – – – – – Целочислени Реални с плаваща запетая Реални с десетична точност Булеви Дата/час Символи Символни низове
  • 20. Типове данни • Изброими типове данни – Дават ефикасен начин за групиране на изброимо множество от константни стойности – Всяка стойност се задава с нейното име и приема стойност от целочислен тип
  • 21. Типове данни • Изброими типове данни (примери) – – – – – Дните от седмицата Месеците в годината Състоянията на светофар Програмите на автоматична пералня Други
  • 22. Типове данни • Структури – Дават възможност за обединяването на характерни за монолитна логическа единица данни, свойства и функции – Монолитна в случая се разбира, че промяната на която и да е от данните всъщност представлява друга логическа единица
  • 23. Типове данни • Структури (примери) – Точка в двумерното пространство • Данни: вътрешно представяне на точката в двумерното пространство • Свойства: X- и Y- координати, ъгъл спрямо оста, разстояние до началото на координатната система, и др. • Функции: определяне на разстоянието до друга точка, принадлежност към вътрешността на затворен контур и др. – Цвят • Данни: вътрешно представяне на цвят • Свойства: червена, зелена и синя компонента на цвета • Функции: смесване на цвета с друг цвят за получаване на трети
  • 24. Литерали • Какво е „литерал“? – Запис в изходния код представляващ фиксирана стойност от определен тип – Обикновено задаваните от литералите стойности са от примитивен тип – Езикът C# дава възможност с литерали да се описват и по-сложни структури
  • 25. Литерали • Видове литерали според типа данни – – – – – – Булев тип Цели числа Реални числа Символи Символни низове Нулев литерал (null) • Екраниране (escaping) на литерали – Kогато литералите съдържат специални символи – Начини за екраниране на литерали
  • 26. Променливи и константи • Какво е „променлива“? – Идентификатор с асоциирана с него стойност, която може да бъде променяна по време на изпълнение • Характеристики на променливите – Наименование (напр. courseName) – Тип (напр. string) – Текуща стойност (напр. “Програмиране на C#”) • Обявяване на променливи – (тип) (наименование) • Използване на променливи
  • 27. Променливи и константи • Присвояване на стойност на променливи – (променлива) = (израз) • Инициализация на променливи – Първоначално задаване на стойност на променливи – Променливите не могат да се използват, преди да бъдат инициализирани
  • 28. Променливи и константи • Какво е „константа“? – Идентификатор с асоциирана с него стойност, която не може да бъде променяна по време на изпълнение • Характеристики на константите – Наименование (напр. Pi) – Тип (напр. double) – Стойност (напр. 3.14159265359d) • Обявяване на константи – const (тип) (наименование) = (константен израз) • Използване на константи
  • 29. Стойностни и референтни типове данни • Същност – Стойностни типове данни • • • • По-малки по обем Съхраняват се в “stack” – бърз достъп Предават се по стойност Примитивни и изброими типове, както и структури – Референтни типове данни • • • • По-големи по обем Съхраняват се в “heap” – бавен достъп Предават се по референция Класове
  • 30. Стойностни и референтни типове данни • Стойности по подразбиране – Числовите типове – нула – Символен тип – символът ‘0’ – Символен низ – null (литерал указващ нулева позиция в паметта, буквално „нищо“) – Дата/час – 1 януари 1, 00:00:00; – Структури – съответства на структурата, чиито всички полета имат своите подразбиращи се стойности; – Класовете – null (литерал указващ нулева позиция в паметта, буквално „нищо“)
  • 31. Стойностни и референтни типове данни • Нулируеми типове данни – Понякога се налага добавянето на стойността null към множеството от възможни стойности – Примери: • Средна аритметична оценка, когато не всички изпити са положени • Други – Обявяване на променливи от нулируем тип • Добавяне на символа „?” към наименованието на типа
  • 32. Класове и обекти • Какво е „клас“? – Основа на обектно-ориентираното програмиране – Подобни на структурите типове данни със значително по-разширени възможности – Подробно изучавани във втората част на курса • Какво е „обект“? – Обектът е променлива, типът на която е клас – Обектът е проява на определен клас – Пример: • Планетите от Слънчевата система са от клас Планета
  • 33. Оператори, изрази и съждения • Какво е „оператор“? Какво е „операнд“? – Операторите са синтактични конструкции на езика предназначени за извършване на операции върху определени програмни единици – операнди. • Видове оператори според броя на операндите – Унарни – с един операнд – Бинарни – с два операнда – Тернарни – с три операнда
  • 34. Оператори, изрази и съждения • Видове оператори според вида на операциите (1) – – – – – Аритметични операции Логически операции Побитови операции Оператори за сравнение Оператори за присвоявяне
  • 35. Оператори, изрази и съждения • Видове оператори според вида на операциите (2) – Други оператори • • • • • • • • • • Слепване на низове Достъпване на член-променливи и член-функции Достъпване на индексиран елемент Групиране Преобразуване на типове Условен оператор Създаване на обект/структура Взимане на тип данни и големина на тип данни Проверка на тип данни Null-coalescing
  • 36. Оператори, изрази и съждения • Преобразуване на типовете данни – Какво е „преобразуване на типовете данни“? – Неявно преобразуване на типове данни – автоматично без загуба на информация – Явно преобразуване на типове данни – ръчно с възможна загуба на информация – Преобразуване на типове данни с функции
  • 37. Оператори, изрази и съждения • Какво е „израз“? – Поредица от оператори, литерали и променливи даващи като резултат определена стойност – Изразите се изчисляват на базата на определени правила за приоритет и асоциативност • Приоритет на операциите – Определя реда, в който се изпълняват операциите при изчисляване на даден израз • Асоциативност на операциите – Набор от правила определящ реда на изпълнение на две операции с един и същи приоритет около един и същи операнд
  • 38. Оператори, изрази и съждения • Какво е „съждение“? – Съждението в езиците за програмиране е аналог на изречението – то дава смисъл на „казаното“ и инструктира компютъра да извърши определена дейност. – В езика C# съжденията се отделят със символа “;”. • Какво е „блок“? – Блокът е поредица от едно или повече съждения. – В езика C# блоковете се оформят със затваряне на съжденията между символите “{“ и “}”.
  • 40. Благодаря! • Валери Дачев – – – – valery@david.bg http://vdachev.net/ @vdachev https://www.facebook.com/vdachev • ДАВИД академия – – – – acad@david.bg http://acad.david.bg/ @david_academy https://www.facebook.com/groups/david.academy/