Logo Studenta

5 _Ruby_01a (1)

¡Estudia con miles de materiales!

Vista previa del material en texto

PB - Universidad de Piura
1
Eugenio Alvarado Pérez
Of. 32, Edificio 80
eugenio.alvarado@udep.pe
Programación Básica
Unidad 2
Introducción al lenguaje Ruby (a)
Programa fuente
Lenguajes
Lenguaje natural
Lenguaje máquinaLenguaje de programación
Programa fuente
puts 'Ingrese un número positivo par'
n1 = gets.to_i
if n1>0 && n1%2==0
puts 'Ha ingresado un número positivo par'
else
puts 'No ha ingresado un número positivo par'
end
puts ''
Programa fuente
puts 'Ingrese un número positivo par'
n1 = gets.to_i
if n1>0 && n1%2==0
puts 'Ha ingresado un número positivo par'
else
puts 'No ha ingresado un número positivo par'
end
puts ''
2/26
Lenguajes
Lenguaje natural
Lenguaje máquina
Compilador o
Interprete
Programa fuente Programa objeto
Lenguaje de programación
3/26
Ruby es...
https://www.ruby-lang.org/es/
https://es.wikibooks.org/wiki/Programación_en_Ruby
https://pine.fm/LearnToProgram/ 4/26
Ruby es un lenguaje de programación interpretado, reflexivo y orientado a objetos,
creado por el programador japonés Yukihiro "Matz" Matsumoto, quien comenzó a
trabajar en Ruby en 1993, y lo presentó públicamente en 1995. Combina una
sintaxis inspirada en Python y Perl con características de programación orientada a
objetos similares a Smalltalk. Comparte también funcionalidad con otros lenguajes
de programación como Lisp, Lua, Dylan y CLU. Ruby es un lenguaje de
programación interpretado en una sola pasada y su implementación oficial es
distribuida bajo una licencia de software libre.
Wikipedia
Tipos de datos
Números: enteros y reales (flotantes)
 En la mayoría de los lenguajes de programación (y Ruby no es la excepción) los
números sin decimales son llamados enteros (traducción de integers en su
versión en Inglés), y los números con punto decimal normalmente son llamados
números de punto flotante o sólo flotantes ya que proviene de su original en
inglés floats.
Texto o cadenas (string)
 Letras, números y símbolos.
Tipo Ejemplos
integer 3, 45, -3458
float 3.1415, 0.25, -1.41 
string ‘Hola’, ‘Udep 2016’, ‘pepe_25@hotmail.com’
5/26
Variables
 Para guardar datos en la memoria del computador,
necesitamos darle un nombre a éstos. Los programadores
se refieren a este proceso como asignación y llaman a
dichos nombres: variables.
 Una variable puede ser cualquier secuencia de letras o
números y guion bajo, pero el primer carácter debe estar
en minúsculas.
 El comando puts permite mostrar el contenido de variables
