Sunteți pe pagina 1din 19

PRACTICA 2:

Estructuras de control secuenciales, selectivas e iterativas




MATERIA: Analisis de algoritmos






























INTRODUCCIN:

Un algoritmo permite modelar una serie de pasos a realizar para resolver un
problema parcial o totalmente.
El algoritmo consta de tres etapas que son: [1]

ENTRADAS: Son los datos necesarios que el algoritmo requiere para su
funcionamiento.
PROCESO: Es la secuencia de pasos que se deben de seguir para
resolver el problema.
SALIDAS: Los resultados de seguir la secuencia de pasos.

Caractersticas de un algoritmo:
Es preciso: Los pasos a seguir estn bien definidos.
Es finito: Tiene un nmero determinado de pasos.
Es definido: Dado un conjunto de daros de entrada, siempre debe arrojar
los mismos resultados.
No es ambiguo.
Son independientes del lenguaje de programacin o de la plataforma de
ejecucin.
Eficiente: No importando el numero de pasos a seguir, siempre se va a
llega a un resultado.
Puede tener cero o ms de un elemento de entrada.
Un algoritmo se puede representar de diferentes formas:
1. Lenguaje natural
Conocido como lenguaje maquina, est definido por el diseo del hardware de
la computadora. Los lenguaje maquina consisten en cadenas de nmeros que
instruyen a las computadoras para realizar sus operaciones ms elementales,
una por una. [2]

2. Pseudocdigo
Es un lenguaje de especificaciones de algoritmos. Es la representacin
narrativa de los pasos que debe seguir un algoritmo para dar solucin a un
problema determinado. El pseudocdigo utiliza palabras que indican el proceso
a realizar.

Ventajas:
Permite representar en forma fcil operaciones repetitivas complejas.
Es muy fcil pasar de pseudocdigo a un programa en algn lenguaje de
programacin.
Si se siguen las reglas se puede observar claramente los niveles que
tiene cada operacin.
Es importante en los pseudocdigos el uso de la sangra. [3]

3. Diagrama de flujo
Un diagrama de flujo es la representacin grafica de un algoritmo. Esta
representacin grafica se da cuando varios smbolos se relacionan entres si
mediante lneas que indican el orden en que se deben de ejecutar los
procesos. Algunos de estos smbolos son:














4. Diagrama de Nassi-Schneiderman o N-S [3]
Tambin conocido como diagrama de chapn es como un diagrama de flujo en
el que se omiten las flechas de unin y las cajas son contiguas. Las acciones
sucesiva se pueden escribir en cajas sucesivas y como en los diagrama de
flujo, se pueden escribir diferentes acciones en una caja. Un algoritmo se
representa en la siguiente forma:


ESTRUCTURAS SECUENCIALES [4]
Son aquellas en las que una instruccin sigue a otra de acuerdo En su orden
de escritura. Las tareas se suceden de tal modo que tras la salida de una se
efecta la entrada en la siguiente y asi sucesivamente hasta el final del
proceso. Su organigrama es el siguiente:


Las estructuras secuenciales se codifican de forma directa en cualquier
lenguaje de programacin, pues el orden de ejecucin de un programa es de
arriba abajo.

ESTRUCTURAS SELECTIVAS

Utilizan una condicin y dependiendo del valor de la condicin se va a realizar
o ejecutar una accin.

Si.- Dependiendo del valor de la condicin, se va o no a ejecutar una accin.



Si sino entonces.- Dependiendo del valor de la conclusin se va a realizar una
accin sino entonces otra accin.



Segn (Seleccin mltiple).- Rompe con el paradigma estructurado ya que
utiliza una instruccin que rompe el flujo de ejecucin.
Tiene ms procesos a escoger
Elemento de validacin
Es inseguro



ESTRUCTURAS ITERATIVAS [1]:

