На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
  
    > Задачи для начинающих ruby , collections, arrays
      Всем здравствуйте, я тут новенькая, сегодня приступила к изучению ruby, и сразу возникли проблемы. Я уверена, что подобная тема уже есть, но я ее создала, чтобы привлечь больше внимания т.к. реально нужна помощь, в кротчайшие сроки.
      Не могу описать на руби решение элементарной задачи.
      Написала на php & java, и все равно не могу перевести.

      Задача:
      Напишите скрипт Ruby, который позволит пользователю ввести несколько имён (без фамилий). Когда пользователь вводит 'quit', скрипт должен вывести имена в алфавитном порядке (друг под другом) и напечатать каждое второе имя в обратном порядке.

      Примерное решение:
      Это класс который тупо приветствует всех.
      class HelloEveryone
      attr_accessor :names

      # Создать объект
      def initialize(names = "Guest")
      @names = names
      end

      # Поприветствовать всех
      def say_hi
      if @names.respond_to?("each")

      # Поскольку @names - это некий список, перебрать его элементы
      @names.each do |name|
      puts "Hello #{name}!"
      end
      else
      puts "Hello #{@names}!"
      end
      end

      Для вывода в алфавитном порядке есть такой метод:
      a = [ "d", "a", "e", "c", "b" ]
      a.sort #=> ["a", "b", "c", "d", "e"]
      a.sort {|x,y| y <=> x } #=> ["e", "d", "c", "b", "a"]
      А чтобы выводить по очереди, я имею ввиду, первое слово с буквы А, второе с буквы Я итд. Это можно сделать с помощью деления по модулю, например: если some_name%2==0, то выводим в обратном порядке, если 1, то в положенном.

      Помогите пожалуйста все эти домыслы объединить в код.
      ExpandedWrap disabled
         

      Люди плз не проходите мимо, реально очень нужна помощь.
        Используйте плиз тег code для оформления кода!
        Для вывода в алфавитном порядке используйте метод sort
        ExpandedWrap disabled
          a = ["beta", "alpha", "gamma"] #=> ["beta", "alpha", "gamma"]
          a.sort!   #=> ["alpha", "beta", "gamma"]

        Где а - это Ваш массив с именами.
        Для вывода в обратном порядке используйте
        ExpandedWrap disabled
           
          a.reverse! #=> ["gamma", "beta", "alpha"]

        Правда не совсем понятно что Вам надо вывести в обратном порядке - то ли массив с именами, то ли реверснуть буквы в каждом имени.
          Цитата Мохнатый @
          Используйте плиз тег code для оформления кода!
          Для вывода в алфавитном порядке используйте метод sort
          ExpandedWrap disabled
            a = ["beta", "alpha", "gamma"] #=> ["beta", "alpha", "gamma"]
            a.sort!   #=> ["alpha", "beta", "gamma"]

          Где а - это Ваш массив с именами.
          Для вывода в обратном порядке используйте
          ExpandedWrap disabled
             
            a.reverse! #=> ["gamma", "beta", "alpha"]

          Правда не совсем понятно что Вам надо вывести в обратном порядке - то ли массив с именами, то ли реверснуть буквы в каждом имени.

          Вроде как ясно написанно:
          Цитата
          напечатать каждое второе имя в обратном порядке
            С другой стороны я написал каким методом пользоваться. Строка в Ruby это такой же массив и его легко реверснуть.
            0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
            0 пользователей:


            Рейтинг@Mail.ru
            [ Script execution time: 0,0261 ]   [ 15 queries used ]   [ Generated: 8.02.23, 23:35 GMT ]