Форум программистов, компьютерный форум, киберфорум
Наши страницы
Ruby
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
Rubyman
1 / 1 / 0
Регистрация: 31.10.2012
Сообщений: 39
1

Минимальный положительный элемент массива

22.11.2012, 20:30. Просмотров 1062. Ответов 3
Метки нет (Все метки)

Здравствуйте!
Помогите определить минимальный положительный элемент массива (включая 0).
Получается, мне необходимо каким-то образом избавиться от отрицательных чисел - я просто присваиваю этим отрицательным числам nil, а потом с пмощью метода compact удаляю их, но у меня все равно программа не работает и код нерациональный (2 цикла):

Ruby
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# coding: utf-8
def minElementArray(array)
  min, i, j = array[0], 0, 0
  while i < array.size
    if array[i] < 0
      array[i] = nil
    end
    i += 1
  end
  array = array.compact
  while j < array
    if array[j] < min
      min = array[j]  
    end
    j += 1
  end
  return min
end
 
puts "Введите элементы массива через пробел"
array = gets.split.map { |n| n.to_i }
 
puts "#{minElementArray(array)}"
Помогите разобраться, какая ошибка в коде, а лучше напишите свой вариант.
Спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.11.2012, 20:30
Ответы с готовыми решениями:

Как изменить элемент массива?
Здравствуйте! Схематично код выглядит так: namePart1 =...

Найти минимальный положительный элемент массива
Найти минимальный элемент массива, если известно, что значения элементов...

Найти минимальный положительный элемент массива
Найти минимальный положительный элемент массива. &lt;-- Вот собсна и задание.

Заменить минимальный положительный элемент массива нулем
1) заменить минимальный положительный элемент нулем. 2) заменить элемент с...

Определить минимальный положительный элемент двумерного массива
Помогите пожалуйста) 1. Сформировать матрицу 5*5, вывести на лист. 2....

3
arni
906 / 871 / 62
Регистрация: 06.01.2010
Сообщений: 2,367
Записей в блоге: 6
22.11.2012, 21:00 2
Ruby
1
puts array.select{|i| i>=0}.min
1
Rubyman
1 / 1 / 0
Регистрация: 31.10.2012
Сообщений: 39
22.11.2012, 23:17  [ТС] 3
Да, спасибо за решение, но мне необходимо вычислять все вручую, а не встроенными методами.
0
Nameless One
Эксперт С++
5786 / 3435 / 351
Регистрация: 08.02.2010
Сообщений: 7,448
23.11.2012, 15:34 4
Цитата Сообщение от Rubyman Посмотреть сообщение
Помогите разобраться, какая ошибка в коде
Цитата Сообщение от Rubyman Посмотреть сообщение
Ruby
1
while j < array
Ты сравниваешь число с массивом, надо так:

Ruby
1
while j < array.size
..

Добавлено через 27 минут
Цитата Сообщение от Rubyman Посмотреть сообщение
а лучше напишите свой вариант.
Цитата Сообщение от Rubyman Посмотреть сообщение
мне необходимо вычислять все вручую, а не встроенными методами.
Как-то так:

Ruby
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# -*- coding: utf-8 -*-
#!/usr/bin/env ruby
 
module Enumerable
  def filter
    unless block_given?
      enum_for :filter
    else
      [].tap do |result|
        each do |item|
          result << item if yield item
        end
      end
    end
  end
 
  def minimal(&p)
    p ||= Proc.new { |x, y| x <=> y }
    first, result = true, nil
    each do |item|
      first, result = false, item if first || p.call(result, item) > 0
    end
    result
  end
end
Пример:
Ruby
1
2
3
4
irb(main):020:0> gets.split.map(&:to_i).filter { |x| x >= 0 }.minimal
8 -5 -1 3 4 2 6
2
irb(main):021:0>
Добавлено через 7 часов 50 минут
UPD: Что-то я перемудрил с нумераторами… Изменил код.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.11.2012, 15:34

Найти минимальный положительный элемент одномерного массива.
Ввод массива с клавиатуры

Заменить минимальный положительный элемент массива нулем
Заменить минимальный положительный элемент массива нулем. написала...

Заменить минимальный по модулю положительный элемент массива нулем
1. Дан Массив целых чисел из n элементов, заполненный случайным образом числами...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru