análisis de problemas y diseño de algoritmos

46
U NIVERSIDAD DE C ARABOBO . F ACULTAD DE I NGENIERÍA . D EPARTAMENTO DE C OMPUTACIÓN . C ÁTEDRA DE C OMPUTACIÓN I S EGUNDO P ERÍODO L ECTIVO DE 2006. U U NIDAD I I : : A A NÁLISIS DE P P ROBLEMAS Y D D ISEÑO DE A A LGORITMOS 1. A LGORITMOS 2. T IPOS DE D ATO 3. I DENTIFICADORES 4. V ARIABLES / C ONSTANTES 5. O PERADORES 6. C ONSTRUCCIÓN Y E VALUACIÓN DE E XPRESIONES 7. I NSTRUCCIONES B ÁSICAS 8. A BSTRACCIÓN DE DATOS 9. U SOS DE V ARIABLES 10. C ONCEPTOS V ARIOS 11. T ÉCNICAS DE P ROGRAMACIÓN 12. E JERCICIOS T ÍPICOS R ESUELTOS 13. E JERCICIOS P ROPUESTOS 14. R EFERENCIAS

Upload: gonzalojf

Post on 24-Nov-2015

61 views

Category:

Documents


0 download

TRANSCRIPT

  • UN I V E R S I D AD D E CARABOBO . FACU L T AD D E INGEN I E R A . D E P AR T AM EN TO D E COMPU T AC I N .

    C T E D R A D E COM P U T AC I N I S EG UN DO P E R O DO L E C T I V O D E 2 0 0 6 .

    UUNNIIDDAADD II :: AANNLL II SS II SS DDEE PPRROOBBLLEEMMAASS YY DD II SSEEOO DDEE AALLGGOORRII TTMMOOSS

    11 .. AA LL GGOO RR II TT MMOO SS

    22 .. TT II PP OO SS DD EE DD AA TT OO

    33 .. II DD EE NN TT II FF II CC AADDOO RR EE SS

    44 .. VV AA RR II AA BB LL EE SS // CCOONN SS TT AANN TT EE SS

    55 .. OO PP EE RR AADDOO RR EE SS

    66 .. CCOONN SS TT RR UU CCCC II NN YY EE VV AA LL UU AACC II NN DD EE EE XX PP RR EE SS II OO NN EE SS

    77 .. II NN SS TT RR UUCCCC II OONN EE SS BB SS II CC AA SS

    88 .. AA BB SS TT RR AACCCC II NN DD EE DD AA TT OO SS

    99 .. UU SS OO SS DD EE VVAA RR II AA BB LL EE SS

    11 00 .. CCOONNCC EE PP TT OO SS VVAA RR II OO SS

    11 11 .. TT CC NN II CC AA SS DD EE PP RROOGGRR AAMMAACC II NN

    11 22 .. EE JJ EE RR CC II CC II OO SS TT PP II CCOO SS RR EE SS UU EE LL TT OO SS

    11 33 .. EE JJ EE RR CC II CC II OO SS PP RROO PP UU EE SS TT OO SS

    11 44 .. RR EE FF EE RR EE NNCC II AA SS

  • UN I V E R S I D AD D E CARABOBO . FACU L T AD D E INGEN I E R A . D E P AR T AM EN TO D E COMPU T AC I N .

    C T E D R A D E COM P U T AC I N I S EG UN DO P E R O DO L E C T I V O D E 2 0 0 6 .

    MM AA TT EE RR II AA LL DD EE AA PP OO YY OO AA CC LL AA SS EE SS PP GG II NN AA 22 DD EE 44 66

    1 . A L G O R I T M O S La palabra algoritmo se deriva del nombre del gran matemtico rabe Mohamed Ibn al-Khwarizmi, que vivi durante el siglo IX y alcanz gran reputacin por el enunciado de las reglas para sumar, restar, multiplicar y dividir nmeros decimales; la traduccin al latn del apellido de la palabra algorismus deriv posteriormente en algoritmo.

    D E F I N I C I N

    Un algoritmo es la descripcin de los pasos a seguir para la solucin de un problema. Todo algoritmo debe ser:

    P R E C I S O : cada instruccin debe indicar de forma inequvoca que se tiene que hacer. F I N I T O : debe tener un nmero limitado de pasos. D E F I N I D O : debe producir los mismos resultados para las mismas condiciones de entrada.

    R O B U S T E Z D E U N A L G O R I T M O

    Cada algoritmo debe contemplar todas las posibles facetas del problema que se desea resolver. Al elaborar el algoritmo no se debe escapar ningn detalle que provoque un mal funcionamiento.

    T I P O S D E A L G O R I T M O S

    COM P U T AC I O N A L NO C OM P U T AC I O N A L

    algoritmo que puede ser ejecutado por un computador. Ejemplo: Calculo de n!

    algoritmo que NO puede ser ejecutado por un computador. Ejemplo: Receta de cocina

    P A R T E S D E U N A L G O R I T M O

    Todo algoritmo puede ser descompuesto en tres partes:

    E S P E C I F I C A C I N D E E N T R A D A : Que informacin se requiere. Que se tiene? P R O C E S O : Pasos a seguir para resolver el problema. Como lograrlo? E S P E C I F I C A C I N D E S A L I D A : Resultados esperados. Que se pide?

    R E P R E S E N T A C I N D E A L G O R I T M O S

    Los lenguajes algortmicos representan los smbolos y reglas que se utilizan para describir de manera explicita al algoritmo; pueden representarse de las siguientes maneras:

    E S C R I T A : Descripcin no grafica expresada en lenguaje natural. Por ejemplo: Para sumar dos nmeros podran escribirse los siguientes algoritmos:

    V E R S I N 1 V E R S I N 2 V E R S I N 3

    Sumar dos valores ledos e imprimir resultado.

    Dados dos valores ledos, su- marlos e imprimir resultado.

    Imprimir el resultado de sumar dos valores ledos.

    V E R S I N 4 Distinguiendo las acciones

    V E R S I N 5 : Jerarquizando acciones

    V E R S I N 6 : Resaltando acciones

    1. leer dos valores 2. sumarlos 3. imprimir resultado

    1. leer A, B 2. calcular C como A + B 3. imprimir C

    1. leer A, B 2. calcular C como A + B 3. imprimir C

    Problema Algoritmo Programa

  • UN I V E R S I D AD D E CARABOBO . FACU L T AD D E INGEN I E R A . D E P AR T AM EN TO D E COMPU T AC I N .

    C T E D R A D E COM P U T AC I N I S EG UN DO P E R O DO L E C T I V O D E 2 0 0 6 .

    MM AA TT EE RR II AA LL DD EE AA PP OO YY OO AA CC LL AA SS EE SS PP GG II NN AA 33 DD EE 44 66

    I inicio

    A, B leer

    C A + B calcular

    C imprimir

    F fin

    P S E U D O C D I G O : Descripcin no grafica expresada en lenguaje natural pero con forma de programa; se requiere tener conocimiento de algn lenguaje de programacin

    D I A G R A M A D E F L U J O : Representacin grfica de un algoritmo. Ventaja: es INDEPENDIENTE del lenguaje de programacin.

    V E R I F I C A C I N

    Todo algoritmo debe ser verificado para que funcione correctamente presentando una solucin al problema a tratar y cumple con todos lo requerimientos especificados. Los mtodos de verificacin son:

    C O R R I D A E N F R I O [ T R A Z A ] : P R U E B A E X H A U S T I V A : Llevar record de los valores de las variables mientras se ejecuta instruccin por instruccin. Los datos deben considerar valores en frontera del rango de los datos a usar. Por ejemplo para el Diagrama de Flujo arriba:

    C O R R I D A E N F R O 1 C O R R I D A E N F R O 2 C O R R I D A E N F R O 3

    A B C A B C A B C

    4 5 9 -4 5 1 0 -5 -5

    P R E Y P O S T C O N D I C I O N E S : V E R I F I C A C I O N M A T E M A T I C A : Toda instruccin tiene una precondicin y poscondicin. Precondicin se refiere a los valores de las variables y estado del programa ANTES de ejecutar la instruccin. Poscondicin se refiere al valor obtenido por la variable o estado del programa DESPUES de ejecutar la instruccin. En el caso del algoritmo arriba: Para la instruccin: calcular A+B

    PRECONDICION: Las variables A y B han sido ledas POSCONDICION: La variable C es el resultado de A + B

    P R O B L E M A S P R O P U E S T O S

    1. Escriba el algoritmo para cambiar el caucho delantero de un automvil. 2. Escriba el algoritmo para expresar en centmetros y pulgadas una cantidad dada en metros.

    V E R S I N 1

    Inicio leer A, B; C = A + B; imprimir C; Fin.

  • UN I V E R S I D AD D E CARABOBO . FACU L T AD D E INGEN I E R A . D E P AR T AM EN TO D E COMPU T AC I N .

    C T E D R A D E COM P U T AC I N I S EG UN DO P E R O DO L E C T I V O D E 2 0 0 6 .

    MM AA TT EE RR II AA LL DD EE AA PP OO YY OO AA CC LL AA SS EE SS PP GG II NN AA 44 DD EE 44 66

    2 . T I P O S D E D A T O

    Los datos que manejan los lenguajes de programacin se clasifican segn la figura. La asignatura Computacin 1 se dedica a cubrir los tipos elementales o base de un lenguaje de programacin:

    T I P O D E D A T O E S T T I C O

    Un tipo de DATO E S T T I CO se refiere a que no es posible cambiar el tipo de una variable durante la ejecucin de un programa. Por ejemplo si una variable se declara numrica entera, no es posible convertirla a una variable de tipo cadena de caracteres, numrico real, arreglo o cualquier otro tipo durante la ejecucin de un programa.

    T I P O D E D A T O S I M P L E

    Se refiere a que no es posible almacenar ms de un valor a la vez; este tipo tambin se conoce como tipo de dato base.

    T I P O D E D A T O O R D I N A L :

    Tomando como referencia el lenguaje de programacin Pascal [versin freePascal] se puede afirmar que todos los tipos base [simples] exceptuando al tipo numrico real y al tipo entero especfico int64 son ORDINALES que cumplen con las siguientes caractersticas:

    1. Los ordinales son contables y ordenables. i.e. es posible contarlos uno a uno en un orden especfico. i.e. a, b, c, , z o 1, 2, 3

    2. Se define como sucesor el siguiente valor ordinal segn su orden, y antecesor el valor inmediato anterior. Todo valor ordinal tiene un sucesor y un antecesor bien definido, i.e. el numero 4 tiene como antecesor el numero 3 y como sucesor el numero 5; la letra s tiene como antecesor la letra r y como sucesor la letra t

    3. El mnimo valor ordinal NO tiene un antecesor

    4. El mximo valor ordinal NO tiene un sucesor

    T I P O S P R I N C I P A L E S P O S I B L E S V A L O R E S T A M A O

    A continuacin se presenta una tabla con los tipos de dato mas frecuentemente usados, sus posibles valores y su tamao [espacio en memoria requerido para almacenar valores de este tipo]

    TIPO DE DATOS ALFANUMRICO:

    TIPO POSIBLES VALORES TAMAO

    Carcter [Un carcter] Definidos en tabla de caracteres ASCII 1 byte

    Cadena de caracteres Combinacin de caracteres ASCII Nro de Bytes = Nro de caracteres

    T I P O S D E D A T O

    E S T A T I C O S D I N A M I C O S

    O R D I N A L E S numricos: enteros alfanumrico: carcter lgicos: boolean

    definidos por usuario subrango enumerados

    E S T R U C T U R A D O S S I M P L E S

    N O O R D I N A L E S numricos: reales

    alfanumricos: cadena de caracteres

    Apuntadores Tipos de datos

    abstractos listas

    enlazadas rboles grafos

    archivos arreglos registros

  • UN I V E R S I D AD D E CARABOBO . FACU L T AD D E INGEN I E R A . D E P AR T AM EN TO D E COMPU T AC I N .

    C T E D R A D E COM P U T AC I N I S EG UN DO P E R O DO L E C T I V O D E 2 0 0 6 .

    MM AA TT EE RR II AA LL DD EE AA PP OO YY OO AA CC LL AA SS EE SS PP GG II NN AA 55 DD EE 44 66

    TIPO DE DATOS NUMRICO:

    TIPO POSIBLES VALORES DIGITOS

    SIGNIFICATIVOS TAMAO

    Byte 0 .. 255 1 Shortint -128 .. 127 1 Integer -32768 .. 32767 2 Word 0 .. 65535 2 Longint -2147483648..2147483647 4 Real platform dependant ??? 4 o 8 Single 1.5E-45 .. 3.4E38 7-8 4 Double 5.0E-324 .. 1.7E308 15-16 8

    3 . I D E N T I F I C A D O R E S

    Todo elemento definido por el usuario, sea una variable, constante, programa, tipo o subprograma se identifica por un nombre. Este nombre debe cumplir las siguientes normas:

    1. El primer carcter debe ser alfabtico o smbolo de subrayado, 2. Puede usarse cualquier carcter alfabtico, numrico o el smbolo de subrayado

    [ no acepta caracteres especiales ] 3. Su mximo tamao es 255 caracteres

    4 . V A R I A B L E S / C O N S T A N T E S

    V A R I A B L E S :

    Una variable es un espacio para guardar informacin la cual se puede recuperar ms tarde. Las variables tienen tres componentes: el N OM B R E de la variable; el V A L O R almacenado y el T I P O permitido para ese valor. El N OM B R E de la variable debe respetar las normas para formar identificadores. Toda variable tiene la capacidad de cambiar su V A L O R durante la ejecucin de un programa. Una variable debe declararse en programas o algoritmos indicando su N OM B R E y el T I P O que maneja.

    C O N S T A N T E S :

    Son valores que no cambian durante la ejecucin del programa. Por ejemplo:

    Numrico Carcter Cadena de Caracteres

    Lgicas

    4 -58 0.335 a B 4 + hola 45 verdadero falso

    TIPO DE DATOS BOOLEANO:

    TIPO POSIBLES VALORES VALOR ORDINAL

    PARA

    VERDADERO

    Boolean 0, 1 false, true falso-verdadero

    1

    I D E N T I F I C ADO R E S V A L I D O S I D E N T I F I C ADO R E S I N V A L I DO S

    Hola _hola Est_2 MayorProm 2_est a+b Mayor Prom

    valor

    Nombre de variable

    tipo

  • UN I V E R S I D AD D E CARABOBO . FACU L T AD D E INGEN I E R A . D E P AR T AM EN TO D E COMPU T AC I N .

    C T E D R A D E COM P U T AC I N I S EG UN DO P E R O DO L E C T I V O D E 2 0 0 6 .

    MM AA TT EE RR II AA LL DD EE AA PP OO YY OO AA CC LL AA SS EE SS PP GG II NN AA 66 DD EE 44 66

    5 . O P E R A D O R E S

    A menudo los programas, aparte de almacenar y recuperar valores de la memoria requieren manipular valores con el fin de obtener resultados; por ello se crean expresiones que pueden ser de distinto tipo: Aritmticas, relacionales y lgicas. En dichas expresiones intervienen dos elementos fundamentales O P E R A N D O S y O P E R A D O R E S .

    Las expresiones son combinaciones de constantes, variables, smbolos de operacin (operadores) y parntesis. Por ejemplo:

    Cada expresin toma un valor, que se determina tomando los valores de las variables y constantes implicadas; y realizando la ejecucin de las operaciones indicadas.

    Segn el tipo de datos que se generan, los operadores se clasifican en: A R I T M T I C O S , R E L A C I N A L E S , LG I C O S . El resultado de la expresin aritmtica es de tipo numrico; el resultado de la expresin relacional y de la expresin lgica es de tipo lgico/boleano.

    O P E R A N D O S

    El tipo de operando determinar, que una expresin sea o no correcta, y pueda ser evaluada para obtener un resultado. El tipo de dato determina la cantidad de celdas de memoria a utilizar, as como la estructura de la informacin de cada celda y su interpretacin.

    O P E R A D O R E S

    Son elementos que relacionan de forma diferente, los valores de una o ms variables y/o constantes. Es decir, los operadores nos permiten manipular valores.

    Segn el nmero de operandos a los que se aplica un operador, estos pueden clasificarse como U N A R I O S , que actan sobre un solo operando o B I N A R I O S , cuando lo hacen sobre dos. A continuacin se presenta la Sintaxis de las operaciones unarias y binarias:

    T I P O D E O P E R A D O R E S

    O P E R A D O R E S A R I T M T I C O S

    Los operadores aritmticos permiten la realizacin de operaciones matemticas con los valores (variables y constantes).

    Los operadores aritmticos pueden ser utilizados con tipos de datos enteros o reales. Si ambos son enteros, el resultado es entero; si alguno de ellos es real, el resultado es real.

    cba /)3( ++

    (Operador) Operando 1 (Constante o Variable)

    Resultado

    Operacin Unaria

    Operando 1 (Constante o Variable)

    (Operador) Operando 2 (Constante o Variable)

    Resultado

    Operacin Binaria

    Operadores

    Aritmticos

    Relacionales

    Lgicos / Bolanos

  • UN I V E R S I D AD D E CARABOBO . FACU L T AD D E INGEN I E R A . D E P AR T AM EN TO D E COMPU T AC I N .

    C T E D R A D E COM P U T AC I N I S EG UN DO P E R O DO L E C T I V O D E 2 0 0 6 .

    MM AA TT EE RR II AA LL DD EE AA PP OO YY OO AA CC LL AA SS EE SS PP GG II NN AA 77 DD EE 44 66

    Operadores Aritmticos Cambio de Signo Menos unitario

    (Operador unario) - Suma + Resta -

    Multiplicacin * Divisin /

    Cociente de Divisin Entera de dos enteros DIV Residuo de Divisin Entera de dos enteros MOD

    Conviene observar lo siguiente:

    1. Cuando los dos operandos sean del tipo E N T E R O , el resultado ser de tipo E N T E R O .

    2. Cuando uno de los dos operandos, o ambos, sean del tipo R E A L , el resultado ser de tipo R E A L .

    3. La operacin divisin (/) siempre presenta un resultado de tipo R E A L .

    4. Los operandos en caso de DIV y MOD tienen que ser E N T E R O S .

    En las operaciones aritmticas, debe asegurarse que el resultado de sumar, restar o multiplicar dos valores, no produzca un resultado fuera de los rangos definidos, para los diferentes tipos.

    O P E R A D O R E S R E L A C I O N A L E S

    Una RELACIN consiste de dos operandos separados por un operador R E L A C I O N A L . Si la relacin es satisfecha, el resultado tendr un valor boleano T R U E ; si la relacin no se satisface, el resultado tendr un valor F A L S E . Los operandos deben ser del mismo tipo.

    Tienen el mismo nivel de prioridad en su evaluacin y esta est por debajo de los operadores aritmticos.

    Operadores de Relacin Igual =

    Diferente de Mayor >

    Mayor o igual >= Menor <

    Menor o Igual

  • UN I V E R S I D AD D E CARABOBO . FACU L T AD D E INGEN I E R A . D E P AR T AM EN TO D E COMPU T AC I N .

    C T E D R A D E COM P U T AC I N I S EG UN DO P E R O DO L E C T I V O D E 2 0 0 6 .

    MM AA TT EE RR II AA LL DD EE AA PP OO YY OO AA CC LL AA SS EE SS PP GG II NN AA 88 DD EE 44 66

    Operando-2

    Operador:

    AND T F

    T T F

    Operando-1

    F F F

    Operando-2

    Operador:

    OR T F

    T T T

    Operando-1

    F T F

    Operando-1

    Operador:

    NOT T F

    F T

    Las definiciones de las operaciones Negacin, And y Or, se resume en las siguientes tablas, conocidas como tablas de la verdad:

    6 . C O N S T R U C C I N Y E V A L U A C I N D E E X P R E S I O N E S

    Las expresiones son secuencias de constantes y/o variables separadas por operadores vlidos. Se puede construir una expresin vlida por medio de:

    1. Una sola constante o variable, la cual puede estar precedida por un signo + - . 2. Una secuencia de trminos (constantes, variables, funciones) separados por operadores.

    Toda variable utilizada en una expresin debe tener un valor almacenado para que la expresin, al ser evaluada, d como resultado un valor.

    Cualquier constante o variable puede ser reemplazada por una llamada a una funcin.

    Las expresiones se evalan de acuerdo a la J E R A R Q U A D E O P E R A D O R E S . La siguiente tabla muestra la jerarqua de los operadores:

    R E G L A S D E E V A L U A C I N P A R A L A S E X P R E S I O N E S

    1. Las operaciones encerradas entre parntesis se evalan primero. Si existen parntesis anidados, las expresiones ms internas se evalan primero.

    2. Las operaciones dentro de una expresin siguen el orden de prioridad especificado. 3. En caso de coincidir varios operadores de igual prioridad en una expresin, el orden de evaluacin de

    las operaciones es de izquierda a derecha. 4. Las expresiones enlazadas con un operador lgico AND, OR NOT, deben estar entre parntesis.

    Prioridad Operadores 0 ( ) 1 -Unitario, Not 2 * , / , AND, DIV, MOD 3 + , - , OR 4 = , , > , >= , < ,

  • UN I V E R S I D AD D E CARABOBO . FACU L T AD D E INGEN I E R A . D E P AR T AM EN TO D E COMPU T AC I N .

    C T E D R A D E COM P U T AC I N I S EG UN DO P E R O DO L E C T I V O D E 2 0 0 6 .

    MM AA TT EE RR II AA LL DD EE AA PP OO YY OO AA CC LL AA SS EE SS PP GG II NN AA 99 DD EE 44 66

    E J E M P L O S D E E V A L U A C I N D E E X P R E S I O N E S

    LEYENDA: E representa un valor numrico entero [ 4 ] R representa un valor numrico real [ 4.53 ] B representa un valor lgico / boleano [ True, False ]

    )9()0.3*2/2*( =>+ ZorZBA

    E E E E E R E E E

    E R

    R

    B B B B Error al asignar por incompatibilidad de tipos

    76

    5

    43

    2 1

    8

    R

    Ejemplo 1

    4 + 2 * 5 Se evala primero 10 Se evala en segundo

    lugar

    14

    Ejemplo 2

    23 * 2 / 5 Se evala primero 46 Se evala en segundo

    lugar

    9.2

    Ejemplo 5

    Si a = 10 b = 20 c = 30

    (a < b) AND (b < c) (10 < 20) AND (20 < 30) True True

    True

    Ejemplo 6

    Si a = 10 b = 20 c = 30

    a + b > c 10 + 20 > 30 30 > 30 False

    Ejemplo 7

    23 * 2 DIV 5 46 DIV 5 9

    Ejemplo 4

    3.5 + 5.09 - 14.0 / 4 3.5 + 5.09 - 3.5 8.59 - 3.5 5.09

    Ejemplo 3

    7 DIV 2 MOD 5 3 MOD 5 3

  • UN I V E R S I D AD D E CARABOBO . FACU L T AD D E INGEN I E R A . D E P AR T AM EN TO D E COMPU T AC I N .

    C T E D R A D E COM P U T AC I N I S EG UN DO P E R O DO L E C T I V O D E 2 0 0 6 .

    MM AA TT EE RR II AA LL DD EE AA PP OO YY OO AA CC LL AA SS EE SS PP GG II NN AA 11 00 DD EE 44 66

    7 . I N S T R U C C I O N E S B S I C A S

    Lenguaje Algortmico Estructuras Secuenciales

    Pseudocdigo Diagrama de Flujo

    ACCIN: Lectura de informacin

    DESCRIPCIN: Interaccin entre el mundo exterior [usuario] y el programa

    leer

    ACCIN: Presentar resultados

    DESCRIPCIN: Interaccin entre el programa y el mundo exterior [usuario]

    imprimir

    ACCIN:

    Asignar valores

    DESCRIPCIN: Almacena valores constantes, resultados de la evaluacin de expresiones y/o copia valores de otras variables. Debe tenerse en cuenta una compatibilidad de tipos entre la variable que recibe la asignacin y el valor asignado.

    Constante VARIABLE expresin valor almacenado en otra variable

    asignar

    seudos

    Lenguaje Algortmico Estructuras Selectivas

    Pseudocdigo Diagrama de Flujo

    ACCIN: Seleccin simple

    DESCRIPCIN: Caso: Cuando solo existen dos elecciones posibles. Determina cual de las dos acciones debe ejecutarse dependiendo del resultado de la evaluacin de una condicin. La condicin puede ser una expresin de relacin o una expresin lgica.

    Preguntar: Si condicin es verdadera: entonces

    ACCION 1 sino ACCION 2

    ACCIN: Seleccin mltiple

    DESCRIPCIN: Caso: Cuando existen mas de dos elecciones posibles. Determina accin a ejecutarse dependiendo del valor que tome la variable.

    E representa ELECCION A representa ACCION

    Segn sea variable hacer: E1 : ACCION 1 E2 : ACCION 2 : :

    En : ACCION n sino ACCION

    a,b,c

    a,b,c

    A 58+2 58+2 58+2 58+2

    NO SI cond

    Accin 2 Accin 1

    variable

    A1 A2 An A ...

  • UN I V E R S I D AD D E CARABOBO . FACU L T AD D E INGEN I E R A . D E P AR T AM EN TO D E COMPU T AC I N .

    C T E D R A D E COM P U T AC I N I S EG UN DO P E R O DO L E C T I V O D E 2 0 0 6 .

    MM AA TT EE RR II AA LL DD EE AA PP OO YY OO AA CC LL AA SS EE SS PP GG II NN AA 11 11 DD EE 44 66

    Lenguaje Algortmico Estructuras Repetitivas

    Pseudocdigo Diagrama de Flujo ACCIN:

    Iteracin tipo mientrasmientrasmientrasmientras DESCRIPCIN:

    Mientras se cumple la condicin, se ejecuta la accin

    NO se conoce el numero de veces que se ejecuta

    Funcionamiento: Se evala la condicin:

    si el resultado es VERDADERO se ejecuta el cuerpo del ciclo. Este proceso se repite mientras que la condicin sea VERDADERA

    si el resultado es FALSO se ejecuta la primera instruccin fuera del ciclo y continua

    Nota: Condicin, puede ser una expresin de relacin o una expresin lgica. Las variables asociadas a la condicin deben modificarse durante la ejecucin de la accin para garantizar un fin de ejecucin del ciclo.

    Observacin: Cabe la posibilidad de que NO se cumpla la condicin la primera vez que se evala, en cuyo caso NO entra en el ciclo, que nunca deje de cumplirse por lo que el proceso no se detiene y se conoce como CICLO INFINITO.

    Mientras cond hacer: ACCION

    ACCIN:

    Iteracin tipo repitarepitarepitarepita DESCRIPCIN:

    Repetir la accin hasta que se cumpla una condicin

    NO se conoce el numero de veces que se ejecuta

    Funcionamiento: Se ejecuta la accin Se evala la condicin:

    si el resultado es VERDADERO se ejecuta la primera instruccin fuera del ciclo y continua

    si el resultado es FALSO se ejecuta el cuerpo del ciclo. Este proceso se repite hasta que la condicin sea VERDADERA

    Nota: Condicin puede ser una expresin de relacin o una expresin lgica. Las variables asociadas a la condicin deben modificarse durante la ejecucin de la accin para garantizar un fin de ejecucin del ciclo.

    Observacin: Como verifica despus de ejecutar la accin toda iteracin tipo repita se ejecuta al menos una vez, en caso de que la condicin nunca se cumpla el proceso no se detiene y se conoce como CICLO INFINITO.

    Repita ACCION Hasta cond

    Mientras cond

    Fin Mientras

    ACCI

    ON

    SI

    NO

    Cond Accin 1

    Repetir

    Hasta cond

    ACCI

    ON

    NO

    SI

    Accin 1

    Cond

  • UN I V E R S I D AD D E CARABOBO . FACU L T AD D E INGEN I E R A . D E P AR T AM EN TO D E COMPU T AC I N .

    C T E D R A D E COM P U T AC I N I S EG UN DO P E R O DO L E C T I V O D E 2 0 0 6 .

    MM AA TT EE RR II AA LL DD EE AA PP OO YY OO AA CC LL AA SS EE SS PP GG II NN AA 11 22 DD EE 44 66

    Lenguaje Algortmico Estructuras Repetitivas

    seudos cdigo Diagrama de Flujo

    ACCIN: Iteracin tipo desdedesdedesdedesde

    DESCRIPCIN:

    Ejecutar la accin un numero determinado de veces controlado por una variable de control vc desde un valor inicial vi hasta un valor final vf con un incremento inc igual a +1 o -1

    SI se conoce el numero de veces que se ejecuta

    Funcionamiento: Ejecuta la accin un nmero especfico de veces y AUTOMTICAMENTE controla el nmero de iteraciones. El proceso automtico consta de:

    Inicializar la variable de control en el valor inicial

    Verificar la condicin: variable de control es = que valor final si el inc es 1.

    Si el resultado es VERDADERO: se ejecuta el cuerpo del ciclo se incrementa la variable de control en inc se transfiere el control al inicio del ciclo para verificar

    otra vez

    Si el resultado es FALSO:

    se ejecuta la primera instruccin fuera del ciclo y contina.

    Nota: Cuando inc = +1: si vi > vf NO entra en el ciclo inc = -1: si vi < vf NO entra en el ciclo

    Desde vc vi hasta vf con incremento inc hacer: ACCION

    vc vi, vf, inc

    Fin del ciclo

    ACCI

    ON

  • UN I V E R S I D AD D E CARABOBO . FACU L T AD D E INGEN I E R A . D E P AR T AM EN TO D E COMPU T AC I N .

    C T E D R A D E COM P U T AC I N I S EG UN DO P E R O DO L E C T I V O D E 2 0 0 6 .

    MM AA TT EE RR II AA LL DD EE AA PP OO YY OO AA CC LL AA SS EE SS PP GG II NN AA 11 33 DD EE 44 66

    8 . A B S T R A C C I N D E D A T O S

    L I S T A S S I M P L E S

    Se entiende por una lista de datos a la organizacin o representacin de los datos segn uno o ms criterios. Una lista es, entonces, aquella representacin de datos que tiene un solo criterio de organizacin. Por ejemplo: la informacin de los estudiantes de una seccin que puede constar de: Cedula de Identidad, Nombre del Estudiante, Notas, Escuela a la que pertenece.

    La abstraccin de los datos consta de su representacin, generalmente la informacin de un tem de informacin por lnea de representacin. En el caso de los estudiantes, toda la informacin asociada a un estudiante aparecer en una lnea de los datos.

    Las listas simples se clasifican en listas con:

    NUMERO DE DATOS A PROCESAR CONOCIDO: La figura 1 muestra la informacin a organizarse para ser procesada por un programa. La figura 2 muestra la informacin ya organizada en una lista. Note que el numero de datos a procesar es el PRIMER dato de la lista

    A continuacin se presenta un esquema de cmo manipular una lista de este tipo: Forma de Datos

    Estructura del Programa: ciclo desde 1 a N hacer insts

    N Informacin de tem 1 Informacin de tem 2 Informacin de tem 3

    : : :

    Informacin de tem n

    Informacin de tem 1 Informacin de tem 2 Informacin de tem 3

    : : :

    Informacin de tem n

    N

    Datos

    N Informacin de tem 1 Informacin de tem 2 Informacin de tem 3

    : : :

    Informacin de tem n

    Lista de datos a procesar por el programa

    Figura 1 Figura 2

    Fin del ciclo

    ACCI

    ON

    Lectura del tamao de la lista Inicializaciones para el manejo de una lista

    Ciclo para controlar la lista, en general de 1 a N

    Lectura de un tem Instrucciones propias de los datos de la lista Fin de ciclo Totales de una lista

  • UN I V E R S I D AD D E CARABOBO . FACU L T AD D E INGEN I E R A . D E P AR T AM EN TO D E COMPU T AC I N .

    C T E D R A D E COM P U T AC I N I S EG UN DO P E R O DO L E C T I V O D E 2 0 0 6 .

    MM AA TT EE RR II AA LL DD EE AA PP OO YY OO AA CC LL AA SS EE SS PP GG II NN AA 11 44 DD EE 44 66

    Forma de Datos Estructura del Programa; Ciclo mientras cond hacer insts Similarmente cuando el ciclo es tipo repita insts hasta cond

    N Informacin de tem 1 Informacin de tem 2 Informacin de tem 3

    : : :

    Informacin de tem n

    NUMERO DE DATOS A PROCESAR DESCONOCIDO: La figura 1 muestra la informacin a organizarse para ser procesada por un programa. La figura 2 muestra la informacin ya organizada en una lista. Note que para controlar el ciclo se agrega una variable CENT que se comporta como un centinela para detectar el fin de datos.

    Es importante hacer notar que un ciclo tipo desde valor inicial a valor final hacer insts no es implementable para este caso por el mismo hecho que NO se conoce el numero de datos.

    Lectura del tamao de la lista

    Inicializaciones para el manejo de una lista

    Inicializacin de contador de datos ledos,

    Ciclo mientras para controlar la lista,

    Lectura de un tem

    Incremento de contador

    Instrucciones propias de los datos de la lista

    Fin de ciclo

    Totales de una lista

    Fin del ciclo

    ACCI

    ON

    Mientras cond

    Informacin de tem Informacin de tem Informacin de tem

    : : :

    Informacin de tem

    ?

    Datos

    Informacin de tem CENT Informacin de tem CENT Informacin de tem CENT

    : : :

    Informacin de tem CENT

    Lista de datos a procesar por el programa

    Figura 1 Figura 2

  • UN I V E R S I D AD D E CARABOBO . FACU L T AD D E INGEN I E R A . D E P AR T AM EN TO D E COMPU T AC I N .

    C T E D R A D E COM P U T AC I N I S EG UN DO P E R O DO L E C T I V O D E 2 0 0 6 .

    MM AA TT EE RR II AA LL DD EE AA PP OO YY OO AA CC LL AA SS EE SS PP GG II NN AA 11 55 DD EE 44 66

    La variable CENT se comporta como una variable tipo centinela, ya que permite detectar el final de la lista de datos. El Esta variable debe indicarse claramente que valor toma en cada uno de locentinela debe definirse cA continuacin se presenta un esquema de cmo manipular una lista de este tipo:

    Forma de Datos Estructura del Programa; Ciclo mientras cond hacer insts

    Informacin de tem CENT Informacin de tem CENT Informacin de tem CENT

    : : :

    Informacin de tem CENT

    Forma de Datos Estructura del Programa; Ciclo repita insts hasta cond

    Informacin de tem CENT Informacin de tem CENT Informacin de tem CENT

    : : :

    Informacin de tem CENT

    Inicializaciones para el manejo de una lista

    Inicializacin de CENT

    Ciclo mientras para controlar la lista en funcion de CENT

    Lectura de un tem y CENT

    Instrucciones propias de los datos de la lista

    Fin de ciclo

    Totales de una lista

    Fin del ciclo

    ACCI

    ON

    Mientras cond

    Inicializaciones para el manejo de una lista

    Ciclo repita para controlar la lista

    Lectura de un tem y CENT

    Instrucciones propias de los datos de la lista

    Fin de ciclo, cond en funcin de CENT

    Totales de una lista

    Hasta cond

    ACCI

    ON

    Repita

  • UN I V E R S I D AD D E CARABOBO . FACU L T AD D E INGEN I E R A . D E P AR T AM EN TO D E COMPU T AC I N .

    C T E D R A D E COM P U T AC I N I S EG UN DO P E R O DO L E C T I V O D E 2 0 0 6 .

    MM AA TT EE RR II AA LL DD EE AA PP OO YY OO AA CC LL AA SS EE SS PP GG II NN AA 11 66 DD EE 44 66

    9 . U S O S D E V A R I A B L E S

    A C U M U L A D O R E S

    Variables que trabajan sobre si mismas [se modifican a si mismas] que almacenan resultados parciales de un proceso [clculos sucesivos].

    C A R AC T E R S T I C A S :

    Estas variables se reconocen porque aparecen en ambos lados de una instruccin de asignacin. Por ejemplo la asignacin: valorAA +

    El nuevo valor de A ser el anterior valor de A mas valor

    A A + valor Donde valor puede ser una variable, constante o resultado de una expresin

    Requieren un valor inicial.

    T I P O S :

    S U M A T O R I A S : Aquellas variables que trabajan sobre si mismas para sumar sucesivamente

    : Por lo general tienen valor inicial CERO, aunque esto depende del problema. Ejemplo de aplicacin: calculo de series numricas, calculo de promedios

    Contadores: Caso particular de en el que el incremento es constante. Cuando el objetivo es contar el nmero de veces que ocurre un evento, su incremento puede ser +1 o 1, en cuyo caso cuenta ascendentemente o descendentemente, respectivamente. Aplicacin: Variable de control de ciclos, Contar datos procesados /datos que faltan por procesar por un programa

    P R O D U C T O R I A S : Aquellas variables que trabajan sobre si mismas para multiplicar sucesivamente

    : Por lo general tienen valor inicial diferente de CERO. Ejemplo de aplicacin: calculo de series numricas, calculo de exponenciacin, calculo del factorial

    C E N T I N E L A S | B A N D E R A S | F L A G S

    Variables usadas para detectar eventos durante la ejecucin de un programa. El programador tiene pleno control en variables de este uso, es decir, asigna valores iniciales y cambia valor al detectar evento. Un evento se detecta por una condicin durante la ejecucin de un programa.

    Si la variable detecta UN solo evento: El tipo apropiado para la variable es: tipo lgico. El programador debe documentar esta variable indicando que representan sus posibles valores. Por lo general: false representa que NO ha ocurrido el evento y true que ha ocurrido.

    Si la variable detecta MAS de UN evento: El tipo lgico ya no es apropiado. El programador debe documentar esta variable indicando que representan sus posibles valores. Por lo general: se definen de tipo numrico entero y se toma el rango de posibles valores

    True: Se ha procesado el primer valor negativo

    False: No se han procesado valores negativos

  • UN I V E R S I D AD D E CARABOBO . FACU L T AD D E INGEN I E R A . D E P AR T AM EN TO D E COMPU T AC I N .

    C T E D R A D E COM P U T AC I N I S EG UN DO P E R O DO L E C T I V O D E 2 0 0 6 .

    MM AA TT EE RR II AA LL DD EE AA PP OO YY OO AA CC LL AA SS EE SS PP GG II NN AA 11 77 DD EE 44 66

    apropiado, dependiendo del nmero de eventos a detectar. Por ejemplo: Bandera [nombre de la variable] toma el valor 0 cuando NO ha ocurrido ningn evento, 1 cuando ocurre el primer evento, 2 cuando ocurre el segundo evento y as sucesivamente.

    Ejemplos de aplicacin: Detectar primer mayor de un conjunto de datos, determinar primer, segundo o tercer valor con una determinada caracterstica [por ejemplo: primer, segundo o tercer impar de un conjunto de valores]. Detectar el primer valor negativo procesado.

    1 0 . C O N C E P T O S V A R I O S

    I N T E R C A M B I O D E V A L O R E S D E D O S V A R I A B L E S C O M P A T I B L E S

    Variables que trabajan sobre si mismas [se modifican a si mismas] que almacenan resultados parciales de un proceso [clculos sucesivos].

    C I C L O I N F I N I T O

    Mientras i > 0

    Fin mientras

    i i + 1

    i

    i 1

    I

    F

    Un ciclo infinito ocurre cuando NUNCA se detiene. Esto sucede en estructuras repetitivas de tipo:

    mientras cuando la condicin siempre se cumple y por lo tanto no sale del ciclo,

    repita cuando la condicin nunca se cumple y por lo tanto no sale del ciclo

    Por ejemplo: En el segmento de Diagrama de flujo que se muestra en la figura se puede observar que la variable i es inicializada en 1. Como el valor es mayor que 0 entra en el ciclo mientras. Dentro del ciclo la nica instruccin es el incremento en 1 de la variable i. Como i tenia un valor mayor que 0 inicialmente, y solo se incrementa en 1, siempre tendr un valor mayor que 0, por lo que la condicin siempre se cumple y no hay forma que i sea igual o menor que 0. De todo lo anterior se concluye entonces que el ciclo mostrado es un ciclo infinito.

    Cuando se desea intercambiar los valores almacenados en dos variables compatibles [de un mismo tipo] se requiere usar una variable auxiliar para almacenar temporalmente uno de los valores. Esta variable auxiliar debe ser del tipo de las variables a intercambiar.

    Aux

    A B

    1

    2

    3

    aux A A B B aux

    Aux

    A B

    1

    2

    3

    aux B B A A aux

  • UN I V E R S I D AD D E CARABOBO . FACU L T AD D E INGEN I E R A . D E P AR T AM EN TO D E COMPU T AC I N .

    C T E D R A D E COM P U T AC I N I S EG UN DO P E R O DO L E C T I V O D E 2 0 0 6 .

    MM AA TT EE RR II AA LL DD EE AA PP OO YY OO AA CC LL AA SS EE SS PP GG II NN AA 11 88 DD EE 44 66

    1 1 . T C N I C A S D E P R O G R A M A C I N

    S U M A S | R E S T A S S U C E S I V A S

    Procesos para emular multiplicacin / divisin de enteros.

    MU L T I P L I C AC I N : Multiplicar N * M se logra sumando N veces el valor M o viceversa. Por ejemplo: 4*6 = 6 + 6 + 6 + 6 pero tambin es 4*6 = 4 + 4 + 4 + 4 + 4 + 4

    D I V I S I N : Dividir N/M se logra restando el valor M de N hasta que el valor resultante de la resta sea menor o igual a M. As que el nmero de veces que se resta es el resultado entero de dividir N/M, y el valor resultante de la resta representa el residuo de la divisin. No olvide que (0

  • UN I V E R S I D AD D E CARABOBO . FACU L T AD D E INGEN I E R A . D E P AR T AM EN TO D E COMPU T AC I N .

    C T E D R A D E COM P U T AC I N I S EG UN DO P E R O DO L E C T I V O D E 2 0 0 6 .

    MM AA TT EE RR II AA LL DD EE AA PP OO YY OO AA CC LL AA SS EE SS PP GG II NN AA 11 99 DD EE 44 66

    2. A S I GNAR E L V A LO R I N I C I A L A L V A LO R D E R E F E R E NC I A / COMPAR AC I ON :

    CUANDO S E CONOCE E L R ANGO D E L O S V A LO R E S P ROC E S ADO S : Se puede utilizar la tcnica de dato falso valor de referencia fuera del rango, que se refiere a dar como valor inicial de referencia un valor conveniente y fuera del rango de los posibles valores.

    CUANDO NO S E CONOCE E L R ANGO D E L O S V A LO R E S P ROC E S ADO S : La tcnica a seguir es la dar como valor inicial al valor de referencia el primer dato ledo. Este mtodo depende, entonces, de conocer N o no, siendo N el numero de datos a procesar. En el caso de conocer N se puede aprovechar el valor del contador de datos para detectar el primer dato ledo. En caso se no conocer N se requiere declarar una variable centinela bandera para detectar el primer dato.

    3 . D E T E RM I NAR E L M AYO R /M E NOR COM PAR ANDO LO S V A L O R E S L E I DO S CON E L VA LO R D E R E F E R E NC I A . Es importante destacar que un problema de mximos/mnimos no se refiere solo a los valores comparados, puede referirse a determinar el primer mximo, ultimo mximo, numero de veces que el mximo aparece en los datos, informacin asociada al valor buscado, y muchas otras variantes.

    A continuacin se presentan algunos ejemplos de mximos y mnimos:

    F

    Repita

    Mayor -11 cont 0

    I

    N

    SI NO X > Mayor

    Mayor X

    Hasta que cont = N

    cont cont + 1

    Mayor

    X

    M TODO D E L D A T O F A L SO V A L O R D E R E F E R E NC I A F U E R A D E L R ANGO

    Ejemplo: Dado un grupo de N valores de X [-10 < X < 10 ], elabore el Diagrama de Flujo que determine el mayor valor de los X ledos.

    Repita

    I 0

    I

    M

    X

    SI (1er dato) NO I = 0

    Mayor X

    Hasta que ( I = M )

    I I + 1

    Mayor

    F

    SI

    NO X > Mayor Mayor X

    M TODO D E L CON TADO R : Ejemplo: Dado un grupo de M valores de X,

    determine el mayor valor de X.

  • UN I V E R S I D AD D E CARABOBO . FACU L T AD D E INGEN I E R A . D E P AR T AM EN TO D E COMPU T AC I N .

    C T E D R A D E COM P U T AC I N I S EG UN DO P E R O DO L E C T I V O D E 2 0 0 6 .

    MM AA TT EE RR II AA LL DD EE AA PP OO YY OO AA CC LL AA SS EE SS PP GG II NN AA 22 00 DD EE 44 66

    S E C U E N C I A S Y S E R I E S

    Para los estudiantes de programacin, es interesante la aplicacin de las tcnicas de resolucin de ejercicios relacionados al clculo de los trminos de una serie o secuencia, por que en ellas se utilizan todas las tcnicas elementales de programacin, tales como acumuladores, ciclos de diferentes tipos, banderas y por supuesto expresiones de diferentes tipos.

    S UC E S I N Y S E C U E NC I A : Una sucesin matemtica es una funcin definida sobre los enteros naturales. Una secuencia es una concatenacin de smbolos obtenidos a partir de una sucesin. Son semejantes a las sucesiones y se pueden derivar fcilmente de stas.

    Por ejemplo, la definicin matemtica de la secuencia de Fibonacci es:

    +=

    =

    =

    )1()2()(1)2(0)1(

    )(nfibnfibnfib

    fibfib

    nfib

    Los primeros 10 trminos de esta secuencia son: 0 , 1 , 1 , 2 , 3 , 5 , 8 , 1 3 , 2 1 , 3 4 , . . . As, si se toma como base la secuencia de Fibonacci, es sencillo definir una nueva secuencia para el alfabeto A = {0,1} segn el siguiente mtodo

    01)(nS

    que obtendra como resultado un 1 para el numero natural 1, ya que ste est en la secuencia de Fibonacci; 1 para los nmeros naturales 2 y 3; pero 0 para el numero natural 4, ya que l no pertenece a la secuencia de Fibonacci. Obtenindose, entonces, la siguiente secuencia de dgitos binarios: 1 1 1 1 0 1 0 0 1 0 0 0 0 1 0 . . .

    Observe la relacin entre la secuencia de los dgitos binarios generada, la secuencia de Fibonacci: y los nmeros naturales:

    N 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14

    S(n) 1 1 1 1 0 1 0 0 1 0 0 0 0 1 0

    Los ejercicios tpicos para estos casos corresponden a: [1] Determinar los primeros N trminos de la secuencia, [2] Determinar los trminos de la secuencia menores que N, [3] Determinar los trminos comprendidos en el rango abierto de N y M. El problema podra referirse a sumar los trminos calculados, o determinar promedios/porcentajes, etc.

    Para calcular, desde el segundo trmino en adelante, la secuencia de Fibonacci, se requiere recordar los dos ltimos trminos calculados. El concepto de recordar valores obtenidos de clculos anteriores, se conoce como un historial y es interesante desde el punto de vista de programacin, porque requiere el uso de variables auxiliares, asignaciones o cambios de valores adecuados.

    Si n est en la sucesin de Fibonacci En otro caso

    Para n = 1 Para n = 2 n > 2

  • UN I V E R S I D AD D E CARABOBO . FACU L T AD D E INGEN I E R A . D E P AR T AM EN TO D E COMPU T AC I N .

    C T E D R A D E COM P U T AC I N I S EG UN DO P E R O DO L E C T I V O D E 2 0 0 6 .

    MM AA TT EE RR II AA LL DD EE AA PP OO YY OO AA CC LL AA SS EE SS PP GG II NN AA 22 11 DD EE 44 66

    S E R I E S : Una serie es la suma de los trminos de una sucesin. Se representa una serie con trminos an como se muestra a continuacin:

    donde N es el ndice final de la serie.

    A continuacin se presenta, como ejemplo, la serie para el calculo de: seno de X y eX

    ...

    !13!11!9!7!5!3

    13119753 XXXXXXXSinX +++=

    ...

    !7!6!5!4!3!21

    765432 XXXXXXXe X +++++++=

    En el desarrollo de programas para el clculo de series es muy importante hacer un anlisis previo, detallado y preciso de [1] cmo el programa generara el trmino en s y [2] cmo se conforman los trminos de la serie.

    Para la generacin de los trminos, el programador puede disear el programa de tal manera que se trabaje:

    a. CO N E L T R M I N O C OM O U N T O D O , en cuyo caso la transicin de los elementos se realiza sobre una sola variable. Esta variable se comporta como una productoria del trmino anterior por la transicin para generar el nuevo termino. Esta tcnica no es apropiada para aquellos casos en que el trmino de la serie conlleva una sumatoria.

    b. CO N L O S E L E M E N T O S Q U E C O N F O R M AN E L T R M I N O , en este caso se descompone el termino en elementos bsicos como sumatorias, productorias, signos alternos, clculos previos o internos.

    Entre los elementos de programacin ms usados en los programas de series, se encuentran:

    CONTADORES: Se usan tpicamente para contar el numero de trminos a calcular, para calcular pares/impares y definir paridad

    SUMATORIAS: Variables que almacenan el valor de la serie, o de porciones de los trminos

    PRODUCTORIAS: Variables apropiadas para el clculo de factoriales y potencias

    BANDERAS: Variables necesarias para detectar cuando debe cambiarse el signo o invertir los trminos, o para clculos especiales que requieran la determinacin de un evento

    CALCULOS PREVIOS: Se refiere a los clculos necesarios para obtener el primer termino de la serie a partir del cual se generaran los siguientes. Tal como el caso de un factorial decreciente o potencias decrecientes

    CALCULOS INTERNOS: Caso que se presenta cuando no es posible determinar el termino a generare a partir del anterior. Como por ejemplo el caso de una potencia donde la base cambia entre trminos.

  • UN I V E R S I D AD D E CARABOBO . FACU L T AD D E INGEN I E R A . D E P AR T AM EN TO D E COMPU T AC I N .

    C T E D R A D E COM P U T AC I N I S EG UN DO P E R O DO L E C T I V O D E 2 0 0 6 .

    MM AA TT EE RR II AA LL DD EE AA PP OO YY OO AA CC LL AA SS EE SS PP GG II NN AA 22 22 DD EE 44 66

    F I G U R A S G E O M T R I C A S

    Las Figuras Geomtricas son muy ilustrativas para utilizar las estructuras selectivas, con ellas se estimula el aprendizaje del uso correcto de las expresiones relacionales y lgicas. En sntesis, este tipo de ejercicio se basa en establecer las condiciones para que un punto se encuentre o no dentro de un rea marcada, sombreada o sealada; para ello es conveniente:

    1. Dividir la figura en elementos conocidos que al unirlos permitan formar la figura indicada. Por ejemplo:

    2. Evaluar si el punto est dentro del rea, para ello debe considerar:

    Si es una figura cerrada, se establecer la expresin que permita determinar si el punto est dentro, fuera o en el borde del rea encerrada por la figura. Por ejemplo:

    Si es una recta, se establecer la expresin que permita determinar si el punto se encuentra arriba,

    abajo, a la derecha, a la izquierda o sobre la recta estudiada.

    Ecuaciones que determinan la ubicacin del punto:

    1. Sobre la circunferencia 222 ryx =+ 2. Dentro de la circunferencia 222 ryx +

    x

    y

    Recta

    Ecuaciones que determinan la ubicacin del punto: 1. Sobre la recta xy = 2. Por encima de la recta a la izquierda xy < 3. Por debajo de la recta o a la derecha xy >

    x

    y

    =

  • UN I V E R S I D AD D E CARABOBO . FACU L T AD D E INGEN I E R A . D E P AR T AM EN TO D E COMPU T AC I N .

    C T E D R A D E COM P U T AC I N I S EG UN DO P E R O DO L E C T I V O D E 2 0 0 6 .

    MM AA TT EE RR II AA LL DD EE AA PP OO YY OO AA CC LL AA SS EE SS PP GG II NN AA 22 33 DD EE 44 66

    1 2 . E J E R C I C I O S R E S U E L T O S

    1. Dadas las tarifas de consumo elctrico: R, S, y T, donde los primeros 100 KWH se facturaran a R Bs/KWH los siguiente KWH hasta 500 KWH a S Bs/KWH y lo que pase de 500 KWH a T Bs/KWH. Dado el consumo de un suscriptor, elaborar el Diagrama de Flujo de un programa que determine el monto a pagar del suscriptor.

    Q U E S E T I E N E ?

    Tarifas de consumo y consumo del suscriptor

    T A B L A D E V A R I A B L E S : C O M E N T A R I O :

    R, S, T tarifas por rangos de KWH

    CONSUMO consumo de KWH de un suscriptor

    Bs monto a facturar

    A, B, C auxiliares para determinar consumo correspondiente a cada tarifa

    Note que la solucin del problema se ajusta a cualquier tarifa ya que son valores ledos.

    A, B, y C son variables que almacenan una parte del consumo segn la distribucin de tarifas.

    Este ejercicio solo procesa un suscriptor, que modificaciones tendra que realizar para procesar N suscriptores?

    Q U E S E P I D E ?

    Monto a facturar para el suscriptor procesado

    COM O L O G R A R L O ?

    a.- lectura de valores b.- calcular y guardar en A, B y C la porcin del

    consumo correspondiente a cada tarifa c.- calcular monto a pagar segn tarifa d.- imprimir: consumo y monto de factura f.- fin del proceso.

    i

    CONSUMO

    X > 0

    CONSUMO , BS

    SiNo

    Fin

    X > 0 SiNo

    BS C * 2.0 + B * 1.0 + A * 0.50

    A CONSUMO 500 B 400 C 100 A 0

    B CONSUMO 100 C 100

    A 0 B 0 C CONSUMO

  • UN I V E R S I D AD D E CARABOBO . FACU L T AD D E INGEN I E R A . D E P AR T AM EN TO D E COMPU T AC I N .

    C T E D R A D E COM P U T AC I N I S EG UN DO P E R O DO L E C T I V O D E 2 0 0 6 .

    MM AA TT EE RR II AA LL DD EE AA PP OO YY OO AA CC LL AA SS EE SS PP GG II NN AA 22 44 DD EE 44 66

    2. Dados N valores numricos, elaborar el Diagrama de Flujo de un programa que calcule el promedio de los valores positivos.

    Q U E S E T I E N E ? Conjunto de N valores de a procesar X

    T A B L A D E V A R I A B L E S : C O M E N T A R I O :

    N numero de valores de X a procesar

    X valor ledo a procesar

    NP contador de valores positivos de X

    S sumatoria de valores X positivos

    P promedio = S/NP

    Cabe destacar que la variable NP no siempre coincide con el nmero de datos N ya que los valores de X pueden ser negativos. Adems, debe tomarse en cuenta que el valor de NP no sea igual a cero ya que la divisin por cero causara una indeterminacin.

    Q U E S E P I D E ? D I A G R AM A D E F L U J O

    Promedio de los valores positivos ledos. Para ese calculo se requiere la sumatoria de los valores positivos ledos y el contador de valores positivos ledos

    COM O L O G R A R L O ?

    a.- leer N b.- asignar el valor cero a NP y a S c.- ejecutar desde K=1 hasta N

    c.1.- leer X c.2.- preguntar si X es > que 0

    c.2.a.- SI: acumular x en S contar en NP c.2.b.- NO: no realizar nada

    c.3.- calcular: decrementar N en 1 d.- preguntar si NP es igual a 0

    d.1.- SI: imprimir mensaje d.2.- NO: calcular: P=S/NP e imprimir P

    e.- fin del proceso.

    i

    Desde k 1, N ; +1

    N

    Fin Desde

    X

    X > 0

    P S / NP

    El Promedio es , P

    No se puede calcular el Promedio

    SiNo

    NP 0S 0

    S S + XNP NP+1

    X > 0 SiNo

    Fin

  • UN I V E R S I D AD D E CARABOBO . FACU L T AD D E INGEN I E R A . D E P AR T AM EN TO D E COMPU T AC I N .

    C T E D R A D E COM P U T AC I N I S EG UN DO P E R O DO L E C T I V O D E 2 0 0 6 .

    MM AA TT EE RR II AA LL DD EE AA PP OO YY OO AA CC LL AA SS EE SS PP GG II NN AA 22 55 DD EE 44 66

    3. En un restaurante muy frecuentado se lleva un registro de las ventas realizadas en un da, anotndose,

    para cada cliente la siguiente informacin: Nmero de personas por grupo visitante, Monto de la cuenta, Tipo de comida: Desayuno, Almuerzo o Cena.

    Elabore el Diagrama de Flujo de un programa que determine:

    a. Numero total de personas que visitan el local

    b. Porcentaje de personas que almuerzan

    c. Monto total de desayunos vendidos

    d. Promedio de personas que vienen juntas a cenar

    Q U E S E P I D E ?

    Numero total de personas que visitan el local

    Porcentaje de personas que almuerzan

    Monto total de desayunos vendidos

    Promedio de personas que vienen juntas a cenar

    COM O L O G R A R L O ?

    a.- inicializaciones b.- mientras hayan mas datos ejecutar

    b.1.- leer un grupo: NP, M, TC b.2.- segn tipo de comida calcular:

    b.2.a.- D o d: suma monto b.2.b.- A o a: contar total personas b.2.c.- C o c: contar total personas y contar total grupos

    c.- calcular porcentaje personas que almuerzan PA d.- imprimir: NT, PA, MD e.- preguntar: numero de grupos a cenar = a cero?

    e.1.- SI: imprimir mensaje e.2.- NO: calcular e imprimir PC

    f.- fin del proceso.

    i

    Fin Mientras

    NP, M, TC, K

    PC NC1 / NC2

    El Promedio de personas que cenan , P

    No se puede calcular el Promedio

    D, d

    NC1 NC1 + NPNC2 NC2+1

    NC2 > 0 SiNo

    Fin

    NT 0 NA 0 NC1 0 NC2 0 MD 0 K 0

    Mientras que K=0 Haga

    NT NT + NP

    TC

    MD MD + M NA NA + NP

    A , a C, c

    PA NA / NT *100

    Nmero de Personas:, NT % de personas que almuerzan ,PA

    Monto Total en desayunos ,MD

    Q U E S E T I E N E ?

    Nmero de Personas, monto de la cuenta y tipo de comida, por cada grupo

    T A B L A D E V A R I A B L E S : C O M E N T A R I O :

    NP numero de personas por grupo visitante

    M monto de la cuenta [Bs]

    TC tipo de comida

    K centinela para detectar fin de datos

    NT numero total de personas procesadas

    NA numero de personas que almuerzan

    Note que el tipo de comida TC es de tipo carcter representando la letra A o a un Almuerzo, D o d un Desayuno y C o c una cena

    No se conoce cuantos datos a procesar por lo que se requiere un centinela para detectar el fin de datos. Los posibles valores del centinela K: 0 hay mas datos y 0 fin de datos

    NC1 numero total de personas que cenaron D I A G R AM A D E F L U J O

    NC2 numero de grupos visitantes a cenar S O L U C I N U S A N D O S E L E C C I N M L T I P L E

    MD suma de montos de desayunos

    PA porcentaje de almuerzos servidos

    PC promedio de grupos a cenar

  • UN I V E R S I D AD D E CARABOBO . FACU L T AD D E INGEN I E R A . D E P AR T AM EN TO D E COMPU T AC I N .

    C T E D R A D E COM P U T AC I N I S EG UN DO P E R O DO L E C T I V O D E 2 0 0 6 .

    MM AA TT EE RR II AA LL DD EE AA PP OO YY OO AA CC LL AA SS EE SS PP GG II NN AA 22 66 DD EE 44 66

    S O L U C I N U S A N D O D E C I S I N , S E L E C C I N S I M P L E

    i

    Fin Mientras

    NP, M, TC, K

    PC NC1 / NC2

    El Promedio de

    personas a cenar , P

    No se puede

    calcular el Promedio

    NC1 NC1 + NP

    NC2 NC2+1

    NC2 > 0SiNo

    Fin

    NT 0

    NA 0

    NC1 0

    NC2 0

    MD 0

    K 0

    Mientras que K=0 Haga

    NT NT + NP

    NA NA + NP

    PA NA / NT *100

    Nmero de Personas:, NT

    % de personas a Almorzar ,PA

    Monto Total en desayunos ,MD

    (TC=A)

    Or

    (TC=a)

    (TC=D)

    Or

    (TC=d)

    MD MD + M

    (TC=C)

    Or

    (TC=c)

    SiNo

    SiNo

    SiNo

  • UN I V E R S I D AD D E CARABOBO . FACU L T AD D E INGEN I E R A . D E P AR T AM EN TO D E COMPU T AC I N .

    C T E D R A D E COM P U T AC I N I S EG UN DO P E R O DO L E C T I V O D E 2 0 0 6 .

    MM AA TT EE RR II AA LL DD EE AA PP OO YY OO AA CC LL AA SS EE SS PP GG II NN AA 22 77 DD EE 44 66

    4. Dado un conjunto de pares (X, Y) correspondientes a los puntos ubicados en el plano cartesiano, elabore el Diagrama de Flujo de un programa que determine:

    a. Cuantos puntos caen en el origen

    b. Porcentaje de puntos que se encuentran en el primer cuadrante

    c. Cuantos puntos caen en los ejes

    Q U E S E T I E N E ?

    Un conjunto de coordenadas x,y

    T A B L A D E V A R I A B L E S : C O M E N T A R I O :

    X, Y coordenadas del punto

    CP Contador de puntos analizados

    C0 Contador de puntos en el origen

    C1 Contador de puntos en cuadrante I

    CE Contador de puntos en los ejes

    Note las preguntas anidadas para determinar la ubicacin del punto en el plano cartesiano

    No se conoce cuantos datos a procesar por lo que se requiere un centinela para detectar el fin de datos. Los posibles valores del centinela K: 0 hay mas datos y 0 fin de datos

    P1 Porcentaje de puntos en cuadrante I D I A G R AM A D E F L U J O

    K centinela para detectar fin de datos

    Q U E S E P I D E ?

    Cantidad de puntos en origen

    Porcentaje de puntos en cuadrante I

    Cantidad de puntos en eje

    COM O L O G R A R L O ?

    a.- inicializaciones b.- mientras hayan mas datos ejecutar

    b.1.- leer coordenadas X, Y b.2.- determinar ubicacin en plano y contar donde corresponda b.3.- contar punto

    c.- calcular porcentaje de puntos en cuadrante I d.- imprimir: C0, P1, CE e.- fin del proceso.

    i

    X , Y , K

    X = 0 SiNo

    Fin

    SiY = 0Y= 0

    SiNo

    C0 C0 + 1

    CE CE + 1

    ( X > 0 )and

    ( Y >0 )

    No

    CE CE + 1

    C1 C1 + 1

    SiNo

    Mientras que K=0 Haga

    Fin Mientras

    P1 C1/CP*100

    Cantidad de pares coordenados en el origen: ,C0, Porcentaje de pares coordenados en el primer cuadrante: , P1 , % ,

    Cantidad de pares coordenados sobre los ejes: , CE

    CP 0 C0 0 C1 0 CE 0 K 0

    CP CP + 1

  • UN I V E R S I D AD D E CARABOBO . FACU L T AD D E INGEN I E R A . D E P AR T AM EN TO D E COMPU T AC I N .

    C T E D R A D E COM P U T AC I N I S EG UN DO P E R O DO L E C T I V O D E 2 0 0 6 .

    MM AA TT EE RR II AA LL DD EE AA PP OO YY OO AA CC LL AA SS EE SS PP GG II NN AA 22 88 DD EE 44 66

    5. Un cobrador de peaje tiene a su cargo un Terminal en el cual debe registrar los diferentes vehculos y la hora en que han pasado por el peaje. Elabore el Diagrama de Flujo de un programa que determine el tiempo mnimo expresado en segundos entre el paso de un vehiculo y otro, sin importar el tipo de vehiculo.

    CON S I D E R AC I ON E S :

    La hora viene expresada en formato militar: HH MM SS

    El tipo de vehculo representa: 1=Particular; 2= Autobs; 3=Pesado; 0= Fin del turno del cobrador AN L I S I S D E L E J E R C I C I O :

    Q U E S E T I E N E ?

    Tipo de vehculo y hora de paso por el peaje

    T A B L A D E V A R I A B L E S : C O M E N T A R I O :

    T I P O T I P O D E V E H C U L O

    HH Hora de paso del vehculo

    MM Minutos de Paso del Vehculo

    SS Segundos de Paso del Vehculo

    B Bandera para detectar si el vehiculo es el primero, el segundo u otro

    Note las preguntas anidadas para determinar la ubicacin del punto en el plano cartesiano

    No se conoce cuantos datos a procesar por lo depende de los datos suministrados por el cobrador el fin del proceso.

    MT Menor tiempo entre vehculos en segundos

    Q U E S E P I D E ?

    Tiempo mnimo entre vehculos consecutivos, expresado en segundos

    COM O L O G R A R L O ?

    a.- inicializaciones b.- Repita

    b.1.- leer tipo de vehculos b.2.- Si no es el fin del turno del cobrador

    b.2.1.- Leer hora de paso del vehculo b.2.2.- Si es el primer vehculo, Guardar el tiempo en segundos TAN b.2.2.- Si es el segundo vehculo, Guardar tiempo en segundos,TAC, calcular la diferencia con el

    primero y tomar ese tiempo como menor b.2.3.- A partir del tercer vehculo, determinar la diferencia de tiempo entre vehculos y comparar con

    el menor b.2.4.- Asignar como tiempo anterior el actual para el siguiente clculo

    Hasta que termine el turno del operador c.- imprimir : MT e.- fin del proceso.

  • UN I V E R S I D AD D E CARABOBO . FACU L T AD D E INGEN I E R A . D E P AR T AM EN TO D E COMPU T AC I N .

    C T E D R A D E COM P U T AC I N I S EG UN DO P E R O DO L E C T I V O D E 2 0 0 6 .

    MM AA TT EE RR II AA LL DD EE AA PP OO YY OO AA CC LL AA SS EE SS PP GG II NN AA 22 99 DD EE 44 66

  • UN I V E R S I D AD D E CARABOBO . FACU L T AD D E INGEN I E R A . D E P AR T AM EN TO D E COMPU T AC I N .

    C T E D R A D E COM P U T AC I N I S EG UN DO P E R O DO L E C T I V O D E 2 0 0 6 .

    MM AA TT EE RR II AA LL DD EE AA PP OO YY OO AA CC LL AA SS EE SS PP GG II NN AA 33 00 DD EE 44 66

    6. Dada la siguiente figura geomtrica y un conjunto de M pares (X,Y) correspondientes a los puntos de un plano. Elabore el Diagrama de Flujo de un programa que determine el Porcentaje de puntos ubicados dentro del rea sombreada, incluyendo los bordes.

    AN L I S I S D E L E J E R C I C I O :

    Q U E S E P I D E ?

    Porcentaje de puntos dentro del rea sombreda (PORC)

    COM O L O G R A R L O ?

    Tabla de Variables Variable Tipo Descripcin Uso M Entero Cantidad de Pares coordenados procesar Entrada X Real Coordenada X (Abcisa) Entrada Y Real Coordenada Y (Ordenada) Entrada C Entero Contador de pares coordenados en el rea

    sombreada Interno

    PORC Entero Porcentaje de puntos en el rea sombreada Salida

    M X Y X Y X Y : :

    : :

    X Y

    M

    Algoritmo: 1 Leer cantidad de pares coordenados a procesar 2 Inicializaciones 3 Procesar datos:

    Desde k=1 hasta M haga Leer informacin las coordenadas Calcular IG de la comunidad Determinar si el punto est en el rea sombreada; dentro de la

    circunferencia de radio 3, 922 =+ yx

    Si es as incrementar contador c Fin ciclo desde

    4 Calcular Porcentaje 5 Imprimir Porcentaje

    422 =+ yx

    922 =+ yxQ U E S E T I E N E ?

    Tarifas de consumo y consumo del suscriptor

  • UN I V E R S I D AD D E CARABOBO . FACU L T AD D E INGEN I E R A . D E P AR T AM EN TO D E COMPU T AC I N .

    C T E D R A D E COM P U T AC I N I S EG UN DO P E R O DO L E C T I V O D E 2 0 0 6 .

    MM AA TT EE RR II AA LL DD EE AA PP OO YY OO AA CC LL AA SS EE SS PP GG II NN AA 33 11 DD EE 44 66

    D I A G R AM A D E F L U J O

    Solucin 1 Solucin 2

    i

    M

    C 0

    Fin Desde

    Desde k=1, M; +1

    X , Y

    X2+ y

    2=4

    C C + 1

    PORC C/M *100

    PORC

    FIN

    si

    sino

    no

    i

    M

    C 0

    Fin Desde

    Desde k=1, M; +1

    X , Y

    ( X2 + y2=4 )

    C C + 1

    PORC C/M *100

    PORC

    FIN

    sino

  • UN I V E R S I D AD D E CARABOBO . FACU L T AD D E INGEN I E R A . D E P AR T AM EN TO D E COMPU T AC I N .

    C T E D R A D E COM P U T AC I N I S EG UN DO P E R O DO L E C T I V O D E 2 0 0 6 .

    MM AA TT EE RR II AA LL DD EE AA PP OO YY OO AA CC LL AA SS EE SS PP GG II NN AA 33 22 DD EE 44 66

    7. Dados N y X, desarrollar el Diagrama de Flujo de un programa que calcule y escriba cada trmino de la serie y la suma de los N primeros trminos.

    ...

    !9!7!5!3

    432322

    ++++

    +++

    ++

    +=XXXXXXXXXXS

    Anlisis del ejercicio: Q U E S E T I E N E ?

    Valores N y X leidos. Se asume que N > 0 Q U E S E P I D E ?

    Imprimir los primeros N trminos y sumarlos, al final imprimir la suma CM O LOG R A R L O ?

    0 S = X X + X2 X + X2 + X3 X + X2 + X3 + X4

    3! 5! 7! 9!

    CONTADOR DE TRMINOS I 1 2 3 4 Variable control de ciclo Hacer desde i 1 a N haga: POTENCIA DE X 1 P X X2 X3 X4 P P * X SUMATORIA DE POTENCIA DE X 0 A X X + X2 X + X2 + X3 X + X2 + X3 + X4 A A + P FACTORIAL DE IMPARES 1 F 3! 5! 7! 9! F F * (2*I) * (2*I+1)

    Anlisis del ejercicio 2 pto.

    Estructura cclica apropiada 1 pto. Algoritmo 2 ptos

    +1 +1 +1

    * X * X * X * X

    +X + X2 + X3 + X4

    * 2 * 3 * 4 * 5 * 6 * 7 * 8 * 9

  • UN I V E R S I D AD D E CARABOBO . FACU L T AD D E INGEN I E R A . D E P AR T AM EN TO D E COMPU T AC I N .

    C T E D R A D E COM P U T AC I N I S EG UN DO P E R O DO L E C T I V O D E 2 0 0 6 .

    MM AA TT EE RR II AA LL DD EE AA PP OO YY OO AA CC LL AA SS EE SS PP GG II NN AA 33 33 DD EE 44 66

    D I A G R AM A D E F L U J O

    8. Un municipio est dividido en comunidades, cada una de ellas fue evaluada por la Organizacin Mundial de Desarrollo, obtenindose los ndices de: salud, agua potable, aguas servidas y educacin. Los valores posibles de los ndices estn entre 1 y 5, siempre enteros. El 5 representa que deberan invertirse recursos importantes en este ndice y 1 representa que no deben ser invertidos tantos recursos. El ndice general para cada comunidad, ser el promedio de sus ndices.

    Desarrolle el diagrama de flujo de un programa que calcule: a. Cul es la comunidad con mayor necesidad, segn el ndice general. b. Qu comunidades en su totalidad necesitan muchos recursos

    ( Nota: se entiende como muchos recursos cuando el ndice general es mayor a 4 ). c. Cuntas comunidades tienen un nivel 5 en salud.

    Anlisis del ejercicio 3 pto.

    Estructura cclica apropiada 1 pto. Lectura apropiada 1 pto. Tabla de variables 1 pto.

    Clculo de las preguntas a, b y c 1 pto c/u

    S 0 P 1 A 0 F 1

    I

    Desde I 1 a N , +1 hacer

    P P * X A A + P

    F F * (2*I) * (2*I +1) Termino A / F S S + Termino

    N, X

    Termino

    Fin de ciclo

    S

    Fin

  • UN I V E R S I D AD D E CARABOBO . FACU L T AD D E INGEN I E R A . D E P AR T AM EN TO D E COMPU T AC I N .

    C T E D R A D E COM P U T AC I N I S EG UN DO P E R O DO L E C T I V O D E 2 0 0 6 .

    MM AA TT EE RR II AA LL DD EE AA PP OO YY OO AA CC LL AA SS EE SS PP GG II NN AA 33 44 DD EE 44 66

    Analisis del ejercicio: Q U E S E T I E N E ?

    Representacin de los datos:

    Q U E S E P I D E ?

    a. Cul es la comunidad con mayor necesidad, segn el ndice general: CMIG b. Qu comunidades en su totalidad necesitan muchos recursos: COM ledo cuando IG > 4 c. Cuntas comunidades tienen un nivel 5 en salud: CN5S

    CM O LOG R A R L O ?

    Tabla de Variables Variable Tipo Descripcin Uso COM Cadena Nombre de comunidad Entrada IS Entero ndice de salud Entrada IAP Entero ndice de agua potable Entrada IAS Entero ndice de aguas servidas Entrada IE Entero ndice de educacin Entrada Cent Entero Centinela de ultimo dato Entrada IG Real Indice general [IS+IAP+IAS+IE]/4 Interno CMIG Cadena Comunidad de MIG Salida MIG Real Mayor indice general Interno PrimerDato Logico Centinela pa detectar el primer

    dato leido. True = no ha leido datos False = ya leyo el primer dato

    Interno

    CN5S Entero Contador de comunidades con nivel de salud = 5

    Salida

    COM IS IAP IAS IE 0

    COM IS IAP IAS IE 0

    COM IS IAP IAS IE 0

    : : : : : :

    : : : : : :

    COM IS IAP IAS IE 0

    COM IS IAP IAS IE 1

    ?

    Centinela de ltimo dato:

    0 Hay ms datos

    1 Fin de datos

    Algoritmo: 1.- Inicializaciones 2.- Procesar datos:

    Repita Leer informacin de una comunidad Calcular IG de la comunidad Calcular CMIG segn IG: usar

    bandera para detectar primer comunidad procesada para asignar su IG como el mayor

    Determinar comunidades que necesitan muchos recursos: condicin: IG > 4

    Contar comunidades con nivel 5 en salud

    Hasta cent = 1 3.- Imprimir resultados:

  • UN I V E R S I D AD D E CARABOBO . FACU L T AD D E INGEN I E R A . D E P AR T AM EN TO D E COMPU T AC I N .

    C T E D R A D E COM P U T AC I N I S EG UN DO P E R O DO L E C T I V O D E 2 0 0 6 .

    MM AA TT EE RR II AA LL DD EE AA PP OO YY OO AA CC LL AA SS EE SS PP GG II NN AA 33 55 DD EE 44 66

    D I A G R AM A D E F L U J O

    PrimerDato true CN5S 0

    I

    COM, IS, IAP, IAS, IE, Cent

    Repita

    IG ( IS + IAP + IAS + IE )/4

    IG>4 ?

    COM, IG

    NO SI

    IS=5 ? NO SI

    CN5S CN5S + 1

    NO SI

    PrimerDato ? NO SI

    CMIG, MIG

    Hasta que cent = 1

    IG>MIG ? CMIG COM MIG IG

    PrimerDato false

    CMIG COM MIG IG

    CN5S

    fin

  • UN I V E R S I D AD D E CARABOBO . FACU L T AD D E INGEN I E R A . D E P AR T AM EN TO D E COMPU T AC I N .

    C T E D R A D E COM P U T AC I N I S EG UN DO P E R O DO L E C T I V O D E 2 0 0 6 .

    MM AA TT EE RR II AA LL DD EE AA PP OO YY OO AA CC LL AA SS EE SS PP GG II NN AA 33 66 DD EE 44 66

    1 3 . E J E R C I C I O S P R O P U E S T O S

    E X P R E S I O N E S

    1. INSTRUCCIONES: Escribir las siguientes expresiones algebraicas como expresiones algortmicas

    Expresin Algebraica Expresin Algortmica

    a.- zy +5 5*y+z

    b.- )(5 zy + c.- 724 2 + zz d.- 22 )()( wzwz ++

    e.- zy +

    5

    f.- )( wzyx

    +

    g.- yx

    wz +

    h.- cybx

    +

    i.- 5)( wz

    ytx +

    +

    j.- qr

    pn

    m

    +

    +

    5

    2. INSTRUCCIONES: Escribir las siguientes expresiones algortmicas como expresiones algebraicas

    Expresin Algortmica Expresin Algebraica

    a.- B*B-4*A*C ACB 42 b.- 3*X*X*X*X-5*X*X*X-X*12-17 c.- (B+D)/(C+4) d.- (B+D)/C+4 e.- B+D/(C+4) f.- B+D/C+4

  • UN I V E R S I D AD D E CARABOBO . FACU L T AD D E INGEN I E R A . D E P AR T AM EN TO D E COMPU T AC I N .

    C T E D R A D E COM P U T AC I N I S EG UN DO P E R O DO L E C T I V O D E 2 0 0 6 .

    MM AA TT EE RR II AA LL DD EE AA PP OO YY OO AA CC LL AA SS EE SS PP GG II NN AA 33 77 DD EE 44 66

    3. INSTRUCCIONES: Verificar, para cada caso, si la expresin algortmica corresponde a la expresin algebraica. En caso de no corresponder, cual seria la modificacin necesaria para que le corresponda

    Expresin Algortmica y Algebraica Expresin Algebraica

    a.- a*b/c c

    ab

    Expresin correcta

    b.- a*b/c c

    ba +

    c.- 3*x+2*y/2*z z

    yx2

    23 +

    d.- (y2-y1)/(x2-x1) 1212

    xx

    yy

    4. INSTRUCCIONES: Dada la expresin algortmica, indicar el orden de evaluacin

    Expresin Algortmica Orden de Evaluacin

    a.- a*b/c

    a * b / c

    b.- a*(b/c)

    c.- 3*x+2*y/2*z

    d.- 3*(x+2*y)/2*z

    e.- 3*(x+2*y/2)*z

    f.- a1/2*z

    h.- 100 DIV 5 DIV 3 DIV 2

    i.- 1485658 DIV 1000 DIV 10 MOD 10

    1 2

  • UN I V E R S I D AD D E CARABOBO . FACU L T AD D E INGEN I E R A . D E P AR T AM EN TO D E COMPU T AC I N .

    C T E D R A D E COM P U T AC I N I S EG UN DO P E R O DO L E C T I V O D E 2 0 0 6 .

    MM AA TT EE RR II AA LL DD EE AA PP OO YY OO AA CC LL AA SS EE SS PP GG II NN AA 33 88 DD EE 44 66

    5. INSTRUCCIONES: Dado un par ordenado (x, y) correspondiente a un punto ubicado en el plano cartesiano, escriba la expresin lgica para determinar si el punto est ubicado en el rea sombreada de cada una de las siguientes figuras. Suponga que los crculos son de radio r y los cuadrados son de lado 2L. Note que algunas de las figuras se forman por composicin de otras ms sencillas.

    Expresin

    a.-

    b.-

    c.-

    d.-

    e.- x

    y

    f.- x

    y

    y

    x

    y

    x

    y

    x

  • UN I V E R S I D AD D E CARABOBO . FACU L T AD D E INGEN I E R A . D E P AR T AM EN TO D E COMPU T AC I N .

    C T E D R A D E COM P U T AC I N I S EG UN DO P E R O DO L E C T I V O D E 2 0 0 6 .

    MM AA TT EE RR II AA LL DD EE AA PP OO YY OO AA CC LL AA SS EE SS PP GG II NN AA 33 99 DD EE 44 66

    I N S T R U C C I O N E S B S I C A S

    INSTRUCCIONES: Escribir el Algoritmo necesario para cada uno de los ejercicios que se presentan a continuacin, para ello desarrolle el Anlisis del Problema, Diseo del Algoritmo y Verificacin del Algoritmo.

    E S T R U C T U R A S D E S E C U E N C I A L E S

    6. Dado el radio de una esfera calcular el volumen.

    E S T R U C T U R A S D E D E C I S I N S I M P L E

    7. Dado un nmero entero indicar si: es mayor, menor o igual a cero.

    8. Dados tres nmeros determinar el mayor.

    9. Dadas cuatro notas obtenidas por un alumno, calcular su promedio e indicar si est aprobado o no. La condicin de aprobacin es obtener un promedio mayor o igual que 10.

    10. Dados tres nmeros, imprimirlos en orden creciente.

    11. Dados cinco nmeros, imprimirlos en orden decreciente.

    12. Dada la cantidad total de preguntas realizadas por un alumno y la cantidad de respuestas correctas, determine el nivel obtenido por el alumno, de acuerdo a la siguiente escala: Muy Bueno si el porcentaje es mayor o igual a 90 %; Bueno si el porcentaje se encuentra entre 70 % y 90 %; Regular entre 50 % y 70 %; Malo si el porcentaje es menor que 50%.

    E S T R U C T U R A S D E D E C I S I N M L T I P L E

    13. Dado un mes imprimir la cantidad de das de dicho mes.

    14. Dado un nmero que representa el da de la semana, imprimir el nombre del da correspondiente.

    15. Dado un nmero que representa un mes, imprimir el nombre del mes correspondiente. Considere que puede haber error en el nmero dado.

    16. Dada una fecha ao, mes y da, determinar si corresponde a una fecha correcta o no.

    E S T R U C T U R A S D E I T E R A T I V A S : M I E N T R A S O R E P I T A

    17. Dada una serie de nmeros determinar si se encuentran ordenados.

    18. Dados dos nmeros enteros K y M, determinar, aplicando restas sucesivas si K es mltiplo de M.

    19. Dado un nmero entero determinar si: es primo.

    20. Calcular e imprimir los cubos de los 10 primeros nmeros naturales impares y la suma de los mismos.

    21. Dado un conjunto de pares ordenados (x, y) correspondientes a un conjunto de puntos ubicados en el plano cartesiano, determinar para cada punto: si pertenece, es exterior o interior al rectngulo de coordenadas:

    3 x 5, 2 y 3.

    22. Dados a y n, determinar los primeros n mltiplos de a. Realizar 3 versiones, una con el ciclo mientras, otra con el ciclo repetir y otra con el ciclo para ... desde.

    23. Dados a y b enteros, calcular el producto de ambos por el mtodo de sumas sucesivas.

    24. Dados a y n enteros, calcular la potencia ensima de a.

  • UN I V E R S I D AD D E CARABOBO . FACU L T AD D E INGEN I E R A . D E P AR T AM EN TO D E COMPU T AC I N .

    C T E D R A D E COM P U T AC I N I S EG UN DO P E R O DO L E C T I V O D E 2 0 0 6 .

    MM AA TT EE RR II AA LL DD EE AA PP OO YY OO AA CC LL AA SS EE SS PP GG II NN AA 44 00 DD EE 44 66

    L I S T A S S I M P L E S

    25. Dada una lista de valores reales, obtener el promedio de los valores ledos.

    26. Dado un conjunto de pares de valores A y B, determinar, para cada par, el mayor entre A y B. Al final imprimir el nmero de veces que A es mayor que B y el nmero de veces que B es mayor que A.

    27. Dado un conjunto de pares ordenados (x, y) correspondientes a un conjunto de puntos ubicados en el plano cartesiano, determinar el porcentaje de puntos que caen en el origen, el porcentaje que cae en los cuadrantes (I, II, III, IV) y el porcentaje que cae sobre los ejes.

    28. Dado un conjunto de valores, determinar el mayor de ellos y el nmero de veces que se repite.

    F I G U R A S G E O M T R I C A S

    29. Dada la siguiente figura geomtrica y un conjunto de W pares (X, Y), correspondientes a los puntos ubicados en el plano cartesiano, determinar e imprimir:

    a. Porcentaje de puntos ubicados dentro de ambas figuras (Circunferencia y tringulo) b. Cantidad de puntos ubicados dentro de la circunferencia pero fuera del tringulo.

    30. Dada la siguiente figura geomtrica y un conjunto de S pares (X, Y) correspondientes a los puntos ubicados en el plano cartesiano, determinar e imprimir:

    a. Porcentaje de puntos dentro de la circunferencia y fuera del cuadrado. b. Cantidad de puntos ubicados sobre el permetro de ambas figuras

    31. Dada la siguiente figura geomtrica cuyo permetro esta compuesto de dos segmentos de circunferencias simtricos y un conjunto de M pares (X,Y) correspondientes a los puntos ubicados en el plano cartesiano, determinar e imprimir:

    a. Porcentaje de puntos ubicados dentro de la figura b. Cantidad de puntos ubicados en el permetro de la figura

    y (1,2)

    1 ( 2,1)

    x

    (X-1)2+(Y-1)2 = 1

    y 2

    1

    x

    1

    (X-1)2 + (Y-1)2 = 1

  • UN I V E R S I D AD D E CARABOBO . FACU L T AD D E INGEN I E R A . D E P AR T AM EN TO D E COMPU T AC I N .

    C T E D R A D E COM P U T AC I N I S EG UN DO P E R O DO L E C T I V O D E 2 0 0 6 .

    MM AA TT EE RR II AA LL DD EE AA PP OO YY OO AA CC LL AA SS EE SS PP GG II NN AA 44 11 DD EE 44 66

    E J E R C I C I O S V A R I O S

    32. Dados dos puntos en el plano cartesiano: (X1,Y1) y (X2,Y2), que definen una recta, y un conjunto de valores de X, correspondientes a coordenadas x de puntos en el plano, elabore el diagrama de flujo de un programa que determine la ordenada Y correspondiente a cada valor de abscisa x usando el mtodo de interpolacin lineal, si se puede.

    33. Un caracol cae en un pozo de H metros de profundidad. Durante el da asciende Ld metros y durante la noche resbala Ln metros. Elabore el diagrama de flujo de un programa que, simulando el movimiento del caracol, calcule el nmero de das que necesita para salir del pozo.

    34. La capacidad de un depsito es de V litros. Mediante una vlvula se introducen Li litros por segundo y mediante un desage se extraen Ls litros por segundo. Si el depsito tiene inicialmente Lo litros, elabore el diagrama de flujo de un programa que imprima segundo a segundo el volumen de agua almacenada e indique, al final, si se rebasa la capacidad de almacenamiento, si siempre es la misma cantidad o si se vaca.

    35. Un reloj se atrasa un minuto por cada cuarto de hora transcurrida. Elabore el diagrama de flujo de un programa que determine la hora que marca el reloj, transcurridos D das, H roras y M minutos desde el momento en que comenz a funcionar. Considere: DI horas y MI minutos como valor inicial

    36. La parte entera de la raz cuadrada de un nmero puede calcularse como la cantidad de nmeros impares sucesivos que hay que sumar sin sobrepasar el nmero. Por ejemplo:

    la parte entera de la raz es 4 y adems los impares 1+3+5+7=16 son 4 impares que al sumarlos no sobrepasan el nmero 20. Elabore el diagrama de flujo de un programa que dado un valor R, determine la parte entera de la raz cuadrada por el mtodo descrito.

    37. Un jeep puede viajar unos 500 Km con un tanque lleno de gasolina. Desde una posicin inicial, conteniendo n tanques de gasolina, el mismo jeep puede viajar L Km, los cuales se determinan de acuerdo a los siguiente:

    Kmn

    L )12

    1...

    71

    51

    311(500

    +++++=

    Estableciendo economa de combustible en una ruta. Elabore el diagrama de flujo de un programa que dado el valor de n, determine el nmero de Kilmetros L que el jeep puede recorrer.

    38. Un objeto se deja caer desde una altura H. Elabore el diagrama de flujo de un programa que imprima para cada dcima de segundo: la distancia entre el objeto y el suelo; al final imprima el tiempo necesario en dcimas de segundo para que el objeto toque el suelo. No tome en cuenta la resistencia del aire, las frmulas de cada libre son:

    tgv = y 2

    2tgx

    =

    39. Dado un conjunto de fechas representadas como: S, DD, MM, AA en donde:

    S = Da de la Semana entre 1 y 7 ( 1= lunes, 2=martes 7=domingo) DD = Da del mes MM = Mes entre 1 y 12 (1=enero, 2=febrero, 12=diciembre) AA = Ao

    Elabore el diagrama de flujo de un programa que imprima la fecha en palabras. Por ejemplo: para los datos 1 10 02 2006, debe imprimir Lunes 10 de Febrero de 2006

    47.420 =

  • UN I V E R S I D AD D E CARABOBO . FACU L T AD D E INGEN I E R A . D E P AR T AM EN TO D E COMPU T AC I N .

    C T E D R A D E COM P U T AC I N I S EG UN DO P E R O DO L E C T I V O D E 2 0 0 6 .

    MM AA TT EE RR II AA LL DD EE AA PP OO YY OO AA CC LL AA SS EE SS PP GG II NN AA 44 22 DD EE 44 66

    40. Un Ferry de transporte de vehculos, soporta una carga mxima de W toneladas y el canal de almacenamiento tiene una longitud de L metros. El canal de almacenamiento es estrecho y permite almacenar nicamente los vehculos alineados uno detrs del otro. Elabore el diagrama de flujo de un programa que dados los datos de un conjunto de M vehculos, Placa, Peso en toneladas y Longitud en metros, determine porcentaje de vehculos que podrn ingresar al Ferry y cual es el vehculo ms largo dentro del Ferry. Considere que para ingresar al Ferry se respeta estrictamente la cola.

    41. Dadas las coordenadas del origen de un plano relativo al plano XY, y un conjunto de pares ordenados (x, y) correspondientes a un conjunto de puntos ubicados en el plano cartesiano, elaborar el diagrama de flujo de un programa que determine las coordenadas del punto en el plano relativo e indique en qu cuadrante de ese plano est ubicado.

    Observe el ejemplo:

    42. El Departamento de Seguridad Pblica y de Trnsito asigna una calcomana de color a cada vehiculo de una ciudad dependiendo del ultimo digito de la placa, segn se muestra en la tabla a la derecha. Dadas las placas de N vehculos que ingresan en la ciudad, elaborar el diagrama de flujo de un programa que determine, cuantos vehculos por color de calcomana ingresaron en la ciudad.

    43. Dados un conjunto de W valores numricos, desarrolle el Diagrama de Flujo de un programa que verifique si estn en orden creciente desde el primer valor, en caso de no estar ordenados indique cuantos valores estaban desordenados. Observe los siguientes ejemplos:

    Dgito Color 1 2 Amarilla 3 4 Rosa 5 6 Roja 7 8 Verde 9 0 Azul

    PLANO XY

    Coordenadas Puntos:

    P1: [ 6, 2 ]

    P2: [-3, -2 ]

    PLANO RELATIVO XY

    Coordenadas Origen en plano XY: [ 5, 4 ]

    Coordenadas Origen en plano XY: [ 0, 0 ]

    Coordenadas y Cuadrante de Puntos en plano XY:

    P1: [ 1, -2 ] Cuadrante IV

    P2: [-8, -6 ] Cuadrante III

    O

    O

    Y Y

    X

    X

    P1

    P2

    -3 6

    -8

    2

    -2

    -

    2

    Ejemplo 1

    Hay 2 valores desordenados

    W = 6

    5

    8

    10

    12

    11

    14

    Hasta aqu estn

    ordenados

    Ejemplo 2

    Hay 3 valores desordenados

    W = 5

    5

    9

    8

    12

    11

    Hasta aqu estn

    ordenados

    Ejemplo 3

    Hay 5 valores desordenados

    W = 5

    5

    4

    8

    12

    11

    Todos estn desordenados

  • UN I V E R S I D AD D E CARABOBO . FACU L T AD D E INGEN I E R A . D E P AR T AM EN TO D E COMPU T AC I N .

    C T E D R A D E COM P U T AC I N I S EG UN DO P E R O DO L E C T I V O D E 2 0 0 6 .

    MM AA TT EE RR II AA LL DD EE AA PP OO YY OO AA CC LL AA SS EE SS PP GG II NN AA 44 33 DD EE 44 66

    S E R I E S

    4