## Въведение

Това е малко ръководство, което ще Ви отнеме не повече от 20 минути.
Приемаме, че вече сте свалили и инсталирали Ruby. Ако това не е така,
можете да го направите в страницата за [инсталиране][installation].

## Интерактивна работа с Ruby

Ruby пристига с програмка, наречена IRB ( Interactive Ruby ), която Ви
дава възможност да въвеждате и тествате Ruby код интерактивно. По този
начин можете да се запознаете с основите на езика, без да пишете,
запаметявате и стартирате кода си във/от файл всеки път.

Стартирайте IRB в зависимост от операционната система, която ползвате:

* Ако ползвате **macOS**, отворете `Terminal` и напишете `irb`.
* Ако ползвате **Linux**, отворете shell и напишете `irb`.
* Ако ползвате **Windows**, отвoрете `Interactive Ruby` от секцията
  Ruby в Start Menu.

<figure class="highlight"><pre><code class="language-irb" data-lang="irb"><span class="gp">irb(main):001:0&gt;</span></code></pre></figure>

Напишете : `"Hello World"`

<figure class="highlight"><pre><code class="language-irb" data-lang="irb"><span class="gp">irb(main):001:0&gt;</span><span class="w"> </span><span class="s2">"Hello World"</span>
<span class="p">=&gt;</span> <span class="s2">"Hello World"</span></code></pre></figure>

## Ruby току що ви се подчини !

Какво се случи ? Да не би да написахме най-кратката “Hello World”
програма ? Не точно. Вторият ред е просто начин за показване на
резултата от последната “команда”, въведена в IRB. Ако искаме наистина
да отпечатаме “Hello World”, това може да стане така:

<figure class="highlight"><pre><code class="language-irb" data-lang="irb"><span class="gp">irb(main):002:0&gt;</span><span class="w"> </span><span class="nb">puts</span> <span class="s2">"Hello World"</span>
<span class="go">Hello World
</span><span class="p">=&gt;</span> <span class="kp">nil</span></code></pre></figure>

`puts` е метод, който позволява да отпечатате израз/текст/низ в Ruby. А
какво тогава означава `=> nil`? Това е резултата от изпълнения израз.
`puts` винаги връща nil.

## Вашият безплатен калкулатор

Лесно е да превърнем IRB в прост калкулатор:

<figure class="highlight"><pre><code class="language-irb" data-lang="irb"><span class="gp">irb(main):003:0&gt;</span><span class="w"> </span><span class="mi">3</span><span class="o">+</span><span class="mi">2</span>
<span class="p">=&gt;</span> <span class="mi">5</span></code></pre></figure>

Дотук добре, нека пробваме умножение и вдигане на квадрат:

<figure class="highlight"><pre><code class="language-irb" data-lang="irb"><span class="gp">irb(main):004:0&gt;</span><span class="w"> </span><span class="mi">3</span><span class="o">*</span><span class="mi">2</span>
<span class="p">=&gt;</span> <span class="mi">6</span></code></pre></figure>
^

<figure class="highlight"><pre><code class="language-irb" data-lang="irb"><span class="gp">irb(main):005:0&gt;</span><span class="w"> </span><span class="mi">3</span><span class="o">**</span><span class="mi">2</span>
<span class="p">=&gt;</span> <span class="mi">9</span></code></pre></figure>

В Ruby метода `**` е начин да повдигаме на степен. Следва пример с
намиране на корен:

<figure class="highlight"><pre><code class="language-irb" data-lang="irb"><span class="gp">irb(main):006:0&gt;</span><span class="w"> </span><span class="no">Math</span><span class="p">.</span><span class="nf">sqrt</span><span class="p">(</span><span class="mi">9</span><span class="p">)</span>
<span class="p">=&gt;</span> <span class="mf">3.0</span></code></pre></figure>

Резултатът е верен, но какво значи `Math.sqrt` ? И по-точно, какво значи
`Math`?

## Модули и код, групиран по значение

`Math` е вграден модул за извършване на математически операции. Модулите
в Ruby изпълняват две роли. Предният пример показва първата: групиране
на подобни методи чрез общо име. `Math` също така съдържа методи като
`sin()` и `tan()`.

Следва точка. Тя обозначава приемника на съобщението. И от тук следва
въпроса “Какво е съобщение ?”. В този случай съобщението е `sqrt(9)`,
което вика метода `sqrt` с параметър `9`.

Резултатът от извикването на този метод е `3.0`. Можете да забележите
появата на десетична запетая. Това е така, защото в повечето случаи
числото, върху което изпълняваме метода за намиране на корен, не е цяло,
а реално.

Изниква въпроса “как да процедираме за да запазим резултатът от
операциите ?” . Отговора се крие в присвояването му в променлива.

<figure class="highlight"><pre><code class="language-irb" data-lang="irb"><span class="gp">irb(main):007:0&gt;</span><span class="w"> </span><span class="n">a</span> <span class="o">=</span> <span class="mi">3</span> <span class="o">**</span> <span class="mi">2</span>
<span class="p">=&gt;</span> <span class="mi">9</span>
<span class="gp">irb(main):008:0&gt;</span><span class="w"> </span><span class="n">b</span> <span class="o">=</span> <span class="mi">4</span> <span class="o">**</span> <span class="mi">2</span>
<span class="p">=&gt;</span> <span class="mi">16</span>
<span class="gp">irb(main):009:0&gt;</span><span class="w"> </span><span class="no">Math</span><span class="p">.</span><span class="nf">sqrt</span><span class="p">(</span><span class="n">a</span><span class="o">+</span><span class="n">b</span><span class="p">)</span>
<span class="p">=&gt;</span> <span class="mf">5.0</span></code></pre></figure>

Леснотата на писане на калкулатора ни отклони от кода в началото –
изписването на “Hello World”.
За това, нека [прехвърлим отново фокуса си там](2/)

[installation]: /bg/documentation/installation/
