Un algoritmo es una sucesión finita de pasos no ambiguos que se
pueden llevar a cabo en un tiempo finito.
Quiero ver una película de vídeo:
• Elijo una película de las de mi colección. • Compruebo SI TV y vídeo están conectados a la red (y procedo). • SI la TV está apagada, la enciendo, SI NO, pues no. Y lo mismo con el vídeo. • Abro el estuche de la película. • Saco la película de su estuche. • Introduzco la película en el vídeo. Dejo el estuche sobre el vídeo. • SI la TV no está en el canal adecuado, la cambio, SI NO, pues no. • Cojo los mandos a distancia (el del TV y el del vídeo). • Me pongo cómodo. • Pulso PLAY en el mando del vídeo. Postulado • La descripción de cada paso no me lleva a ambigüedades: los pasos son absolutamente explícitos y no inducen a error. • El número de pasos es finito. Las variables, usos y costumbres • Declaración de variables: • ENTERO: i,j,k • REAL: x,y,z • CARACTER: a,b,c • Fin de la declaración de variables • Una variable, en el momento que la declaramos, está vacía, hueca, sin vida, sentido ni VALOR. Y hasta que dicha variable no tenga valor, lo mejor será no hacer cosas con ella. Entonces, aquí viene la pregunta: ¿y cómo meto en mi variable un 7? ¿Puedo meter un 23? • Para poder meter cosas en las variables, lo que hacemos es asignarles un valor, es decir, "Pepe es una variable de tipo entero. Si a Pepe le asigno 14, a partir de ahora, poner Pepe es tanto como poner 14". • Para ello, nosotros vamos a usar un símbolo, una flecha. Cuando queramos hacer asignaciones, haremos esto: • Pepe <- 14 (asignamos un entero) • Carolina <- -9.65 (asignamos un real) • Juan <- 'a' (asignamos un caracter) • Y podemos hacer cuantas asignaciones queramos a nuestra variable. Por ejemplo, si hacemos: • Pepe <- 14 Pepe <- 4 Pepe <- -3 Pepe <- 42 al final, en Pepe tenemos almacenado el valor 42. • El principio y el fin • Para delimitar el comienzo y el final de un algoritmo, o de un trozo de algoritmo (por ejemplo, en los ciclos, y otros, como vamos a ver), haremos lo siguiente: • inicio ... • Aquí va el algoritmo en cuestión • fin Estructuras de control
• Las estructuras de control son de tres tipos:
• Secuenciales • Selectivas • Repetitivas Veamos un ejemplo: queremos leer el radio de un círculo, calcular su área y mostrar por pantalla al usuario el resultado • Declaración de variables • REAL: radio, area • fin declaración de variables • inicio • mostrar por pantalla 'dame el radio del circulo' • leer del teclado la variable radio • area <- 3.14159*radio • mostrar por pantalla 'el area del circulo es:‘ • mostrar por pantalla el contenido de la variable area • fin Estructuras selectivas • Estas estructuras se utilizan para TOMAR DECISIONES (por eso también se llaman estructuras de decisión o alternativas). Lo que se hace es EVALUAR una condición, y, a continuación, en función del resultado, se lleva a cabo una opción u otra. • SI se cumple la condicion, • ENTONCES: Hago el paso 1 .... • Hago el paso N • fin del SI • Muy estrictamente, sería: • SI se cumple la condicion, • ENTONCES: • inicio Hago el paso 1 .... • Hago el paso N • fin • fin del SI • Por ejemplo, queremos calcular la raíz cuadrada de un número; sin embargo todos sabemos (¡supongo! ;)) que la raíz cuadrada de un número negativo NO es un número real. Esto quiere decir que, tras leer el número por teclado, tendremos que ver si es positivo, ya que sólo en este caso podremos calcular su raíz cuadrada. • Veamos como queda: • Declaracion de variables REAL: numero, raiz • fin declaracion de variables • inicio mostrar por pantalla 'introduce un numero‘ • leer del teclado la variable numero • SI numero >= 0 ENTONCES: • raiz <- raiz_cuadrada(numero) • mostrar por pantalla 'la raiz cuadrada es:' • mostrar por pantalla raiz • fin del SI • fin Alternativas dobles
• SI se cumple la condicion, ENTONCES:
• Hago el paso A1 • .... • Hago el paso AN • y SI NO se cumple la condicion, ENTONCES: • Hago el paso B1 • .... • Hago el paso BM • fin del SI • Ejercicios • Sobre estructuras secuenciales • Escribir un algoritmo que calcule el área de un triángulo. • Escribir un algoritmo que calcule el área de un rectángulo. • Escribir un algoritmo que calcule el área de un trapecio. • Escribir un algoritmo que calcule el precio de un artículo tras aplicarle un 19% de IVA. • Escribir un algoritmo que intercambie el contenido de dos variables.