Upload
tobydiiazz
View
230
Download
0
Embed Size (px)
Citation preview
7/29/2019 Algoritmas Taller
1/31
CENTRO DE GESTION DE MERCADOS, LOGISTICA Y
TEGNOLOGIAS DE LA INFORMACION
GESTION DE REDES DE DATOS
430730 B
REINEL HAMILTON MOSQUERA DIAZ
APRENDIZ
25 FEBRERO 2012
7/29/2019 Algoritmas Taller
2/31
INTRODUCCION
1.1 En un sentido amplio, dado un problema y un
dispositivo donde resolverlo, es necesario proporcionar
un mtodo preciso que lo resuelva, adecuado al
dispositivo. A tal mtodo lo denominamos algoritmo.
En el presente texto nos vamos a centrar en dos
aspectos muy importantes de los algoritmos, como son
su diseo y el estudio de su eficiencia.
7/29/2019 Algoritmas Taller
3/31
7/29/2019 Algoritmas Taller
4/31
1.2. LENGUAJE: Es un idioma artificial diseado para
expresar procesos que pueden ser llevadas a cabo pormquinas como las computadoras.
Pueden usarse para crear programas que controlen elcomportamiento fsico y lgico de una mquina, paraexpresar algoritmos con precisin, o como modo decomunicacin humana.
Est formado por un conjunto de smbolos yreglas sintcticas y semnticas que definen suestructura y el significado de sus elementos y
expresiones. Al proceso por el cual se escribe seprueba, se depura, se compila y se mantiene el cdigofuente de un programa informtico se lellama programacin.
1.3 ALGORITMO: En matemticas, ciencias de lacomputacin, y disciplinas relacionadas, un algoritmo
es un conjunto prescrito de instrucciones o reglas bien
definidas, ordenadas y finitas que permite realizar una
actividad mediante pasos sucesivos que no generen
dudas a quien deba realizar dicha actividad.
7/29/2019 Algoritmas Taller
5/31
1.4 LENGUAJES ALGORITMICOS
Un algoritmo se define como un mtodo que se realizapaso a paso para solucionar un problema que termina
en un nmero finito de pasos".
Las caractersticas fundamentales que debe cumplirtodo algoritmo son:
Debe ser preciso. e indicar el orden de realizacin decada paso.
Debe ser definido. Si se sigue un algoritmo dos veces,se debe obtener el mismo resultado cada vez.
Debe ser finito. Si se sigue un algoritmo, se debeterminar en algn momento; o sea debe tener unnmero finito de pasos.
La definicin de un algoritmo debe describir tres partes: Entrada, Proceso y Salida.
Disear un algoritmo para cambiar una llanta a uncoche.
Inicio.
Traer gato.
Levantar el coche con el gato.
7/29/2019 Algoritmas Taller
6/31
Aflojar tornillos de las llantas.
Sacar los tornillos de las llantas.
Quitar la llanta.
Poner la llanta de repuesto.
Poner los tornillos.
Apretar los tornillos.
Bajar el gato.
1.6Metodologa para la solucin de problemas por
medio de Computador: es unproceso de resolucinde un problema con una computadora conduce a la
escritura de un programa y su ejecucin en la misma.Aunque el proceso de disear programas esesencialmente un proceso creativo, se puedenconsiderar una serie de fases o pasos comunes, quegeneralmente deben seguir todos losprogramadores. Las fases de resolucin de unproblema con computadora son: Descripcin delproblema, Diseo del algoritmo Codificacin,Compilacin, Ejecucin, Verificacin, Depuracin,Mantenimiento y DocumentacinDESCRIPCION DEL PROBLEMA: La primera fase dela resolucin de un problema con computadora es elanlisis del problema. Esta fase requiere una clara
7/29/2019 Algoritmas Taller
7/31
definicin, donde se contemple exactamente lo quedebe hacer el programa y el resultado o solucindeseada.
1.7 Definicin del Problema Despus de la definicindel problema y del anlisis de los datos de entrada elproceso contina con el anlisis de las alternativas desolucin. Por lo general la solucin de un problemapuede alcanzarse por distintas vas. Es til tratar deplantear la mayor cantidad de alternativas posibles desolucin pues de esta forma las posibilidades
aumentan a favor de encontrar la va correcta.Esta fase est dada por el enunciado del problema, elcual requiere una definicin clara y precisa. Esimportante que se conozca lo que se desea que realicela computador; mientras esto no se conozca del todono tiene mucho caso continuar con la siguiente etapa.
1.8 Anlisis del Problema Un programa Cuando se
ejecuta un programa se pueden producir tres tipos deerrores: Errores de compilacin. Se producennormalmente por un uso incorrecto de las reglas dellenguaje de programacin y suelen ser errores desintaxis. Si existe un error de sintaxis, la computadorani puede comprender la instruccin, no se obtendr el
programa objeto y el compilador imprimir una lista detodos los errores encontrados durante la compilacin.Errores de ejecucin. Estos errores se producen porinstrucciones que la computadora puede comprenderpero no ejecutar. Ejemplos tpicos son: divisinentre
7/29/2019 Algoritmas Taller
8/31
cero y races cuadradas de nmeros negativos. Enestos casos se detiene la ejecucin del programa y seimprime un mensaje de error. Errores de lgica. Se
producen en la lgica del programa y la fuente delerror suele ser el diseo del algoritmo los erroresencontrados durante la compilacin. Errores deejecucin. Estos errores se producen por instruccionesque la computadora puede comprender pero noejecutar. Ejemplos tpicos son: divisin entre cero yraces cuadradas de nmeros negativos. En estoscasos se detiene la ejecucin del programa y se
imprime un mensaje de error. Errores de lgica. Seproducen en la lgica del programa y la fuente delerror suele ser el diseo del algoritmo.
1.9 Diseo del AlgoritmoLas caractersticas de un buen algoritmo son:Debe tener un punto particular de Inicio.
Debe ser definido, no debe permitir doblesinterpretaciones.Debe ser general, es decir, soportar la mayora de lasvariantes que se puedan presentar en la definicin delproblema.Debe ser finito en tamao y tiempo de ejecucin
1.10 Codificacin La codificacin es la operacin deescribir la solucin del problema (de acuerdo a lalgica del diagrama de flujo o seudocdigo), en unaserie de instrucciones detalladas, en un cdigoreconocible por la computador, la serie deinstrucciones detalladas se le conoce como cdigo
7/29/2019 Algoritmas Taller
9/31
fuente, el cual se escribe en un lenguaje deprogramacin o lenguaje de alto nivel.
1.11 Prueba y Depuracin Los errores humanosdentro de la programacin de computadores sonmuchos y aumentan considerablemente con lacomplejidad del problema. El proceso de identificar yeliminar errores, para dar paso a una solucin sinerrores se le llama depuracin.
Depuracin o prueba resulta una tarea tan creativacomo el mismo desarrollo de la solucin, por ello sedebe considerar con el mismo inters y entusiasmo.Resulta conveniente observar los siguientes principiosal realizar una depuracin, ya que de este trabajodepende el xito de nuestra solucin.
1.12 Documentacin Es la gua o comunicacinescrita es sus variadas formas, ya sea en enunciados,procedimientos, dibujos o diagramas.
Se divide en tres partes:
Documentacin InternaDocumentacin ExternaManual del Usuario Documentacin Interna: Son los comentarios o
mensaje que se aaden al cdigo fuente parahacer ms claro el entendimiento de un proceso.
7/29/2019 Algoritmas Taller
10/31
Documentacin Externa : Se define en undocumento escrito los siguientes puntos:Descripcin del Problema
Nombre del AutorAlgoritmo (diagrama de flujo o seudocdigoDiccionario de DatosCdigo Fuente (programa)
Manual del Usuario: Describe paso a paso lamanera cmo funciona el programa, con el findeque el usuario obtenga el resultado deseado.
1.13 Mantenimiento
Se lleva a cabo despus de terminado el programa,
cuando se detecta que es necesario hacer algncambio, ajuste o complementacin al programa paraque siga trabajando de manera correcta. Para poderrealizar este trabajo se requiere que el programa estecorrectamente documentado.
7/29/2019 Algoritmas Taller
11/31
2.1 Tipos De Datos
El tipo de dato determina la naturaleza del conjunto devalores que puede tomar una variable.
2.2 Expresiones
Las expresiones son combinaciones de constantes,variables, smbolos de operacin,Parntesis y nombres de funciones especiales. Porejemplo:
7/29/2019 Algoritmas Taller
12/31
a + (b + 3) / c
Una expresin consta de operadores y operando.Segn sea el tipo de datos queManipulan, se clasifican las expresiones en:
AritmticasRelacinales Lgicas
2.3 Operadores y Operando
Operadores: Son elementos que relacionan deforma diferente, los valores de una o msvariables y/o constantes. Es decir, los operadoresnos permiten manipular valores.
AritmticosTipos de Operadores Relacinales
Lgicos
Operadores Aritmticos
+ Suma
- Resta* Multiplicacin/ DivisinModo Modulo (residuo de la divisin entera)
Operadores Relacinales
7/29/2019 Algoritmas Taller
13/31
> Mayor que< Menor que
> = Mayor o igual que< = Menor o igual que< > Diferente= Igual
Operadores Lgicos
And Y
Or ONota Negacin
Prioridad de los Operadores Lgicos
Nota
AndOr
Prioridad de los Operadores en General
1. - ( )2. - ^3. - *, /, Modo, Nota
7/29/2019 Algoritmas Taller
14/31
4. - +, -, And5. - >, =, < =, < >, =, Or
2.4 Identificadores
Los identificadores representan los datos de unprograma (constantes, variables, tipos deDatos). Un identificador es una secuencia decaracteres que sirve para identificar una posicin en lamemoria del computador, que nos permite acceder a
su contenido.
Ejemplo:Edad
Primer Nombre
Tcnicas de diseo
3.1 Top Down
Tambin conocida como de arriba-abajo y consiste enestablecer una serie de niveles deMayor a menor complejidad (arriba-abajo) que den
solucin al problema. Consiste en efectuar unarelacin entre las etapas de la estructuracin de formaque una etapa jerrquica y su inmediato inferior serelacionen mediante entradas y salidas de informacin.
7/29/2019 Algoritmas Taller
15/31
Este diseo consiste en una serie dedescomposiciones sucesivas del problema inicial,que recibe el re finamiento progresivo del repertorio de
instrucciones que van a formar parte del programa.
3.2 Bottom Up
El diseo ascendente se refiere a la identificacin deaquellos procesos que necesitanComputarizarse con forme vayan apareciendo, suanlisis como sistema y su codificacin, o bien, la
adquisicin de paquetes de software para satisfacer elproblema inmediato.
Cuando la programacin se realiza internamente yhaciendo un enfoque ascendente, esDifcil llegar a integrar los sub sistemas al grado tal deque el desempeo global, sea fluido. Los problemas de
integracin entre los subsistemas son sumamentecostosos y muchos de ellos no se solucionan hastaque la programacin alcanza la fecha limite para laintegracin total del sistema. En esta fecha, ya secuenta con muy poco tiempo, presupuesto o pacienciade los usuarios, como para corregir aquellas delicadasinterfaces, que en un principio, se ignoran.
Aunque cada subsistema parece ofrecer lo que serequiere, cuando se contempla alsistema como una entidad global, adolece de ciertaslimitaciones por haber tomado un enfoque ascendente.Uno de ellos es la duplicacin de esfuerzos para
7/29/2019 Algoritmas Taller
16/31
acceder el software y ms an al introducir los datos.Otro es, que se introducen al sistema muchos datoscarentes de valor. Un tercero y tal vez el ms serio
inconveniente del enfoque ascendente, es que losobjetivos globales de la organizacin no fueronconsiderados y en consecuencia no se satisfacen.
Tcnicas Para La Formulacin De Algoritmos
4.1 Diagrama de Flujo
Un diagrama de flujo es la representacin grfica deun algoritmo. Tambin se puededecir que es la representacin detallada en formagrfica de cmo deben realizarse los pasos en elcomputador para producir resultados.
Esta representacin grfica se da cuando varios
smbolos (que indican diferentesProcesos en la computador), se relacionan entre simediante lneas que indican el orden en que se debenejecutar los procesos.
Los smbolos utilizados han sido normalizados por elinstituto norteamericano de
Normalizacin (ANSI).
7/29/2019 Algoritmas Taller
17/31
4.2 Seudocdigo
Mezcla de lenguaje de programacin y espaol (o
ingls o cualquier otro idioma) que se emplea, dentrode la programacin estructurada, para realizar eldiseo de un programa. En esencial, el seudocdigose puede definir como un lenguaje de especificacionesde algoritmos.
Es la representacin narrativa de los pasos que debe
seguir un algoritmo para dar solucin a un problemadeterminado. El seudocdigo utiliza palabras queindican el proceso a realizar.
7/29/2019 Algoritmas Taller
18/31
4.3 Diagramas estructurados (Nassi-Schneiderman)
El diagrama estructurado N-S tambin conocido comodiagrama de chapn es como unDiagrama de flujo en el que se omiten las flechas deunin y las cajas son contiguos. Las
Acciones sucesivas se pueden escribir en cajassucesivas y como en los diagramas de flujo, se puedenescribir diferentes acciones en una caja. Un algoritmose represente en la siguiente forma:
Inicio.Accion1Accion2. . .Fin.Inicio.
Estructuras Algortmicas
5.1. Secuenciales
Es aquella en la que una accin (instruccin) sigue aotra en secuencia. Las tareas se suceden de tal modoque la salida de una es la entrada de la siguiente y assucesivamente hasta el fin del proceso. Una estructurasecuencial se representa de laSiguiente forma:
7/29/2019 Algoritmas Taller
19/31
Inicio.Accion1Accion2
..AccinFin
Asignacin: La asignacin consiste, en el paso devalores o resultados a una zona de la
Memoria
Entrada: La lectura consiste en recibir desde undispositivo de entrada (p.ej. el teclado) un valor.Salida: Consiste en mandar por un dispositivo desalida (p.ej. monitor o impresora) un resultado omensaje.
5.2 Condicionales
Las estructuras condicionales comparan una variablecontra otro(s) valor(es), para queen base al resultado de esta comparacin, se siga uncurso de accin dentro del programa.
- Simples: Las estructuras condicionales simples seles conoce como Tomas dedecisin. Estas tomas de decisin tienen la siguienteforma:
7/29/2019 Algoritmas Taller
20/31
Si entoncesAccin(es)Fin.-si- Mltiples: son tomas de decisin especializada quepermiten comparar una variable contra distintaposibles resultados, ejecutando para cada caso unaserie de instrucciones especficas. La forma comn esla siguiente:
Si entoncesAccin(es)Si noSi entonces
Accin(es)Si no
Varias condiciones
5.3 Repeticin fila condicional
Se llaman problemas repetitivos o cclicos a aquellosen cuya solucin es necesario utilizar un mismoconjunto de acciones que se puedan ejecutar unacantidad especfica deveces. La forma de esta estructura es la Siguiente:
Hacer para V.C L.I a L.SAccion1
7/29/2019 Algoritmas Taller
21/31
Accion2.. F
.AccinFin.-para
Dnde:V.C Variable de control del cicloL.I Limite inferirL.S Lmite superior
Ciclos con un Nmero Indeterminado deIteraciones (Hacer-Mientras, Repetir-Hasta)
Son aquellos en que el nmero de iteraciones no seconoce con exactitud, ya que esta dado en funcin deun dato dentro del programa.
Hacer-Mientras: Esta es una estructura que repetirun proceso durante N veces, donde N puede ser fijoo variable. Para esto, la instruccin se vale de unacondicin que es la que debe cumplirse para que sesiga ejecutando. Cuando la condicin ya no se cumple,
entonces ya no se ejecuta el proceso. La forma deesta estructura es la siguiente:
Hacer mientras
7/29/2019 Algoritmas Taller
22/31
Accion1Accion2
Accin NFin-mientras
Repetir-Hasta: Esta es una estructura similar enalgunas caractersticas, a la anterior. Repite unproceso una cantidad de veces, pero a diferencia delHacer-Mientras, el Repetir-Hasta lo hace hasta que lacondicin se cumple y no mientras, como en el Hacer-Mientras. Por otra parte, esta estructura permiterealizar el proceso cuando menos una vez, ya que lacondicin se evala al final del proceso, mientras queen el Hacer-Mientras puede ser que nunca llegue aentrar si la condicin no se cumple desde un principio.La forma de esta estructura es la siguiente:
RepetirAccion1Accion2
Accin NHasta
Arreglos
7/29/2019 Algoritmas Taller
23/31
UnArreglo es una estructura de datos que almacena
bajo el mismo nombre (variable) a una coleccin de
datos del mismo tipo.
Tipo deArreglos Unidimensionales
(Vectores)Bidimensionales (Matrices)
6.1. Vectores
Es un arreglo de N elementos organizados en unadimensin donde N recibe el nombre de longitud otamao del vector. Para hacer referencia a un
elemento del vector se usa el nombre del mismo,seguido del ndice (entre corchetes), el cual indica unaposicin en particular del vector. Por ejemplo:
Vector[x]
Donde:
VectorNombre del arreglo
x Numero de datos que constituyen el arreglo
6.2 Matriz
7/29/2019 Algoritmas Taller
24/31
Es un arreglo de m * n elementos organizados en dosdimensiones donde m es el nmero de filas oreglones y n el nmero de columnas.
Para representar una matriz se necesita un nombre dematriz acompaado de dos ndices.
Matriz [m, n]
Manejo de mdulos
7.1 Definicin
Una funcin se declara de la siguiente manera:
Funcin nombre funcinparametro1, parametro2,,
parmetro N
Inicio
Bloque de instrucciones
Fin
Dnde:
Funcin Es la palabra clave que nosindica una definicin de funcin.
7/29/2019 Algoritmas Taller
25/31
Nombre_funcion Es el identificador con el cual sereconoce a la funcin en el cuerpo del algoritmoprincipal.
Parametro1, parametro2,, parmetro n Es elgrupo de parmetros que define a la funcin.
7.2 Funcin
Se define como un proceso que recibe valores de
entrada (llamados argumentos) y el cual retorna unvalor resultado.
7.3 Manipulacin
Una funcin puede ser llamada de la siguiente forma:
Nombre_funcion (lista de parmetros actuales)
Nombre_funcion funcin que llamaLista de parmetros actuales: constantes, variables y
expresiones.
7/29/2019 Algoritmas Taller
26/31
Ejercicios en LPP
1. Suponga que un individuo desea invertir su capital
en un banco y desea saber cunto dinero ganaradespus de un mes si el banco paga a razn de2% mensual.
7/29/2019 Algoritmas Taller
27/31
2. Un vendedor recibe un sueldo base ms un 10%extra por comisin de sus ventas, el vendedordesea saber cunto dinero obtendr por concepto
de comisiones por las tres ventas que realiza en elmes y el total que recibir en el mes tomando encuenta su sueldo base y comisiones.
7/29/2019 Algoritmas Taller
28/31
7/29/2019 Algoritmas Taller
29/31
3. Una tienda ofrece un descuento del 15% sobre eltotal de la compra y un cliente desea saber cunto
deber pagar finalmente por su compra.
7/29/2019 Algoritmas Taller
30/31
4. Un alumno desea saber cul ser su calificacinfinal en la materia de Algoritmos. Dichacalificacin se compone de los siguientesporcentajes:
55% del promedio de sus tres calificaciones
parciales.
30% de la calificacin del examen final.
15% de la calificacin de un trabajo final.
7/29/2019 Algoritmas Taller
31/31