Nos permiten repetir 1 o ms procesos n veces, utilizar una condicin que
permite validar cuantas veces se va a repetir un proceso.
Existen 3 estructuras iterativas que son:
Para (for)
Mientras (while)
Repetir, hecer mientras (do-while)

Estructura for
Esta es la estructura utilizada para repetir un conjunto de instrucciones un
nmero definido de veces. Su diagrama de flujo es:


Donde:
V= variable de control
VI= valor inicial
VF= valor final
ID= incremento o decremento
de V











Estructura while:

Permite repetir un conjunto de instrucciones, sin embargo, el numero de veces
que se debe repetir depende de las proposiciones que contenga el ciclo. Cada
vez que corresponde iniciar el ciclo se evalua una condicin, si esta es
verdadera se continua con la ejecucin, de otra forma se detiene.
Su diagrama de flujo es el siguiente:

PI= proposicin inicial

Dentro del ciclo siempre
debe existir un enunciado
que afecte la condicin,
de tal forma que aquel no
se repita de manera
infinita








Estructura do-while

Es una estructura que se encuentra en cualquier lenguaje de programacin de
alto nivel. La condicin se evalua al final lo que implica que el ciclo se debe
ejecutar por lo menos una vez.
La estructura es adecuada cuando no sabemos el nmero de veces que se
debe repetir el ciclo, pero conocemos que se debe ejecutar por lo menos una
vez. Si el resultado es verdadero se continua con la ejecucin, de otra forma se
detiene. Se puede utilizar de manera eficiente para verificar los datos de
entrada de un programa. Su diagrama de flujo es el siguiente:

P= condicin inicial

Siempre debe existir un enunciado dentro del ciclo
que afecte la condicin, para que este no se repita
de manera infinita.








DISEO Y FUNCIONAMIENTO DE LA SOLUCIN:

1. Desarrolle un algoritmo que permita convertir calificaciones numricas a
letras, segn la siguiente tabla:

Calificacin numrica Valor en letra
10 A
9-8 B
7-6 C
5 F

1.- Pedir al usuario que ingrese su calificacin para saber que letra le
corresponde
Darle un valor a cada letra (ya se incluye en el paso tres)
2.- Comparar la calificacin
Mostrar la letra que obtuvo (ya se incluye en el paso tres)
3.- Si la calificacin es 10 mostrar A, si no entonces, si la calificacin es 9 8
mostrar B, si no entonces, si la calificacin es 7 6 mostrar C, si no entonces
mostrar F
IMPLEMENTACIN:
Diagrama de flujo en PSeInt con seleccin mltiple Si sino entonces si sino
entonces si...




FUNCIONAMIENTO:
Se puede observar que al introducir la calificacin de 10 el programa arroja la
frase Obtuviste una A

Tambin se puede ver que si introduzco un 9 u 8 muestra la frase Obtuviste
una B

Al introducir un 7, 6 muestra la frase Obtuviste una C

Finalmente si introduzco una calificacin menor o igual a 5 muestra Obtuviste
una F

ERRORES DETECTADOS Y POSIBLES MEJORAS.
No hubo errores al ejecutar, pero si hay posibles mejoras como por ejemplo
reducir el nmero de estructura si sino entonces ya que se pueden englobar los
resultados de dos calificaciones en una sola estructura.
DISEO Y FUNCIONAMIENTO:
2. Realice un algoritmo que permita calcular el monto a pagar en un
estacionamiento, considerando lo siguiente:
a) Monto por la primera hora, 10 pesos
b) Despus de la primera hora y un minuto, se cobrara 5 pesos
adicionales y as por cada hora transcurrida.
Nota: El usuario dar el tiempo en minutos y el algoritmo tambin deber
mostrar el tiempo transcurrido en el siguiente formato hh: mm: ss
1.- Pedir al usuario que introduzca los minutos que utilizo en el estacionamiento
2.- Convertir los minutos en horas.
3.- Multiplico las horas transcurridas por 10, para que me de el monto a pagar y
lo muestro.
4.- Como ya conozco los minutos y las horas, hago modulo de minutos MOD
horas, para conocer los minutos sobrantes y como no se pide el tiempo en
segundos, no me aparecern segundos, as que solo muestro las horas con los
minutos transcurridos.
IMPLEMENTACIN:
En este diagrama de flujo utiliza lo que son los operadores aritmticos y
relacionales.