que almacenan texto.
6/26
https://www.ruby-lang.org/es/
https://es.wikibooks.org/wiki/Programación_en_Ruby
https://pine.fm/LearnToProgram/
PB - Universidad de Piura
2
# (comentario)
 Todo texto que coloquemos con el símbolo numeral (#) adelante, se convierte 
en un comentario y no es ejecutado por el programa (se ignora la línea)
#Este es un comentario
#Programa que resuelve…
#Elaborado por XX…
puts ‘Ingrese un número’
gets x
…
7/26
PUTS (escriba)
 El comando puts permite mostrar mensajes, un mensaje se debe poner entre 
comillas simples (o dobles).
x = 'Hola 3!!'
puts 'Hola, soy un programa…'
puts 'Primera clase de Ruby'
puts "Hola 2!!"
puts x
8/26
PUTS
Programa Salida
puts 1.0 + 2.0
puts 2.0 * 3.0
puts 5.0 - 8.0
puts 9.0 / 2.0
3.0
6.0
-3.0
4.5
puts 1+2
puts 2*3
puts 5-8
puts 9/2
3
6
-3
4
puts 5 * (12-8) + -15 5
9/26
PUTS
10/26
Programa Salida
puts 'Hola' + 'Juan' 
puts 'Hola ' + 'Juan'
HolaJuan
Hola Juan
puts 'hola ' * 3 hola hola hola
puts 12 + 12
puts '12' + '12'
puts '12 + 12'
24
1212
12 + 12
puts 2 * 5
puts '2' * 5
puts '2 * 5'
10
22222
2 * 5
puts 2 * '5'
puts '2' * '5'
Error
Error
PUTS
Programa Salida
var = 'solo otro ' + 'texto'
puts var
solo otro texto
var = 5 * (1+2)
puts var
15
var1 = 8
var2 = var1
puts var1
puts var2
puts ''
var1 = 'ocho'
puts var1
puts var2
8
8
ocho
8
11/26
GETS (lea)
 El comando gets permite que el usuario ingrese un dato. Todos los datos
ingresados por el usuario son almacenados como texto. Le agrega al final un salto
de línea.
puts 'Ingrese su nombre'
nombre = gets
puts 'Ingrese su apellido'
ape = gets
puts 'Bienvenido '+nombre+' '+ape
Ingrese su nombre
Juan
Ingrese su apellido
Pérez
Bienvenido Juan
Pérez
12/26
PB - Universidad de Piura
3
GETS.CHOMP
 Se utiliza gets.chomp para eliminar el último carácter, que no es visible y que es 
el salto de línea (Enter).
puts 'Ingrese su nombre'
nombre = gets.chomp
puts 'Ingrese su apellido'
ape = gets.chomp
puts 'Bienvenido '+nombre+' '+ape
Ingrese su nombre
Juan
Ingrese su apellido
Pérez
Bienvenido Juan Pérez
13/26
Conversiones
var1 = 2
var2 = '5'
puts var1 + var2
Resultado:
in '+': String can't be coerced into Fixnum (TypeError)
El problema es que la computadora no sabe si
se trata de obtener 7, es decir: 2 + 5 o si se
trata de obtener '25', es decir: '2' + '5'.
14/26
Conversiones
Para obtener la representación en texto de un
objeto, simplemente escribiendo .to_s después
del objeto:
var1 = 2
var2 = '5'
puts var1.to_s + var2
Resultado:
25
15/26
Conversiones
De la misma manera, to_i devuelve la versión
numérica entera de un objeto y to_f devuelve
la versión de punto flotante.
var1 = 2
var2 = '5'
puts var1.to_s + var2
puts var1 + var2.to_i
Resultado:
25
7
16/26
Conversiones
Programa Salida
puts '15'.to_f 15.0
puts '99.999'.to_f 99.999
puts '99.999'.to_i 99
puts '5 es mi número favorito.'.to_i 5
puts '¿Quién pregunta?'.to_i 0
puts 'Tu casa'.to_f 0.0
puts 'fibroso'.to_s fibroso
puts 3.to_i 3
17/26
Conversiones
• El comando gets.to_i permite que el usuario ingrese
un dato, pero en este caso ese dato es convertido en
un número entero.
• Cuando usamos el signo más con números o variables
que contienen números, estamos efectuando una suma.
• Se utiliza .to_s al final de una variable o un número
entero para convertir un número en un texto.
• No se puede utilizar el signo + con números y textos
al mismo tiempo. Todos tienen que ser números o todos
tienen que ser texto.
18/26
PB - Universidad de Piura
4
Conversiones
puts 'Por favor ingrese su nombre'
nombre = gets.chomp
puts 'Por favor ingrese nota de práctica 1'
n1 = gets.to_i
puts 'Por favor ingrese nota de práctica 2'
n2 = gets.to_i
puts 'Por favor ingrese nota de práctica 3'
n3 = gets.to_i
s = n1+n2+n3
puts nombre+' la suma de tus notas es '+s.to_s
puts 'tus notas son: '+n1.to_s+' '+n2.to_s+' '+n3.to_s
19/26
Conversiones
puts 'Por favor ingrese el dividendo'
n1 = gets.to_i
puts 'Por favor ingrese el divisor'
n2 = gets.to_i
c = n1/n2
r = n1%n2
d = n1/n2.to_f
puts 'El cociente de la división es '+c.to_s
puts 'El resto de la división es '+r.to_s
puts 'La división es '+d.to_s
20/26
Condicionales
• Para tomar decisiones respecto a que se debe hacer
ante una determinada situación se utilizan las
estructuras de decisión.
• if es una estructura de decisión que ejecuta lo que
se encuentre contenido en ella siempre y cuando la
condición sea verdadera.
• El operador == se utiliza para comparar si dos
números, textos o variables son iguales. Si son
iguales, se obtiene como respuesta VERDADERO, sino
FALSO.
• La estructura if siempre debe ir acompañada de un end
para indicar cuando finaliza.
21/26
Condicionales
• En este caso se evalúa si n1 es igual a 20, en caso 
eso sea verdadero, la condición del if es verdadera y 
por lo tanto se muestran los mensajes contenidos en 
el if-end.
puts 'Por favor ingrese su nota de PB'
n1 = gets.to_i
if n1>=18
puts 'Has ingresado más de 17'
puts 'Eres un genio :)'
end
puts 'Gracias por usar este programa'
22/26
Condicionales
• Cualquier valor ingresado, diferente a 3 millones 
dará como resultado: No eres popular.
puts '¿Cuántos amigos tiene en facebook?'
n1 = gets.to_i
if n1!=3000000
puts 'No eres popular'
end
23/26
Condicionales
• El código siguiente, valida si el número ingresado es 
positivo o no.
puts 'Ingrese un número:'
n1 = gets.to_i
ifn1>0
puts 'el número es positivo'
else
puts 'el número no es positivo'
end
24/26
PB - Universidad de Piura
5
Condicionales
• El código siguiente, valida si el número ingresado es 
positivo y mayor que 100.
puts 'Ingrese un número:'
n1 = gets.to_i
if n1>0
puts 'El número ingresado es positivo'
if n1>100 
puts 'El número es mayor que 100'
else
puts 'El número no es mayor que 100'
end
else
puts 'El número ingresado no es positivo'
end
25/26
Condicionales
puts 'Escoja su idioma ES/EN:'
idioma = gets.chomp
if idioma=='EN'
puts 'How many friends do you have on Facebook?'
else
puts '¿Cuántos amigos tiene en Facebook?'
end
n1 = gets.to_i
if n1<3000000
if idioma=='EN'
puts 'You are not popular'
else
puts 'No eres popular'
end
end
26/26

Continuar navegando