You are on page 1of 12

Tecnolgico Nacional de Mxico

Instituto Tecnolgico de San Luis Potos


Programacin Bsica
Prof. Jos Luis Guevara Lomel

Diseo de
Algoritmos
Grupo 17
Equipo 1
Ahumada Lrraga Alan Obed
Lrraga Flores Osmar Alejandro
Menchaca Zamarrn Ricardo
Ing. Mecatrnica
2 Semestre

Soledad de Graciano Snchez, S.L.P. a 22 de Febrero de 2016

2.1 Conceptos bsicos


Algoritmo
Conjunto ordenado de operaciones sistemticas que permite hacer un clculo y hallar la
solucin de un tipo de problemas.
Constituye una lista completa de pasos secuenciales y una descripcin de datos
necesarios para resolver un determinado problema.

Una lista de pasos secuenciales que deben ser ejecutados.


Una descripcin de datos que son manipulados por estos pasos.

Caractersticas del Algoritmo:

Una descripcin de acciones que deben ser ejecutadas (Pasos


secuenciales).
Una descripcin de los datos que son manipulados por estas acciones
(Estructuras de datos).
Un algoritmo debe ser preciso indicando el orden de realizacin de cada
paso.
Todo algoritmo debe ser finito. Si se sigue un algoritmo este debe
terminar en algn momento.
Un algoritmo debe estar definido. Si se sigue un algoritmo dos veces se
debe obtener el mismo resultado.
Un algoritmo puede tener o no datos de entrada.
Un algoritmo producir uno o ms datos de salida.
Los datos de entrada y salida deben almacenarse en variables.
El resultado que se obtenga debe satisfacer los requerimientos de la
persona interesada (efectividad).
Debe ser estructurado. Es decir, debe ser fcil de leer, entender, usar y
cambiar si es preciso.

Herramientas para el diseo de algoritmos.


Se dispone de diversas herramientas para ayudar a los programadores a
desarrollar los algoritmos.

DIAGRAMA DE FLUJO
Es una herramienta que mediante el empleo de smbolos especializados y
lneas de flujo, nos permite ilustrar el flujo lgico de pasos y datos de un
algoritmo.

PSEUDOCDIGO
Un pseudocdigo permite expresar un algoritmo con palabras en castellano
que son semejantes a las instrucciones de un lenguaje de programacin.

PROGRAMACIN
La programacin es la traduccin de los algoritmos en sentencias que la
computadora puede comprender y ejecutar.
En trmino sencillo es la accin de escribir programas para una computadora
utilizando alguno de los lenguajes de programacin existentes.

ESTRUCTURAS DE DATOS
Son aquellas estructuras que nos permitirn almacenar los datos a ser
procesados.
Son un medio para manejar grandes cantidades de datos de manera eficiente.

ESTRUCTURAS LOGICAS
Son aquellas estructuras que no permitirn manipular los datos almacenados
en las estructuras de datos.

2.2 Metodologa de la Programacin


Los investigadores en los aos sesenta demostraron que los programas podan ser
escritos utilizando tres estructuras de control:

La estructura secuencial define el flujo de control predeterminado de un programa.


Normalmente, esta estructura est integrada en los lenguajes de programacin. A
menos que se indique lo contrario, una computadora ejecuta lneas de cdigo en el

orden en el que fueron escritas.


Las estructuras de seleccin utilizan construcciones de un flujo de programa
especial llamadas declaraciones condicionales. Una declaracin condicional
simplemente es una prueba que determina lo que har a continuacin el
programa. Este tipo de prueba normalmente solo proporcionara dos resultados,
verdadero o falso. Si la condicin es verdadera, se ejecutaran ciertas lneas de

cdigo, si es falsa no se ejecutaran esas lneas de cdigo.


Las estructuras de repeticin estn basadas en construcciones llamadas bucles.
Un bucle es un fragmento de cdigo que se repite una y otra vez hasta que alguna
condicin se cumpla.

En una estructura de repeticin, el programa revisa una declaracin de condicin y


ejecuta un bucle basndose en la condicin. Cuando la condicin es verdadera
entonces se repite uno o ms comandos hasta que la condicin es falsa.

Anlisis, desarrollo e implementacin de un algoritmo


A la hora de resolver un problema mediante la utilizacin de un ordenador n
ose debe codificar directamente el programa en un lenguaje dado; si el
problema es complejo resulta muy difcil escribir un programa en un nico
paso.

Fases:

Anlisis
Diseo
Codificacin
Verificacin

Fase de Anlisis
Se trata de comprender la naturaleza del problema y no de buscar una forma
de resolverlo:

Que datos precisan ser introducidos para obtener la solucin


