14 - Arreglos: recorrido mediante un for

Recordemos una de las características de Ruby es poder resolver un problema utilizando distintas herramientas que nos provee el lenguaje.

Vimos en el concepto anterior el recorrido de un arreglo utilizando la estructura repetitiva while, ahora veremos que podemos utilizar en muchas situaciones la estructura repetitiva for.

Problema 1:

Definir un arreglo que almacene 5 enteros. Sumar todos sus elementos y mostrar dicha suma. Utilizar el ciclo for.

Programa: ejercicio067.rb

arreglo = [10, 7, 3, 7, 2]
suma = 0
for elemento in arreglo
  suma = suma + elemento
end
print "Los elementos del arreglo son:", arreglo, "\n"
print "La suma de todos sus elementos es:", suma

Primero definimos un arreglo por asignación con 5 elementos:

arreglo = [10, 7, 3, 7, 2]

Definimos un acumulador para sumar los elementos del arreglo:

suma = 0

Mediante un ciclo for obtenmos sucesivamente cada elemento del arreglo y lo sumamos:

for elemento in arreglo
  suma = suma + elemento
end

En cada ciclo del for se almacena en la variable "elemento" un valor del arreglo (en la primer vuelta se almacena el "10" en la segunda el "7" y así sucesivamente)

Mostramos los datos almacenados en el arreglo:

print "Los elementos del arreglo son:", arreglo, "\n"
print(lista)

Finalmente mostramos el acumulador:

print "La suma de todos sus elementos es:", suma

Problemas propuestos

  • Definir por asignación un arreglo con 8 elementos enteros. Contar cuantos de dichos valores almacenan un valor superior a 100.
  • Definir un arreglo que almacene por asignación los nombres de 5 personas. Contar cuantos de esos nombres tienen 5 o más caracteres.
Solución
ejercicio068.rb

arreglo = [1000, 6000, 400, 23, 130, 400, 60, 2000]
cantidad = 0
for elemento in arreglo
  if elemento > 100
    cantidad = cantidad + 1
  end
end 
print "El arreglo esta constituido por los elementos:", arreglo, "\n"
print "La cantidad de valores mayores a 100 en el arreglo son:", cantidad




ejercicio069.rb

nombres = ["juan", "ana", "marcos", "carlos", "luis"]
cantidad=0
for elemento in nombres
  if elemento.length >= 5
    cantidad = cantidad + 1
  end
end
puts "Todos los nombres son #{nombres}"
puts "Cantidad de nombres con 5 o mas caracteres: #{cantidad}"