Algoritmas Taller

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