En qu consistir dicha solucin
Que errores puede presentar
Que datos tendr que ofrecer

Fase de diseo
Se busca una forma de resolver el problema, es decir un algoritmo con dos
tipos de diseo, de arriba-abajo o abajo-arriba:

Diseo descendente, Arriba-abajo: Este mtodo consiste en resolver el


problema mediante una aproximacin con distintos niveles de abstraccin
Diseo ascendente, Abajo-Arriba: A la inversa, se resuelven los problemas
menores, y las soluciones se integran para dar lugar a la solucin del problema

2.3 Diagrama de flujo


Un diagrama de flujo es una forma esquemtica de representar ideas y
conceptos en relacin. A menudo, se utiliza para especificar algoritmos de
manera grfica.
Se conoce como diagramas de flujo a aquellos grficos representativos que se
utilizan para esquematizar conceptos vinculados a la programacin, la
economa, los procesos tcnicos y/o tecnolgicos, la psicologa, la educacin y
casi cualquier temtica de anlisis.

Los diagramas de flujo son mltiples y diversos y pueden abordar muchos


temas distintos de formas tambin muy diferentes. En cualquier caso, el
aspecto en comn entre ellos es la presencia de un vnculo entre los conceptos
enunciados y una interrelacin entre las ideas. Comnmente, se utiliza este
tipo de diagramas para detallar el proceso de un algoritmo y, as, se vale de
distintos smbolos para representar la trayectoria de operaciones precisas a
travs de flechas. Siempre que existe un diagrama de flujo existe un proceso o
sistema que pretende ser graficado a travs de smbolos visuales que, en vez
de trminos verbales, simplifican el funcionamiento de dicho proceso y lo
hacen ms claro y evidente al lector.
Para que el diagrama de flujo tenga sentido como tal, debe existir un camino
hacia una solucin que parte de un nico inicio y arriba a un nico punto final.
Con el propsito de desarrollar un diagrama de estas caractersticas, se
recomienda definir el propsito y destinatario del grfico, identificar las ideas
principales, determinar los lmites y alcance del proceso a detallar, establecer
el nivel de detalle requerido, identificar acciones, procesos y subprocesos,
construir el diagrama y finalmente titularlo con exactitud. Conviene revisar el
diagrama para comprobar que cumple su objetivo con claridad y precisin.

Los smbolos ms utilizados en los diagramas de flujo son la flecha (que indica
sentido y trayectoria), el rectngulo (representa un evento o proceso), el rombo
(una condicin), el crculo (un punto de conexin) y otros.
Adems, existen diversos tipos de diagramas. El vertical, en el que la secuencia
o flujo es de arriba hacia abajo; el horizontal, de izquierda a derecha; el
panormico, puede apreciarse de una vez y de forma tanto vertical como
horizontal; el arquitectnico, describe una ruta sobre un plano arquitectnico
de trabajo.

2.4 Pseudocdigo

Definicin

El pseudocdigo (o falso lenguaje) es comnmente utilizado por los


programadores para omitir secciones de cdigo o para dar una explicacin del
paradigma que tom el mismo programador para hacer sus cdigos, esto
quiere decir que el pseudocdigo no es programable sino facilita la
programacin.
El principal objetivo del pseudocdigo es el de representar la solucin a un
algoritmo de la forma ms detallada posible, y a su vez lo ms parecida posible
al lenguaje que posteriormente se utilizar para la codificacin del mismo.

El pseudocdigo utiliza para representar las acciones sucesivas palabras


reservadas en ingls (similares a sus homnimos en los lenguajes de

programacin), tales como star,begin, end, stop, if-then-else, while, repeatuntil.etc


Es un lenguaje de especificacin de algoritmos. El uso de tal lenguaje hace el
paso de codificacin final (esto es, la traduccin a un lenguaje de
programacin) relativamente fcil.
El pseudocdigo naci como un lenguaje similar al ingls y era un medio
representar bsicamente las estructuras de control de programacin
estructurada. Se considera un primer borrador, dado que el pseudocdigo tiene
que traducirse posteriormente a un lenguaje de programacin. Cabe sealar
que el pseudocdigo no puede ser ejecutado por una computadora.

Segn Anala Lanzillotta: "Considerado como un lenguaje falso, el


