lunes, 28 de enero de 2013

Tarea algoritmos en Diagrama de Flujos


Para entregar Jueves 31 de Enero de 2013
Elaborar los siguientes algoritmos, utilizando las instrucciones aprendidas en clase que mas le parezcan adecuadas. (Mientras, Si - SiNo, Para)
Los algoritmos deberán ser presentados en hojas con caratula, a mano o computadora en Diagrama de flujo y Pseudocodigo.

1 - Desarrolle un algoritmo que permita leer dos valores distintos, determinar cual de los dos valores es el mayor y escribirlo.

2 - Desarrolle un algoritmo que realice la sumatoria de los números enteros comprendidos entre el 1 y el 10; es decir: 1+2+3+4+5+6+7+8+9+10.
//consejo utilizar el ciclo PARA (For) para resolver el problema, utilizando la misma variable sumada esa misma variable mas uno.
//ejemplo  x = x+1
//mostrar   x

3 - Desarrolle un algoritmo que permita leer un valor cualquiera N y escriba si dicho número es par o impar; y si es negativo o positivo.              

sábado, 26 de enero de 2013


Tareas:


A mano en hojas cuadriculas (carta u oficio da igual). Todas las planas son para el miércoles 30 de enero.

10 veces (Si|| If anidado)



  1. //Algoritmo para determinar la edad de una persona
  2. Inicio Algoritmo 
  3. edad_persona = 16
  4. Si edad_persona > 18
  5.         Mostrar: "La persona es mayor de edad"
  6. Si No
  7.         Si edad_persona >= 12 & edad_persona <= 17
  8.                 Mostrar: "La persona es un adolescente"
  9.         Si No
  10.                 Si edad_persona >= 0
  11.                         Mostrar: "La persona es un niño"
  12.                 Si No
  13.                         "La edad puede ser menor a 0"
  14. Fin Si
  15. Fin Algoritmo    


15 veces (Mientras || While)



  1. //Algoritmo para sumar un numero entero a una variable
  2. Inicio Algoritmo 
  3. num = 0
  4. Mientras (num < 5) 
  5.         num = num + 1
  6. Fin Mientras
  7. Fin Algoritmo 


10 veces (Ciclo Para || For)



  1. //Algoritmo para mostrar la tabla de multiplicar del 5
  2. Incio Algoritmo 
  3. n = 1
  4. numero = 5
  5. PARA (num=1; Hasta num = 10; num ++)
  6.         resultado = numero * n
  7.         n++ 
  8.         Mostrar: resultado
  9. FIN PARA
  10. Fin Algoritmo

Diagramas de flujo

Para entregar el día martes 29 de enero.
Elaborar un documento en hojas (impreso o a mano). Colocar la simbologia que se utiliza en un diagrama de flujo y a la par de la simbologia, para que se utiliza cada símbolo  Colocar los mas importantes como: Inicio, decisión  proceso, repetición, datos. 


                                                               click para agrandar

Instrucción de repetición PARA (Ciclo For)


Esta instrucción permitirá que todo lo que escribamos dentro de la misma instrucción, se ejecute de forma repetida N veces. Donde esa cantidad de veces lo determinaremos dentro de la misma instrucción. 
Por ejemplo que deseamos mostrar un mensaje en pantalla 5 veces, podemos escribir 5 veces esa cadena de caracteres, pero tambien podemos escribirla una sola, meterla en un ciclo PARA y que esta instrucción permita que se muestre 5 veces.

Ejemplo 1.0:


  1. //Algortimo para mostrar 5 veces un mensaje sin usar PARA
  2. Inicio Algoritmo
  3. Mostar: "este es el mensaje que deseamos mostrar"
  4. Mostar: "este es el mensaje que deseamos mostrar"
  5. Mostar: "este es el mensaje que deseamos mostrar"
  6. Mostar: "este es el mensaje que deseamos mostrar"
  7. Mostar: "este es el mensaje que deseamos mostrar"
  8. Fin Algoritmo


Ejemplo 2.0:


  1. //Algoritmo para mostrar 5 veces un mensaje utilizando PARA
  2. Inicio Algoritmo
  3. PARA(num=0; Hasta num = 5; num ++)
  4.         Mostrar: "este es el mensaje que deseamos mostrar"
  5. FIN PARA
  6. Fin Algoritmo


Tanto el ejemplo 1.0 como el ejemplo 2.0, dan el mismo resultado, el cual es mostrar ese mensaje 5 veces en forma sucesiva. Ahora bien, aparte de hacer mas pequeño y mas simplificado el bloque de programación, no es la única función del ciclo PARA. Como cualquier instrucción que hemos visto antes, dentro de esta instrucción podemos escribir otras instrucciones, operaciones y cualquier evento que deseemos que se repita las veces que deseemos.

Ejemplo 3.0 



  1. //Algoritmo para mostrar la tabla de multiplicar del 5
  2. Inicio Algoritmo
  3. n=1
  4. numero=5
  5. PARA(num=1; Hasta num = 10; num ++)
  6.         multiplicar = numero * n
  7.         n++
  8.         Mostrar: multiplicar
  9. FIN PARA
  10. Fin Algoritmo


