|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
31.01.2013, 17:15 | #1 |
Новичок
Джуниор
Регистрация: 31.01.2013
Сообщений: 1
|
Ruby, задачки для начинающих
Добрый день. Решила несколько задачек, вроде бы всё (более-менее) работает, но хотелось бы, чтобы специалисты дали комментарии относительно правильности и оптимальности - как можно было бы всё это сделать поизящнее? Заранее спасибо.
Код:
Код:
Код:
Код:
Большое спасибо. UPD: разобралась с последним. В качестве "вторых" элементов массива выступает переменная, куда заносится результат совпадения с круглыми "сохраняющими" скобками. Чтобы получить правильный ответ, нужно использовать "несохраняющие" круглые скобки: вместо (...) нужны (?:...) таким образом: Код:
Последний раз редактировалось Rigby; 01.02.2013 в 13:09. |
20.04.2017, 13:23 | #2 |
Регистрация: 03.04.2017
Сообщений: 5
|
Было интересно почитать. Жаль что никто так ничего и не ответил.
|
02.05.2017, 16:21 | #3 |
Новичок
Джуниор
Регистрация: 02.05.2017
Сообщений: 2
|
Промолчали все потому видимо, что задачка для начинающих! А для меня вроде и не как для начинающих. Решение себе взяла на вооружение в прогу всуну по замене слов на ссылки.
|
02.05.2017, 16:32 | #4 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Скорее потому что на этом форуме примерно полтора человека пишущих на Руби.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
15.10.2017, 21:26 | #5 |
Регистрация: 15.10.2017
Сообщений: 9
|
Может быть здесь найдете баг
def stock_picker(a) l = a.length jim = (0..l-2).to_a m = a #Sc = a puts "hiii" puts a (0..l-2).each do |i| #jim[i] = i #m[i] = a[i] puts a[i] puts i (i+1..l-1).each do |j| if a[j] > m[i] # do m[i] = a[j] jim[i] = j end puts j puts i puts a[i] end puts a[i] #c[i] = m[i]-a[i] end #c = m-a puts jim puts m puts a f_i = 0 #(0..l-2).each do |i| #f_i = 0 (0..l-2).each do |j| if (m[j]-a[j]) > (m[f_i]-a[f_i]) f_i = j puts j.to_s end end #end result = [f_i, jim[f_i]] end b = [17,3,6,9,15,8,6,1,10] puts stock_picker(b) Когда первый раз печатаю a[i], стр 11, - получается заданный a[i], а после цикла по j, стр 21, - он превращается в максимальный элемент массива a с номерами большими i. |
16.10.2017, 00:40 | #6 |
Программист
Участник клуба
Регистрация: 23.06.2009
Сообщений: 1,772
|
Без описания задачи, без форматирования, без единого комментария..
От того, что Вы написали Код:
Код:
Последний раз редактировалось Black Fregat; 16.10.2017 в 00:50. |
16.10.2017, 01:03 | #7 |
Регистрация: 15.10.2017
Сообщений: 9
|
, у Вас не стало два разных массива..
то есть m и а - один массив а как мне сделать два массива - один m а второй а Спасибо Это и есть баг. Только как его преодолеть я не понимаю я мыслил так - у меня есть а, я делаю его копию с именем m, а затем m - меняю Последний раз редактировалось fenek644; 16.10.2017 в 01:05. |
16.10.2017, 01:04 | #8 |
Программист
Участник клуба
Регистрация: 23.06.2009
Сообщений: 1,772
|
Код:
|
16.10.2017, 01:06 | #9 |
Регистрация: 15.10.2017
Сообщений: 9
|
попробую
|
16.10.2017, 01:11 | #10 |
Регистрация: 15.10.2017
Сообщений: 9
|
Все - заработало - Спасибо - до новых встреч
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
C++ для начинающих | Haruko_ | Помощь студентам | 0 | 23.10.2012 21:41 |
Pascal (задачки для начинающих) | Pontiac228 | Помощь студентам | 11 | 12.05.2011 07:25 |
Круглый стол: Ruby on Rails для начинающих айтишников | BelOlga | Свободное общение | 0 | 17.06.2010 21:57 |
С++ для начинающих | Maxim1 | Общие вопросы C/C++ | 10 | 31.05.2010 00:22 |