Los comentarios son anotaciones que el programador incorpora en el código fuente para mejorar la comprensión del programa/algoritmo.
La computadora ignora las líneas de comentarios en el momento de ejecución y/o compilación por lo que solo es a fines que el código se entienda mejor por una persona que lo leerá a futuro.
Si un programa tiene comentarios o no es indistinto para la ejecución del mismo o el procesamiento por parte de la computadora.
Se recomienda el uso de comentarios siempre que sea posible y que sea información precisa, breve y descriptiva.
Existen muchas formas de representar comentarios y cada lenguaje elije una forma.
En Java, Javascript, C, C++, C#... se utilizan los caracteres /* */ y/o //para definir un comentario.
/* El siguiente programa hace un saludo en Java */
class Saludo {
public static void main(String[] args) {
// Imprime un saludo
System.out.println("¡Hola alumnos y alumnas!");
}
}
¿Cuál el la diferencia entre /* */ y //? Es que el primero permite hacer comentarios de mas de una línea, mientras que el segundo se utiliza para hacer comentarios de una sola línea.
Existen muchas formas de representar comentarios y cada lenguaje elije una forma.
En Python, Ruby, Bash... se utilizan el caracter # para definir un comentario.
# El siguiente programa hace un saludo en Python
# Otra línea de comentario requiere otro '#'
print("Hola alumnos y alumnas")
# Ya están todxs saludados
El caracter # son para hacer comentarios de una línea.
En las prácticas de pseudocódigo usaremos el # para definir comentarios.
Hasta ahora, estuvimos viendo el control del algoritmo mediante las estructuras vistas: secuencia, selección, repetición, iteración.
Con dichas estructuras fuimos capaces de manipular el control del algoritmo.
A continuación veremos como manipular los datos de un algoritmo.
Un dato es un elemento u objeto de la realidad que los algoritmos representan y son capaces de modificar y procesar.
Cuando se resuelven problemas con computadora, muchas veces se modelizan los objetos reales mediante objetos más abstractos, representables y entendibles sobre una computadora.Un dato puede ser el nombre de una persona, la temperatura actual, el valor de un producto de un supermercado, etc.
Es importante entender que el mecanismo de resolución de problemas involucra generalmente una transformación o un procesamiento de los datos, manejado por el control del algoritmo.
Los algoritmos modifican objetos de la realidad para resolver problemas. La representación de los datos estará dada por sus características principales o por la información que nos interese saber.
A continuación comenzaremos extendiendo la notación empleada en los algoritmos para dar lugar a las declaraciones y representación de los datos.
En general, durante la ejecución de un programa es necesario manipular información que puede cambiar continuamente. Por este motivo, es imprescindible contar con un elemento que permita variar la información que se maneja en cada momento. Este elemento es lo que se conoce como variable.
Una variable permite almacenar un valor que puede ser modificado a lo largo de la ejecución del programa.
Técnicamente, una variable es un lugar en la memoria RAM de la computadora donde se almacenará dicha información.
Identificadores: Son los nombres descriptivos que se asocian a los datos (variables) para representar, dentro del programa su valor.
Los identificadores van tan de la mano de las variables que a veces se les conoce directamente como nombre de la variable.
Pero los identificadores no solo van asociados a las variables. También a muchas mas estructuras que veremos mas adelante.
En algunos lenguajes, existe un área específica para declarar variables. Otros lenguajes no tienen esta restricción y permiten declarar variables en cualquier momento.
A fines prácticos usaremos un área específica luego de la declaración del programa con un comentario # variables donde declararemos las variables y mantenernos ordenados.
programa ejemplo
# variables
# Aquí van a ir todas las variables que usemos
# main
repetir (10 veces)
limpiar
fin_programa
Y también usaremos la sección #main para definir donde comienza el programa.
Independientemente del lenguaje de programación que se use, la definición de un tipo de dato implica considerar:
Resumen tipos básicos:
A veces también son llamados tipos de datos primitivos.
También conocido como boolean o bool es un tipo de datos que puede tener los valores Verdadero (True) o Falso (False).
Los tipos lógicos pueden compararse entre sí. Y las operaciones son las siguientes:
Es uno de los tipos de datos fundamentales. Dentro de los cuales podemos destacar:
int o Integer.float.¿Cuándo usar un int y cuando un float?
Se llama string (cadena) al tipo de datos utilizado para representar cadena de caracteres como palabras, texto, etc.
Los tipos string se representan con el texto entre comillas simples ' ' o dobles " ".
"Esto es un string"
'Esto también es un string'
¿Cuándo usar uno u otro?... Podemos decir que si necesitamos usar el caracter ' en el string es obligatorio el uso de las comillas dobles.
# Para representar este string es obligatorio usar dobles.
"I didn't do it!"
Los operadores booleanos básicos son:
A continuación veremos ejemplos de lógica.
| p | not p |
|---|---|
| True | False |
| False | True |
| p | q | p and q |
|---|---|---|
| True | True | True |
| True | False | False |
| False | True | False |
| False | False | False |
Si hay un valor en false, el resultado será siempre false.
p: esta_limpio | q: hay_pared_delante
| p | q | p or q |
|---|---|---|
| True | True | True |
| True | False | True |
| False | True | True |
| False | False | False |
Si hay valor en true, el resultado será siempre true.
p: esta_limpio | q: hay_pared_delante
Suponiendo que x=False e y=True
| Relación | Sintaxis | Ejemplo | Resultado |
|---|---|---|---|
| Igualdad | == |
x==y |
False |
| Igualdad | == |
x==False |
True |
| Distinto | != |
x!=y |
True |
| Distinto | != |
x!=True |
True |
Seguimos...
| Relación | Sintaxis | Ejemplo | Resultados posibles |
|---|---|---|---|
| Menor | < |
x<y |
True o False |
| Mayor | > |
x>y |
True o False |
| Menor o igual | <= |
x<=y |
True o False |
| Mayor o igual | >= |
x>=y |
True o False |
| Igualdad | == |
x==y |
True o False |
| Distinto | != |
x!=y |
True o False |
x e y son dos variables cualquieras.
Los operadores de comparación serán utilizados para comparar variables, valores o condiciones en los programas. El resultado de una comparación entre dos datos será True o False.
Suponiendo que x=1 e y=2
| Relación | Sintaxis | Ejemplo | Resultado |
|---|---|---|---|
| Suma | + |
x+y |
3 |
| Resta | - |
x-y |
-1 |
| Producto | * |
x*y |
2 |
| División | / |
x/y |
0.5 |
| División entera | // |
x//y |
0 |
| Módulo | % |
x%y |
1 |
En los lenguajes de programación los tipos int y float tienen compatibilidad o una forma de compatibilizarlos. Por lo que se pueden realizar esas tareas sobre enteros y float. Prestar atención que a veces el resultado puede ser un tipo u otro.
Suponiendo que x=10 es posible operar con números directamente.
| Relación | Sintaxis | Ejemplo | Resultado |
|---|---|---|---|
| Suma | + |
x+x+1 |
21 |
| Resta | - |
x-20 |
-10 |
| Producto | * |
x*x |
100 |
| División | / |
x/2 |
5 |
En los lenguajes de programación los tipos int y float tienen compatibilidad o una forma de compatibilizarlos. Por lo que se pueden realizar esas tareas sobre enteros y float. Prestar atención que a veces el resultado puede ser un tipo u otro.
Hay muchísimas operaciones que se pueden hacer con los string. Entre las mas básicas:
| Relación | Sintaxis | Ejemplo | Resultado |
|---|---|---|---|
| Comparar | == | "Hola" == "Chau" | False |
| Concatenar | + | "Hola" + "Chau" | "HolaChau" |
¿Cuánto es '2'+'2'? : '22' Existen muchas mas operaciones sobre string que se verán cuando veamos Python.
Algunas formas de manipular strings en PythonEn la programación, existe una instrucción para asignar un valor a una variable u objeto. Por lo general, se usa el signo igual =
# Ejemplo de asignación en Python
# Se asigna el valor 0 a la variable contador
contador = 0
# Se asigna el valor de contador a contador_2
contador_2 = contador
Aunque al principio pueda parecer confuso, recordar que el símbolo = es usado para asignación. Si buscamos comparación, el símbolo será ==.
Veamos el siguiente pseudocódigo:
programa ejemplo_asignacion
# variables
int x = 10 # Ahora x es igual a 10
int y = x # Se copia el valor de x en y
# main
x= x+1
imprimir("El valor de Y es: {y}")
fin_programa
¿Qué imprime el programa?
Respuesta:El valor de Y es: 10x es copiado a y antes de hacer el cambio en x.
En Java, las variables de tipo primitivo se declaran de la siguiente manera:
// Se declara una variable de tipo int vacía
int x;
// Se declara una variable int y se le asigna el valor 0
int y = 0;
En Python puede variar la sintaxis:
x = 0 # Se declara una variable y se le asigna el 0
y = 10 # Se declara una variable y se le asigna el 10
x = "Hola" # Ahora x tiene el valor "Hola"
Existen notables diferencias entre estos dos lenguajes. Mientras que en Java debemos ser específicos para definir el tipo de datos y el mismo NO puede cambiar (tipado estático), en Python al asignarle el valor, se establece el tipo y el mismo puede cambiar durante la ejecución del programa (tipado dinámico).
Para la práctica de pseudocódigo usaremos la siguiente sintaxis:
programa ejemplo_1
# variables
int x = 1 # Se crea x y se le asigna el valor 1
int y = 0 # Se crea y y se le asigna el valor 0
# main
x = 20 # Ahora x vale 20
y = 1 # Ahora y vale 1
si (x > y)
imprimir("X es mayor")
sino
imprimir("Y es mayor")
fin_programa
¿Qué hace el programa del ejemplo?
Para la práctica de pseudocódigo usaremos la siguiente sintaxis:
programa ejemplo_2
# variables
bool hay_stock = False # Se crea la variable en falso
float precio = 100.50 # Se crea precio
str mensaje = "NO hay stock"
# main
si NO (hay_stock)
imprimir (mensaje)
sino
imprimir(precio)
fin_programa
¿Qué hace el programa del ejemplo?
Para la práctica de pseudocódigo usaremos la siguiente sintaxis:
# Ejemplo con la aspiradora robot
programa ejemplo_3
# variables
int baldosas_limpiadas = 0
# main
mientras (NO hay_pared_delante)
si (NO esta_limpio)
limpiar
balsosas_limpiadas = balsosas_limpiadas + 1
avanzar
# fin mientras
imprimir("Se limpiaron",balsosas_limpiadas,"baldosas")
fin_programa
¿Qué hace el programa del ejemplo?
Ya vimos variables que, es básicamente un lugar para almacenar un dato y ese dato puede variar. Ahora bien, es posible también almacenar datos pero que los mismos deben permanecer sin alteración durante la ejecución del programa. Eso son las constantes.
Aunque pueda carecer de sentido al principio, las constantes son muy importante para la claridad del código.
No veremos el uso de constantes en las prácticas de pséudo-código, pero sí tendremos en cuenta dicho concepto para mas adelante.
Es importante destacar que algunos lenguajes proveen mecanismos especiales para definir constantes. Y es una convención que las constantes estén siempre escritas en mayúsculas.
Ya hemos mencionado que un algoritmo tiene entrada (input) y salida output de datos.
Una salida es un dato que nos devuelve la computadora que podemos ver o escuchar. Por ejemplo, un texto en pantalla, una luz que se enciende o un sonido.
Se utiliza para tener un feedback del programa al usuario.
Por ahora venimos trabajando con la salida que, en pseudocódigo, imprime un mensaje en pantalla.
imprimir("Hola Mundo")
Hola Mundo
Es una forma muy común de informar el estado interno de un programa y lo usaremos muy a menudo en nuestro proceso de aprendizaje.
Casi todos los lenguajes de programación proveen una instrucción para imprimir algo en pantalla. El famoso Hola mundo.
Los programas y algoritmos, procesan datos y generan salidas. Los datos deben obtenerlos de alguna forma, una de ellas es que el usuario los ingrese manualmente.
Los lenguajes tienen alguna forma de ingresar datos por teclado. Usaremos esta forma para ingresar manualmente.
Usaremos input para ingresar datos por teclado
# variables
int x = 0
# main
imprimir("Ingrese un valor numérico: ")
x = input() # El programa se detiene
imprimir("El valor ingresado es", x)
De esa manera, el programa se detiene y espera que el usuario ingrese un dato por teclado y lo almacenará en la variable x
Ingrese un valor numérico: 5
El valor ingresado es 5
La variable donde se ingrese los datos será una variable más y se podrá operar con ella según lo permita el tipo de datos que estamos esperando.
# variables
int x = 0
# main
imprimir("Ingrese un valor numérico: ")
x = input() # El programa se detiene
si (x > 10)
imprimir("El valor ingresado es mayor a diez")
sino
imprimir("El valor ingresado NO mayor a diez")
Como la variable espera un dato int se espera y se recibe un dato numérico.
Ingrese un valor numérico: 5
El valor ingresado NO mayor a diez
Por el momento, supondremos que los datos se ingresarán correctamente según su tipo de variable esperada.
Escribir un programa que informe la cantidad de veces que fueron necesarias limpiar para que la baldosa (1,39) quede completamente limpia.
Escribir un programa que le pida al usuario una ubicación de x para ubicar al robot en la primer fila.