FUNCIONAMIENTO:
Al ejecutar mi diagrama de flujo en PSeInt pues se puede observar que se pide
al usuario que introduzca los minutos en que utilizo el estacionamiento, donde
como salida muestra el monto que tiene que pagar con el tiempo en el formato
de hh:mm:ss.


ERRORES Y POSIBLES MEJORAS:
Si me marco errores ya que la divisin modulo requiere de enteros para poder
realizar la operacin es por eso que la mejora que le hice es que hice una
divisin de los minutos entre 60 para conocer las horas transcurridas pero con
un operador llamado TRUNC que me da como resultado un entero y ya
despus pude realizar la divisin modulo para poder mostrarlo en el formato
dado.
Y tambin por eso ped que los minutos fueran nmeros enteros.

3.- Desarrolle un algoritmo que dados 3 nmeros, determine cul es el
mayor, el menor y los muestre en orden ascendente y descendente.

DISEO Y FUNCIONAMIENTO

1.-Pedir al usuario que introduzca tres nmeros
Guardar los nmeros pedidos en variables
3.-Comparar los nmeros para saber cmo van a ir en orden ascendente o
descendente, teniendo en cuenta que como son tres nmeros hay 6
maneras diferentes de acomodarlos.
2.-Comparar los nmeros para determinar cul es el mayor y cul es el
menor
4.- Mostrar los resultados.

IMPLEMENTACIN:
En el diagrama de flujo se muestra claramente como se utilizo la estructura
si sino entonces anidado ms de una ocasin, por los requerimientos del
programa.

FUNCIONAMIENTO:
Aqu se muestran las diferentes combinaciones que se podran realizar con tres
nmeros: tomaremos 5, 6, 7 como los tres nmeros.
COMBINACIONES
a-b-c 5-6-7
a-c-b 5-7-6
b-c-a 6-7-5
b-a-c 6-5-7
c-b-a 7-6-5
c-a-b 7-5-6








ERRORES Y MEJORAS:
Tiene el error de que cuando introduces 1 numero diferente y dos iguales solo
te dice cual es el ms grande y cul es el ms pequeo, y no los acomoda de
forma ascendente ni descendente, una mejora seria aplicar igualdades en los si
sino entonces que determina el orden y as aunque sean iguales los
acomodara, solo que se incrementara el numero de combinaciones.
4.- Realizar un algoritmo que al ingresar 2 nmeros, permita al usuario
sumarlos, restarlos, dividirlos o multiplicarlos. Realice el ejercicio a)
utilizando estructuras si, sino entonces y b) utilizando una estructura
segn.
DISEO:
1.- Primero pedir al usuario dos nmeros, y almacenarlos.
2.- Darle a escoger un nmero para saber lo que el usuario quiere, si quiere
sumarlos, restarlos, multiplicarlos o dividirlos
3.-El numero de opcin que eligi es el numero que se va a comparar y asi
saber qu operacin realizar, y despus con los nmeros que nos dio al
principio realizar cada una de las operaciones y mostrar el resultado.
IMPLEMENTACIN:
4: En el diagrama de flujo utilice estructura si sino entonces anidada

FUNCIONAMIENTO:
Se puede observar que al ejecutar el programa le pide al usuario que
introduzca dos nmeros y despus le despliega un men para saber qu
operacin quiere realizar con esos nmeros, el usuario escoge una opcin y el
programa realiza dicha operacin mostrando el resultado de la misma.

IMPLEMENTACION:
4b: en la imagen se puede observar que se utilizo la estrucctura segn para asi
compara un valor del usuario y saber que operacin quiere utilizar.






