Ruby Начало программирования

Ruby Начало программирования.

http://maxlim.org/

Программы должны быть написаны так, чтобы их могли читать люди, и лишь иногда так, чтобы их могли выполнять машины.


Абельсон и Сассман


По традиции каждая писанина о Ruby должна начинаться с цитаты, с этим ничего не поделать - традиция. Но не будем уходить в тьму истории, для нас важно лишь то, что Ruby существует. Скажу только лишь то, что Ruby – интерпретируемый язык высокого уровня, т.е. для запуска программ написаных на Ruby вам понадобиться интерпретатор, который можно добыть вот отсюда http://www.ruby-lang.org/en/downloads/. Должен сказать, в статье речь идёт о системе Windows, Linux автору, к сожалению не известна, упущение с его стороны.
Итак, нам понадобиться установить Ruby на ваш компьютер. Я лично для этого воспользовался Ruby 1.8.6 One-Click Installer. Предполагаю, что с этим вы справитесь без меня, в этом ничего хитрого нет. После установки стоит выполнить команду ruby --version, команды следует вводить в меню Пуск-Выполнить, по этой команде Ruby выдаст страшную тайну о его, Ruby, версии. Если хотите узнать все ключи, то команда будет выглядеть ruby --help.
Вообще с Ruby идёт приличный редактор кода SciTE, который, по нажатию F5, с удовольствием запустит, то, что вы написали. При условии, конечно, что вы не написали всякую чушь в редакторе. Ещё с Ruby поставляеться менеджер пакетов gem. В gem распространяються всякие примочки для Ruby. Запустить этот менеджер можно командой gem --help, ключ help выдаст список всех ключей. Чтобы просмотреть все имеющиеся у вас на данный момент расширений, вам понадобиться хитрая команда gem list --local, просмотреть все gem, которые вы можете установить – gem list --remote. Ну и наконец чтобы установить нужное вам расширение – gem --install <название >. И, наконец, с Ruby поставляеться irb – интерактивный интерпретатор, который запускаеться командой irb.
После всех этих манипуляций выпьем для храбрости немного сакэ (да, Ruby – японских кровей), и с криком «Банзай!», запустим SciTE и, опять же, по традиции, напишем свою первую программу «Hello world!», которая займёт всего одну строчку:

puts ''Hello world!''

Сохраним файл с именем Helloworld.rb и смело надавим F5. Ура, наша программа заработала! Мы видим в появившейся панели:

>ruby Helloworld.rb
Hello world!
>Exit code: 0

Разберем теперь, что же мы с вами только что написали: puts – на языке Ruby значит «вывести строку», сама же строка заключена в двойные кавычки, хотя можно использовать и одинарные. Разницу между ними я объясню позже. Язык Ruby строился с использованием принципа «наименьшего удивления», поэтому он довольно таки прост в изучении и использовании. Ну раз уж я начал со строк, то давайте ещё немного познакомимся с типом string, на строки в Ruby нет ограничений по их длине. И у строки есть свои методы, поскольку он представлен классом Stirng, в котором все эти методы описаны.
Строки можно складывать друг с другом. Перепишите нашу программу Helloworld:

puts ''Hello world!'' + ''Buy!''
Вывод этой программы:
Hello world!Buy!

Только что мы выполнили сложение строк, правда, строки склеились. Для устранения этого дефекта нужно просто добавить к строке пробел, который тоже является символом. Попробуйте написать вместо ''Buy!'' '' Buy!''. Поздравляю, вы только что исправили небольшую ошибку в своей программе. Точно также строки можно умножать. Попробуйте:

puts ''Hello world!'' * 2
Вывод этой программы:
Hello world!Hello world!

Подумать только, умножение строк! На самом деле это не совсем умножение, в том смысле, к которому мы привыкли. Разберём эту программу, тут написано «вывести строку ''Hello world!'' 2 раза». Это имеет смысл. Попробуйте написать puts 2 * ''Helloworld!'' и запустить, вы увидите ругательство Ruby. Потому что эта программа лишена смысла, помните, в начале статьи, я вам говорил про чушь. Это как раз она самая. Кстати, в правильном варианте, строки опять склеились, но ведь вы уже знаете, как это исправить. И 2 это уже цифра, т.е. говоря языком программистов, целочисленный тип данных. И математические действия, которые с ними можно выполнять, вы наверняка помните ещё со школы:

сложение

+

вычитание

-

умножение

*

деление

/

возведение в степень

**


Попробуем написать программу которая выполнила бы все математические действия из таблицы:

puts 5+2
puts 5-2
puts 5*2
puts 5/2

Сохраните её с любым понравившимся вам именем, и запустите её. Как вам результат вычислений, которые выполнила ваша программа? Вроде бы всё правильно, кроме последнего, ответом на которое наша с вами программа дала 2, вместо ожидаемого 2,5. На самом деле результат верен на все 100%. Просто тип данных, если вы не обратили на это внимание – целочисленный, дробной части у него просто нет. Как же так, скажете вы, как же быть с дробями. Не волнуйтесь, Ruby знает о дробях, просто этот тип данных называется в компьютерном мире: числа, с плавающей точкой. На языке Ruby этот тип данных называется float. Перепишите нашу программу, так, что бы она выводила результат в float. Не забываем сохранять нашу программу, это нужно SciTE:

puts 5.0 + 2.0
puts 5.0 – 2.0
puts 5.0 * 2.0
puts 5.0 / 2.0

