Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ошибка при формировании массива 
:(
    Опции темы
Checrygin
  Дата 11.8.2011, 14:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



     Начал разбирать с Раби, и при решение задачи на массивы возникла проблема.
Задача: заполнять массив словами пока не встретится пустая строка, после этого отсортировать по алфавиту и показать. Вот мой код 
Код

mas[0]=0
i=0
while mas[i] != ''
  mas[i]= gets.chomp
  i=i+1
end
mas.sort
len= mas.length
j=0
while j <= length
   puts mas[i].to_s
end



Объясните почему ошибка и как ее исравить?
И еще а как тут можно обойтись без sort? В этом же тоже фишка=)        

PM MAIL ICQ Skype   Вверх
WarHog
Дата 17.8.2011, 00:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 122
Регистрация: 20.10.2007
Где: Воронеж

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



Тут не одна ошибка.
1) Нет инициализации массива mas - д.б.
Код

mas = []

или
Код

mas = Array.new

2) условие проверки в первом while неправильное. Ты заполняешь из gets i-й элемент массива, потом инкрементируешь и проверяешь следующий i + 1 элемент
3) ты используешь метод sort, который не изменяет коллекцию, нужен sort!
4) во втором while тоже неправильное условие проверки, length или size возвращает число элементов, которое ты сравниваешь на <= с индексом
5) там же отсутствует инкремент индекса

Только это не очень рубийный код. Я бы написал так:
Код

mas = []
begin
    element = gets.chomp
    mas << element unless element.empty?
end while not element.empty?
mas.sort!
mas.each { |element| puts element }

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

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

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


 




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


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

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