FUNCIONAMIENTO:
En este caso cuando se utilizo la estructura segn de PSeInt, se incluyeron 4
opciones y como la opcion default se eligio escribri que no se eligio ninguna
opcion, pero demuestra que son muy parecidas utilizar esta estrutura como la
estructura si sino entonces.

ERRORES Y MEJORAS:
Tuve varios errores al utilizar la estructura segn ya que no me fue muy facil
conocer los parametros que se utilizaban y a veces me arroja resultados que yo
no esperaba como cuando oprimia el 1, en lugar de sumarme los dos numeros,
los multiplicaba, pero me di cuenta que era por que no ponia bien cual variable
tenia que comparar.
5.- Construya un algoritmo que dados dos valores enteros, obtenga el
resultado de la siguiente funcin:
{




-----------------(1)
DISEO:
1.- Pedir al usuario valores para a y para b
2.- Comparar el resultado de b, asi si el valor de b es igual a 1, realizara la
primera operacin sustituyendo el valor de a que dio el usuario y mostrara el
valor obtenido, sino entonces si el valor de b es igual a 2 realizara la segunda
operacin y mostrara el resultado, si no entonces, si el valor de b es igual a 3
realizara la otra operacin y mostrara el resultado, si no entonces mostrara
cero.
INPLEMENTACION: En el diagrama de flujo se puede observar que se
cumplen todos los puntos del diseo.
Para cualquier otro valor de b

FUNCIONAMIENTO:
Se puede ver que si se introduce en el valor de b, el numero 3, la operacin
que se realizo es la de dividir 100 entre el valor de a, que en este caso fue 5,
dando como resultado 5, si se introduce el valor de 2 en b lo que hace el
programa es elevar 100 a la potencia de a que en este caso fue 3, si se
introduce el valor de 1 lo que el programa ejecuta es una multiplicacion de a
por 100 que en este caso fue 4 dando 400 y por el contario si se introduce
cualquier otro valor diferente de 1, 2, 3, lo que imprime al ejecutarlo es 0.

6.- El nmero de sonidos emitidos por un grillo en un minuto, es una funcin
de la temperatura (ver eq. 2). Construya un algoritmo que permita calcular la
temperatura en grados centgrados C con base al nmero de sonidos
emitidos por un grillo.

------------- (2)
Dnde:
FA = representa la temperatura en grados Fahrenheit
S = nmero de sonidos emitidos por un grillo.

DISEO:
1.- Pedir el numero de sonidos del grillo
2.- Transformar los nuemros de sonidos por los grados fahrenheit con la
formula que se dio.
3.- Convertir los grados fahrenheit en grados centigrados y mostrar el
resultados.
INPLEMENTACION: en el diagrama de flujo se ve que no se utilizaron
estructuras selectivas, mas bien se observo la estrutura secuencial.

FUNCIONAMIENTO:
Al dar cualquier valor de numeros de sonidos de un grilloo en un minuto el
programa arrojara una temperatura en grados centigrados.




Bibliografa

[1
]
O. C. Battisstutti, "Fundamentos de programacion, piensa en C", Mxico:
PEARSON EDUCACIN, 2006.
[2
]
H. M. Deitel y P. J. Deitel, Cmo programar en C/C++ y Java, Mxico:
PEARSON EDUCACIN, 2004.
[3
]
M. M. L. Hernndez, Diseo estructurado de algoritmos, Marzo 2010. [En
lnea]. Available:
http://kesquivel.files.wordpress.com/2010/03/disenoestructuradoalgoritmos.p
df. [ltimo acceso: 5 Febrero 2013].
[4
]
CAPITULO 3 ALGORITMOS Y PROGRAMAS, [En lnea]. Available:
http://robotica.uv.es/pub/Libro/PDFs/CAPI3.pdf. [ltimo acceso: 6 Febrero
2013].

S-ar putea să vă placă și