
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.97.14.88] |
![]() |
|
Сообщ.
#1
,
|
|
|
Всем здравствуйте, я тут новенькая, сегодня приступила к изучению 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, то в положенном. Помогите пожалуйста все эти домыслы объединить в код. ![]() ![]() Люди плз не проходите мимо, реально очень нужна помощь. |
Сообщ.
#2
,
|
|
|
Используйте плиз тег code для оформления кода!
Для вывода в алфавитном порядке используйте метод sort ![]() ![]() a = ["beta", "alpha", "gamma"] #=> ["beta", "alpha", "gamma"] a.sort! #=> ["alpha", "beta", "gamma"] Где а - это Ваш массив с именами. Для вывода в обратном порядке используйте ![]() ![]() a.reverse! #=> ["gamma", "beta", "alpha"] Правда не совсем понятно что Вам надо вывести в обратном порядке - то ли массив с именами, то ли реверснуть буквы в каждом имени. |
Сообщ.
#3
,
|
|
|
Цитата Мохнатый @ Используйте плиз тег code для оформления кода! Для вывода в алфавитном порядке используйте метод sort ![]() ![]() a = ["beta", "alpha", "gamma"] #=> ["beta", "alpha", "gamma"] a.sort! #=> ["alpha", "beta", "gamma"] Где а - это Ваш массив с именами. Для вывода в обратном порядке используйте ![]() ![]() a.reverse! #=> ["gamma", "beta", "alpha"] Правда не совсем понятно что Вам надо вывести в обратном порядке - то ли массив с именами, то ли реверснуть буквы в каждом имени. Вроде как ясно написанно: Цитата напечатать каждое второе имя в обратном порядке |
Сообщ.
#4
,
|
|
|
С другой стороны я написал каким методом пользоваться. Строка в Ruby это такой же массив и его легко реверснуть.
|