Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите разобраться в программе, Не понимаю что делает код 
:(
    Опции темы
UDeaPI
Дата 16.1.2016, 13:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 16.1.2016

Репутация: нет
Всего: нет



Добрый день!
Недавно начал программировать на Ruby.
На одном форуме нашел хорошую книгу и там написана программа которая пишет вам ваше число. (например, ввод - 34 => thirty four)
Я не понимаю как она работает и в книги она плохо описана.
Можете мне её пояснить что и как пожалуйста? (все выражение я понимаю типа return while def и прочие..)

Вот код:

Код

def englishNumber number
    if number < 0
        return 'Please enter a number that bigger than 0'
    end
    if number > 100
        return 'Please enter a number that less than 100'
    end
    
    numString = ''
    
    left = number
    write = left/100
    left = left - write*100
    
    if write > 0
        return 'One hundred'
    end    
    
    write = left/10
    left = left - write*10
    
    if write > 0
        if write == 1
            if left == 0
                numString = numString + 'ten'
            elsif left == 1
                numString = numString + 'eleven'
            elsif left == 2
                numString = numString + 'twelve'
            elsif left == 3
                numString = numString + 'thirteen'
            elsif left == 4
                numString = numString + 'fourteen'
            elsif left == 5
                numString = numString + 'fifteen'
            elsif left == 6
                numString = numString + 'sixteen'
            elsif left == 7
                numString = numString + 'seventeen'
            elsif left == 8
                numString = numString + 'eighteen'
            elsif left == 9
                numString = numString + 'nineteen'
            end
            
            left = 0
        elsif write == 2
            numString = numString + 'twenty'
        elsif write == 3
            numString = numString + 'thirty'
        elsif write == 4
            numString = numString + 'forty'
        elsif write == 5
            numString = numString + 'fifty'
        elsif write == 6
            numString = numString + 'sixty'
        elsif write == 7
            numString = numString + 'seventy'
        elsif write == 8
            numString = numString + 'eighty'
        elsif write == 9
            numString = numString + 'ninety'
        end
        
        
        if left > 0
           numString = numString + '-'
        end
    end
write = left
left = 0

if write > 0
    if write == 1
        numString = numString + 'one'
    elsif write == 2
        numString = numString + 'two'
    elsif write == 3
        numString = numString + 'three'
    elsif write == 4
        numString = numString + 'four'
    elsif write == 5
        numString = numString + 'five'
    elsif write == 6
        numString = numString + 'six'
    elsif write == 7
        numString = numString + 'seven'
    elsif write == 8
        numString = numString + 'eight'
    elsif write == 9
        numString = numString + 'nine'
        
    end
    
end

if numString == ''
    return 'zero'
end
numString
end

puts englishNumber(  0)
puts englishNumber(  9)
puts englishNumber( 10)
puts englishNumber( 13)
puts englishNumber( 32)
puts englishNumber( 90)
puts englishNumber(100)
puts englishNumber(111)


    

Это сообщение отредактировал(а) UDeaPI - 16.1.2016, 13:42
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Ruby: Общие вопросы"
source777
  • С чего начать? начинаем
  • Ссылки на полезные ресурсы смотрим тут
  • Обязательно следуйте правилам Vingrad.
  • Пожалуйста, прочитайте рекомендации по работе в форуме и навигации по Vingrad.
  • Для вставки кодов Ruby используйте тег: [code=ruby]код[/code]. Когда в будущем подсветка синтаксиса для Ruby будет реализована, весь исходных код преобразится.
  • Используйтe чекбокс "Транслит" (возле кнопок кодов), если у Вас нет русских шрифтов.
  • Помните, для каждого вопроса должна быть своя тема.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, source777.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Ruby: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1112 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.