Slide 1

Slide 1 text

Що е то програмиране?

Slide 2

Slide 2 text

https://twitter.com/fjsteele/status/434249935316615168

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

Ruby?

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

Език за програмиране

Slide 7

Slide 7 text

Език за програмиране = Купчина правила, с които управлявате компютър

Slide 8

Slide 8 text

Сходно на естествените езици, но с (доста) по-стриктни правила.

Slide 9

Slide 9 text

Не е трудно да се научите.

Slide 10

Slide 10 text

Езици за програмиране • Ruby (Руби) е език за програмиране • Има и други (C#, Java, C++, PHP, JavaScript, Clojure, Scheme и още 2783...) • Можем да ползваме произволен* език, за да правим това, което ще правим днес • Руби е готин и ще ползваме него • Може да си изкарвате прехраната с Ruby :)

Slide 11

Slide 11 text

Нещата, които ще научите, важат и за други езици.

Slide 12

Slide 12 text

Show me the code!

Slide 13

Slide 13 text

Ето ви малко Ruby 5.times  {      puts  "Здравейте!"   }

Slide 14

Slide 14 text

Внимание - термини • Код = съвкупност от команди и данни • Кодът на Ruby (а и повечето други езици за програмиране) се пази в текстови файлове • Изпълнява се от програма (интерпретатор), кръстена “ruby” • Може да си играете с Ruby и в т.нар. “интерактивна конзола” (REPL) – irb

Slide 15

Slide 15 text

Основи на програмирането 1. Данни 2. Имена 3. Действия 4. Условия 5. Цикли 6. Изрази

Slide 16

Slide 16 text

1. Данни • Всичко се върти около данните – зареждате данни, манипулирате данни, произвеждате данни. • Програмиране = зареждане на данни, манипулация на данни, произвеждане на данни (по автоматизиран начин)

Slide 17

Slide 17 text

1. Данни – зареждане 1. “Зареждане” на данни – прочитане от файлове, вход от потребителя, прочитане от друга програма (база данни, интернет и т.н.) 2. Вмъкване на данните в самата програма

Slide 18

Slide 18 text

1. Данни – типове 1. Данните имат различни типове 2. Всеки тип поддържа определен набор операции 3. Например, числата поддъжат деление: 42 / 2 4. Какво става, ако разделим “бетон” / “небе”?

Slide 19

Slide 19 text

1. Данни – типове 1. Текст – без ограничение в дължината 2. Числа – цели, с плаваща запетая, рационални, комплексни 3. Съставни типове данни – списъци от неща, речници с неща 4. Наши собствени типове данни – “продукт”, “поръчка”, “потребител”, …

Slide 20

Slide 20 text

2. Имена 1. Механизъм да реферираме към определени данни 2. Името си го избираме ние и го “насочваме” към някакви данни 3. Може да сменяме накъде сочи името 4. Правим манипулации с името, реално работейки с данните зад него 5. Имената наричаме променливи (variables)

Slide 21

Slide 21 text

Имена (променливи) и данни (стойности): някакво_име  =  данни   Например: event_name  =  "Rails  Girls  Sofia”   coaches  =  50   accepted_participants  =  coaches  *  2 2. Имена

Slide 22

Slide 22 text

3. Действия Всички данни (стойности) поддържат определени операции/действия: данни.действие   данни.друго_действие()   данни.пак_действие(други_данни)   данни.друго_действие(и,  разни,  опции)

Slide 23

Slide 23 text

3. Действия Шаблонът е:     данни.име_на_действие(опции)

Slide 24

Slide 24 text

3. Действия Например: “Радостина”.length   6  *  7   Date.today   participants.first(5)

Slide 25

Slide 25 text

3. Действия Например: “Радостина”.length()   6.*(7)   Date.today()   participants.first(5)

Slide 26

Slide 26 text

Обекти? 1. Обекти = тип данни + операциите, които можем да правим с тях. 2. Днес ще приемем, че “данни” и “обекти” са взаимозаменяеми.

Slide 27

Slide 27 text

4. Условия Начин за взимане на решения по време на работа на програмата.

Slide 28

Slide 28 text

4. Условия if  условие      изпълни  това,  ако  условието  е  истина   else      иначе  изпълни  тази  част   end

Slide 29

Slide 29 text

4. Условия братчеда  =  Човек.нов(name:  ‘Пешо')  

Slide 30

Slide 30 text

4. Условия братчеда  =  Човек.нов(name:  'Пешо')   if  братчеда.гладен?      братчеда.иди_да_обядваш   else      братчеда.изиграй_едно_хоро   end

Slide 31

Slide 31 text

5. Цикли • Начини да повтаряте едно и също действие многократно (т. нар. "цикли") • Повече от един начин да стане това; избираме си различни, според ситуацията • Принципът е еднакъв в повечето езици за програмиране

Slide 32

Slide 32 text

5. Цикли 30.times  do      направи_коремна_преса   end

Slide 33

Slide 33 text

5. Цикли 5.times  {      puts  "Здравейте!"   }

Slide 34

Slide 34 text

5. Цикли 5.times  do      puts  "Здравейте!"   end

Slide 35

Slide 35 text

5. Цикли while  cat.alive?      cat.eat      cat.sleep      cat.purr_for_diversion      cat.plot_for_world_domination   end

Slide 36

Slide 36 text

6. Изрази • Всичко в Ruby е израз. Всяко валидно парче код, което можете да пуснете самостоятелно в irb и да не получите грешка. • Всеки израз си има резултат (някаква стойност) • Ще наричаме тази стойност “оценка” • Ще видите това по-късно в irb

Slide 37

Slide 37 text

Най-важният шаблон данни.име_на_действие(опции)   обект.име_на_действие(опции)