pseudocdigo es un lenguaje intermedio entre nuestro lenguaje y el de
programacin, debido a que quien lo utiliza se gua por una serie de normas
pero sin llegar a usar una estructura tan rgida como la del lenguaje de
programacin.
El objetivo al que apunta es que quien lo pone en prctica se centre ms en la
solucin del algoritmo o el diseo de un software que en el programa que
utiliza para crearlo. Y esto es posible porque es ms fcil de manipular ya que
no tiene que tener en mente el lenguaje en s y adems, ms fcil de codificar.
Por ejemplo, si alguien tiene que hacer un software con un fin determinado,
utiliza un pseudocdigo propio en donde confluyen frases del lenguaje
coloquial y algunas palabras de programacin, y una vez que se logra
concretar el software, se puede pasar al escaln siguiente que es el de la
transformacin al lenguaje de programacin formal que se vaya a utilizar.
De esta manera, al ser un lenguaje intermedio, no tiene una composicin
estandarizada por lo que no todos los programadores utilizan la misma sintaxis
con exactitud. Pero a la vez, como es una herramienta que est un paso previo
al lenguaje formal de programacin, es fcil de transformar al que ser
ejecutado en la computadora.

REGLAS DE CONSTRUCCIN
CARACTERSTICAS Y PARTES:
Las principales caractersticas de este lenguaje son: * Se puede ejecutar en un
ordenador * Es una forma de representacin sencilla de utilizar y de manipular.
* Facilita el paso del programa al lenguaje de programacin. * Es independiente
del lenguaje de programacin que se vaya a utilizar. * Es un mtodo que facilita
la programacin y solucin al algoritmo del programa. Todo documento en
pseudocdigo debe permitir la descripcin de: * Instrucciones primitivas. *
Instrucciones de proceso. * Instrucciones de control. * Instrucciones
compuestas. * Instrucciones de descripcin. Estructura a seguir en su
realizacin: * Cabecera. * Programa. * Modulo. * Tipos de datos. * Constantes. *
Variables. * Cuerpo. * Inicio. * Instrucciones. * Fin.
LISTA DE PALABRAS RESERVADAS Y SU SIGNIFICADO:
Instruccin

Significado

algoritmo nombre

Marca el comienzo de un algoritmo y le


adjudica un nombre

Inicio

Marca el comienzo de un bloque de


instrucciones

fin

Marca el final de un bloque de


instrucciones

variables
nombre_var es tipo_de_datos

Declaracin de variables. Indica el


identificador y el tipo de las variables
que se van a usar en el algoritmo

constantes
nombre_const = expresin

Declaracin de constantes. La expresin


se evala y su resultado se asigna a la
constante. Este valor no puede
modificarse a lo largo del programa.

leer (variable)

Entrada de datos. El programa lee un


dato desde un dispositivo de entrada (si
no se indica otra cosa, el teclado),
asignando ese dato a la variable

escribir (variable)

Salida de datos. Sirve para que el


programa escriba un dato en un
dispositivo de salida (si no se indica otra
cosa, la pantalla).

variable = expresin

Asignacin. La expresin se evala y su


resultado es asignado a la variable

si (condicin) entonces

Instruccin condicional doble. El


ordenador evaluar la condicin, que
debe ser una expresin lgica. Si es
verdadera, realiza las acciones-1, y, si es
falsa, las acciones-2.Instruccin
condicional simple. Es igual pero carece
de la rama si_no, de modo que, si la
expresin de falsa, no se realiza ninguna
accin y la ejecucin contina por la
siguiente instruccin

inicio
acciones-1
fin
si_no
inicio
acciones-2
fin
segn (expresin) hacer
inicio
valor1: acciones-1
valor2: acciones-2

valor3: acciones-N
si_no: acciones-si_no

Instruccin condicional mltiple. Se


utiliza cuando hay ms de dos
condiciones posibles (verdadero o
falso) . Se evala la expresin, que suele
ser de tipo entero, y se busca un valor
en la lista valor1, valor2, valorN que
coincida con ella, realizndose las
acciones asociadas al valor
coincidente.Si ningn valor de la lista
coincide con la expresin del segn, se
realizan las acciones de la parte si_no.

fin
mientras (condicin) hacer
inicio
acciones
fin

Bucle mientras. Las acciones se repiten


en tanto la condicin, que debe ser una
expresin lgica, sea verdadera. La
condicin se evala antes de entrar al
bloque de acciones, de modo que
pueden no ejecutarse ninguna vez.

repetir
inicio
acciones
fin
mientras que (condicin)
para variable desde expr-ini hasta exprfin hacer
inicio
acciones
fin

Bucle repetir. Las acciones se repiten en


tanto que la condicin, que debe ser una
expresin lgica, sea verdadera. Se
parece mucho al anterior, pero la
condicin se evala al final del bucle, por
lo que ste se ejecuta, como mnimo,
una vez
Bucle para. Se evala la expresin exprini, que debe ser de tipo entero, y se
asigna ese valor a la variable. Dicha
variable se incrementa en una unidad en
cada repeticin de las acciones. Las
acciones se repiten hasta que la variable
alcanza el valor expr-fin.