Sunteți pe pagina 1din 30

ALUMNO: Sergio Manuel Franco Mariscal

MATRICULA: 43163307-2
MAESTRO: Martnez Ruiz David Andrs
MATERIA: Principios de anlisis y diseo de
algoritmos
HORARIO: 7:00 a 9:00 a.m.
GRUPO: ING. En sistemas # 1
FECHA: 08/11/2016

INDICE
1. Algoritmos;

1.1 Lenguaje algortmico


1.1.1 Problemas comunes
1.1.2 esquemas
1.2 Sentencias
1.2.1 Anlisis comparativo
1.3 Operaciones
1.4 Ciclos
2. Representacin de algoritmos;
2.1 Diagramas de flujo
2.2 Pseudocdigo;
2.3 Otras representaciones
3. Algoritmos clsicos;
3.1 Aplicacin de ciclos: sumas y promedios
3.2 Bsquedas;
3.3 Ordenamientos
4. Otros algoritmos conocidos
4.1 Ruta ms corta Dijkstra
4.2 Algoritmo de Kruskal;
4.3 Flujo en redes
5. Programacin de computadoras;
5.1 Introduccin
5.2 Lgica de la estructura de un programa
5.3 Tipo de datos
5.4 Registros

Perfil Descriptivo de Clase


LISC01A
Materia:

principio de analisis y diseo de algoritmos

Ciclo:

2017-1

Maestro:

Martnez Ruz David Andrs

Horario:

07/00-09/00

Objetivo del
El alumno comprender la lgica computacional para el diseo de algoritmos
Curso:

y
program
as.

Bibliografa
:

TIPO

TITULO

AUTOR

EDITORIAL/REV
ISTA

libro
libro
libro

criterios
para la
Evaluacin

Fundamentos_de_Programacion_Libro_de_P Luis_Joyanes_Agu
McGraw_Hillroblemas
ilarprincipios basicos
jose abel hernandez rueda
alejandro rabas
metodologia de programacion
dolado 2000

CALIFICACIN ORDINARIA (PONDERACIN)


Actividades
semanales

30%

Examen primer parcial.

15%

Portafolio
reaprendizaje

10%

Examen segundo parcial.

25%

Trabajos
independiente
s

20%

T O TAL
100%

Reglas
1. El alumno es responsable de enterarse de su nmero de faltas y retardos.
2. El alumno debe contar con un mnimo del 80% de asistencia para tener derecho a su calificacin final.

3. El alumno que se sorprenda incurriendo en actos desleales en la elaboracin de exmenes, tareas o trabajos, obtendr cero (0) de calificacin
tarea y/o examen

4. Es responsabilidad del estudiante hablar inmediatamente con el maestro cuando tenga problemas con el material de clase, sus calificaciones
manera evitaremos problemas en el fin del ciclo.
5. Slo se justifican inasistencias si son autorizadas por la coordinacin acadmica bajo el procedimiento correspondiente
6. Se tomara asistencia al iniciar la clase.
7. Prohibido utilizar telfonos celulares y/o aparatos electrnicos dentro del aula.
8. La clase es de 100 minutos efectivos.
9. La clase inicia a la hora en punto
10. No se permiten alimentos ni bebidas dentro del aula.

11. Deber presentar su Carnet de Pago, expedido por su coordinador administrativo, para la autorizacin de recepcin de trabajos f
aplicacin de exmenes en la ltima semana del mdulo.

Calendarizacin
Sesin

1
2
3
4
5
6

Fecha

10/10/2016
11/10/2016
12/10/2016
13/10/2016
17/10/2016
18/10/2016

Tema

1. Algoritmos; 1.1 Lenguaje algortmico


1.1.1 Problema comunes; 1.1.2 Esquemas
1.2 Sentencias; 1.2.1 Anlisis comparativo
1.3 Operaciones
1.4 Ciclos
2. Representacin de algoritmos; 2.1 Diagramas de flujo

7
8
9
10
11
12
13
14
15
16
17
18
19
20

19/10/2016 2.2 Pseudocdigo; 2.3 Otras representaciones