Explicando linea por linea el código seria así:

Linea 3: creamos una variable tipo de dato entero y le asignamos el valor de 1

Linea 4: creamos una variable tipo de dato entero y le asignamos el valor de 5

Linea 5: declaramos la instrucción PARA, que es la que permitirá que las lineas 6, 7 y 8 se repitan 5 veces; lo que esta entre los paréntesis se lee así:

                                                  click en la imagen para agrandar

Linea 6: se utiliza una variable de tipo entero llamada multiplicar la cual sera igual a la multiplicación de las variables numero y n que en este punto tienen los valores de 1 y 5 respectivamente ( 1 * 5 = 5). 

Linea 7: la variable n, gracias a los signos ++ se le sumara 1, osea que ahora vale 2, y así sucesivamente se le sumara 1 cada vez que se repita esta linea.

Linea 8: Muestra el valor de multiplicar que cada vez que se repita el ciclo sera distinto, en la primera vuelta sera 5, luego (5 * 2(ahora 2 gracias a lo que se explico en la linea 7))  10, tercera vuelta: (5*3) 10, y así sucesivamente hasta que el ciclo se repita 10 veces y en pantalla se muestre un 50.

viernes, 25 de enero de 2013

Sentencia Mientras (While)

Esta instrucción nos servirá para que las sentencias, eventos, operaciones o mensajes que se declaren dentro de esta misma instrucción se mantengan en ejecución, siempre y cuando la condición que se defina en la sentencia, nos devuelva un dato de tipo booleano verdadero, osea mientras la sentencia que va entre paréntesis después de la palabra Mientras, sea verdadera. 

Ejemplo 1.0


  1. //Algoritmo para sumar un numero entero a una variable 
  2. Inicio Algoritmo
  3. num = 0
  4. Mientras (num < 5)
  5.         num = num + 1
  6. Fin Mientras
  7. Fin Algoritmo

El ejemplo 1.0 nos muestra que nuestra condición en este caso es num < 5, osea que mientras esa variable tenga en memoria un valor MENOR que 5, lo que esta dentro de la instrucción se ejecutara una y otra vez hasta que la variable llegue a ser menor que 5.
Desglosando linea por linea del código comenzamos:

En la linea 3: a la variables num se le asigna para empezar un valor de 0

En la linea 4: se escribe la instrucción mientras, cuya condición es que siempre y cuando la variable sea cualquier numero menor que 5, se ejecutara varias veces TODO que lo que se escriba después de la linea cuatro hasta antes de Fin Mientras (linea 6).

En la linea 5: tenemos una operación aritmética sencillas, que dice que la variable num va a ser igual a su mismo valor + 1. Osea que, si  la primera vez que se ejecute la instrucción mientras, la variable entra con un valor de 0 (ver linea 3), a este se le suma 1, ahora num vale 1 (0+1 = 1); en este punto la condición de Mientras aun es un VERDADERO.
Como es verdadero en vez de pasar a la linea 6, el código hará un regreso a la linea 4, para volver a verificar que num aun no haya llegado o se haya pasado del valor 5; se vuelve a ejecutar la linea 5, solo que ahora tomamos en cuenta que en este punto num vale 1, ahora la operación es: la variable sera su mismo valor (1) + 1, lo cual nos da como resultado 2; nuevamente no nos hemos pasado ni llegado a 5, con lo cual se repetirán las lineas 4 y 5 una tercera vez y así una cuarta hasta que num adopte el valor de 4 que es un numero menor que 5.
En el momento en que num adquiere el valor de 5 (que seria por lógica en la quinta repetición de las lineas 4 y 5) por fin nos dará un valor booleano de falso, con lo cual se pondera fin a la instrucción MIENTRAS.

En la linea 6: esta escrita la instrucción que define cual es el fin de la Sentencia Mientras, a la cual el algoritmo llegara solamente cuando la prueba lógica sea un FALSO (valor booleano False).

Hay que tomar en cuenta que si en las lineas de código que existan en una Sentencia Mientras, no existe nunca algo que obligue a que la prueba lógica devuelva un False, nos encontraremos en un ciclo infinito de repetición. 

Ejemplo 2.0


  1. //Algoritmo para sumar un numero entero a una variable 
  2. Inicio Algoritmo
  3. num = 0
  4. Mientras (num < 5)
  5.         "esta cadena de se mostrara una y otra vez"
  6.         "por que no hay algo que obligue a num a llegar a 5"
  7. Fin Mientras
  8. Fin Algoritmo

Si observas el ejemplo 2.0 ahora no tenemos operaciones aritméticas y simplemente las lineas de código 4, 5 y 6 se repetirán infinitamente.  

Estructuras de decisiones.

Ya sabemos que una decisión, a nivel de lógica de programación, es la escogencia de uno entre varios caminos lógicos dependientes todos de una condición.
Para fines del curso y evaluaciones, estableceremos tres tipos de decisiones: SIMPLE, COMPUESTA y ANIDADA.


