[RAILS] [Ruby] Un programme / concept qui combine each_with_index et recherche

Je vais l'écrire pour la sortie. ʻUtilisez Ruby 2.6.5 installé sur macOS Catalina 10.15.6. ''

Chose que vous voulez faire

Vous souhaitez créer une méthode utilisant ** search ** et ** each_with_index ** qui recherche un nombre et renvoie le résultat du nombre dans lequel il est inclus.

Tout d'abord, je veux avoir un tel tableau

input = [3, 5, 9 ,12, 15, 21, 29, 35, 42, 51, 62, 78, 81, 87, 92, 93]

Donc, je veux faire une recherche qui peut être utilisée comme ceci


search(12, input)
=>4e

search(7, input)
=>Ce numéro n'est pas inclus

À propos de each_with_index

** each_with_index ** est l'une des méthodes standard intégrées à Ruby. En même temps que l'itération de l'élément, vous pouvez également afficher le numéro de l'élément traité.


#each_with_Comment utiliser l'index

Nom de la séquence.each_with_index  do |item, i|

end

** Exemples plus détaillés d'utilisation de each_with_index **


cigarettes = ["MEVIUS", "highlight", "LuckyStrike"]

cigarettes.each_with_index do |item, i|
 puts "#{i}La deuxième cigarette est#{item}est."
end

Si vous exécutez cette ↑, vous obtiendrez le résultat de sortie suivant.

La 0ème cigarette est MEVIUS.
La première cigarette est le point culminant.
La deuxième cigarette est Lucky Strike.

Maintenant le sujet principal, comment faites-vous?

  1. Quoi qu'il en soit, vous devez définir vous-même la méthode ** search **.
  2. Préparez deux arguments formels. (Tage_i, entrée)
  3. Entrée de tableauÀeach_with_indexの使い方に当てはめて・・・。ブロック変数にも2つ引数À渡しす(なんとなく | i, index |Je l'ai fait).
  4. S'il est inclus, il y a ~, et s'il n'est pas inclus, il y a ~, vous devriez donc utiliser une branche conditionnelle si ...? Si vous entrez i et qu'il est égal à target_num, les put avant retour sont affichés. Je me demande si je peux répéter autant d'éléments que je veux en revenir!
  5. Organisez le tableau et appelez-en un comme essai

array.rb



def search(tage_i, input)
  input.each_with_index do |i, index|
    if i == tage_i
      puts"#{index + 1}Est dans le second!"
      return
    end
  end
  puts "Ce numéro n'est pas inclus"
end

input = [3, 5, 9 ,12, 15, 21, 29, 35, 42, 51, 62, 78, 81, 87, 92, 93]
search(11, input)

résultat スクリーンショット-2020-08-24-23.42.57.jpg

Au fait, sortons les nombres qui s'appliquent ...

array.rb



def search(tage_i, input)
  input.each_with_index do |i, index|
    if i == tage_i
      puts"#{index + 1}Est dans le second!"
      return
    end
  end
  puts "Ce numéro n'est pas inclus"
end

input = [3, 5, 9 ,12, 15, 21, 29, 35, 42, 51, 62, 78, 81, 87, 92, 93]
search(11, input)
search(29, input) #Ajout de nombres qui remplissent les conditions de "~ th!"

スクリーンショット-2020-08-24-23.42.57.jpg

En tous cas

Pouvez-vous réfléchir lentement et attentivement ...? Je ne peux pas nier que je ne peux comprendre que la surface, alors je vais prendre une note. Je pense que je vais le mettre à jour à nouveau.

Recommended Posts

[Ruby] Un programme / concept qui combine each_with_index et recherche
[Ruby] Un programme qui détermine les nombres premiers
Combinaison de recherche et each_with_index
[ruby] Création d'un programme qui ne répond qu'à des conditions spécifiques
J'ai écrit un programme de recherche d'itinéraire dans TDD et j'ai essayé de le refactoriser
Un programme qui calcule la puissance de 2 à 100
Une histoire qui sépare la logique métier et le modèle
Ruby sum est une histoire sobre et étonnante
Programme Janken utilisant Ruby et son test (test-unit)
Je souhaite utiliser PowerMock dans une classe qui combine des tests paramétrés et des tests ordinaires