![]() |
|
![]() ![]() ![]() |
|
aer0sm1th |
|
|||
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 8.12.2006 Репутация: нет Всего: нет |
Вот такие задачки по одномерным массивам:
1. Вывести индексы массива в том порядке, в котором соотвествующие им элементы образуют возрастающую последовательность. 2. В численном массиве найти сумму отрицательных элементов. 3. Найти все индексы, по которым располагается максимальный элемент. 4. В массиве переставить в начало элементы, стоящие на четной позиции, а в конец -- стоящие на нечётной. Задачу 2 я решил, а проблемы возникли с задачами в которых что-либо зависит от индекса. Эти задачи в учебнике находятся до асоциативных масивов и конструкций if. Я полагаю автора имели ввиду решение типа massiv.xxx{}.yyy{}...... |
|||
|
||||
SoWa |
|
|||
![]() Харекришна ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2422 Регистрация: 18.10.2004 Репутация: нет Всего: 74 |
А нельзя ли создать тип данных вида
Извини, что на Дельфи. Думаю, у вас такое тоже есть. Так вот создаешь массив из таких элементиков, в поля каждого кладешь соответствующие значения и индексы. Упорядочиваешь массив по значениям. Выводишь индексы. Это первая задача. Остальные- тоже через тип данных решить легко. -------------------- Всем добра ![]() |
|||
|
||||
aer0sm1th |
|
|||
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 8.12.2006 Репутация: нет Всего: нет |
Нет. Масив обычный(из чисел).
Я конечно могу его в асоциативный переклепать и т.д. , но я думаю должно быть другое решение. ![]() PS: дочитате первый пост до конца. Это сообщение отредактировал(а) aer0sm1th - 7.1.2007, 16:00 |
|||
|
||||
Void |
|
|||
![]() λcat.lolcat ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 1 Всего: 173 |
Пришло в голову такое, может быть не самое краткое и красивое, но решение:
-------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
|||
|
||||
SoWa |
|
|||
![]() Харекришна ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2422 Регистрация: 18.10.2004 Репутация: нет Всего: 74 |
Вести учет перестановок. Стек заюзать, еще чего нибудь. Решаемо.
-------------------- Всем добра ![]() |
|||
|
||||
Pete |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 318 Регистрация: 5.1.2006 Где: Москва Репутация: 2 Всего: 12 |
1.
2.
Добавлено @ 16:46 Void, про zip не знал, спасибо! 1.
Это сообщение отредактировал(а) Pete - 8.1.2007, 16:37 -------------------- Совет учиться на ошибках других бесполезен; научиться чему-либо можно только на собственных ошибках. (Бернард Шоу) Не откладывай на завтра то, что можешь сделать сегодня. (Пословица) А теперь выпишем точное значение числа пи... (Препод) Жахни, Пендальф! © Гоблин |
||||||
|
|||||||
Pete |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 318 Регистрация: 5.1.2006 Где: Москва Репутация: 2 Всего: 12 |
3.
Добавлено @ 16:55 4-е аналогично первому. -------------------- Совет учиться на ошибках других бесполезен; научиться чему-либо можно только на собственных ошибках. (Бернард Шоу) Не откладывай на завтра то, что можешь сделать сегодня. (Пословица) А теперь выпишем точное значение числа пи... (Препод) Жахни, Пендальф! © Гоблин |
|||
|
||||
aer0sm1th |
|
|||
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 8.12.2006 Репутация: нет Всего: нет |
Спасибо огромное, ситуация проясняется
![]() Но остались некоторые вопросы: что такое zip, b << i ? |
|||
|
||||
Pete |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 318 Регистрация: 5.1.2006 Где: Москва Репутация: 2 Всего: 12 |
http://www.ruby-doc.org/core/classes/Array.html#M002250
b << i --- значит, добавить объект (в данном случае --- число) i к массиву b (в конец). -------------------- Совет учиться на ошибках других бесполезен; научиться чему-либо можно только на собственных ошибках. (Бернард Шоу) Не откладывай на завтра то, что можешь сделать сегодня. (Пословица) А теперь выпишем точное значение числа пи... (Препод) Жахни, Пендальф! © Гоблин |
|||
|
||||
Rubynovich |
|
||||||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 51 Регистрация: 7.6.2006 Репутация: 3 Всего: 3 |
1.
2. лучшего решения предложить не могу 3.
4.
Добавлено @ 22:50 4. как более короткий вариант
|
||||||||
|
|||||||||
aer0sm1th |
|
|||
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 8.12.2006 Репутация: нет Всего: нет |
Все. Теперь все. Всем спасибо.
![]() Это сообщение отредактировал(а) aer0sm1th - 10.1.2007, 03:05 |
|||
|
||||
pR13S7 |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 3.3.2006 Репутация: нет Всего: нет |
2.
3.
4.
Решить 1 и в одну-две срочки не cмог. Всё упирается в то, что методы index и find_index возвращяют ПЕРВОЕ вхождение элемента. Решение задачи #3, предложеное Rubynovich, выходит за рамки того, что было изложено в викибуке перед тем как предложены вышеуказаные упражнения (хотя там и про index даже ниего не говорилось) Это сообщение отредактировал(а) pR13S7 - 10.1.2008, 16:58 |
||||||
|
|||||||
pR13S7 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 3.3.2006 Репутация: нет Всего: нет |
Решил все задачи по одномерным массивам, выложу тут, авось кому-то пригодиться (сам проверял работает всё коректно)
|
|||
|
||||
pR13S7 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 3.3.2006 Репутация: нет Всего: нет |
Решение задач по двумерным массивам:
Это сообщение отредактировал(а) pR13S7 - 22.1.2008, 12:12 |
|||
|
||||
130 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 4.1.2007 Репутация: нет Всего: нет |
Альтернативные решения задач из первого поста (по возможности, с использованием перечислителя).
|
|||
|
||||
pR13S7 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 3.3.2006 Репутация: нет Всего: нет |
130, уважаемый, какие перечисления, автор топа же сказал, что задачи были выложены в разделе, где не то что перечисления, даже операторы условного перехода не были рассказаны ;-)
|
|||
|
||||
130 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 4.1.2007 Репутация: нет Всего: нет |
pR13S7, действительно, я погорячился. Не удосужился прочитать оригинал (викибук). Но с другой стороны, в первом посте всё же не указано, какими конкретно методами следует решать задачи, а ассоциативные массивы и условные операторы в n1...n4 и не использовались.
![]() |
|||
|
||||
130 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 4.1.2007 Репутация: нет Всего: нет |
дубликат
Это сообщение отредактировал(а) 130 - 25.1.2008, 00:16 |
|||
|
||||
YankovskyAndrey |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 107 Регистрация: 23.10.2008 Где: СПБ Репутация: нет Всего: нет |
##Задачи про массивы
##Одномерные array=[1,-2,-6,4,2,8,-6,8,2,-1] 1. Вывести индексы массива в том порядке, в котором соответствующие им элементы образуют возрастающую последовательность. p (0..array.size-1).sort_by{|v| array[v]} 2. В численном массиве найти сумму отрицательных элементов. p array.find_all{|v| v<0}.inject(0){|v,result| result+v} 3. Найти все индексы, по которым располагается максимальный элемент. max=array.max array.each_index{|x| if array[x]=max then puts "#{x}" end} 4. В массиве переставить в начало элементы, стоящие на чётной позиции, а в конец — стоящие на нечётной. even,odd=Array.new,Array.new array.each_with_index do |element, index| ar = index % 2 == 0 ? even : odd ar << element end p odd+even |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Ruby: Общие вопросы" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, source777. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Ruby: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |