sábado, 5 de marzo de 2016

Capitulo 5: Small Basic. Variables. Parte 2



Diario de un programador.- Dia 10

Sigamos con las variables...
Para graficar la explicación de las variables, pondré un dibujo.



Esta cajita representa una variable. Como se puede ver en esta caja solamente se pueden guardar números enteros (porque está declarada como int) y se puede observar que efectivamente tiene el número 1 en su interior y por último, para poder identificar esa variable de otras variables, se le añadió una etiqueta o nombre, la cual dice "numeros".
Como dije anteriormente, una variable puede cambiar de valor durante la ejecución o el transcurso del programa, como por ejemplo:

int numeros = 1 (Se declara una variable de tipo entero y se le asigna el valor 1)
escribir numeros (se muestra en pantalla el valor de la variable “numeros”)
numeros = 2 (Se asigna un nuevo valor a la variable)
escribir numeros (se muestra el nuevo valor de la variable)

Este pequeño pseudocódigo (pseudocódigo es un tipo de lenguaje informal que sirve para graficar o escribir código sin necesidad de apegarse a la sintaxis de un lenguaje. Más info aquí, el pseudocódigo es como una alternativa al diagrama de flujo. De momento usaré la instrucción "escribir" cuando me refiera a mostrar algún contenido en pantalla y "leer" cuando necesite recibir información que el usuario me indica. Como decía, el pequeño pseudocódigo que escribí sirve para mostrar como una variable cambia su contenido a medida que avanza línea tras línea. En la primera línea se declara la variable “numero” como entero y se le asigna un valor, en este caso 1. En la segunda línea, se muestra en pantalla el contenido o valor de la variable numero, para mostrar el valor de una variable, simplemente hay que nombrarla por su etiqueta o nombre. En la tercera línea, la variable recibe un nuevo valor, en este caso 2. Notar que no es necesario volver a colocar int antes de su nombre, esto es porque la variable ya fue declarada como entero. Así que para cambiar su contenido, simplemente se le da otro valor. Por último, en la cuarta línea, se muestra nuevamente el contenido de la variable numero y como es de esperar, se mostrará con su nuevo valor.
Cuando una variable guarda un valor, también podemos operar con ese valor. Aquí un ejemplo.

int variable1 = 10

int variable2 = 30

int total = variable1 + variable2

Como se puede apreciar, la variable "total" guardará el resultado de la suma entre "variable1" y "variable2", por lo tanto la variable "total" vale 40
Con las cadenas, también pasa algo parecido, pero en este caso, al tratarse de palabras, éstas no se suman, sino que se "unen". El proceso de unir o juntar cadenas se llama concatenación y se hace generalmente con el signo +

string cadena1 = "hola "

string cadena2 = "mundo"

string cadena3 = cadena1 + cadena2

La variable "cadena3" guarda la concatenación entre "cadena1" y "cadena2", por lo tanto, "cadena3" tiene la cadena "hola mundo". En este caso, el contenido de la variable "cadena1", o sea la palabra "hola" tiene un espacio antes de cerrar las comillas, esto lo dejé así para que al concatenar, no aparezcan ambas palabra pegadas. De no haber dejado ese espacio, al mostrar el contenido de la variable "cadena3" hubiera aparecido así: holamundo

¿Qué otras cosas puedo guardar en una variable? Pues de todo, pero siempre el valor será único. Recordar que las variables solamente pueden almacenar un dato a la vez, puede cambiar ese dato, pero siempre será un dato a la vez. No olvidar esto que es importante.
Otra cosa que se puede hacer con las variables es solicitar una información al usuario y la información que nos entregue, la almacenamos en una variable para luego ser usada más tarde. Aquí un ejemplo:

escribir "Ingresa tu nombre "

string nombre =  “” (Se crea una variable de caracteres vacio)

leer nombre (aquí el usuario escribe su nombre y se guarda en esta variable)

escribir "Bienvenido " + nombre

En la primera línea puse la instrucción "escribir" que en pseudocódigo significa que muestre en pantalla lo que le sigue, en este caso la palabra "Ingresa tu nombre".
En la segunda línea declaro la variable "nombre" y posteriormente le asigno la instrucción "leer". Esta instrucción también está en pseudocódigo al igual que la instrucción "escribir". Esta instrucción lo que hace es esperar a que el usuario introduzca información por el teclado y una vez recibida esa información, la almacena en la variable que se le designa. En este caso la variable "nombre". En muchos (por no decir todos) lenguajes de programación están presente estas dos instrucciones, una que muestra información en pantalla (escribir) y otra que reciba información del usuario (leer) y como es de imaginar, cada lenguaje tiene su propia sintaxis para manejar ambas instrucciones, pero en definitiva, es lo mismo. Solamente cambia su sintaxis como ya dije. Mientras no me refiera a un lenguaje en específico, utilizaré estas instrucciones como "escribir" y "leer" ya que sería, a mi modo de pensar, instrucciones genéricas.
Y por último, en la última línea, lo que hago es mostrar por pantalla la palabra "Bienvenido " (con un espacio antes de cerrar la comilla) concatenando la variable "nombre", para así mostrar el mensaje por completo en la pantalla. 

Algo de información que reuní después de leer cientos de mensajes de personas como yo que navegaban por foros es lo siguiente "Es importante recalcar que al momento de ejecutarse la instrucción "leer", el programa espera que el usuario ingrese su nombre, ya que eso es lo que estamos solicitando, pero el usuario podría ingresar cualquier cosa, como por ejemplo un número, ocasionando en la mayoría de los casos que el programa finalice en forma inmediata, debido a que la variable "nombre" espera recibir una palabra para guardar y si recibe un número (que por lo general es un dato de tipo entero) es muy probable que el programa finalice en forma inmediata ya que no sabrá cómo manejar ese dato que recibió. Ese tipo de errores, se conocen como "Errores en tiempo de ejecución", y se puede dar por muchos motivos, como por ejemplo que después de un gran cálculo matemático, se llegue a una división por cero". Por su puesto, esta información no estaba así de literal como lo escribí, sino que más bien lo adapté a lo que estoy haciendo.
Existen formas para evitar en su gran medida que errores como estos se presenten, pero es algo que se estudiará mucho más adelante.


Ejercicios (Porque ejercitando se aprende este asunto) Intenta responder algo diferente a las soluciones propuestas

.- Declarar una variable como entero, otra como cadena y otra como decimal. Asignar un valor a cada una de ellas

int numero = 10
string cadena = “hola”
float decimal = 5.7

.- Declarar tres variables enteras. Asignar un valor a las primeras dos variables. Sumar la primera variable con la segunda y el resultado guardarlo en la tercera variable.

int num1 = 8
int num2 = 2
int total = num1 + num2

.- Cual de las siguientes etiquetas o nombres para variables no son válidos

2datos
Nombre3
Nombre 4
Una_cadena
unNombre
Primer Dato
 
R: - 2datos, porque empieza con un número. Nombre 4, porque hay un espacio entre la palabra y el número. Primer Dato porque hay un espacio entre ambas palabras. 

Eso es todo por ahora, a medida que se practique se aclararán las dudas. En el próximo capítulo se aplicarán las variables a Small Basic. Hasta luego



 
Gustavo J. Cerda Nilo
Junio 2015, última modificación Marzo 2016

1 comentario:

  1. Hola cómo hago si quiero q calcule la edad. Solo con pedir al usuario que ingrese el año de nacimiento

    ResponderEliminar

C++ El apuntador This

El apuntador This En C++, cada objeto tiene acceso a su propia dirección a través de un puntero o apuntador denominado This. Lo...