20/10/2016 3. Algoritmos clsicos; 3.1 Aplicacin de ciclos: sumas y promedios
24/10/2016 3.2 Bsquedas; 3.3 Ordenamientos
25/10/2016 4. Otros algoritmos conocidos;
4.1 Ruta ms corta Dijkstra
26/10/2016
27/10/2016 EXAMEN PRIMER PARCIAL
4.2 Algoritmo de Kruskal;
31/10/2016
01/11/2016 4.3 Flujo en redes
02/11/2016 5. Programacin de computadoras; 5.1 Introduccin
03/11/2016 5.2 Lgica de la estructura de un programa
07/11/2016 5.3 Tipo de datos
08/11/2016 5.4 Registros
09/11/2016 EXAMEN SEGUNDO PARCIAL
10/11/2016 ENTREGA DE CALIFICACIONES ORDINARIAS
11/11/2016 EXAMEN EXTRAORDINARIOS

INFORMACIN INSTITUCIONAL

MISIN:
Formar profesionales de xito que cuenten con las actitudes, habilidades y
conocimientos que demanda el sector productivo de la regin.
VISIN:
La Universidad del Desarrollo Profesional es una institucin de educacin superior
de calidad, que ofrece programas presenciales y semi presenciales de
bachillerato, profesional asociado, licenciatura, posgrado, diplomados y cursos en
Mxico y en el extranjero.
Se distingue por facilitar a sus egresados la incorporacin al mercado de trabajo,
apoyada en una estrecha vinculacin con el sector productivo y en planes de
estudios pertinentes y dinmicos.
Es reconocida por su modelo educativo profesionalizarte, por la flexibilidad de su
oferta acadmica impartida en ciclos continuos y por horarios y cuotas accesibles,
acordes a la disponibilidad de tiempo y recursos econmicos del alumno.
Cuenta con profesores de amplia experiencia profesional y educativa. Sus
instalaciones dentro de la ciudad permiten el fcil acceso.
Cuenta con un modelo de administracin sistematizado, participativo, operado por
personal que es recompensado por su desempeo efectivo que le permite
maximizar las aportaciones de sus socios y mantener finanzas sanas.
*Objetivos Estratgicos
Permita incorporarse a la actividad laboral de forma rpida y efectiva.
Ofrecer programas educativos de calidad, en modalidades presenciales y semi
presencial que permitan atender la demanda de educacin de niveles de
bachillerato, profesional asociado, licenciatura, postgrado, as como de educacin
continua.
Posicionar a la Institucin como el medio de vinculacin idneo entre nuestra
comunidad universitaria y los sectores productivos de la regin.
Conformar una organizacin tcnica y humana orientada al trabajo efectivo, con
recompensas basadas en el desempeo y enfocada a la rentabilidad.
Integrar una red de socios inversionistas y operadores de solvencia moral y
econmica que promuevan la expansin de la cobertura prevista, con un enfoque
de rentabilidad.
Contar con instalaciones fsicas e imagen, pertinentes al segmento en que se
participa y que aseguren el cumplimiento de la misin institucional.
VALORES INSTITUCIONALES:
Lealtad: Los integrantes de la comunidad universitaria consideramos la fidelidad
como un valor excelso que enaltecemos en nuestro quehacer diario.

Justicia: Los integrantes de la comunidad universitaria actuamos con la constante


y perpetua voluntad de dar a cada cual lo que le corresponde conforme a sus
mritos o actos.
Honestidad: Los integrantes de la comunidad universitaria actuamos con
sinceridad y honradez en nuestras tareas y en congruencia entre los
pensamientos, palabras y acciones.
Responsabilidad: Los integrantes de la comunidad universitaria llevamos a cabo
nuestras actividades con integridad, con sentido del propsito y apegados a los
objetivos institucionales.
Esfuerzo: Los integrantes de la comunidad universitaria usamos nuestra mxima
energa para cumplir con los objetivos trazados.
Creatividad: Los integrantes de la comunidad universitaria resolvemos los
problemas con imaginacin, conocimientos y con un espritu de mejora continua.

