Algoritmos Base de Datos

  • Upload
    anjhae

  • View
    221

  • Download
    0

Embed Size (px)

Citation preview

  • 8/17/2019 Algoritmos Base de Datos

    1/45

    1.- Introducción a los algoritmos

    Principales conceptos de este manual, así como unaintroducción a sus contenidos. 

    1.- Introducción a los algoritmos Principales conceptos de este manual, así como una introducción a sus contenidos.Entrar 

    2.- Comenzamos a programar Metodología para la solución de un problema mediante un ordenador. Creación de unalgoritmo. Entrar 

    3.- Entidades primitivas para el desarrollo de algoritmos Para el proceso de Algoritmos es necesario aprender a desarrollar un conjunto deelementos. Entrar 

    4.- Constantes, variales ! e"presiones Qué son las constantes, las variables y las epresiones en la programación así comosu clasi!icación. Entrar 

    #.- $peradores ! $perandos Qué son los operadores y los operando, sus tipos y las prioridades de ejecución de losmismos. Entrar 

    %.- &ecnicas de dise'o Eisten dos principales tecnicas de dise"o de algoritmos de programación, el #op$o%n y el &ottom 'p. Entrar 

    (.- &ecnicas para la )ormulación de algoritmos. *iagrama de)lu+o 'na de las dos (erramientas m)s comunes en el dise"o de algoritmos es el diagramade !lujo. Entrar 

    .- Pseudocódigo, diagramas estructurados ! estructuras

    algorítmicas Qué es el pseudocódigo y sus ventajas !rente a los diagramas de !lujos y lasde!iniciones de los diagramas estructurados y las estructuras algorítmicas. Entrar 

    .- Estructuras secuenciales Eplicamos las estructuras secuenciales, cómo se representan en pseudocódigo yalgunos ejemplos pr)cticos de las mismas. Entrar 

    1.- Estructuras condicionales Eplicamos las distintas estructuras poniendo ejemplos tanto en diagrama de !lujocomo en pseudocódigo. Entrar 

    11.- Estructuras cíclicas Eplicamos las tres posibles estructuras cíclicas* Para, mientras, repetir.Complementamos con tres ejemplos para la correcta asimilación de estas estructuras.Entrar 

    1.- Introducción a los algoritmos

    Principales conceptos de este manual, así como una introducción a sus contenidos. 

    El desarrollo de algoritmos es un tema !undamental en el dise"o de programas o soluciones. Por lo cuel alumno debe tener buenas bases +ue le sirvan para poder crear de manera !)cil y r)pida sus

    http://www.desarrolloweb.com/articulos/2143.phphttp://www.desarrolloweb.com/articulos/2143.phphttp://www.desarrolloweb.com/articulos/2143.phphttp://www.desarrolloweb.com/articulos/2144.phphttp://www.desarrolloweb.com/articulos/2144.phphttp://www.desarrolloweb.com/articulos/2144.phphttp://www.desarrolloweb.com/articulos/2145.phphttp://www.desarrolloweb.com/articulos/2145.phphttp://www.desarrolloweb.com/articulos/2164.phphttp://www.desarrolloweb.com/articulos/2164.phphttp://www.desarrolloweb.com/articulos/2165.phphttp://www.desarrolloweb.com/articulos/2165.phphttp://www.desarrolloweb.com/articulos/2183.phphttp://www.desarrolloweb.com/articulos/2183.phphttp://www.desarrolloweb.com/articulos/2184.phphttp://www.desarrolloweb.com/articulos/2184.phphttp://www.desarrolloweb.com/articulos/2184.phphttp://www.desarrolloweb.com/articulos/2184.phphttp://www.desarrolloweb.com/articulos/2198.phphttp://www.desarrolloweb.com/articulos/2198.phphttp://www.desarrolloweb.com/articulos/2198.phphttp://www.desarrolloweb.com/articulos/2199.phphttp://www.desarrolloweb.com/articulos/2199.phphttp://www.desarrolloweb.com/articulos/2199.phphttp://www.desarrolloweb.com/articulos/2225.phphttp://www.desarrolloweb.com/articulos/2225.phphttp://www.desarrolloweb.com/articulos/2249.phphttp://www.desarrolloweb.com/articulos/2249.phphttp://www.desarrolloweb.com/articulos/2143.phphttp://www.desarrolloweb.com/articulos/2143.phphttp://www.desarrolloweb.com/articulos/2143.phphttp://www.desarrolloweb.com/articulos/2143.phphttp://www.desarrolloweb.com/articulos/2144.phphttp://www.desarrolloweb.com/articulos/2144.phphttp://www.desarrolloweb.com/articulos/2145.phphttp://www.desarrolloweb.com/articulos/2145.phphttp://www.desarrolloweb.com/articulos/2164.phphttp://www.desarrolloweb.com/articulos/2164.phphttp://www.desarrolloweb.com/articulos/2165.phphttp://www.desarrolloweb.com/articulos/2165.phphttp://www.desarrolloweb.com/articulos/2183.phphttp://www.desarrolloweb.com/articulos/2183.phphttp://www.desarrolloweb.com/articulos/2184.phphttp://www.desarrolloweb.com/articulos/2184.phphttp://www.desarrolloweb.com/articulos/2184.phphttp://www.desarrolloweb.com/articulos/2198.phphttp://www.desarrolloweb.com/articulos/2198.phphttp://www.desarrolloweb.com/articulos/2198.phphttp://www.desarrolloweb.com/articulos/2199.phphttp://www.desarrolloweb.com/articulos/2199.phphttp://www.desarrolloweb.com/articulos/2225.phphttp://www.desarrolloweb.com/articulos/2225.phphttp://www.desarrolloweb.com/articulos/2249.phphttp://www.desarrolloweb.com/articulos/2249.phphttp://www.desarrolloweb.com/articulos/2143.php

  • 8/17/2019 Algoritmos Base de Datos

    2/45

    programas.

    a siguiente documentación pueden servir de apoyo a tutores o pro!esores, en su labor cotidiana deense"an-a y al estudiante, !acilitarle el desarrollo de su capacidad analítica y creadora, para de estamanera mejorar su destre-a en la elaboración de algoritmos +ue sirven como base para la codi!icacióde los di!erentes programas +ue tendr) +ue desarrollar a lo largo de su carrera.

    Contenido 

    os posteriores artículos mostrar)n el desarrollo del tema de algoritmo a manera de curso. Eisten userie de documentación adicional para re!uer-o conceptual, dado parte importante en el proceso deltema en cuestión.a Esencia de la ógica de Programación /mar 0v)n #rejos &uritic)1Curso Aprende a Programar 

    /0 E 56$7I&8$9 

    a palabra algoritmo se deriva de la traducción al latín de la palabra )rabe al2(o%ari-mi, nombre de matem)tico y astrónomo )rabe +ue escribió un tratado sobre manipulación de n3meros y ecuacionesel siglo 04.

    'n algoritmo es una serie de pasos organi-ados +ue describe el proceso +ue se debe seguir, para darsolución a un problema especí!ico.

    /&IP$ *E 56$7I&8$:9 

    Eisten dos tipos y son llamados así por su naturale-a5

    • Cualitativos5 6on a+uellos en los +ue se describen los pasos utili-ando palabras.• Cuantitativos5 6on a+uellos en los +ue se utili-an c)lculos numéricos para de!inir los pasos de

    proceso.

    5engua+es lgorítmicos 

    'n enguaje algorítmico es una serie de símbolos y reglas +ue se utili-an para describir de maneraeplícita un proceso.

    &ipos de 5engua+es lgorítmicos 

    • 7r)!icos5 Es la representación gr)!ica de las operaciones +ue reali-a un algoritmo diagrama d!lujo1.

    http://www.mailxmail.com/http://www.mailxmail.com/

  • 8/17/2019 Algoritmos Base de Datos

    3/45

    • 8o 7r)!icos5 9epresenta en !orma descriptiva las operaciones +ue debe reali-ar un algoritmopseudocodigo1.

    080C0/Edad5 EnteroE6C90&A :cual es tu edad;<ea Edad60 Edad =>?@ entonces

    E6C90&A :Eres mayor de Edad

  • 8/17/2019 Algoritmos Base de Datos

    4/45

    o $ebe ser general, es decir, soportar la mayoría de las variantes +ue se puedan presenten la de!inición del problema.

    o $ebe ser !inito en tama"o y tiempo de ejecución.o $ise"o del Algoritmoo Prueba de escritorio o $epuración

    6e denomina prueba de escritorio a la comprobación +ue se (ace de un algoritmo para saber si est)bien (ec(o. Esta prueba consiste en tomar datos especí!icos como entrada y seguir la secuenciaindicada en el algoritmo (asta obtener un resultado, el an)lisis de estos resultados indicar) si elalgoritmo est) correcto o si por el contrario (ay necesidad de corregirlo o (acerle ajustes.

    3.- Entidades primitivas para el desarrollo de algoritmos

    Para el proceso de lgoritmos es necesario aprender a desarrollar un con+unto de element

    #odo estos elementos con los cuales se construyen dic(os algoritmos se basan en una disciplinallamada5 Programación Estructurada.

    Empecemos por conocer las reglas para cambiar !órmulas matem)ticas a epresiones v)lidas para la

    computadora, adem)s de di!erenciar constantes e identi!icadores y tipos de datos simples.

    &ipos *e *atos 

    #odos los datos tienen un tipo asociado con ellos. 'n dato puede ser un simple car)cter, tal como FbG,valor entero tal como HI. El tipo de dato determina la naturale-a del conjunto de valores +ue puedetomar una variable.

    &ipos de *atos imples 

    $atos 8uméricos5Permiten representar valores escalares de !orma numérica, esto incluye a los n3meros enteros y losreales. Este tipo de datos permiten reali-ar operaciones aritméticas comunes.

    $atos lógicos56on a+uellos +ue solo pueden tener dos valores cierto o !also1 ya +ue representan el resultado de uncomparación entre otros datos numéricos o al!anuméricos1.

    $atos al!anuméricos string15Es una secuencia de caracteres al!anuméricos +ue permiten representar valores identi!icables de !ormdescriptiva, esto incluye nombres de personas, direcciones, etc. Es posible representar n3meros comal!anuméricos, pero estos pierden su propiedad matem)tica, es decir no es posible (acer operacionescon ellos. Este tipo de datos se representan encerrados entre comillas.

    http://www.desarrolloweb.com/articulos/2145.phphttp://www.desarrolloweb.com/articulos/2145.php

  • 8/17/2019 Algoritmos Base de Datos

    5/45

    Identi)icadores 

    os identi!icadores representan los datos de un programa constantes, variables, tipos de datos1. 'nidenti!icador es una secuencia de caracteres +ue sirve para identi!icar una posición en la memoria decomputadora, +ue permite acceder a su contenido.Ejemplo5J 8ombre

    J 8umK(rs

    J Cali!L

    7eglas para )ormar un identi)icador • $ebe comen-ar con una letra A a , may3sculas o min3sculas1 y no deben contener espacios

    blanco.• etras, dígitos y caracteres como la subraya K 1 est)n permitidos después del primer car)cte• a longitud de identi!icadores puede ser de varios caracteres. Pero es recomendable una longi

    promedio de @ caracteres.• El nombre del identi!icador debe dar una idea del valor +ue contiene.

    Constantes, variales ! e"presiones

    0u; son las constantes, las variales ! las e"presiones en la programación así como suclasi)icación. 

    Constantes 

    'na constante es un dato numérico o al!anumérico +ue no cambia durante la ejecución del programEjemplo5

    pi > H.?N?O

    pi radio L

    as variables son 5 el radio, el area y la constate es pi

    Clasi)icación de las

  • 8/17/2019 Algoritmos Base de Datos

    6/45

    Por su contenido • Rariables 8uméricas5 6on a+uellas en las cuales se almacenan valores numéricos, positivos

    negativos, es decir almacenan n3meros del S al T, signos U y V1 y el punto decimal.Ejemplo5

    iva > S.?I pi > H.?N?O costo > LISS• Rariables ógicas5 6on a+uellas +ue solo pueden tener dos valores cierto o !also1 estos

    representan el resultado de una comparación entre otros datos.• Rariables Al!anuméricas5 Esta !ormada por caracteres al!anuméricos letras, n3meros y

    caracteres especiales1.Ejemplo5

    letra > GaG apellido > Glope-G direccion > GAv. ibertad W?TSG

    Por su uso • Rariables de #rabajo5 Rariables +ue reciben el resultado de una operación matem)tica comple

    y +ue se usan normalmente dentro de un programa.Ejemplo5

    6uma > a U b Xc• Contadores5 6e utili-an para llevar el control del numero de ocasiones en +ue se reali-a una

    operación o se cumple una condición. Con los incrementos generalmente de uno en uno.

    • Acumuladores5 orma +ue toma una variable y +ue sirve para llevar la suma acumulativa de userie de valores +ue se van leyendo o calculando progresivamente.

    E"presiones 

    as epresiones son combinaciones de constantes, variables, símbolos de operación, paréntesis ynombres de !unciones especiales.

    Por ejemplo5a U b U H1 X c

    Cada epresión toma un valor +ue se determina tomando los valores de las variables y constantesimplicadas y la ejecución de las operaciones indicadas.

    'na epresión consta de operadores y operandos. 6eg3n sea el tipo de datos +ue manipulan, seclasi!ican las epresiones en5

    • Aritméticas• 9elacionales

    • ógicas

    #.- $peradores ! $perandos

    0u; son los operadores ! los operando, sus tipos ! las prioridades de e+ecución de los

    mismos. 

    $peradores 

    6on elementos +ue relacionan de !orma di!erente, los valores de una o mas variables yXo constantesdecir, los operadores nos permiten manipular valores.

    http://www.desarrolloweb.com/articulos/2165.phphttp://www.desarrolloweb.com/articulos/2165.php

  • 8/17/2019 Algoritmos Base de Datos

    7/45

    $peradores ritm;ticos

    os operadores aritméticos permiten la reali-ación de operaciones matem)ticas con los valoresvariables y constantes1.

    os operadores aritméticos pueden ser utili-ados con tipos de datos enteros o reales. 6i ambos sonenteros, el resultado es entero* si alguno de ellos es real, el resultado es real.

    Operadores Aritméticos U 6umaV 9esta

    Multiplicación X $ivisión

    mod Modulo residuo de la división entera1

    Ejemplos5Epresión 9esultado

    Y X L H.I

    ?L mod Y IN U L I ?N

    Prioridad de los $peradores ritm;ticos 

    #odas las epresiones entre paréntesis se eval3an primero. as epresiones con paréntesis anidadoseval3an de dentro a !uera, el paréntesis m)s interno se eval3a primero.

    $entro de una misma epresión los operadores se eval3an en el siguiente orden5?. Eponenciación

    L. , X, mod Multiplicación, división, modulo.H. U, V 6uma y resta.

    os operadores en una misma epresión con igual nivel de prioridad se eval3an de i-+uierda a derec(Ejemplos5

    N U L I > ?N LH L X I > T.LH U I ?S V L U N11 > LH L.? ?.I U ?L.H1 > L.? ?H.@ > [email protected]@

    $peradores 7elacionales 

    6e utili-an para establecer una relación entre dos valores. uego compara estos valores entre si y escomparación produce un resultado de certe-a o !alsedad verdadero o !also1.

  • 8/17/2019 Algoritmos Base de Datos

    8/45

    os operadores relacionales comparan valores del mismo tipo numéricos o cadenas1. Estos tienen mismo nivel de prioridad en su evaluación.

    os operadores relaciónales tiene menor prioridad +ue los aritméticos.

    #ipos de operadores 9elacionales• = Mayor +ue• Z Menor +ue

    • = > Mayor o igual +ue• Z > Menor o igual +ue

    • Z = $i!erente• > 0gual

    Ejemplos56i a > ?S, b > LS, c > HSa U b = c alsoa V b Z c Rerdaderoa V b > c also

    a b Z = c Rerdadero

    Ejemplos no lógicos5a Z b Z c

    ?S Z LS Z HS# = I Z HS

    no es lógico por+ue tiene di!erentes operandos1

    $peradores 5ógicos

    Estos operadores se utili-an para establecer relaciones entre valores lógicos. Estos valores pueden sresultado de una epresión relacional.

    #ipos de operadores ógicosAnd [

    /r /8ot 8egación

    Ejemplo5Para los siguientes ejemplos # signi!ica verdadero y !also.

    $perador =ot $perador =ot /perando 9esultado

    # #

    $perador nd $perador nd 

  • 8/17/2019 Algoritmos Base de Datos

    9/45

    /perando? /perador /perandoL 9esultado# A8$ # #

    # #

    $perador $r $perador $r 

    /perando? /perador /perandoL 9esultado# /r # ## # # #

    Prioridad de los /peradores ógicos?. 8otL. AndH. /r

    Prioridad de los /peradores en 7eneral

    ?. 1L. H. , X, Mod, 8ot

    N. U, V, AndI. =, Z, = >, Z >, Z =, >, /r

    Ejemplos56ea5 a > ?S b > ?L c > ?H d >?S

    %.- &ecnicas de dise'o Eisten dos principales tecnicas de dise"o de algoritmos de programación, el #op $o%n y el &ottom 'p. Entrar E"isten dos principales tecnicas de dise'o de algoritmos de programación, el &op *o>n !

    ?ottom p. 

    &op *o>n 

    http://www.desarrolloweb.com/articulos/2183.phphttp://www.desarrolloweb.com/articulos/2183.phphttp://www.desarrolloweb.com/articulos/2183.phphttp://www.desarrolloweb.com/articulos/2183.php

  • 8/17/2019 Algoritmos Base de Datos

    10/45

    #ambién conocida como de arribaVabajo y consiste en establecer una serie de niveles de mayor a mecomplejidad arribaVabajo1 +ue den solución al problema. Consiste en e!ectuar una relación entre laetapas de la estructuración de !orma +ue una etapa jer)r+uica y su inmediato in!erior se relacionemediante entradas y salidas de in!ormación. Este dise"o consiste en una serie de descomposicione

    sucesivas del problema inicial, +ue recibe el re!inamiento progresivo del repertorio de instrucciones +van a !ormar parte del programa.

    a utili-ación de la técnica de dise"o #opV$o%n tiene los siguientes objetivos b)sicos5

    • 6impli!icación del problema y de los subprogramas de cada descomposición.• as di!erentes partes del problema pueden ser programadas de modo independiente e inclus

    por di!erentes personas.• El programa !inal +ueda estructurado en !orma de blo+ue o módulos lo +ue (ace mas sencilla

    lectura y mantenimiento.

    ?ottom p 

    El dise"o ascendente se re!iere a la identi!icación de a+uellos procesos +ue necesitan computari-arse

    con !orme vayan apareciendo, su an)lisis como sistema y su codi!icación, o bien, la ad+uisición depa+uetes de so!t%are para satis!acer el problema inmediato.

    Cuando la programación se reali-a internamente y (aciendo un en!o+ue ascendente, es di!ícil llegar aintegrar los subsistemas al grado tal de +ue el desempe"o global, sea !luido. os problemas deintegración entre los subsistemas son sumamente costosos y muc(os de ellos no se solucionan (asta+ue la programación alcan-a la !ec(a limite para la integración total del sistema. En esta !ec(a, ya secuenta con muy poco tiempo, presupuesto o paciencia de los usuarios, como para corregir a+uellasdelicadas inter!aces, +ue en un principio, se ignoran. Aun+ue cada subsistema parece o!recer lo +ue re+uiere, cuando se contempla al sistema como una entidad global, adolece de ciertas limitaciones po(aber tomado un en!o+ue ascendente.'no de ellos es la duplicación de es!uer-os para acceder el so!t%are y mas a3n al introducir los datos/tro es, +ue se introducen al sistema muc(os datos carentes de valor.

    'n tercero y tal ve- el mas serio inconveniente delen!o+ue ascendente, es +ue los objetivos globales la organi-ación no !ueron considerados y en consecuencia no se satis!acen.

    Entonces: 

    a di!erencia entre estas dos técnicas de programación se !undamenta en el resultado +ue presentan!rente a un problema dado.0magine una empresa, la cual se compone de varios departamentos contabilidad, mercadeo, \1, encada uno de ellos se !ueron presentando problemas a los cuales se le dieron una solución basados enen!o+ue ascendente &ottom 'p15 creando programas +ue satis!acían sólo el problema +ue sepresentaba.Cuando la empresa decidió integrar un sistema global para suplir todas las necesidades de todos los

    departamentos se dio cuenta +ue cada una de las soluciones presentadas no era compatible la una cla otra, no representaba una globalidad, característica principal de los sistemas.Como no (ubo un previo an)lisis, dise"o de una solución a nivel global en todos sus departamentos,centrali-ación de in!ormación, +ue son características propias de un dise"o $escendente #op $o%n1 características !undamentales de los sistemas* la empresa no pudo satis!acer su necesidad a nivelglobal.a creación de algoritmos es basado sobre la técnica descendente, la cual brinda el dise"o ideal para solución de un problema.

    (.- &ecnicas para la )ormulación de algoritmos. *iagrama de )lu+o 'na de las dos (erramientas m)s comunes en el dise"o de algoritmos es el diagrama de !lujo. Entrar 

    http://www.desarrolloweb.com/articulos/2184.phphttp://www.desarrolloweb.com/articulos/2184.phphttp://www.desarrolloweb.com/articulos/2184.phphttp://www.desarrolloweb.com/articulos/2184.php

  • 8/17/2019 Algoritmos Base de Datos

    11/45

    na de las dos @erramientas mAs comunes en el dise'o de algoritmos es el diagrama de)lu+o. 

    *iagrama de Blu+o 

    'n diagrama de !lujo es la representación gr)!ica de un algoritmo. #ambién se puede decir +ue es representación detallada en !orma gr)!ica de como deben reali-arse los pasos en la computadora pa

    producir resultados.

    Esta representación gr)!ica se da cuando varios símbolos +ue indican di!erentes procesos en lacomputadora1, se relacionan entre si mediante líneas +ue indican el orden en +ue se deben ejecutar

    procesos. os símbolos utili-ados (an sido normali-ados por el instituto norteamericano denormali-ación A86015

    ímolo *escripción

    0ndica el inicio y el !inal de nuestro diagrama de !lujo

    0ndica la entrada y salida de datos.

    6ímbolo de proceso y nos indica la asignación de un vaen la memoria yXo la ejecución de una operación

    aritmética.

    0ndica la salida de in!ormación por impresora.

    Conector dentro de p)gina. 9epresenta la continuidad diagrama dentro de la misma p)gina.

    Conector !uera de pagina. 9epresenta la continuidad ddiagrama en otra pagina.

    0ndica la salida de in!ormación en la pantalla o monito

    6ímbolo de decisión. 0ndica la reali-ación de unacomparación de valores.

  • 8/17/2019 Algoritmos Base de Datos

    12/45

    6ímbolo de 6elección M3ltiple. $ada una epresión permescoger una opción de muc(as.

    6ímbolo del Mientras. $ada una epresión al principio diteración esta es evaluada* si la condición es verdader

    reali-ar) el ciclo, si es !alsa la repetición cesar).

    6ímbolo del Para. Esta estructura de control repetitiva usa generalmente cuando se conoce de antemano e

    numero de iteraciones.

    6ímbolo 9epita ]asta. !unciona igual +ue la estructurMientras, con la di!erencia +ue al menos una ve- (ar) grupo de instrucciones y luego evaluar) una condición.

    la condición evaluada es !alsa continua dentro del ciclo es verdadera termina la iteración.

  • 8/17/2019 Algoritmos Base de Datos

    13/45

    íneas de !lujo o dirección. 0ndican la secuencia en +uereali-an las operaciones.

    7ecomendaciones para el dise'o de *iagramas de Blu+o 

    • 6e deben usar solamente líneas de !lujo (ori-ontales yXo verticales.• 6e debe evitar el cruce de líneas utili-ando los conectores.

    • 6e deben usar conectores sólo cuando sea necesario.• 8o deben +uedar líneas de !lujo sin conectar.

    • 6e deben tra-ar los símbolos de manera +ue se puedan leer de arriba (acia abajo y de i-+uiera derec(a.

    • #odo teto escrito dentro de un símbolo deber) ser escrito claramente, evitando el uso demuc(as palabras.

    .- Pseudocódigo, diagramas estructurados ! estructuras algorítmicas Qué es el pseudocódigo y sus ventajas !rente a los diagramas de !lujos y las de!iniciones de los diagramas estructurados y lasestructuras algorítmicas. Entrar 0u; es el pseudocódigo ! sus venta+as )rente a los diagramas de )lu+os ! las de)iniciones d

    los diagramas estructurados ! las estructuras algorítmicas. 

    Pseudocódigo 

    Me-cla de lenguaje de programación y espa"ol o ingles o cual+uier otro idioma1 +ue se emplea, dende la programación estructurada, para reali-ar el dise"o de un programa. En esencial, el Pseudocódi

    se puede de!inir como un lenguaje de especi!icaciones de algoritmos.

    En esencial, el Pseudocódigo se puede de!inir como un lenguaje de especi!icaciones de algoritmos.Es la representación narrativa de los pasos +ue debe seguir un algoritmo para dar solución a un

    problema determinado. El Pseudocódigo utili-a palabras +ue indican el proceso a reali-ar.

  • 8/17/2019 Algoritmos Base de Datos

    14/45

    Estructuras lgorítmicas 

    as estructuras de operación de programas son un grupo de !ormas de trabajo, +ue permiten, mediala manipulación de variables, reali-ar ciertos procesos especí!icos +ue nos lleven a la solución de

    problemas. Estas estructuras se clasi!ican de acuerdo con su complejidad en5

    .- Estructuras secuenciales Eplicamos las estructuras secuenciales, cómo se representan en pseudocódigo y algunos ejemplos pr)cticos de las mismas.Entrar 

    E"plicamos las estructuras secuenciales, cómo se representan en pseudocódigo ! algunoe+emplos prActicos de las mismas. 

    a estructura secuencial es a+uella en la +ue una acción instrucción1 sigue a otra en secuencia. atareas se suceden de tal modo +ue la salida de una es la entrada de la siguiente y así sucesivamen

    http://www.desarrolloweb.com/articulos/2199.phphttp://www.desarrolloweb.com/articulos/2199.phphttp://www.desarrolloweb.com/articulos/2199.phphttp://www.desarrolloweb.com/articulos/2199.php

  • 8/17/2019 Algoritmos Base de Datos

    15/45

    (asta el !in del proceso.

    En Pseudocódigo una Estructura 6ecuencial se representa de la siguiente !orma5

    /bserve el siguiente problema de tipo cotidiano y sus respectivos algoritmos representados enPseudocódigo y en diagramas de !lujos5

    ^ #engo un telé!ono y necesito llamar a alguien pero no sé como (acerlo.

    El anterior ejemplo es un sencillo algoritmo de un problema cotidiano dado como muestra de unaestructura secuencial. A(ora veremos los componentes +ue pertenecen a ella5

    signación 

    a asignación consiste, en el paso de valores o resultados a una -ona de la memoria. $ic(a -ona se

  • 8/17/2019 Algoritmos Base de Datos

    16/45

    reconocida con el nombre de la variable +ue recibe el valor. a asignación se puede clasi!icar de lasiguiente !orma5

    • 6imples5 Consiste en pasar un valor constante a una variable a ?I1• Contador5 Consiste en usarla como un veri!icador del numero de veces +ue se reali-a un proc

    a a U ?1• Acumulador5 Consiste en usarla como un sumador en un proceso a a U b1

    $e trabajo5 $onde puede recibir el resultado de una operación matem)tica +ue involucre mucvariables a c U bLXN1.

    En general el !ormato a utili-ar es el siguiente5

    Z Rariable = Zvalor o epresión =

    El símbolo debe leerse :asigne

  • 8/17/2019 Algoritmos Base de Datos

    17/45

    En la anterior declaración de variables Contador, Edad e 0 son declaradas de tipo entero* 6alarioK&ases una variable de tipo real, /pcion es de tipo car)cter y la variable $ireccion est) declarada como u

    variable al!anumérica de cadena de caracteres.

    En el momento de declarar constantes debe indicarse +ue lo es y colocarse su respectivo valor.

    C/86#A8#E Pi H.?N?IT

    C/86#A8#E Msg :Presione una tecla y continue

  • 8/17/2019 Algoritmos Base de Datos

    18/45

    1.- Estructuras condicionales 

    Eplicamos las distintas estructuras poniendo ejemplos tanto en diagrama de !lujo como en pseudocódigo. Entrar E"plicamos las distintas estructuras poniendo e+emplos tanto en diagrama de )lu+o como pseudocódigo. 

    as estructuras condicionales comparan una variable contra otros1valor es1, para +ue en base alresultado de esta comparación, se siga un curso de acción dentro del programa. Cabe mencionar +ue

    comparación se puede (acer contra otra variable o contra una constante, seg3n se necesite. Eistetres tipos b)sicos, las simples, las dobles y las m3ltiples.

    implesF 

    as estructuras condicionales simples se les conoce como :#omas de decisión

  • 8/17/2019 Algoritmos Base de Datos

    19/45

    $onde56i50ndica el comando de comparación

    Condición 5 0ndica la condición a evaluarEntonces 5 Precede a las acciones a reali-ar cuando se cumple la condición

    0nstrucciónes156on las acciones a reali-ar cuando se cumple o no la condiciónsi no 5Precede a las acciones a reali-ar cuando no se cumple la condición

    $ependiendo de si la comparación es cierta o !alsa, se pueden reali-ar una o m)s acciones.

    8GltiplesF 

    as estructuras de comparación m3ltiples, son tomas de decisión especiali-adas +ue permiten compauna variable contra distintos posibles resultados, ejecutando para cada caso una serie de instruccionespeci!icas. a !orma com3n es la siguiente5

    Pseudocódigo5 $iagrama de !lujo5

    8Gltiples En caso deDF 

    as estructuras de comparación m3ltiples, es una toma de decisión especiali-ada +ue permiten evaluuna variable con distintos posibles resultados, ejecutando para cada caso una serie de instruccioneespeci!icas. a !orma es la siguiente5

    Pseudocódigo5 $iagrama de !lujo5

  • 8/17/2019 Algoritmos Base de Datos

    20/45

    Reamos algunos ejemplos donde se apli+ue todo lo anterior5

    9eali-ar un algoritmo en donde se pide la edad del usuario* si es mayor de edad debe aparecer unmensaje indic)ndolo. Epresarlo en Pseudocódigo y $iagrama de !lujos.

    Pseudocódigo5 $iagrama de !lujo5

    6e pide leer tres notas del alumno, calcular su de!initiva en un rango de SVI y enviar un mensaje dondiga si el alumno aprobó o reprobó el curso. Eprese el algoritmo usando Pseudocódigo y diagrama

    !lujos.

    Pseudocódigo5

    080C0/8ot?, 8otL, 8ot H 59EA

    $e!5 9EAEA 8ota?, 8otaL, 8otaH

    $e! _ 8ot? U 8otL U 8otH1 XH6i $e! Z H entonces

  • 8/17/2019 Algoritmos Base de Datos

    21/45

      Escriba :9eprobó el curso<6ino

    Escriba :Aprobó el curso<inV6i08

    $iagrama de !lujo5

    6e desea escribir un algoritmo +ue pida la altura de una persona, si la altura es menor o igual a ?IS envíe el mensaje5 :Persona de altura baja?YS entonces

    E6C90&A :persona de altura media<6ino

    6i Altura=?YS E8#/8CE6

  • 8/17/2019 Algoritmos Base de Datos

    22/45

      E6C90&A :persona alta<inV6i

    inV6iinV6i08

    `Es importante ser ordenado en el código +ue se escribeB

    $iagrama de !lujo5

    $ado un numero entre ? y Y escriba su correspondiente día de la semana así5?V unes LV Martes HV Miércoles NV ueves IV Riernes OV 6)bado YV $omingo

    Eprese el algoritmo usando Pseudocódigo y diagrama de !lujos.

    Pseudocódigo5 Pseudocódigo5

    080C0/$ia5 E8#E9/

    E6C90&A :$iga un n3mero para escribir su día<EA $ia

    EnVcasoVde $ia (agaCaso ?5 E6C90&A :unes

  • 8/17/2019 Algoritmos Base de Datos

    23/45

      Caso L5 E6C90&A :Martes<Caso H5 E6C90&A :Miércoles<Caso N5 E6C90&A :ueves<Caso I5 E6C90&A :Riernes<Caso O5 E6C90&A :6)bado<

    Caso Y5 E6C90&A :$omingo<608/5 E6C90&A :Escribió un numero !uera del rango ?VY<

    inVCaso

    08

    $iagrama de !lujo5

    11.- Estructuras cíclicas Eplicamos las tres posibles estructuras cíclicas* Para, mientras, repetir. Complementamos con tres ejemplos para la correctaasimilación de estas estructuras. Entrar 

    E"plicamos las tres posiles estructuras cíclicasH Para, mientras, repetir. Complementamocon tres e+emplos para la correcta asimilación de estas estructuras. 

    6e llaman problemas repetitivos o cíclicos a a+uellos en cuya solución es necesario utili-ar un mismconjunto de acciones +ue se puedan ejecutar una cantidad especí!ica de veces. Esta cantidad puede !ija previamente determinada por el programador1 o puede ser variable estar en !unción de alg3n d

    dentro del programa1. os ciclos se clasi!ican en5

    Ciclos con un =umero *eterminado de Iteraciones 

    • Para15 6on a+uellos en +ue el n3mero de iteraciones se conoce antes de ejecutarse el ciclo. !orma de esta estructura es la siguiente5

    Pseudocódigo *iagrama de Blu+os 

    http://www.desarrolloweb.com/articulos/2249.phphttp://www.desarrolloweb.com/articulos/2249.phphttp://www.desarrolloweb.com/articulos/2249.phphttp://www.desarrolloweb.com/articulos/2249.php

  • 8/17/2019 Algoritmos Base de Datos

    24/45

    • $ado un valor inicial ep? asignado a la variable esta se ir) aumentando o disminuyendo deacuerdo a la epH (asta llegar a la epL* si se omite el paso, signi!ica +ue la variable aument

    de uno en uno.

    Ciclos con un =Gmero Indeterminado de Iteraciones

    6on a+uellos en +ue el numero de iteraciones no se conoce con eactitud, ya +ue esta dado en !uncde un dato dentro del programa.

    • Mientras Que5 Esta es una estructura +ue repetir) un proceso durante :8< veces, donde :8puede ser !ijo o variable. Para esto, la instrucción se vale de una condición +ue es la +ue deb

    cumplirse para +ue se siga ejecutando. Cuando la condición ya no se cumple, entonces ya no

    ejecuta el proceso. a !orma de esta estructura es la siguiente5

    Pseudocódigo *iagrama de Blu+os 

    • 9epitaV]asta5 Esta es una estructura similar en algunas características, a la anterior. 9epite proceso una cantidad de veces, pero a di!erencia del Mientras Que, el 9epitaV]asta lo (ace (a

    +ue la condición se cumple y no mientras, como en el Mientras Que. Por otra parte, estaestructura permite reali-ar el proceso cuando menos una ve-, ya +ue la condición se eval3a !inal del proceso, mientras +ue en el Mientras Que puede ser +ue nunca llegue a entrar si la

    condición no se cumple desde un principio. a !orma de esta estructura es la siguiente5

    Pseudocódigo *iagrama de Blu+os 

  • 8/17/2019 Algoritmos Base de Datos

    25/45

    E+emplo 1F 

    9eali-ar un algoritmo +ue muestre los n3meros de uno en uno (asta die- usando una estructura PaEprese el algoritmo usando Pseudocódigo y diagrama de !lujos.

    Pseudocódigo *iagrama de Blu+os

     

    E+emplo 2F 

    'sando una estructura Mientras, reali-ar un algoritmo +ue escriba los n3meros de uno en uno (asta

    Pseudocódigo *iagrama de Blu+os 

  • 8/17/2019 Algoritmos Base de Datos

    26/45

    E+emplo 3F 

    9eali-ar un algoritmo +ue pregunte al usuario un n3mero comprendido en el rango de ? a I. Elalgoritmo deber) validar el numero, de manera +ue no contin3e la ejecución del programa mientras

    se escriba un numero correcto.

    Pseudocódigo *iagrama de Blu+os 

  • 8/17/2019 Algoritmos Base de Datos

    27/45

  • 8/17/2019 Algoritmos Base de Datos

    28/45

    a desviación típica es la ra-, cuadrada de la varian,a.

    1%. a secuencia de números de Fibonacci comien,a con los enteros

    donde cada n+mero despu0s de los dos primeros es la suma de los dos anteriores. Escriba un

     programa para calcular todos los n+meros de ibonacci menores de (%%%.11. a compañ-a 2in!y 3amusino vende actualmente 4%% gamusinos al mes con un bene/icio de '%%

    euros por gamusino. 5hora la compañ-a gasta 4%%% euros al mes en publicidad y tiene unos costes /uncionamiento de 1%%% euros al mes que no dependen del volumen de ventas. Si la compañ-a doblla cantidad gastada en publicidad las ventas se incrementan en un 4% por ciento. Escriba un prograque imprima ba*o cabeceras apropiadas la cantidad gastada en publicidad las ventas reali,adas y  bene/icio neto. 6omience con el estado actual de la compañ-a y doble sucesivamente la cantidadgastada en publicidad hasta que el bene/icio neto comience a declinar. a salida debe incluir lascantidades hasta la primera ve, que el bene/icio neto empie,a a disminuir.

    Estructuras SecuencialesSe les denomina as- por que son estructuras en un programa que despu0s de e*ecutar una instrucción osentencia contin+an con la otra hasta llegar al /inal del programa. os e*emplos que hemos vistoanteriormente son e*emplos de estructuras secuenciales. eamos otros e*emplos9

    E*emplo '.'

    Diseñe un programa que calcula el cuadrado y el cubo de tres n+meros introducidos por el usuario.

    :include

    :include

    main")

    ;

    int

  • 8/17/2019 Algoritmos Base de Datos

    29/45

    clrscr")

     print/"=>t?2@325A5 BCE 656C5 E 6C5D25D@ E 6C@ DE ' FCAE2@S>n>n=)

     print/"=Gntrodu,aca el primer nHmero9>n=)

    scan/"=Id= Jn= y y1 y4)

     print/"=KKId KKKK Id KKKKK Id KKKK>n= , ,1 ,4)

     print/"=KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK>n=)

    getch")

    return %

    L

    E*emplo '.M

  • 8/17/2019 Algoritmos Base de Datos

    30/45

    Cna empresa necesita conocer el sueldo neto a pagar a un empleado. Neniendo como entrada el salario produ,ca una salida de sueldo neto. os descuentos a aplicar son9 GSSS (I 5? 7I y 2enta 1%I estosdescuentos son sobre el salario y es sueldo neto es la di/erencia entre el salario y el total de las retenciones

    :include

    :include

    main")

    ;

    /loat sueldo a/p isss renta sn

    char nombreO(%P

    clrscr")

     print/"=Gntrodu,ca el Fombre del empleado9>n=)

    scan/"=Is= nombre)

     print/"=Su sueldo es9>n=)

    scan/"=I/= Jsueldo)

    a/p#sueldoK%.%7

    isss#sueldoK%.%(

    renta#sueldoK%.1%

    sn#sueldoQ"a/pRisssRrenta)

     print/"=El empleado Is>n= nombre)

     print/"=?osee un sueldo neto de I.4/>n= sn)

    getch")

    return %

    L

    E*emplo '.(

    Diseñe un programa que calcule el promedio y la suma de tres n+meros ingresados por el usuario9

    :include

  • 8/17/2019 Algoritmos Base de Datos

    31/45

    :include

    main")

    ;

    /loat n=)

    scan/"=I/= J

  • 8/17/2019 Algoritmos Base de Datos

    32/45

    T Estructura Selectiva Simple

    T Estructura Selectiva Doble

    T Estructura Selectiva A+ltiple

    T ESN2C6NC25 SEE6NG5 SGA?E

    unciona de la siguiente manera9 se eval+a una condición de ser cierta e/ect+a una acción de lo contrariocontin+a con la e*ecución normal del programa.

    Su sinta

  • 8/17/2019 Algoritmos Base de Datos

    33/45

     print/"=Gntrodu,ca el valor de la compra9>n=)

    scan/"=I/= Jcompra)

    i/"compraW#(%)

    compra#compraK%.8

     print/"=El Gmporte de la compra es I.4/>n>n= compra)

    getch")

    return %

    L

    T ESN2C6NC25 SEE6NG5 D@E

    Esta estructura se caracteri,a por el hecho que o/rece dos caminos a seguir dependiendo si al evaluar lacondición resulta cierta o /alsa. Su sinta

  • 8/17/2019 Algoritmos Base de Datos

    34/45

    int num

     print/"=Gngrese el nHmero9>n=)

    scan/"=Id= Jnum)

    i/"numI4##%)

     print/"=ES ?52>n>n=)

    else

     print/"=ES GA?52>n>n=)

    getch")

    return %

    L

    E*emplo '.8

    Diseñe un programa que dada la nota de alumno imprima en la pantalla un comentario sobre esa nota. Elcriterio para los comentarios es el siguiente9

    Si nota es mayor o igual a & UEn=)

    scan/"=I/= Jnota)

  • 8/17/2019 Algoritmos Base de Datos

    35/45

    i/"nota W# &.%)

     print/"=EY6EEFNE>n>n=)

    else

    i/"nota W# 8.%)

     print/"=AC CEF@>n>n=)

    else

    i/"nota W# 7.%)

     print/"=CEF@>n>n=)

    else

    i/"nota W#$.%)

     print/"=2E3C52>n>n=)

    else

     print/"=FE6ESGN5 AEZ@252>n>n=)

    getch")

    return %

    L

    Este e*emplo muestra que 6 permite hacer anidamientos es decir una selección dentro de otra ya sea delado del cierto o del /also o de ambos.

    El lector puede tratar de hacer sus propias conclusiones además de buscar otras posibles solucione para esmismo problema. ?or e*emplo [que pasar-a si iniciamos con la condición del $.%\. [Bu0 pasar-a si el usuadigita una neta negativa\ [6ómo podr-as darle solución a este problema\. 6omo programadores debemoshacernos muchas preguntas al momento de diseñar nuestros programas ya que estos Fo serán usados pornosotros sino por otras personas.

    E*emplo '.&

    Dada el peso la altura y el se

  • 8/17/2019 Algoritmos Base de Datos

    36/45

    WW Si son mu*eres y su estatura es mayor de a 1.(% m y su peso es mayor o igual a 1'% lb su dosis será9 4de la estatura y 7(I de su peso. De lo contrario la dosis será9 '(I de la estatura y $(I de su peso. a dosdebe ser e

  • 8/17/2019 Algoritmos Base de Datos

    37/45

  • 8/17/2019 Algoritmos Base de Datos

    38/45

     brea!

    case Etiqueta 9

    5cción

     brea!

    case Etiqueta n9

    5cción n

     brea!

    de/ault9

    En=)

  • 8/17/2019 Algoritmos Base de Datos

    39/45

    scan/"=Id= Jn)

    sitch"n)

    ;

    case %9 puts"=6ero=)

     brea!

    case 19 puts"=Cno=)

     brea!

    case 49 puts"=Dos=)

     brea!

    case '9 puts"=Nres=)

     brea!

    de/ault9 puts"=Dato Fo valido=)

     brea!

    L

    getch")

    return %

    L

    programación modular

    1. Cn número complejo es un n+mero de la /orma donde y son n+meros reales y as cuatro operaciones aritm0ticas básicas sobre n+meros comple*os se de/inen como9

    suma: 

    resta: 

    producto: 

  • 8/17/2019 Algoritmos Base de Datos

    40/45

    división: 

    suponiendo .

    Escriba un programa que lea dos n+meros comple*os "donde se introduce como un par den+meros reales) y un s-mbolo correspondiente a una de las operaciones anteriores y que traba*e co

    la operación correspondiente.

    4. El máximo común divisor  de dos enteros y donde al menos uno de ellos es distde cero es el entero positivo más grande que divide y . El algoritmo de Euclides para encontra

  • 8/17/2019 Algoritmos Base de Datos

    41/45

    1. Desarrolle una especi/icación para el problema incluyendo los criterios establecidos para lodistintos tipos de pr0stamos. ?ara ello debe obtener la in/ormación de un banco local o deotras /uentes.

    4. Desarolle un plan de diseño descendente para un programa que resuelva el problema de laconcesión de un cr0dito.

    '. 6odi/ique y pruebe los subprogramas y el programa completo que implemente el plan dediseño.

    Algoritmo

    Gn/ormalmente un algoritmo es simplemente una manera de resolver un problema o un con*unto de accioque la computadora debe llevar a cabo a /in de resolver un problema.

    Aas /ormalmente un 5lgoritmo es una secuencia de acciones bien de/inidas y e/ectivas que al ser

    e*ecutadas siempre produce un resultado y siempre termina en un tiempo /inito. eamos en detalle estascaracter-sticas de los algoritmos.

    1. Secuencia Ordenada

    El pró

  • 8/17/2019 Algoritmos Base de Datos

    42/45

    Estructuras algorítmicas básicas

    Es posible demostrar que cualquier problema puede reducirse utili,ando sóllas siguientes estructuras algor-tmicas9 Estructura secuencial Estructuracondicional y Estructura repetitiva " o la,o repetitivo).

    4. Estructura Secuencial

    Acción 1 -> Acción 2 -> Acción 3 -> ...

    a solución del problema consiste en la solución de subproblemas parciales en /orma consecutiva. Es decque la acción ! no se inicia hasta haber terminado la acción !Q1. En muchos casos para reali,ar la acción !necesitaremos el resultado de la acción !Q1. En nuestra notación en pseudocódigo indicaremos las accionsecu0nciales separadas por 9

    Acci-n );

    Acci-n 2;

    Acci-n 3;

    Acci-n 4;

    as acciones propiamente dichas van desde operaciones de entradasalida "como ingresar n+meros porteclado o imprimir un n+mero por pantalla) operaciones matemáticas o de mane*o de caracteres otrasestructuras algor-tmicas y hasta otros algoritmos ya resueltos "llamado procedimientos /unciones osubrutinas en los distintos lengua*es). ?or e*emplo9 supongamos que queremos dividir dos n+meros a y b...

    ngresar n/mero a;

    ngresar n/mero #;

    0i1idir a y #;

    m+rimir el resultado;

    5. Estructura ondicional

    En este caso la solución del problema conduce a que seg+n se cumpla cierta condición o no se e*ecute unotra de dos acciones di/erentes.

    i Condición "ntonces

      Acci-n)

    ino

      Acci-n2

    ini

    E*emplo9 mismo problema anterior pero sólo cuando b es distinto de %.

    ngresar n/mero a;

    ngresar n/mero #;

    i # es igual a

    m+rimir mensae de error;

    ino

    0i1idir a y #;

    m+rimir el resultado;

  • 8/17/2019 Algoritmos Base de Datos

    43/45

    ini

    !. Estructura "epetitiva

    En este caso la solución del problema consiste en la repetición de una acción mássencilla mientras se cumpla cierta condición. 2esulta evidente que para que esta

    sucesión de acciones termine la acción misma debe modi/icar por lo menos una de las variables que

    intervienen en la condición. 6ada ve, que se e*ecuta la acción la llamaremos iteración.6ientras Condición 7acer

      Acción

    in6ientras

    6omo se observa en el diagrama de bloques la evaluación de la condición se reali,a antes de e*ecutar caduna de las iteraciones es decir que si la condición no se cumple la primera ve, que llegamos a este la,o laacción no se e*ecutará nunca.

    E*emplo9 calcular el /actorial de un n+mero n.

    ngresar n/mero n;

    niciali8ar *actorial en );

    6ientras n sea mayor 9ue )

    multi+licar *actorial +or n;

    guardar resultado en *actorial;

    disminuir n en );

    in6ientras

    m+rimir *actorial;

     Fotar que hasta este momento no hemos hecho mención de ning+n lengua*e en particular. Esto se debe a qel planteo de algoritmos es un paso previo a la escritura del código del programa. ?or supuesto que losdistintos lengua*es brindan otras estructuras algor-tmicas además de las básicas que pueden /acilitarnos lavida a la hora de plantear la solución más apropiada.

    Programación

    Serie de completa de pasos involucrados en la resolución de un problema utili,ando el computador. Fo decon/undirse programación con codi/icación este +ltimo t0rmino se re/iere al proceso de escribirinstrucciones en un lengua*e de programación particular.

    Pasos involucrados en la programación

    a programación es un proceso comple*o que involucra los siguientes pasos9

    #. $efinici%n del problema

    ?arece un paso obvio pero no debe olvidarse. El problema debe estar bien de/inido y deben eliminarse lasambigedades e la incertidumbre. Este paso comprende9

    1. Especificaci%n de entradas

    Descripción de los datos de entrada del programa9

  • 8/17/2019 Algoritmos Base de Datos

    44/45

    • alores espec-/icos de entrada del programa• ormato• 2ango de valide, para cada dato de entrada

    2. Especificaci%n de salidas

    Descripción de los datos de salida del programa9• Bue valores deben ser producidos• ormato9 precisión ci/ras signi/icativas ubicación en la pantalla• 2ango de valide, para cada dato de entrada• Cbicación en la pantalla t-tulos encabe,ados etc.

    3. &rocesamiento especial

    eri/icar y procesar ciertas condiciones que podr-an llevar a error o que requieran un procesamientespecial.

    '. Es(uema de la soluci%n

    E

  • 8/17/2019 Algoritmos Base de Datos

    45/45