Как теперь вам результат? Правильный, с нашей точки зрения. Но ведь он правильный только для нас, для компьютера все результаты из нашей последней программы, в обоих её вариантах, правильные. Что же нам с вами делать, ведь данные которые мы даём компьютеру, должны были быть выведены в соответствующем типе данных. Да, должны были быть выведенны, но компьютер не знал, в каком виде мы хотим получить от него эти данные, мы ему этого не объяснили. Один из законов программирования гласит, компьютер не делает того, что вы хотите, он делает то, что вы ему говорите. Ruby, умеет переводить данные из одного типа в другой, это называется – преобразование типов. В этом нет ничего страшного, оно встречается в нашей жизни куда чаще, чем вы думаете. Хорошо, скажете вы, мы знаем три типа данных: строка, целочисленный и дробные числа, как же нам всё таки их преобразовать из одного типа в другой. Это очень просто. В тип float число 5 переводиться так: либо явным указанием дробной части, либо 5.to_f. В строку 5 переводиться: 5.to_s. В целочисленный тип число 5.2 переведёт 5.2.to_i. При последнем типе преобразования дробная часть будет безжалостно отброшена.
Помните об этом.
Помните о том что в числовые типы данных может быть переведена строка с числом, строка содержащая текст будет преобразована в число 0 (если преобразуете в число с плавающей точкой, то 0.0). Не верите, попробуйте вот такую программу:

puts 5.2.to_i
puts 'Строка'.to_f

Запустите её и вы убедитесь в справедливости этих утверждений. Но числа могут быть и отрицательными, Ruby знает об этом, и знак «-» перед числом будет правильно понят.

puts '-5'.to_i + 2

Результат выполнения этой программы абсолютно правилен.
В завершении этой статьи, я расскажу вам о переменных. Не пугайтесь, в них нет ничего страшного. В наших программах, если вы внимательны, то, могли заметить, что мы просто используем вычисления и преобразования. Без всяких попыток хранить результат. Просто наши программы (пока ещё) слишком малы, что в них использовать переменные. Представьте себе большую программу, в которой результат вычислений в одной её части используется в другой. Каким образом можно передавать результаты вычислений между разными частями программы, причём вычислений в программах бывает очень много, и ошибки в передаче результатов приводят к непредсказуемому результату. А создаются переменные очень просто. Надо просто лишь придумать ей имя, которое должно:

  • начинаться со строчной буквы или знака препинания
  • имя должно содержать латинские буквы, цифры (необязательно) и знака подчеркивания (необязательно)

    Также в больших программах, для облегчения её понимания в будущем (вдруг вам захочется в ней что нибудь переписать через пару - тройку лет), или, если вы пишете её не одиночку, используются комментарии. Комментарии в Ruby начинаются с символа # и заканчиваются концом строки.
    Напишем программу с использованием переменной и комментария:

    var1 = 'строка' # var1 это наша переменная, которая хранит строку
    var2 = 5
    puts var1 * var2

    Вот мы и добрались до конца статьи, надеюсь вам не было скучно.


    Автор: c-ice | Добавлено: 25.5.2009, 21:26 | Просмотров: 14949
    Добавить комментарий


  • Лучшие программы
    Будильник
    Lim BurnDisc
    Радио плеер
    Lim BackUp
    Календарь праздников
    Телефонный справочник
    Аудио конвертер
    LimNote
    Стикеры
    Таймер выключения
    Женский календарь
    Клавиатурный тренажер
    Lim Block Folder
    Lim Screenshot
    Lim Tree Note
    Lim Soft Catalog
    Lim Quick Panel
    Lim Frame Photo
    Lim Image Marker
    Lim Flash Security
    Lim Launcher
    Lim Mosaic Draw
    Рисовалка для детей (Котики)
    Школьный звонок
    Lim Catalog Articles
    Lim Anti Boss
    Рисовалка для детей (Машинки)
    ...

    Игры
    Пасьянс Паганини
    Игра_2048
    Игра Cursor Run
    Пасьянс Косынка
    Пасьянс Паук
    Игра Server War
    Server War History AI
    Складское дело
    Крестики - Нолики 5 в линию
    Сапер
    Точки и квадраты
    Судоку

    Программы
    Блог
    Комментарии
    произошла ошибка, ис...
    Ужасно неудобная гос...
    Согласен трансляция ...
    P.s. Практически каж...
    ...
    Добрый день! Как исп...
    День добрый! недавно...
    Все исправлено. Спас...
    Добрый день! Исправь...
    Добрый день на 10ке,...
    Группа VK
    Поделиться





    Копилка MaxLim.

    Если Вам понравилась наша программа, Вы можете купить нам кофе (или кофемашину) или пивка для поднятия настроения и ускорения написания новых программ и обновлений :), Пополните копилку и разработка программ ускорится :)...
    Пополнить копилку можно несколькими способами:

    1. Переводом через Сбербанк Онлайн - Платежи, Перевод клиенту сбербанка по номеру телефона "Номер телефона - +79284741288" -сумма перевода в рублях.
    2. Кошелек Яндекс Деньги - 41001737394948
    3. Через донаты...

    Контакты для связи:
    Skype - go_ramalex
    mail - maxlim_soft@mail.ru

    Яндекс.Метрика PR-CY.ru Яндекс цитирования
    MaxLim.org - Сайт Компании MaxLim http://vsofte.biz MaxLim.org - Сайт programs.lv SoftOut.ru - Сайт SoftOut.ru  

    Copyright MaxLim © 2007-2023