1 ALGORITMOS
1.1.1 Problemas comunes.
Inicio
Escriba Introduzca el valor de el Radio
Lea Radio
Escriba Introduzca el valor de la Altura mas pequea
Lea Altura1
Escriba Introduzca el valor de la Altura grande
Lea Altura2
Pi3.1416
Resultado(Pi*Radio^2)(Altura1)(Altura1+Altura2^Radio/2)
Escriba El volumen del cilindro truncado es:,Resultado
Fin.
3. Datos de entrada: Vi ,Vf ,t Datos de salida: Aceleracin Proceso: uso de la
formula:
Inicio
Escriba introduzca la velocidad final
Lea Vf

Escriba introduzca la velocidad inicial


Lea Vi
Escriba introduzca el tiempo
Lea t
Aceleracin (Vi Vf)/t
Escriba La Aceleracin es:,Aceleracin
Fin.
4. Datos de entrada: 3numeros diferentes a,b,c Datos de salida: la raiz de la
ecuacin Proceso: uso de la formula:

Inicio
Escriba introduzca el valor de b
Lea Bneg
Escriba introduzca el valor de a
Lea A
Escriba introduzca el valor de c
Lea C
Escriba El resultado de la x positiva es:,xresult1
Escriba El resultado de la x negativa es:,xresult2
Fin.
1.1.2 Esquemas.
-

Estructura de algo
Grafico de pasos
Rutina
Mapa
Ubicaciones
Imgenes

Esquema: un esquema algortmico es un medio para alcanzar un objetivo es de


forma genrica insidiendo en los principios que conducen a el y se ilustra mediante
una estructura o rutina grafica concreta de algoritmos tomados de varios dominios
de la aplicacin.

1- Pepito fue a la tienda a comprar manzanas rojas de a 2 pesos pero si no


hay manzanas rojas o cuestan mas de 20 pesos el no comprara nada.

$20
$21

Yo voy a la fiesta del estudiante solo si va mi amigo Antonio, pero si no va


Antonio puede que valla si va Norberto, y si no va Antonio pero va Norberto
nos vamos a la playa a tomar.

3
3.1

ALGORITMOS CLASICOS

Aplicacin de ciclos: sumas y promedios

Son instrucciones o acciones que se deben servir para resolver un problema.


Existen una gran cantidad de algoritmos, hay que escoger el mas efectivo.
Hay tipos de algoritmos los cuales son cualitativos y cuantitativos; cualitativos
aquellos pasos o instrucciones descritos por medio de palabras que sirven para
llevar a la obtencin de una respuesta, y cuantitativos son todos aquellos pasos o
instrucciones que involucran clculos numricos para llegar a un resultado
satisfactorio.
CARACTERISTICAS: Tiene que ser preciso, tiene que estar bien definido tiene
que ser finito. La programacin es adaptar el algoritmo al ordenador. El algoritmo
es independiente segn en donde este implementado.
Cada paso de algoritmo debe estar bien definido esto significa que la definicin de
un paso debe ser suficientemente clara, para que una persona pueda entender y
realizarla.
Un algoritmo debe tener un principio y un fin un programa un objetivo y un
algoritmo escrito para conseguir un resultado.

3.2

ordenamientos

La bsqueda de una serie de nmeros en un vector se realiza recorriendo dicho


vector hasta que se cumpla una de dos condiciones.
1 Que se encuentre el valor deseado.
2 Que no se encuentre el valor deseado y termine el vector.
Estrategia para recorrer el vector:
Empesar el recorrido de izquierda a derecha y devolver la posicin del primer
elemento igual uno.
18

27

Int bsqueda ( int y int. Valor )


For ( int. I:0;tam++)
Return

14

27

Textbox
Return

BUSQUEDA Y ORDENAMIENTO
La bsqueda de una serie de nmeros en un vector se realiza recorriendo dicho
vector hasta que se cumpla una de dos condiciones.

OTROS ALGORITMOS CONOCIDOS

4.1

ruta mas mas corta dijkstra

La bsqueda de una serie de nmeros en un vector se realiza recorriendo dicho


