Captura de datos
Datos desde el Teclado
La idea de este ejercicio es recibir datos de diferentes tipos desde el teclado, almacenarlos en variables y luego mostrarlos en pantalla.
En varios casos puede ser necesaria alguna conversión del dato.

Ejercicio:
Se pide al usuario que ingrese su nombre y su edad y el programa realizado mostrará en pantalla un mensaje de bienvenida que contenga dicha información
En Java
Para recibir datos del teclado con java necesitaremos importar (traer algo que está por fuera del archivo actual, declarado en otro archivo) la clase “Scanner” que se encuentra dentro del paquete “java.util” (un paquete es una forma de organizar grupos de clases)
import java.util.Scanner;
Ya con la clase importada debemos crear un objeto de esta clase (adquiere todas los atributos y métodos de esta clase),
Scanner sc = new Scanner(System.in);
sc será un nuevo objeto de la clase Scanner y se usara para ingreso de datos (System.in) este objeto es quien en últimas recoje el dato del teclado y lo almacena.
Luego este dato lo almacenamos en la variable “nombre” que fue previamente declarada como String, usmos nextLine() que es un método del objeto sc que trabaja con texto.
nombre = sc.nextLine();
con el método nextLine() del objeto sc se recibe el dato del teclado
Repetiremos el procedimiento con la edad.
El código quedará:
package datoteclado;
import java.util.Scanner;
public class DatoTeclado{
public static void main(String[] args) {
// TODO code application logic here
int edad;
String nombre;
Scanner sc = new Scanner(System.in);
System.out.println(“Ingresa tu nombre: “);
nombre = sc.nextLine();
System.out.println(“Ingresa tu edad: “);
edad = sc.nextInt();
System.out.println(“Bienvenido “+nombre+” tu tienes “+edad+” años”);
}
}
En Python
Para recibir datos por teclado en python usaremos la función input(), esta función nos devolverá lo que se ingrese por teclado en un string, esto es muy útil cuando ingresamos cadenas de caracteres como nombres, frases, etc.
nombre = input()
recibe dato del teclado como string y lo almacena en la variable nombre.
Si recibimos un número desde el teclado se almacenará como string no como número, si solo queremos mostrarlo en pantalla será perfecto, pero si queremos hacer algún cálculo con él deberá ser transformado en entero con la función int(), esto lo podemos hacer después de almacenado el dato en una variable:
num = int(numero)
la variable numero sigue siendo string pero la variable num tiene la conversión a entero. Esto también lo podemos hacer directamente en el momento mismo de la captura del dato:
num = int(input())
Captura el dato con input() e inmediatamente lo transforma en entero, luego si lo almacena en la variable.
También podemos mostrar mensajes en el momento de la captura del dato, es decir no se necesitará print() para mostrar un mensaje prebio al solicitar los datos.
print(“Ingresa tu nombre”)
nombre=input()
Esto puede quedar en una sola línea de código
nombre = input(“Ingresa tu nombre: “)
El código quedará:
nombre=input(“Ingresa tu nombre: “)
edad=int(input(“Ingresa tu edad: “))
print(“Bienvenido “,nombre,” tu edad es “,edad)
Recordemos que esté código lo escribimos en cualquier editor de texto y lo guardamos con extensión .py
ejemplo: nombre_archivo.py
Para ejecutarlo desde la consola de nuestro sistema operativo y ubicados en la misma carpeta del archivo .py escribimos:
pyton nombre_archivo.py
En C++
En c++ existen diferentes formas de capturar datos desde el teclado, unas mas recomendables (mas sencillas, eficientes y seguras) que otras.
Empecemos viendo la función scanf(), para poder usarla se debe incluir la libreria stdio.h, tener declarada la variable según el tipo de dato a ingresar e indicarla mediante la combinación de caracteres correspondiente (%d para números enteros, %f para flotantes, %c para caracteres, %s para string).
Si es un número por ejemplo:
int numero;
scanf(“%d”,&numero); //fijarse en el “&” que se antepone a la variable
printf(“el numero ingresado es %d\n”,entero);
Si es una letra por ejemplo:
char letra;
scanf(“%c”,&letra);
printf(“La letra ingresada es %c\n”,letra);
Cuando se desea recbir un texto, es decir una cadena de caracteres será necesario declarar un arreglo de caracteres indicandole el tamaño tanto en la decalración como en el momento de la captura. Para mostrarlo en pantalla usaremos %s.
char nombre[50]; //declaramos un arreglo de 50 caracteres
scanf(“%50s”,nombre);
printf(“Bienvenido %s”,nombre);
El código quedará:
#include <stdio.h>
int main(){
int edad;
char nombre[50];
printf(“Ingresa tu nombre “);
scanf(“%50s”,nombre);
printf(“Ingresa tu edad “);
scanf(“%d”,&edad);
printf(“Bienvenido %s, tienes %d anios “,nombre,edad);
return 0;
}
Otra forma de hacer el mismo ejercicio es recibir datos del teclado con la instrucción cin, para ello necesitamos incluir la libreria “iostream” que ya hemos usado en ejercicios anteriores, recordemos que es necesario usar el espacio de nombres std.
Cuando usamos la libreria “iostream” podemos utilizar el tipo de dato string.
#include “iostream” //llamar libreria
using namespace std; // usar espacio de nombre std
int main(){
string nombre; //declarar variable tipo string
cin>>nombre; //recibir dato por teclado
cout<<“tu nombre es “<<nombre<<“\n”; //mostrarlo en pantalla
return 0;
}
El código completo quedará:
#include
using namespace std;
int main(){
int edad;
string nombre;
cout<<“Ingresa tu nombre \n”;
cin>>nombre;
cout<<“Ingresa tu edad \n”;
cin>>edad;
cout<<“Bienvenido “<<nombre<<” tu edad es “<<edad<<“\n”;
return 0;
}
Con cin igual q con scanf, tendremos problemas al ingresar espacios en la cadena de caracteres, una forma de solucionar esto es usar la función getline() que recibirá dos parametros de entrada: cin y la variable donde deseo almacenar el dato.
getline(cin, variable);
lo que reciba por teclado queda almacenado en variable
De esta forma no tendremos problemas al ingresar cadenas de caracteres con espacios como en el caso de un nombre completo.
El código será:
#include
using namespace std;
int main(){
int edad;
string nombre;
cout<<“Ingresa tu nombre \n”;
getline(cin,nombre);
cout<<“Ingresa tu edad \n”;
cin>>edad;
cout<<“Bienvenido “<<nombre<<” tu edad es “<<edad<<“\n”;
return 0;
}
Para finalizar podemos decir que printf() y scanf() son originales y fueron creados para C, pero en C++ se vuelven un poco complejos de utilizar, por lo tanto cout, cin y getline() son mas aconsejables en C++ y los usaremos con mayor frecuencia.
En Ruby
Para capturar un dato del teclado se utiliza la instrucción “gets” de la siguiente forma
variable = gets
En la variable se almacenará lo que se escriba por teclado como una cadena de caracteres con salto de línea, queremos convertirlo en un número para poder realizar operaciones debemos usar “to_i” para entero o “to_f” para flotante. Ejemplo:
entero = gets.to_i #se almacenará de tipo entero
flotante = gets.to_f #se almacenará de tipo flotante
Si queremos quitar el salto de línea con que se almacena la cadena usaremos “chomp”
nombre=gets.chomb
Si escribimos el código de la siguiente forma:
puts “Hola compañero cual es tu nombre”
nombre = gets
puts “escribe tu edad”
edad = gets
puts “Bienvenido #{nombre} tu edad es #{edad} gracias por tu visita”
El mensaje saldrá con saltos de línea, si queremos que salga en una sola línea y guardar la edad en formato entero
El código será:
puts “Hola compañero cual es tu nombre”
nombre = gets.chomp
puts “escribe tu edad”
edad = gets.chomp
puts “Bienvenido #{nombre} tu edad es #{edad} gracias por tu visita”
Variables en C#
En C# para tomar dato del teclado usaremos el método ReadLine de la clase Console y el dato tomado lo almacenaremos en una variable tipo string, ya que este método captura los datos en un tipo string:
string cadena;
cadena = Console.ReadLine();
Si queremos ingresar un dato númerico será necesario convertir el string a entero usaremos Int32.Parse() de la siguiente forma:
int entero;
entero = Int32.Parse(valor_string);
Este método nos servirá cuando que necesitemos convertir datos a int
Para mostrar los datos en pantalla, como ya hemos visto, podemos usar dos formas:
concatenar mensaje con variable usando “+”
Console.WriteLine(“Bienvenido”+nombre+” tienes “+edad+” años”);
de esta forma el código sería:
using System;
namespace Teclado
{
class Program
{
static void Main(string[] args)
{
string nombre;
int edad;
Console.WriteLine(“Ingresa tu nombre”);
nombre = Console.ReadLine();
Console.WriteLine(“Ingresa tu edad”);
edad = Int32.Parse(Console.ReadLine());
Console.WriteLine(“Bienvenido”+nombre+” tienes “+edad+” años”);
}
}
}
O podemos embeber las variables dentro del mensaje usando $ y {}
Console.WriteLine($”Binevenido {nombre} tienes {edad} años”);
El código sería:
using System;
namespace Teclado
{
class Program
{
static void Main(string[] args)
{
string nombre;
int edad;
Console.WriteLine(“Ingresa tu nombre”);
nombre = Console.ReadLine();
Console.WriteLine(“Ingresa tu edad”);
edad = Int32.Parse(Console.ReadLine());
Console.WriteLine($”Binevenido {nombre} tienes {edad} años”);
}
}
}