Decisiones simples: 

Es el tipo de instrucción, que permite en base de evaluar una prueba lógica, devolver un resultado como valor verdadero, al que este ultimo le llamaremos valor_si_verdadero.


Ejemplo 1.0:

  1. //Algoritmo para determinar la edad de una persona
  2. Inicio Algoritmo
  3. edad_persona = 23
  4. Si edad_persona > 18
  5.     "La persona es mayor de edad"
  6. Fin Si
  7. Fin Algoritmo

En el ejemplo 1.0, nuestra estructura es la siguiente:
La prueba lógica que la instrucción evalúa es: persona >18
El valor_si_verdadero es: "La persona es mayor de edad"

En resumidas palabras quiere decir que si la prueba lógica es verdadera, tomando en cuenta el valor de tipo entero que se le asigna a edad_persona, que en este caso es 23 (linea 3); el resultado que devuelve la instrucción sera la cadena caracteres (string): "la persona es mayor de edad". 
En caso contrario, imaginándonos que si en la linea 3 del algoritmos, a  edad_persona se le hubiese asignado un valor de 5, la instrucción hubiera devuelto un falso en vez de un verdadero, haciendo que la linea 5, que contiene el String, nunca llegue a ejecutarse.

Decisiones compuestas: 

Una instrucción de decisión compuesta funciona de la misma forma que una simple, con la única diferencia de que si nuestra prueba lógica devolviera un valor de tipo falso, el algoritmo tendrá un segundo camino a tomar. 

Ejemplo 2.0:

  1. //Algoritmo para determinar la edad de una persona
  2. Inicio Algoritmo
  3. edad_persona = 5
  4. Si edad_persona > 18
  5.     "La persona es mayor de edad"
  6. Si No
  7.     "La persona es menor de edad"
  8. Fin Si
  9. Fin Algoritmo

En el ejemplo 2.0 observamos que al bloque de código se le agrega una nueva sentencia llama Si No (linea 6), este sera el nuevo camino que el código tomara en caso de que la prueba lógica devuelva un valor falso. Hemos cambiado en la linea 3, el valor de tipo entero de la variables edad_persona por 5, como nuestra prueba lógica ahora no es verdad, debido a que 5 es menor que 18; y nos dice que solo si es mayor que 18, se mostrara la cadena de caracteres: "La persona es mayor de edad". El código ahora posee una segunda opción para ser ejecutada en caso de que esto suceda, y ahora el evento que llegara a suceder es el de la linea 7, la cadena de caracteres "La persona es menor de edad".
Note usted que con instrucciones de este tipo solo puede llegar a ejecutarse uno de los dos resultados.

Decisiones anidadas: 

Si ya comprendes el concepto de lo que es una decisión compuesta, entender las anidadas te resultara sumamente sencillo, ya que una decisión anidada no es mas que una decisión de tipo compuesta, dentro de otra decisión de tipo compuesta.

Ejemplo 3.0:

  1. //Algoritmo para determinar la edad de una persona
  2. Inicio Algoritmo
  3. edad_persona = 14
  4. Si edad_persona > 18
  5.     "La persona es mayor de edad"
  6. Si No
  7.     Si edad_persona >= 12 & edad_persona <= 17
  8.         "La persona es un adolescente"
  9.     Si No
  10.         Si edad_persona >= 0 
  11.             "La persona es un niño"
  12.         Si No
  13.             "La edad en negativo no es posible"
  14. Fin Si
  15. Fin Algoritmo

En el ejemplo 3.0 he cambiado el valor de nuestra variable edad_persona a 14 (tipo de dato entero); y como adicional observamos que ahora tenemos mas de una prueba lógica las cuales son: 
                           Si edad_persona > 18             (linea 4)
                           Si edad_persona < 17 & > 12   (linea 7)
                           Si edad_persona > = 0            (linea 8) 

Esto es necesario ya que como explicaba al principio, la instrucción de decisión anidada, es una decisión con una o mas decisiones adicionales dentro de la misma.
Para este ejemplo, debido que el valor de la variables es 14, la prueba lógica de linea 4 (Si edad_persona > 18) nos devolverá un falso y evaluara la siguiente prueba lógica (linea 7) para la cual el valor 14 encajara perfectamente con su condición ya que se encuentra entre el rango de 12 a 17. Se ejecutara el evento de la linea 8 y se omitirán las demás pruebas lógicas que resten por ser leídas  recuerde que solo una de las sentencias que existan en este tipo de instrucciones sera la que se pueda ejecutar Y se ejecutara la primera que de verdadero.  



Bienvenidos!!!! n_n 


Esta herramienta sera de gran utilidad para todos nosotros, para utilizarla como un paralelo al contenido de la clase, acá entre todos iremos aportando los contenidos de la semana para poder repasarlos y sean de utilidad para las evaluaciones.

También los animo a que si por el tiempo limitado de la clase tienes dudas puedes escribirlas en los comentarios de cada publicación, el que no pregunta no aprende....