vector hasta que se cumpla una de dos condiciones.
ALGORITMO DE BUSQUEDA: Sirve para reorganizar el orden de los elementos
de una estructura como un vector.
Porque es importante ordenar los datos
Para encontrar los datos mas fasil ( manipularlos )
0
1

1
2

2
3

3
4

For ( int. I=0 to r1)


{
Min.= i;
For ( j = i + 1 to n )
{
If ( v [ j ] < v [ min. ] then min. = j )
Return min;
}

El algoritmo de dijkstra determina la ruta ms corta desde un nodo origen hacia los
dems nodos para ello es requerido como entrada un grafo cuyas aristas posean
pesos. Algunas consideraciones:
Si los pesos de mis aristas son de valor 1, entonces bastar con usar
el algoritmo de BFS.

Si los pesos de mis aristas son negativos no puedo usar el algoritmo de


dijsktra, para pesos negativos tenemos otro algoritmo llamado Algoritmo de
Bellmand-Ford.
Como trabaja
Primero marcamos todos los vrtices como no utilizados. El algoritmo parte de un
vrtice origen que ser ingresado, a partir de ese vrtices evaluaremos sus
adyacentes, como dijkstra usa una tcnica greedy La tcnica greedy utiliza el
principio
de
que
para
que
un
camino
sea
ptim

o, todos los caminos que contiene tambin


deben ser ptimos- entre todos los vrtices adyacentes, buscamos el que est
ms cerca de nuestro punto origen, lo tomamos como punto intermedio y vemos si
podemos llegar ms rpido a travs de este vrtice a los dems. Despus
escogemos al siguiente ms cercano (con las distancias ya actualizadas) y
repetimos el proceso. Esto lo hacemos hasta que el vrtice no utilizado ms
cercano sea nuestro destino. Al proceso de actualizar las distancias tomando
como punto intermedio al nuevo vrtice se le conoce como relajacin (relaxation).
Dijkstra es muy similar a BFS, si recordamos BFS usaba una Cola para el
recorrido para el caso de Dijkstra usaremos una Cola de Prioridad o Heap, este
Heap debe tener la propiedad de Min-Heap es decir cada vez que extraiga un
elemento del Heap me debe devolver el de menor valor, en nuestro caso dicho
valor ser el peso acumulado en los nodos.

4.2 Algoritmo de Kruskal


El algoritmo de Kruskal es un algoritmo de la teora de grafos para encontrar
un rbol recubridor mnimo en un grafo conexo y ponderado. Es decir, busca un
subconjunto de aristas que, formando un rbol, incluyen todos los vrtices y donde
el valor total de todas las aristas del rbol es el mnimo. Si el grafo no es conexo,
entonces busca un bosque expandido mnimo (un rbol expandido mnimo para
cada componente conexa). El algoritmo de Kruskal es un ejemplo de algoritmo
voraz.

Un ejemplo de rbol expandido mnimo. Cada punto representa un vrtice, el cual


puede ser un rbol por s mismo. Se usa el Algoritmo para buscar las distancias
ms cortas (rbol expandido) que conectan todos los puntos o vrtices.
Funciona de la siguiente manera:

se crea un bosque B (un conjunto de rboles), donde cada vrtice del grafo
es un rbol separado

se crea un conjunto C que contenga a todas las aristas del grafo

mientras C es no vaco

eliminar una arista de peso mnimo de C


si esa arista conecta dos rboles diferentes se aade al bosque,
combinando los dos rboles en un solo rbol
en caso contrario, se desecha la arista

Al acabar el algoritmo, el bosque tiene un solo componente, el cual forma un rbol


de expansin mnimo del grafo.
Este algoritmo fue publicado por primera vez en Proceedings of the American
Mathematical Society, pp. 4850 en 1956, y fue escrito por
4.3 Flujo en redes
En algunas redes circula por los arcos un flujo (envo o circulacin de unidades
homogneas de algn producto: automviles en una red de carreteras, litros de
petrleo en un oleoducto, bits por un cable de fibra ptica) desde
el origeno fuente al destino, tambin denominado sumidero o vertedero. Los arcos
tienen una capacidad mxima de flujo, y se trata de enviar desde la fuente al
sumidero la mayor cantidad posible de flujo, de tal manera que:
El flujo es siempre positivo y con unidades enteras.
El flujo a travs de un arco es menor o igual que la capacidad.
El flujo que entra en un nodo es igual al que sale de l.
En el caso de que el origen o el destino no existan en el problema, se aaden
ficticiamente utilizando arcos unidireccionales de capacidad infinita.
Corte: Un corte define una serie de arcos cuya supresin de la red causa una
interrupcin completa del flujo entre el origen y el destino. La capacidad de

corte es igual a la suma de las capacidades de los arcos asociados.


Entre todos los cortes posibles en la red , el corte con la menor
capacidad proporciona el flujo mximo en la red.
El siguiente grafo ilustra 3 cortes: el Corte 1 con capacidad 60, el Corte 2 con
capacidad 110 y el Corte 3 con capacidad 70. Todo lo que podemos obtener de los
3 cortes es que el flujo mximo en la red no excede de 60 unidades. No podemos
saber cual es el flujo mximo hasta que se hayan enumerado todos los cortes en
la red:
Las capacidades se identifican como sigue: por ejemplo,
para el arco (3,4), el lmite de flujo es de 10 unidades
de 3 a 4 y de 5unidades de 4 a 3.

programacion de computadoras

Programacin de Computadoras. Un programa de computadora se puede definir


como una secuencia de instrucciones que indica las acciones o tareas que han de
ejecutarse para dar solucin a un problema determinado.
Usos de la Programacin
Una persona piensa y se comporta obedeciendo a un secuencial lgico. Un
computador realiza tareas y maneja datos en memoria obedeciendo a una
secuencia de pasos lgicos para lo cual ha sido programado.
Programar computadoras es indispensable en cualquier rea de la ingeniera, ya
que diferentes problemas que se puedan presentar tardan tiempo resolverlos de
manera manual. La computadora resuelve problemas de acuerdo como se le haya
programado de manera rpida.
Qu es la Programacin
Para llegar a tener una secuencia de instrucciones que den solucin a un
problema es necesario ejecutar varias etapas.

Etapa de anlisis: En esta etapa el programador debe entender claramente


el problema. Saber que es lo que se quiere resolver. (Analizar)

Etapa de Solucin general: Escribir la serie de pasos que sean necesarios


para dar solucin al problema. Estos pasos se pueden desarrollar a travs
de un Diagrama de flujo (Utilizando smbolos) a travs de un seudo
lenguaje (Utilizando Lenguaje comn). A lo anterior es lo que se conoce con
el nombre de Algoritmo.

Etapa de prueba: Consiste en chequear el algoritmo paso a paso para estar


seguro si la solucin da solucin verdaderamente el problema. (Prueba de

escritorio). Etapa de implementacin especfica: Consiste en traducir el


algoritmo a un lenguaje de programacin. (Codificar).

Etapa de prueba: Consiste en ejecutar el programa en un computador y


revisar los datos arrojados para ver si son correctos y hacer los ajustes
necesarios. (Implementar).

Etapa de uso: Consiste en instalar el programa de manera definitiva para el


uso por parte del usuario

5.2 logica de la estructura de un programa


CONCEPTO DE PROGRAMACION ESTRUCTURADA
EL creciente empleo de los computadores ha conducido a buscar un
abaratamiento del desarrollo des software, paralelo a la reduccin del costo del
hardware obtenido gracias a los avances tecnolgicos. Los altos costos del
mantenimiento de las aplicaciones en produccin normal tambin han urgido la
necesidad de mejorar la productividad del personal de programacin.
En la dcada del sesenta salieron a la luz publica los principios de lo que ms
tarde se llamo Programacin Estructurada, posteriormente se libero el conjunto de
las llamadas "Tcnicas para mejoramiento de la productividad en programacin"
(en ingles Improved Programming Technologies, abreviado IPTs), siendo la
Programacin Estructurada una de ellas.
Los programas computarizados pueden ser escritos con un alto grado de
estructuracin, lo cual les permite ser mas fcilmente comprensibles en
actividades tales como pruebas, mantenimiento y modificacin de los mismos.
Mediante la programacin Estructurada todas las bifurcaciones de control de un
programa se encuentran estandarizadas, de forma tal que es posible leer la
codificacin del mismo desde su inicio hasta su terminacin en forma continua, sin
tener que saltar de un lugar a otro del programa siguiendo el rastro de la lgica
establecida por el programador, como es la situacin habitual con codificaciones
desarrolladas bajo otras tcnicas.
EN programacin Estructurada los programadores deben profundizar mas que lo
usual al proceder realizar el diseo original del programa, pero el resultado final
es ms fcil de leer y comprender, el objetivo de u programador profesional al

escribir programas de una manera estructurada, es realizarlos utilizando


solamente un numero de bifurcaciones de control estandarizados.
EL resultado de aplicar la sistemtica y disciplinada manera de elaboracin de
programas establecida por la Programacin Estructurada es una programacin de
alta precisin como nunca antes haba sido lograda. Las pruebas de los
programas, desarrollados utilizando este mtodo, se acoplan mas rpidamente y
el resultado final con programas que pueden ser ledos, mantenidos y modificados
por otros programadores con mucho mayor facilidad.
DEFINICIONES
Programacin Estructurada es una tcnica en la cual la estructura de un
programa, esto es, la interpelacin de sus partes realiza tan claramente como es
posible mediante el uso de tres estructuras lgicas de control:
a.Secuencia: Sucesin simple de dos o mas operaciones.
b.Seleccin: bifurcacin condicional de una o mas operaciones.

c.Interaccin: Repeticin de una operacin mientras se cumple una condicin.


Estos tres tipos de estructuras lgicas de control pueden ser combinados para
producir programas que manejen cualquier tarea de procesamiento de
informacin.

5.3 tipos de datos


Es aquel programa que se encuentra en lenguaje mquina y que ya es ejecutable
por esta.
-Es el resultado de traducir un programa fuente para obtener un lenguaje
comprensible por la mquina.
Programacin orientada a objetos (OOPS); es una tcnica de programacin que
utiliza objetos como bloque esencial de construccin, es un tipo de programacin

mas cercana al razonamiento humano; surge como una solucin a la


programacin de grandes programas, y para solventar el mantenimiento de dichas
aplicaciones, ya que en la programacin estructura el ms mnimo cambio supone
la modificacin de muchas funciones relacionadas, en cambio con la OOPS solo
es cuestin de aadir o modificar mtodos de una clase o mejor, crear una nueva
clase a partir de otra (Herencia). Dos lenguajes destacan sobre el resto para
programar de esta forma, Smalltalk y C++.
*Programa fuente
-Es el programa escrito en alguno de los lenguajes y que no ha sido traducido al
lenguaje de la maquina, es decir el programa que no est en cdigo de mquina y
que por lo tanto no puede ser ejecutable.
-Es aquel que nos permite escribir un algoritmo mediante un lenguaje formal. Por
eso al cdigo desarrollado al programar se le llama cdigo fuente.
Definicin de Compilador:
-Es un programa que traduce un lenguaje de alto nivel al lenguaje mquina. Un
programa compilado indica que ha sido traducido y est listo para ser ejecutado.
La ejecucin de los programas compilados es ms rpida que la de los
interpretados, ya que el interprete debe traducir mientras est en la fase de
ejecucin (saca todos los errores). Un compilador es un programa que traduce el
programa fuente (conjunto de instrucciones de un lenguaje de alto nivel, por
ejemplo Basic o Pascal) a programa objeto (instrucciones en lenguaje mquina
que la computadora puede interpretar y ejecutar).

5.4 registros

En informtica, o concretamente en el contexto de una base de datos relacional,


un registro (tambin llamado fila o tupla) representa un objeto nico de datos
implcitamente estructurados en una tabla. En trminos simples, una tabla de una
base de datos puede imaginarse formada de filas y columnas o campos.

ANEXOS