SlideShare ist ein Scribd-Unternehmen logo
1 von 17
Downloaden Sie, um offline zu lesen
ALGORITMOS,
PSEUDOCÓDIGO Y
DIAGRAMAS DE FLUJO                                                                ULTIMA REVISIÓN: 21-SEP-2001


Convenio de sintaxis
<elemento>     Elementos entre signos de menor que y mayor que (<, >) representan identificadores,
               expresiones y objetos sobre los que se aplican operaciones. (Su valor se reemplaza sin considerar
               los signos de mayor que y menor que).

Palabras clave Elementos con este tipo de letra son considerados palabras clave en los Diagramas de Flujo.
               Estas constituyen una parte requerida de la sintaxis de una instrucción, a menos que estén entre
               corchetes.

palabras clave Elementos con este tipo de letra son considerados palabras clave en pseudocódigo. Estas
               constituyen una parte requerida de la sintaxis de una instrucción, a menos que estén entre
               corchetes.

[, <elemento>] Los elementos entre corchetes son optativos.

...            Puntos suspensivos indican que se puede utilizar mas veces el mismo tipo de elementos que se
               encuentran antes de ellos.

         FIGURA DE DIAGRAMA DE FLUJO                      PALABRA EQUIVALENTE EN PSEUDOCODIGO

                        Inicio
                                                      inicio
                           .                              .
                 otras instrucciones                      otras instrucciones
                           .                              .
                                                      fin
                         Fin


                                              A) TERMINALES

Los TERMINALES indican el inicio y fin de un algoritmo. Se colocan siempre como la primera figura o
instrucción (donde comienza el algoritmo) y como la última figura o instrucción (donde termina el
algoritmo).

otras instrucciones pueden ser cualesquiera otras figuras y/o instrucciones menos los que representan a
TERMINALES.

Nota: Observe que en pseudocódigo, otras instrucciones se encuentra ligeramente desplazado hacia la
derecha; esto significa que las instrucciones delimitadas por inicio y fin deben colocarse de forma sangrada
para hacer mas entendible el pseudocódigo.



ALGORITMOS, PSEUDOCÓDIGO Y DIAGRAMAS DE FLUJO                                                      UMSS
                                                                                                          1/17   INF-SIS
<expresion1>[,
                  <expresion2>] ... [,                        mostrar <expresion1>[, <expresion2>] ...
                    <expresionn>]                                     [, <expresionn>]



                                                   B) IMPRIMIR

Se utiliza cuando se desea mostrar el resultado de cualquier expresión.

<expresionn> es cualquier texto (delimitado entre comillas), expresión matemática o lógica que es evaluada
previamente antes de mostrarse o la palabra reservada eol (End Of Line - Fin de Línea) que se utiliza para
expresar que el resultado de la expresión que continua se colocará al comienzo de la siguiente línea.

Note que se pueden colocar varias expresiones separadas por comas.

Nota: En pseudocódigo: si todas las expresiones que se desean mostrar no caven hasta el margen de la hoja,
se continúan escribiendo a la misma altura donde se comenzaron a enumerar las expresiones anteriores, para
así evitar confusión con otras instrucciones.


                                                              <operacion1>[,
                    <operacion1>[,
                                                              <operacion2>]
                    <operacion2>]
                         ... [,                               ... [,
                    <operacionn>]                             <operacionn>]



                                                   C)   PROCESO

Se utiliza cuando se desea realizar alguna operación o cálculo.

En diagramas de flujo, se pueden colocar varias instrucciones, pero en diferentes filas (No recomendable con
instrucciones de distinta naturaleza).

Para realizar operaciones de asignación se utiliza la siguiente sintaxis:

                                              variable ß expresion

donde:

     expresion es una expresión (matemática, lógica o de texto (delimitado entre comillas) ) que, DESPUÉS
     DE SER EVALUADA, se desea almacenar en una variable.

     variable es el nombre de la variable en la cual se almacena el resultado de expresion.




ALGORITMOS, PSEUDOCÓDIGO Y DIAGRAMAS DE FLUJO                                                      UMSS
                                                                                                          2/17   INF-SIS
<var1>[, <var2>]
                     ...[, <varn>]                           leer <var1>[, <var2>] ... [, <varn>]



                                            D)   LECTURA DE DATOS

Se utiliza para obtener valores que son ingresados por el usuario desde un dispositivo de Entrada (ejemplo:
teclado).

<varn> es el nombre de una variable que almacena un valor leído. Note que puede leer varias variables con
una sola instrucción utilizando comas (,) para separarlas.

                                                             si <expresion logica>
                                                                 entonces
                                                                     .
                                                                     instrucciones en caso
                      <expresion                                     de que <expresion logica>
              no                       si
                       logica>                                       sea verdadera
            .                              .                           .
 instrucciones en caso           instrucciones en caso            [ sino
   de que <expresion               de que <expresion
    logica> sea falsa           logica> sea verdadera
                                                                       .
            .                              .                         instrucciones en caso
                                                                     de que <expresion logica>
                                                                     sea falsa
                                                                     .]
                                                             finSi
                                                  E)   DECISIÓN

Se utiliza cuando se desea tomar una decisión.

En el caso de los diagramas de flujo, el curso del algoritmo sigue por la flecha que tiene la respuesta a la
expresión lógica.

En pseudocódigo, se ejecuta el bloque instrucciones en caso de que <expresion logica> sea verdadera si la
respuesta a <expresión logica> es verdadera, o el bloque instrucciones en caso de que <expresion logica>sea
falsa en caso contrario.

Note que la palabra reservada sino y el bloque de instrucciones que la acompañan son opcionales. Es decir
que si no existen instrucciones para realizar en caso de que <expresión lógica> sea falsa, entonces no se
coloca ninguna instrucción.

En pseudocódigo, finSi es el equivalente de la unión de los dos recorridos en un diagrama de flujo.

<expresion logica> es una pregunta que puede ser respondida con Sí (V) o No(F).

Instrucciones en caso de que <expresion logica> sea verdadera e Instrucciones en caso de que <expresion
logica>sea falsa son cualesquiera otras instrucciones menos las que representan a terminales.

ALGORITMOS, PSEUDOCÓDIGO Y DIAGRAMAS DE FLUJO                                                         UMSS
                                                                                                             3/17   INF-SIS
<var> <- <vIni> .. <vFin>, <inc>
                                                             para <var> ß <vIni> .. <vFin>, <inc>
                                 .                              .
                          Instrucciones                         Instrucciones
                                 .                              .
                                                             finPara
                                <var>




                                F)   BUCLE CON CANTIDAD DE REPETICIONES DEFINIDA

Se utiliza para repetir el bloque Instrucciones una cantidad determinada de veces. El ciclo se repite mientras
el valor de <var> esté entre el intervalo [<vIni>, <vFin>].

<var> es el nombre de una variable contador, que es inicializada con el valor expresado en <vIni>. En cada
repetición del ciclo se incrementa el valor de <var> con el valor expresado en <inc>.

Instrucciones son cualesquiera otras instrucciones excepto las que representan terminales.




                      <expresion
                                          no
                        logica>                              mientras <expresion logica>
                                                                .
                           si
                                                                Instrucciones
                                                                .
                            .
                     Instrucciones                           finMientras
                            .




           G)   BUCLE CON CANTIDAD DE REPTICIONES NO DEFINIDA Y EVALUACIÓN PRE-EJECUCIÓN

Se utiliza cuando se desea repetir un conjunto de instrucciones mientras el resultado de evaluar <expresion
logica> sea verdad.

Instrucciones son cualesquiera otras instrucciones excepto las que representan terminales.

En este tipo de estructura Instrucciones puede ejecutarse 0 o más veces dependiendo del resultado de
<expresion logica>




ALGORITMOS, PSEUDOCÓDIGO Y DIAGRAMAS DE FLUJO                                                        UMSS
                                                                                                            4/17   INF-SIS
.
                        Instrucciones                     hacer
              si
                               .                             .
                                                             Instrucciones
                                                             .
                                                          finHacerMientras (<expresion logica>)
                         <expresion
                           logica>

                              no

H)   BUCLE CON CANTIDAD DE REPTICIONES NO DEFINIDA Y EVALUACIÓN POST-EJECUCIÓN (HACER – MIENTRAS)

Se utiliza cuando se desea repetir un conjunto de instrucciones mientras el resultado de <expresion logica>
sea verdad.

Instrucciones son cualesquiera otras instrucciones normalizadas en este anexo, excepto las que representan
terminales.

Note que en esta estructura Instrucciones se ejecuta por lo menos una vez, dependiendo la siguiente
repetición de Instrucciones del resultado de <expresión lógica>.




                               .
                        Instrucciones                     hacer
             no
                               .                             .
                                                             Instrucciones
                                                             .
                         <expresion                       finHacerHasta (<expresion logica>)
                           logica>

                              si

 I)   BUCLE CON CANTIDAD DE REPTICIONES NO DEFINIDA Y EVALUACIÓN POST-EJECUCIÓN (HACER - HASTA)

Se utiliza cuando se desea repetir un conjunto de instrucciones hasta que el resultado de <expresion logica>
sea verdad.

Instrucciones son cualesquiera otras instrucciones normalizadas en este anexo, excepto las que representan
terminales.

Note que en esta estructura Instrucciones se ejecuta por lo menos una vez, dependiendo la siguiente
repetición de Instrucciones del resultado de <expresión lógica>.




ALGORITMOS, PSEUDOCÓDIGO Y DIAGRAMAS DE FLUJO                                                      UMSS
                                                                                                          5/17   INF-SIS
En caso de <variable>
                                                                       = c1: Instrucciones en caso de
                                                                             que variable sea c1
                                                                       = c2: Instrucciones en caso de
                                                                             que variable sea c2
                         <variable>
                                                                       ...
                                          por
                 c1    c2    ...   cN
                                        Defecto                        = cN: Instrucciones en caso de
                                                                              que variable sea cN
                                                                       por Defecto: Instrucciones en
                                                                                     cualquier otro caso
                                                                    finEnCasoDe
                                            J)    DECISIÓN MÚLTIPLE O POR CASOS

Se utiliza cuando el valor de una variable tiene varios valores conocidos y en cuyos casos se procede de una u
otra forma.

Su semántica es la siguiente: Si <variable> toma el valor de alguna de las constantes c1, c2, ... cN, ejecuta las
instrucciones que corresponden (Instrucciones caso de que variable sea cN). Si <variable> no toma ninguno
de los valores entonces ejecuta las instrucciones que se indica en por Defecto.


                              Cualquier
                             comentario
                                                                            { Cualquier comentario }


                                                        K)   COMENTARIO

Los comentarios se usan para aclarar cualquier acción que se realiza.

En Diagramas de Flujo, pueden partir de cualquier figura y no afectan de ninguna forma a la secuencia de
pasos definida por los conectores (flechas).

En pseudocódigo se representa encerrando el comentario entre llaves. Los comentarios deben ir en cualquier
posición que se considere que aclarará al pseudocódigo, pero no en el interior de una instrucción.


                   Destino         Origen

                                                                     No es posible representarlo en Pseudocódigo
                      Destino = Origen


                                                        L)   CONECTORES

Se utilizan cuando se tiene una flecha que conecta dos puntos y estos son muy distantes (diagramas
de flujo). Tanto Destino como Origen son la misma figura, que por lo general es una letra mayúscula
o una letra griega.

No es posible representar conectores en pseudocódigo.

ALGORITMOS, PSEUDOCÓDIGO Y DIAGRAMAS DE FLUJO                                                               UMSS
                                                                                                                   6/17   INF-SIS
pagina                         No es posible representarlo en Pseudocódigo
                 pagina



                                      M)   CONECTORES DE FIN DE PÁGINA.

Se utilizan cuando el algoritmo ocupa varias páginas.

Para pseudocódigo no es posible utilzar esto. En pseudocódigo el código se lee de arriba abajo sin importar
cuantas hojas utilice.




ALGORITMOS, PSEUDOCÓDIGO Y DIAGRAMAS DE FLUJO                                                      UMSS
                                                                                                          7/17   INF-SIS
EXPERIMENTOS
   INSTRUCCIONES: Cuando esté realizando un experimento identifíquese en la situación de ser usted una
   computadora... es decir, que hace sólo lo que se le ordena. Ejecute los experimentos en su Unidad Central
   de Proceso (su cerebro)... claro, con la ayuda de una hoja de papel (memoria). Estudie qué es lo que hacen
   los algoritmos y tome nota de sus conclusiones. Responda a las preguntas que se le planteen.


1. a) Realice pruebas de escritorio para los siguientes algoritmos y analícelos.
   b) Trate de encontrar relaciones entre los valores de entrada y los valores de salida.
   c) Resuma en una frase, para qué sirve cada algoritmo.
   d) Dibuje diagramas de flujo para cada algoritmo.
   e) Escriba la versión en pseudocódigo de cada algoritmo.


    ALGORITMO #1

        1.    Inicio
        2.    Obtener 2 números enteros a y b.
        3.    Inicializar un acumulador en 0.
        4.    Si b es 0 entonces mostrar el acumulador e ir a 9.
        5.    Si b es impar entonces acumular a.
        6.    Dividir b entre 2. {División entera }
        7.    Multiplicar a por 2.
        8.    Volver a 3.
        9.    Fin


    ALGORITMO #2

        1.    Inicio
        2.    Obtener un número entero positivo N.
        3.    Inicializar una variable M en 0.
        4.    Inicializar una variable contador en 0.
        5.    Obtener un número entero positivo x.
        6.    Si x es mayor que M entonces almacenar x en M.
        7.    Incrementar contador en 1.
        8.    Si contador es diferente de N entonces volver a 5.
        9.    Mostrar el valor de M.
        10.   Fin.


    ALGORITMO #3

        1.    Inicio.
        2.    Obtener un número entero positivo N.
        3.    Inicializar una variable nuevo en 0.
        4.    Multiplicar nuevo por 10.
        5.    Añadir a nuevo el residuo de dividir N entre 10.
        6.    Dividir N entre 10. { división entera }
        7.    Si N es mayor que 0 volver a 4.
        8.    Mostrar el valor de nuevo.
        9.    Fin.
ALGORITMOS, PSEUDOCÓDIGO Y DIAGRAMAS DE FLUJO                                                      UMSS
                                                                                                          8/17   INF-SIS
2. ¿Cuáles son los resultados visualizados por el siguiente programa en pseudocódigo, si los datos
   proporcionados son 12 y 9?

       inicio
           mß6
           leer a, b
           c ß 2*a-b
           c ß c-m
           b ß a + c-m
           mostrar a
           b ß b-1
           mostrar a, b, eol
       fin


3. Indique que hace el siguiente algoritmo y compárelo con el de la otra columna.
   ¿Son equivalentes? ¿por qué? ¿qué les falta? ¿qué les sobra?

         inicio
             contador ß 1
             suma ß 0                                        inicio
                                                                 para contador ß 1 .. 100, +1
               mientras contador ≤ 100                              suma ß suma + contador
                  suma ß suma + contador                         finPara
                  contador ß contador + 1
               finMientras                                         mostrar suma
                                                             fin
               mostrar suma
         fin

    Haga diagramas de flujo para las dos versiones corregidas de este algoritmo.


4. ¿Qué valores tomará la variable R en el siguiente algoritmo?

    inicio
        aß2
        bß4
        d ß 5.5
        f ß "Pancho"
        g ß "Pancha"
        h ß 'A'
        j ß 'a'
        m ß verdad
        n ß falso

       R ß (a > b) ∧ (d > 3.4)

       R ß ∼(a ≠ b) ∨ (f ≠ g) ∧ m
       mostrar R, fin_linea

       Rßm∨n
       mostrar R, fin_linea
ALGORITMOS, PSEUDOCÓDIGO Y DIAGRAMAS DE FLUJO                                                   UMSS
                                                                                                       9/17   INF-SIS
R ß (f > g) ∧ ∼ (a+2 = b) ∧ (h ≠ j)
          mostrar R, fin_linea
    fin


5. ¿Qué es lo que hace el siguiente programa?

                                                       Inicio


                                                  suma 0
                                                    i 0



                                                   i > 100                si
                                                                                         suma


                                                         no

                                           suma suma + (2*i +1)                           Fin


                                                    i     i+1

    Escriba una versión de este algoritmo en pseudocódigo.


6. Indique qué valor almacena la variable contador al finalizar el algoritmo.

                                                Inicio


                                                numero
                                                                                   INT (x) es una función
                                                                                   que devuelve la parte
                                     numero      INT(numero)                       entera de un número x


                                      no       numero=0         si


                              contador     0                  contador         1



                                               numero=0              si              contador


                                                  no

                                    numero numero div 10                                Fin
                                     contador contador +1



    -     Represente el anterior algoritmo con un pseudocódigo.

ALGORITMOS, PSEUDOCÓDIGO Y DIAGRAMAS DE FLUJO                                                               UMSS
                                                                                                                   10/17   INF-SIS
7. Muestre el resultado impreso del siguiente programa.

    inicio
        iß1
        aß2

          mientras a=a
             para j ß 1.. i, +1
                mostrar j, "_"
             finPara

             mostrar fin_linea
             i ß i +1
          finMientras
    fin


8. Indique para que sirve el siguiente algoritmo y luego represéntelo en pseudocódigo.

                                                 Inicio


                                                 num


                                          num     INT(num)


                                              sumaP 0
                                              sumaI 0



                                                num > 0           no        sumaP = sumaI       no


                                                   si
                                                                                    si
                                          d     num mod 10
                                                                                   "si"          "no"

                                     no       d mod 2 = 0         si

                                                                                          Fin
                           sumaP   sumaP + d              sumaI        sumaI + d


                                          num    num div 10




ALGORITMOS, PSEUDOCÓDIGO Y DIAGRAMAS DE FLUJO                                                           UMSS
                                                                                                               11/17   INF-SIS
9. Lleve el siguiente algoritmo a su versión en pseudocódigo e indique qué es lo que hace.

                                                   Inicio


                                                    a, b


                                                 a=INT(a)
                                                    ^              no      "Error"
                                                 b=INT(b)

                                                     si

                                                sumaA       0
                                                sumaB       0
                                                                               α

                                                i 1 .. a, +1



                                                a mod i = 0


                                                     si            no

                                            sumaA        sumaA+i

                                                     i


                                                i 1 .. b, +1



                                                b mod i = 0


                                                     si            no

                                            sumaB        sumaB+i

                                                     i



                                                 sumaA=b
                                       si           ^              no
                                                 sumaB=a
                                "si"                                    "no"

                                                                                      α

                                                    Fin




ALGORITMOS, PSEUDOCÓDIGO Y DIAGRAMAS DE FLUJO                                                UMSS
                                                                                                    12/17   INF-SIS
EJERCICIOS
1. Diseñe una solución para resolver los siguientes problemas y trate de refinar sus soluciones mediante
   algoritmos adecuados.
   a) Hacer una llamada telefónica desde un teléfono público.
   b) Freír un huevo.
   c) Resolver un examen dado.
   d) Prestarse un libro de una biblioteca.
   e) Buscar una palabra determinada en un diccionario.
   f) Determinar si un punto pertenece a una circunferencia con centro en el origen y radio 4.
   g) Determinar si un número es primo o no.
   h) Dado un laberinto, salir de él.
   i) Calcular el tiempo transcurrido entre dos horas dadas en formato hh:mm de un mismo día.
   j) Calcular la suma de los 30 primeros números primos.
   k) Calcular el factorial de un número.
   l) Averiguar si una palabra es un palíndromo. Un palíndromo es una palabra que se lee de igual manera en
       sentido directo y en sentido inverso; por ejemplo: "radar".


2. Escriba un algoritmo que represente el método aprendido en la escuela primaria para:
   a) Sumar dos números enteros.
   b) Restar dos números enteros.
   c) Multiplicar dos números.
   d) Dividir un número entero.
   e) Multiplicar dos números enteros por el método de las sumas sucesivas.

    Nota: Para todos los casos supóngase que se conocen las operaciones de suma, resta, multiplicación y
    división, pero únicamente para números de una sola cifra.


3. Escriba un programa que obtenga tres números, los almacene en variables y luego calcule y muestre un
   reporte sobre su suma y su promedio.

                                                                              ax + by = c
4. Escriba un programa para resolver un sistema de ecuaciones como este:                  .
                                                                              dx + ey = f


5. Dados los coeficientes de una ecuación de segundo grado, calcular las raíces de la ecuación considerando
   todos los casos posibles. Recuerde que una computadora no conoce los números imaginarios así que deberá
   encontrar alguna forma de representarlos claramente.


6. Realice un diagrama de flujo y pseudocódigo para los siguientes enunciados:
   a) Dado un número entero, indique si este es par o no.
   b) Dados dos números reales. Indique cuál es el mayor.
   c) Desde un dispositivo de E/S se leen tres números. Indique cuál es el menor.
   d) Se obtienen 4 números de la recta real. Indique cuál es el mayor y cuál el menor.
   e) Desde un dispositivo de E/S se leen tres números. Indique cual de ellos es la suma de los otros dos.


7. ¿Qué es lo que debería mostrar el programa representado en el siguiente diagrama de flujo?
   - Complete las figuras con lo que les falte.
ALGORITMOS, PSEUDOCÓDIGO Y DIAGRAMAS DE FLUJO                                                      UMSS
                                                                                                          13/17   INF-SIS
-   ¿Qué es lo que hace el programa?
    -   ¿Es un buen algoritmo? ¿Por qué?
                                                       Inicio


                                                          a, b


                                                      x    a>b



                                               si     x = (b>a)    no




                                                          Fin




8. Un año es bisiesto si es múltiplo de 4, pero no de 100, pero sí de 400. (Ejemplos: 1984 es bisiesto, 2000 es
   bisiesto, 1800 no es bisiesto). Determine un algoritmo que permita determinar si un año introducido desde el
   teclado es bisiesto o no.


9. Realice un programa para obtener la suma de los n primeros números primos.


10. Realice un programa para encontrar los 100 primeros números perfectos. Un número es perfecto cuando la
    suma de sus divisores (sin contar el mismo número) es igual al mismo número. Por ejemplo: 6 = 1+2+3.


11. Realiza un procedimiento para calcular el factorial de un número que debe estar comprendido entre 5 y 62.


12. Leer dos números positivos a y b e imprimir los a primeros números primos si a < b. En caso contrario
                                      1 1   1          1
    imprimir el resultado de la serie: +  +   + ... +    .
                                      a 2a 3a         ba


13. Dada una secuencia de números naturales, calcular cuál es el segundo mayor, el tercer menor y el promedio
    de todos. La secuencia se lee desde un dispositivo de E/S y finaliza cuando se ingresa un número que no
    cumple con las restricciones.


14. Realice un diagrama de flujo que indique el procedimiento para hallar el máximo común divisor de dos
    números enteros (MCD) por el algoritmo de Euclides.




ALGORITMOS, PSEUDOCÓDIGO Y DIAGRAMAS DE FLUJO                                                      UMSS
                                                                                                          14/17   INF-SIS
1 1       1
15. Efectuar el cálculo de la siguiente serie de números: 1 +    + + ... + ; con 3 < n < 20 .
                                                                2 3       n

16. Realice un programa que, de las siguientes series:
       - Muestre la serie infinitamente
       - Muestre los primeros n términos de la serie
       - Muestre el n-esimo término de la serie

        a) -1 1 -1         1 -1 1 -1 1 ...                b)    1 2     3 4 3 8 6 8 12 18 96 ...
        c) 1 2 3 0          5 -2 7 -4 1 2 -5 ...          d)    1 3    2 -1 -3 -2 1 3 2 ...
        e) 2 3 5 7          16 73 ...                     f)    1234    14 1248 34 1282 18 1300 ...
        g) 1 2 3 3          -1 6 4 5 2 ...                h)    1 0    1 1 0 1 1 1 0 1 1 1 1 1 1 0 ...


17. Obtener el primer número de la serie de FIBONACCI que sea mayor que n. Sabiendo que la secuencia de la
    serie es la siguiente: 0, 1, 1, 2, 3, 5, 8, 13, 21, ...


18. Visualice las siguientes series de números:

        a)    1                                       b) 1                        c)   1
              2 3                                        1      2                      2 4
              3 4 5                                      1      2 3                    3 6 9
              4 5 6 7                                    1      2 3 6                  4 8 12 16
             ...                                         ...                           ...
             n                                           1      2 3 6 ...              n   ....  n*n

        d)            *                               e) 1
                     ***                                 3 5
                   *****                                 7 9 11
                 *******                                 13 15 17 19
             * ... (2n-1) ... *                          ...
                     ***                                 ... n
                     ***
                     ***


19. Dos números a y b enteros positivos son amigos si y solo si la suma de los divisores de a es igual al número
    b, y la suma de los divisores de b es igual al número a. Realice un programa para verificar que dos números
    son amigos o no.


20. Realiza un programa que lea un entero n y un dígito d. Si d aparece en n se debe desplegar un carácter * en
    la posición en la que se encuentra d. Por ejemplo: si n=123668 y d=6. Se desplegaría 123**8.


21. Dado un número entero con un número par de dígitos, escribir un programa que muestre el número con cada
    par de dígitos intercambiado. Por ejemplo: si N=654321 se debe mostrar 563412


22. Trabajando con números se encontró que 12 × 12 = 144 y que 21 × 21 = 441, así también, 13 × 13 = 169 y
    31 × 31 = 961. Escribe un programa que despliegue en pantalla todos los números de dos dígitos que tienen

ALGORITMOS, PSEUDOCÓDIGO Y DIAGRAMAS DE FLUJO                                                     UMSS
                                                                                                         15/17   INF-SIS
una característica similar a la del número 12 y 13. Limita tu programa a valores cuyos cuadrados sean
    números de 3 dígitos como máximo.

23. Un número es un capicúa si su valor es el mismo tanto si es leído de izquierda a derecha como de derecha a
    izquierda. Por ejemplo: 35253 es un capicúa. 26547 no es un capicúa. Diseña un algoritmo que determine si
    un número introducido es un capicúa o no.


24. Obtener el número en sistema binario que corresponda a un número en sistema decimal introducido desde un
    dispositivo de E/S.


25. Realice el problema inverso del problema anterior.



PROBLEMAS Y EJERCICIOS DE COMPRESIÓN
1. La fecha del domingo de Pascua corresponde al primer domingo después de la primera luna llena que sigue
   al equinoccio de primavera. Los cálculos que permiten conocer esta fecha son: A=anno mod 19, B=anno
   mod 4, C=anno mod 7, D=(19×A+24) mod 30, E=(2×B+4×C+6×D+5) mod 7, N=(22+D+E), donde N
   indica el número del día del mes de marzo (o abril si N es superior a 31) correspondiente al domingo de
   Pascua. Realizar un diagrama de flujo y pseudocódigo que determine esta fecha para todos los años
   comprendidos entre 2000 y 2010.


2. Una secretaria olvida por descuido la combinación de una caja fuerte, pero recuerda que cuando cambió la
   clave por última vez no utilizó para nada los dígitos de la anterior clave que era abc, donde a, b y c son
   dígitos (0-9). En el peor de los casos, ¿cuántas posibles combinaciones tendría que probar la secretaria antes
   de abrir la caja fuerte?.


3. Al nacer un niño su madre le abre una caja de ahorros y le deposita todos los años Bs. 50 el primero de
   enero. Al dinero que ingresa se le añaden los intereses del 13.5% anual sobre la cantidad que en el momento
   tenga ahorrada. Después de 18 años el joven retira sus ahorros. ¿Cuánto dinero le dan? (Suponga que la
   fecha de nacimiento del niño fue el 31 de diciembre).


4. Efectuar el cálculo de la siguiente serie de números:
                                                           (2t )1 + (2t )2 − (2t )3    + ... ±
                                                                                                 (2t )i . Detenga el cálculo
                                                           1 × 1!      2 × 2! 3 × 3!             i × i!
    de la serie cuando el añadir un término (en valor absoluto) a la serie le haga variar menos de un valor épsilon
    que es introducido desde el teclado. Indique cuántos términos fueron necesarios para realizar el cálculo.


5. La función random() devuelve un número pseudo-aleatorio x, donde 0 ≤ x < 1 y con una distribución
   aproximadamente uniforme.

    Una partícula se mueve en un reloj de manecillas y puede tomar una de cuatro posiciones: las 12, las 3, las 6
    o las 9. Su movimiento es aleatorio y puede ser en sentido horario o en sentido antihorario. Si cada
    movimiento es como máximo hasta la siguiente posición a su derecha o a su izquierda, calcule cuantas veces
    caerá sobre cada posición después de n saltos.

    La probabilidad de ir a la izquierda o a la derecha es la misma.

ALGORITMOS, PSEUDOCÓDIGO Y DIAGRAMAS DE FLUJO                                                                UMSS
                                                                                                                    16/17   INF-SIS
6. Existe un juego que se llama PING-PONG, que es jugado por un grupo de personas que están en círculo; el
   cual consiste básicamente en generar una secuencia de números desde 1 a n con ciertas restricciones.

    Una de las personas del círculo inicia el juego diciendo 1, y el resto de las personas en orden van diciendo
    los números correlativos correspondientes, con la condición de que a cada persona que le toque decir un
    número múltiplo de X, en vez de decir el número dice "ping" y cada vez que le toque decir un múltiplo de Y
    dice "pong".

    Escriba un pseudocódigo que muestre la secuencia correcta de los n números del juego, con las condiciones
    antes mencionadas.

    Tome en cuenta que si existe alguna ocurrencia que es múltiplo de X y Y a la vez, entonces se debería decir
    "ping-pong". Por otro lado n, al igual que X y Y son leídos por teclado.


7. Se tiene 3 jugadores que deben adivinar un número entero generado por la computadora en forma aleatoria
   (entre 1 y 100). Los jugadores rotan tratando de adivinar el número. Gana el jugador que adivina primero.

    Cuando el jugador da el número: si su distancia al número que se desea adivinar está en los rangos
    presentados a continuación, la computadora mostrará los siguientes mensajes.

    [ 1 ... 10)    à   Te quemas
    [ 10 ... 20)   à   Caliente
    [ 20 ... 30)   à   Tibio
    [ 30 ... ∞)    à   Frío


8. Una compañía aseguradora tiene promotores de ventas para sus seguros. La compañía ofrece tres tipos de
   seguros cuyos precios son negociables: el tipo I que vale entre 6 y 7.5 $, el tipo II que vale entre 10.5 y 12 $,
   el tipo III que vale entre 15 y 17 $. Si un promotor vende un seguro del tipo I recibe como comisión el 20%
   del valor al que vendió el seguro; si vende un seguro del tipo II recibe el 25% y si vende un seguro del tipo
   III recibe el 30%. Además de sus comisiones por ventas, el mejor vendedor (el que consigue vender más, es
   decir: el que tiene más dinero en comisión acumulada) recibe un bono del 20% del total de sus comisiones.
   Hacer un programa en pseudocódigo que muestre quien es el vendedor que tiene más comisión acumulada,
   si sabemos que los vendedores llegan a fin de mes para realizar su rendición de cuentas e ingresan los datos
   secuencialmente según el orden de llegada.

    Nota: Este ejercicio se debe resolver sin utilizar arreglos.




                         Este documento fue actualizado por última vez el 21 de septiembre de 2001.
        Visite el sitio web: www.cs.umss.edu.bo/inf135/ para obtener una versión actualizada de este documento.

               © 2000 - 2001 Departamento de Informática y Sistemas – Universidad Mayor de San Simón
                                                  Cochabamba - Bolivia


ALGORITMOS, PSEUDOCÓDIGO Y DIAGRAMAS DE FLUJO                                                            UMSS
                                                                                                                17/17   INF-SIS

Weitere ähnliche Inhalte

Was ist angesagt?

Presentacion 5
Presentacion 5Presentacion 5
Presentacion 5aarg90
 
Unidad 1 introduccion
Unidad 1 introduccionUnidad 1 introduccion
Unidad 1 introduccionKatyya20
 
Lenguajec 1
Lenguajec 1Lenguajec 1
Lenguajec 1joeshego
 
Aprendiendo un nuevo lenguaje
Aprendiendo un nuevo lenguajeAprendiendo un nuevo lenguaje
Aprendiendo un nuevo lenguajeaiguajardo
 
Paula carolina rubiano guerrero
Paula carolina rubiano guerreroPaula carolina rubiano guerrero
Paula carolina rubiano guerreroDeicy Lopez Castro
 
Comenzando a programar
Comenzando a programarComenzando a programar
Comenzando a programarRubén Loredo
 
Conceptos basicos de_vhdl
Conceptos basicos de_vhdlConceptos basicos de_vhdl
Conceptos basicos de_vhdlAngie Cardenas
 
Lenguajec intorduccionui
Lenguajec intorduccionuiLenguajec intorduccionui
Lenguajec intorduccionui3dwin3
 
Sintaxis Básica del lenguaje Java
Sintaxis Básica del lenguaje JavaSintaxis Básica del lenguaje Java
Sintaxis Básica del lenguaje JavaRay
 
Presentación1
Presentación1Presentación1
Presentación1Nestor
 

Was ist angesagt? (19)

SeúDocodigo
SeúDocodigoSeúDocodigo
SeúDocodigo
 
Presentacion 5
Presentacion 5Presentacion 5
Presentacion 5
 
Programacion basica
Programacion basicaProgramacion basica
Programacion basica
 
Unidad 1 introduccion
Unidad 1 introduccionUnidad 1 introduccion
Unidad 1 introduccion
 
Lenguajec 1
Lenguajec 1Lenguajec 1
Lenguajec 1
 
Aprendiendo un nuevo lenguaje
Aprendiendo un nuevo lenguajeAprendiendo un nuevo lenguaje
Aprendiendo un nuevo lenguaje
 
Lenguaje C
Lenguaje CLenguaje C
Lenguaje C
 
Manual programacion arduino
Manual programacion arduinoManual programacion arduino
Manual programacion arduino
 
Paula carolina rubiano guerrero
Paula carolina rubiano guerreroPaula carolina rubiano guerrero
Paula carolina rubiano guerrero
 
Comenzando a programar
Comenzando a programarComenzando a programar
Comenzando a programar
 
Clase de logica posbc
Clase de logica posbcClase de logica posbc
Clase de logica posbc
 
Tabla De Transicion
Tabla De TransicionTabla De Transicion
Tabla De Transicion
 
Conceptos basicos de_vhdl
Conceptos basicos de_vhdlConceptos basicos de_vhdl
Conceptos basicos de_vhdl
 
Lenguajec intorduccionui
Lenguajec intorduccionuiLenguajec intorduccionui
Lenguajec intorduccionui
 
Sintaxis Básica del lenguaje Java
Sintaxis Básica del lenguaje JavaSintaxis Básica del lenguaje Java
Sintaxis Básica del lenguaje Java
 
Lenguaje c
Lenguaje cLenguaje c
Lenguaje c
 
Taller completo
Taller completoTaller completo
Taller completo
 
Presentación1
Presentación1Presentación1
Presentación1
 
Polimorfismo
PolimorfismoPolimorfismo
Polimorfismo
 

Andere mochten auch

52 ejercicios-resueltos-en-pseudocodigo
52 ejercicios-resueltos-en-pseudocodigo52 ejercicios-resueltos-en-pseudocodigo
52 ejercicios-resueltos-en-pseudocodigoepetekaun
 
21 problemas de algoritmo resueltos
21 problemas de algoritmo resueltos21 problemas de algoritmo resueltos
21 problemas de algoritmo resueltosRoldan El Gato
 
Algoritmos+y+flujogramas
Algoritmos+y+flujogramasAlgoritmos+y+flujogramas
Algoritmos+y+flujogramasluis840
 
02 Ejercicios Resueltos diagramas de flujo
02 Ejercicios Resueltos diagramas de flujo02 Ejercicios Resueltos diagramas de flujo
02 Ejercicios Resueltos diagramas de flujoTete Alar
 
EJERCICIOS DE ALGORITMOS
EJERCICIOS DE ALGORITMOSEJERCICIOS DE ALGORITMOS
EJERCICIOS DE ALGORITMOS1002pc3
 
Ejemplos de Algoritmos
Ejemplos de AlgoritmosEjemplos de Algoritmos
Ejemplos de AlgoritmosPepe Xdsasda
 
TUTORIAL PARA REALIZAR UN PSEUDOCODIGO
TUTORIAL PARA REALIZAR UN PSEUDOCODIGOTUTORIAL PARA REALIZAR UN PSEUDOCODIGO
TUTORIAL PARA REALIZAR UN PSEUDOCODIGOAlfaBVB98
 
Programación: Pseudocódigo y algoritmo. Mcm, mcd, término Fibonacci y número ...
Programación: Pseudocódigo y algoritmo. Mcm, mcd, término Fibonacci y número ...Programación: Pseudocódigo y algoritmo. Mcm, mcd, término Fibonacci y número ...
Programación: Pseudocódigo y algoritmo. Mcm, mcd, término Fibonacci y número ...Cristian Maza
 
Introduzione alla Stesura di un Business Plan
Introduzione alla Stesura di un Business PlanIntroduzione alla Stesura di un Business Plan
Introduzione alla Stesura di un Business PlanDavide Cilano
 
Diagrama de Flujos Ejemplos.
Diagrama de Flujos Ejemplos.Diagrama de Flujos Ejemplos.
Diagrama de Flujos Ejemplos.luismarlmg
 
Γ15. Η παρέμβαση των Μεγάλων Δυνάμεων και η ναυμαχία του Ναυαρίνου
Γ15. Η παρέμβαση των Μεγάλων Δυνάμεων και η ναυμαχία του ΝαυαρίνουΓ15. Η παρέμβαση των Μεγάλων Δυνάμεων και η ναυμαχία του Ναυαρίνου
Γ15. Η παρέμβαση των Μεγάλων Δυνάμεων και η ναυμαχία του ΝαυαρίνουGeorge Giotis
 
Η Βουλή των Ελλήνων
Η Βουλή των ΕλλήνωνΗ Βουλή των Ελλήνων
Η Βουλή των Ελλήνωνalexkonta
 
DISTRIBUCION DE PROBABILIDAD
DISTRIBUCION DE PROBABILIDADDISTRIBUCION DE PROBABILIDAD
DISTRIBUCION DE PROBABILIDADdeiviuts
 
Determinacion cualitativa de la vitamina c
Determinacion cualitativa de la vitamina cDeterminacion cualitativa de la vitamina c
Determinacion cualitativa de la vitamina cJhonás A. Vega
 
Técnicas e instrumentos de recolección de datos
Técnicas e instrumentos de recolección de datosTécnicas e instrumentos de recolección de datos
Técnicas e instrumentos de recolección de datosjosep45holder
 

Andere mochten auch (20)

52 ejercicios-resueltos-en-pseudocodigo
52 ejercicios-resueltos-en-pseudocodigo52 ejercicios-resueltos-en-pseudocodigo
52 ejercicios-resueltos-en-pseudocodigo
 
21 problemas de algoritmo resueltos
21 problemas de algoritmo resueltos21 problemas de algoritmo resueltos
21 problemas de algoritmo resueltos
 
Algoritmos+y+flujogramas
Algoritmos+y+flujogramasAlgoritmos+y+flujogramas
Algoritmos+y+flujogramas
 
Algoritmos ejemplos
Algoritmos ejemplosAlgoritmos ejemplos
Algoritmos ejemplos
 
02 Ejercicios Resueltos diagramas de flujo
02 Ejercicios Resueltos diagramas de flujo02 Ejercicios Resueltos diagramas de flujo
02 Ejercicios Resueltos diagramas de flujo
 
Diagramas de flujo
Diagramas de flujoDiagramas de flujo
Diagramas de flujo
 
EJERCICIOS DE ALGORITMOS
EJERCICIOS DE ALGORITMOSEJERCICIOS DE ALGORITMOS
EJERCICIOS DE ALGORITMOS
 
Ejemplos de Algoritmos
Ejemplos de AlgoritmosEjemplos de Algoritmos
Ejemplos de Algoritmos
 
TUTORIAL PARA REALIZAR UN PSEUDOCODIGO
TUTORIAL PARA REALIZAR UN PSEUDOCODIGOTUTORIAL PARA REALIZAR UN PSEUDOCODIGO
TUTORIAL PARA REALIZAR UN PSEUDOCODIGO
 
Programación: Pseudocódigo y algoritmo. Mcm, mcd, término Fibonacci y número ...
Programación: Pseudocódigo y algoritmo. Mcm, mcd, término Fibonacci y número ...Programación: Pseudocódigo y algoritmo. Mcm, mcd, término Fibonacci y número ...
Programación: Pseudocódigo y algoritmo. Mcm, mcd, término Fibonacci y número ...
 
Pseudocodigo
PseudocodigoPseudocodigo
Pseudocodigo
 
Grammar Grabs - Imperatives
Grammar Grabs - ImperativesGrammar Grabs - Imperatives
Grammar Grabs - Imperatives
 
Bruno Latour
Bruno LatourBruno Latour
Bruno Latour
 
Introduzione alla Stesura di un Business Plan
Introduzione alla Stesura di un Business PlanIntroduzione alla Stesura di un Business Plan
Introduzione alla Stesura di un Business Plan
 
Diagrama de Flujos Ejemplos.
Diagrama de Flujos Ejemplos.Diagrama de Flujos Ejemplos.
Diagrama de Flujos Ejemplos.
 
Γ15. Η παρέμβαση των Μεγάλων Δυνάμεων και η ναυμαχία του Ναυαρίνου
Γ15. Η παρέμβαση των Μεγάλων Δυνάμεων και η ναυμαχία του ΝαυαρίνουΓ15. Η παρέμβαση των Μεγάλων Δυνάμεων και η ναυμαχία του Ναυαρίνου
Γ15. Η παρέμβαση των Μεγάλων Δυνάμεων και η ναυμαχία του Ναυαρίνου
 
Η Βουλή των Ελλήνων
Η Βουλή των ΕλλήνωνΗ Βουλή των Ελλήνων
Η Βουλή των Ελλήνων
 
DISTRIBUCION DE PROBABILIDAD
DISTRIBUCION DE PROBABILIDADDISTRIBUCION DE PROBABILIDAD
DISTRIBUCION DE PROBABILIDAD
 
Determinacion cualitativa de la vitamina c
Determinacion cualitativa de la vitamina cDeterminacion cualitativa de la vitamina c
Determinacion cualitativa de la vitamina c
 
Técnicas e instrumentos de recolección de datos
Técnicas e instrumentos de recolección de datosTécnicas e instrumentos de recolección de datos
Técnicas e instrumentos de recolección de datos
 

Ähnlich wie PSEUDOCODIGO

Programacion MatLab
Programacion MatLabProgramacion MatLab
Programacion MatLabEdgar Galvez
 
Programacion Avanzada JavaScript
Programacion Avanzada JavaScriptProgramacion Avanzada JavaScript
Programacion Avanzada JavaScripttovi27
 
Modulo de programación 10
Modulo de programación 10Modulo de programación 10
Modulo de programación 10Jose Torres
 
Introduccion matlab
Introduccion matlabIntroduccion matlab
Introduccion matlabgrupo6eda
 
Variables, expresiones y ejecución de condiciones les en PSeInt
Variables, expresiones y ejecución de condiciones les en PSeIntVariables, expresiones y ejecución de condiciones les en PSeInt
Variables, expresiones y ejecución de condiciones les en PSeIntCristian C
 
Lopez castro deicy joana
Lopez castro deicy joanaLopez castro deicy joana
Lopez castro deicy joanacomediante
 
USO DE LOS ELEMENTOS DEL LENGUAJE JAVASCRIPT
USO DE LOS ELEMENTOS DEL LENGUAJE JAVASCRIPTUSO DE LOS ELEMENTOS DEL LENGUAJE JAVASCRIPT
USO DE LOS ELEMENTOS DEL LENGUAJE JAVASCRIPTRULAZ110
 
Manual de PSeInt
Manual de PSeIntManual de PSeInt
Manual de PSeIntCristian C
 
Clase04 tutorialpseint1-091208144523-phpapp01-2
Clase04 tutorialpseint1-091208144523-phpapp01-2Clase04 tutorialpseint1-091208144523-phpapp01-2
Clase04 tutorialpseint1-091208144523-phpapp01-2Patricia Acuña
 
Principales codigos visual basic
Principales codigos visual basicPrincipales codigos visual basic
Principales codigos visual basicMarlon Gomez Solis
 

Ähnlich wie PSEUDOCODIGO (20)

Pseudo codigo
Pseudo codigoPseudo codigo
Pseudo codigo
 
Recu gabus 3° parcial
Recu gabus 3° parcialRecu gabus 3° parcial
Recu gabus 3° parcial
 
Programa pascal
Programa pascalPrograma pascal
Programa pascal
 
Programacion MatLab
Programacion MatLabProgramacion MatLab
Programacion MatLab
 
Programacion
ProgramacionProgramacion
Programacion
 
Programacion Avanzada JavaScript
Programacion Avanzada JavaScriptProgramacion Avanzada JavaScript
Programacion Avanzada JavaScript
 
Modulo de programación 10
Modulo de programación 10Modulo de programación 10
Modulo de programación 10
 
Programacion I
Programacion I Programacion I
Programacion I
 
Introduccion matlab
Introduccion matlabIntroduccion matlab
Introduccion matlab
 
Variables, expresiones y ejecución de condiciones les en PSeInt
Variables, expresiones y ejecución de condiciones les en PSeIntVariables, expresiones y ejecución de condiciones les en PSeInt
Variables, expresiones y ejecución de condiciones les en PSeInt
 
Lopez castro deicy joana
Lopez castro deicy joanaLopez castro deicy joana
Lopez castro deicy joana
 
USO DE LOS ELEMENTOS DEL LENGUAJE JAVASCRIPT
USO DE LOS ELEMENTOS DEL LENGUAJE JAVASCRIPTUSO DE LOS ELEMENTOS DEL LENGUAJE JAVASCRIPT
USO DE LOS ELEMENTOS DEL LENGUAJE JAVASCRIPT
 
Manual de PSeInt
Manual de PSeIntManual de PSeInt
Manual de PSeInt
 
Clase04 tutorial p-seint
Clase04 tutorial p-seintClase04 tutorial p-seint
Clase04 tutorial p-seint
 
Tutoral de PseInt
Tutoral de PseIntTutoral de PseInt
Tutoral de PseInt
 
Clase 02
Clase 02Clase 02
Clase 02
 
Clase04 tutorialpseint1-091208144523-phpapp01-2
Clase04 tutorialpseint1-091208144523-phpapp01-2Clase04 tutorialpseint1-091208144523-phpapp01-2
Clase04 tutorialpseint1-091208144523-phpapp01-2
 
Pseint
PseintPseint
Pseint
 
Principales codigos visual basic
Principales codigos visual basicPrincipales codigos visual basic
Principales codigos visual basic
 
Pseudocodigo
PseudocodigoPseudocodigo
Pseudocodigo
 

Mehr von manuel escobar

Mehr von manuel escobar (7)

Riesgos de los juegos en Linea
Riesgos de los juegos en LineaRiesgos de los juegos en Linea
Riesgos de los juegos en Linea
 
JUEGOS ONLINE
JUEGOS ONLINEJUEGOS ONLINE
JUEGOS ONLINE
 
JUEGOS EN LINEA
JUEGOS EN LINEAJUEGOS EN LINEA
JUEGOS EN LINEA
 
Esta es una prueba
Esta es una pruebaEsta es una prueba
Esta es una prueba
 
segunda prueba
segunda pruebasegunda prueba
segunda prueba
 
Esta es una prueba
Esta es una pruebaEsta es una prueba
Esta es una prueba
 
Esta es una prueba/
Esta es una prueba/Esta es una prueba/
Esta es una prueba/
 

Kürzlich hochgeladen

VIDEOS DE APOYO.docx E
VIDEOS DE APOYO.docx                                  EVIDEOS DE APOYO.docx                                  E
VIDEOS DE APOYO.docx Emialexsolar
 
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdf
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdfInmersión global en ciberseguridad e IA en la conferencia RSA.pdf
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdfOBr.global
 
Actividad 14_ Diseño de Algoritmos Paralelos.pdf
Actividad 14_ Diseño de Algoritmos Paralelos.pdfActividad 14_ Diseño de Algoritmos Paralelos.pdf
Actividad 14_ Diseño de Algoritmos Paralelos.pdfalejandrogomezescoto
 
Hazte partner: Club Festibity 2024 - 2025
Hazte partner: Club Festibity 2024 - 2025Hazte partner: Club Festibity 2024 - 2025
Hazte partner: Club Festibity 2024 - 2025Festibity
 
El diseño de Algoritmos Paralelos.pdf - analisis de algortimos
El diseño de Algoritmos Paralelos.pdf - analisis de algortimosEl diseño de Algoritmos Paralelos.pdf - analisis de algortimos
El diseño de Algoritmos Paralelos.pdf - analisis de algortimosLCristinaForchue
 
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdfPresentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdfymiranda2
 
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...RaymondCode
 
Matriz de integración de tecnologías- Paola Carvajal.docx
Matriz de integración de tecnologías- Paola Carvajal.docxMatriz de integración de tecnologías- Paola Carvajal.docx
Matriz de integración de tecnologías- Paola Carvajal.docxPaolaCarolinaCarvaja
 
Inteligencia artificial dentro de la contabilidad
Inteligencia artificial dentro de la contabilidadInteligencia artificial dentro de la contabilidad
Inteligencia artificial dentro de la contabilidaddanik1023m
 
Los mejores simuladores de circuitos electrónicos.pdf
Los mejores simuladores de circuitos electrónicos.pdfLos mejores simuladores de circuitos electrónicos.pdf
Los mejores simuladores de circuitos electrónicos.pdfodalistar77
 
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdfTENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdfJoseAlejandroPerezBa
 
De Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NETDe Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NETGermán Küber
 

Kürzlich hochgeladen (14)

VIDEOS DE APOYO.docx E
VIDEOS DE APOYO.docx                                  EVIDEOS DE APOYO.docx                                  E
VIDEOS DE APOYO.docx E
 
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdf
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdfInmersión global en ciberseguridad e IA en la conferencia RSA.pdf
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdf
 
Actividad 14_ Diseño de Algoritmos Paralelos.pdf
Actividad 14_ Diseño de Algoritmos Paralelos.pdfActividad 14_ Diseño de Algoritmos Paralelos.pdf
Actividad 14_ Diseño de Algoritmos Paralelos.pdf
 
Hazte partner: Club Festibity 2024 - 2025
Hazte partner: Club Festibity 2024 - 2025Hazte partner: Club Festibity 2024 - 2025
Hazte partner: Club Festibity 2024 - 2025
 
El diseño de Algoritmos Paralelos.pdf - analisis de algortimos
El diseño de Algoritmos Paralelos.pdf - analisis de algortimosEl diseño de Algoritmos Paralelos.pdf - analisis de algortimos
El diseño de Algoritmos Paralelos.pdf - analisis de algortimos
 
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdfPresentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
 
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
 
BEDEC Proyecto y obra , novedades 2024 - Xavier Folch
BEDEC Proyecto y obra , novedades 2024 - Xavier FolchBEDEC Proyecto y obra , novedades 2024 - Xavier Folch
BEDEC Proyecto y obra , novedades 2024 - Xavier Folch
 
Matriz de integración de tecnologías- Paola Carvajal.docx
Matriz de integración de tecnologías- Paola Carvajal.docxMatriz de integración de tecnologías- Paola Carvajal.docx
Matriz de integración de tecnologías- Paola Carvajal.docx
 
BEDEC Sostenibilidad, novedades 2024 - Laura Silva
BEDEC Sostenibilidad, novedades 2024 - Laura SilvaBEDEC Sostenibilidad, novedades 2024 - Laura Silva
BEDEC Sostenibilidad, novedades 2024 - Laura Silva
 
Inteligencia artificial dentro de la contabilidad
Inteligencia artificial dentro de la contabilidadInteligencia artificial dentro de la contabilidad
Inteligencia artificial dentro de la contabilidad
 
Los mejores simuladores de circuitos electrónicos.pdf
Los mejores simuladores de circuitos electrónicos.pdfLos mejores simuladores de circuitos electrónicos.pdf
Los mejores simuladores de circuitos electrónicos.pdf
 
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdfTENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
 
De Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NETDe Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NET
 

PSEUDOCODIGO

  • 1. ALGORITMOS, PSEUDOCÓDIGO Y DIAGRAMAS DE FLUJO ULTIMA REVISIÓN: 21-SEP-2001 Convenio de sintaxis <elemento> Elementos entre signos de menor que y mayor que (<, >) representan identificadores, expresiones y objetos sobre los que se aplican operaciones. (Su valor se reemplaza sin considerar los signos de mayor que y menor que). Palabras clave Elementos con este tipo de letra son considerados palabras clave en los Diagramas de Flujo. Estas constituyen una parte requerida de la sintaxis de una instrucción, a menos que estén entre corchetes. palabras clave Elementos con este tipo de letra son considerados palabras clave en pseudocódigo. Estas constituyen una parte requerida de la sintaxis de una instrucción, a menos que estén entre corchetes. [, <elemento>] Los elementos entre corchetes son optativos. ... Puntos suspensivos indican que se puede utilizar mas veces el mismo tipo de elementos que se encuentran antes de ellos. FIGURA DE DIAGRAMA DE FLUJO PALABRA EQUIVALENTE EN PSEUDOCODIGO Inicio inicio . . otras instrucciones otras instrucciones . . fin Fin A) TERMINALES Los TERMINALES indican el inicio y fin de un algoritmo. Se colocan siempre como la primera figura o instrucción (donde comienza el algoritmo) y como la última figura o instrucción (donde termina el algoritmo). otras instrucciones pueden ser cualesquiera otras figuras y/o instrucciones menos los que representan a TERMINALES. Nota: Observe que en pseudocódigo, otras instrucciones se encuentra ligeramente desplazado hacia la derecha; esto significa que las instrucciones delimitadas por inicio y fin deben colocarse de forma sangrada para hacer mas entendible el pseudocódigo. ALGORITMOS, PSEUDOCÓDIGO Y DIAGRAMAS DE FLUJO UMSS 1/17 INF-SIS
  • 2. <expresion1>[, <expresion2>] ... [, mostrar <expresion1>[, <expresion2>] ... <expresionn>] [, <expresionn>] B) IMPRIMIR Se utiliza cuando se desea mostrar el resultado de cualquier expresión. <expresionn> es cualquier texto (delimitado entre comillas), expresión matemática o lógica que es evaluada previamente antes de mostrarse o la palabra reservada eol (End Of Line - Fin de Línea) que se utiliza para expresar que el resultado de la expresión que continua se colocará al comienzo de la siguiente línea. Note que se pueden colocar varias expresiones separadas por comas. Nota: En pseudocódigo: si todas las expresiones que se desean mostrar no caven hasta el margen de la hoja, se continúan escribiendo a la misma altura donde se comenzaron a enumerar las expresiones anteriores, para así evitar confusión con otras instrucciones. <operacion1>[, <operacion1>[, <operacion2>] <operacion2>] ... [, ... [, <operacionn>] <operacionn>] C) PROCESO Se utiliza cuando se desea realizar alguna operación o cálculo. En diagramas de flujo, se pueden colocar varias instrucciones, pero en diferentes filas (No recomendable con instrucciones de distinta naturaleza). Para realizar operaciones de asignación se utiliza la siguiente sintaxis: variable ß expresion donde: expresion es una expresión (matemática, lógica o de texto (delimitado entre comillas) ) que, DESPUÉS DE SER EVALUADA, se desea almacenar en una variable. variable es el nombre de la variable en la cual se almacena el resultado de expresion. ALGORITMOS, PSEUDOCÓDIGO Y DIAGRAMAS DE FLUJO UMSS 2/17 INF-SIS
  • 3. <var1>[, <var2>] ...[, <varn>] leer <var1>[, <var2>] ... [, <varn>] D) LECTURA DE DATOS Se utiliza para obtener valores que son ingresados por el usuario desde un dispositivo de Entrada (ejemplo: teclado). <varn> es el nombre de una variable que almacena un valor leído. Note que puede leer varias variables con una sola instrucción utilizando comas (,) para separarlas. si <expresion logica> entonces . instrucciones en caso <expresion de que <expresion logica> no si logica> sea verdadera . . . instrucciones en caso instrucciones en caso [ sino de que <expresion de que <expresion logica> sea falsa logica> sea verdadera . . . instrucciones en caso de que <expresion logica> sea falsa .] finSi E) DECISIÓN Se utiliza cuando se desea tomar una decisión. En el caso de los diagramas de flujo, el curso del algoritmo sigue por la flecha que tiene la respuesta a la expresión lógica. En pseudocódigo, se ejecuta el bloque instrucciones en caso de que <expresion logica> sea verdadera si la respuesta a <expresión logica> es verdadera, o el bloque instrucciones en caso de que <expresion logica>sea falsa en caso contrario. Note que la palabra reservada sino y el bloque de instrucciones que la acompañan son opcionales. Es decir que si no existen instrucciones para realizar en caso de que <expresión lógica> sea falsa, entonces no se coloca ninguna instrucción. En pseudocódigo, finSi es el equivalente de la unión de los dos recorridos en un diagrama de flujo. <expresion logica> es una pregunta que puede ser respondida con Sí (V) o No(F). Instrucciones en caso de que <expresion logica> sea verdadera e Instrucciones en caso de que <expresion logica>sea falsa son cualesquiera otras instrucciones menos las que representan a terminales. ALGORITMOS, PSEUDOCÓDIGO Y DIAGRAMAS DE FLUJO UMSS 3/17 INF-SIS
  • 4. <var> <- <vIni> .. <vFin>, <inc> para <var> ß <vIni> .. <vFin>, <inc> . . Instrucciones Instrucciones . . finPara <var> F) BUCLE CON CANTIDAD DE REPETICIONES DEFINIDA Se utiliza para repetir el bloque Instrucciones una cantidad determinada de veces. El ciclo se repite mientras el valor de <var> esté entre el intervalo [<vIni>, <vFin>]. <var> es el nombre de una variable contador, que es inicializada con el valor expresado en <vIni>. En cada repetición del ciclo se incrementa el valor de <var> con el valor expresado en <inc>. Instrucciones son cualesquiera otras instrucciones excepto las que representan terminales. <expresion no logica> mientras <expresion logica> . si Instrucciones . . Instrucciones finMientras . G) BUCLE CON CANTIDAD DE REPTICIONES NO DEFINIDA Y EVALUACIÓN PRE-EJECUCIÓN Se utiliza cuando se desea repetir un conjunto de instrucciones mientras el resultado de evaluar <expresion logica> sea verdad. Instrucciones son cualesquiera otras instrucciones excepto las que representan terminales. En este tipo de estructura Instrucciones puede ejecutarse 0 o más veces dependiendo del resultado de <expresion logica> ALGORITMOS, PSEUDOCÓDIGO Y DIAGRAMAS DE FLUJO UMSS 4/17 INF-SIS
  • 5. . Instrucciones hacer si . . Instrucciones . finHacerMientras (<expresion logica>) <expresion logica> no H) BUCLE CON CANTIDAD DE REPTICIONES NO DEFINIDA Y EVALUACIÓN POST-EJECUCIÓN (HACER – MIENTRAS) Se utiliza cuando se desea repetir un conjunto de instrucciones mientras el resultado de <expresion logica> sea verdad. Instrucciones son cualesquiera otras instrucciones normalizadas en este anexo, excepto las que representan terminales. Note que en esta estructura Instrucciones se ejecuta por lo menos una vez, dependiendo la siguiente repetición de Instrucciones del resultado de <expresión lógica>. . Instrucciones hacer no . . Instrucciones . <expresion finHacerHasta (<expresion logica>) logica> si I) BUCLE CON CANTIDAD DE REPTICIONES NO DEFINIDA Y EVALUACIÓN POST-EJECUCIÓN (HACER - HASTA) Se utiliza cuando se desea repetir un conjunto de instrucciones hasta que el resultado de <expresion logica> sea verdad. Instrucciones son cualesquiera otras instrucciones normalizadas en este anexo, excepto las que representan terminales. Note que en esta estructura Instrucciones se ejecuta por lo menos una vez, dependiendo la siguiente repetición de Instrucciones del resultado de <expresión lógica>. ALGORITMOS, PSEUDOCÓDIGO Y DIAGRAMAS DE FLUJO UMSS 5/17 INF-SIS
  • 6. En caso de <variable> = c1: Instrucciones en caso de que variable sea c1 = c2: Instrucciones en caso de que variable sea c2 <variable> ... por c1 c2 ... cN Defecto = cN: Instrucciones en caso de que variable sea cN por Defecto: Instrucciones en cualquier otro caso finEnCasoDe J) DECISIÓN MÚLTIPLE O POR CASOS Se utiliza cuando el valor de una variable tiene varios valores conocidos y en cuyos casos se procede de una u otra forma. Su semántica es la siguiente: Si <variable> toma el valor de alguna de las constantes c1, c2, ... cN, ejecuta las instrucciones que corresponden (Instrucciones caso de que variable sea cN). Si <variable> no toma ninguno de los valores entonces ejecuta las instrucciones que se indica en por Defecto. Cualquier comentario { Cualquier comentario } K) COMENTARIO Los comentarios se usan para aclarar cualquier acción que se realiza. En Diagramas de Flujo, pueden partir de cualquier figura y no afectan de ninguna forma a la secuencia de pasos definida por los conectores (flechas). En pseudocódigo se representa encerrando el comentario entre llaves. Los comentarios deben ir en cualquier posición que se considere que aclarará al pseudocódigo, pero no en el interior de una instrucción. Destino Origen No es posible representarlo en Pseudocódigo Destino = Origen L) CONECTORES Se utilizan cuando se tiene una flecha que conecta dos puntos y estos son muy distantes (diagramas de flujo). Tanto Destino como Origen son la misma figura, que por lo general es una letra mayúscula o una letra griega. No es posible representar conectores en pseudocódigo. ALGORITMOS, PSEUDOCÓDIGO Y DIAGRAMAS DE FLUJO UMSS 6/17 INF-SIS
  • 7. pagina No es posible representarlo en Pseudocódigo pagina M) CONECTORES DE FIN DE PÁGINA. Se utilizan cuando el algoritmo ocupa varias páginas. Para pseudocódigo no es posible utilzar esto. En pseudocódigo el código se lee de arriba abajo sin importar cuantas hojas utilice. ALGORITMOS, PSEUDOCÓDIGO Y DIAGRAMAS DE FLUJO UMSS 7/17 INF-SIS
  • 8. EXPERIMENTOS INSTRUCCIONES: Cuando esté realizando un experimento identifíquese en la situación de ser usted una computadora... es decir, que hace sólo lo que se le ordena. Ejecute los experimentos en su Unidad Central de Proceso (su cerebro)... claro, con la ayuda de una hoja de papel (memoria). Estudie qué es lo que hacen los algoritmos y tome nota de sus conclusiones. Responda a las preguntas que se le planteen. 1. a) Realice pruebas de escritorio para los siguientes algoritmos y analícelos. b) Trate de encontrar relaciones entre los valores de entrada y los valores de salida. c) Resuma en una frase, para qué sirve cada algoritmo. d) Dibuje diagramas de flujo para cada algoritmo. e) Escriba la versión en pseudocódigo de cada algoritmo. ALGORITMO #1 1. Inicio 2. Obtener 2 números enteros a y b. 3. Inicializar un acumulador en 0. 4. Si b es 0 entonces mostrar el acumulador e ir a 9. 5. Si b es impar entonces acumular a. 6. Dividir b entre 2. {División entera } 7. Multiplicar a por 2. 8. Volver a 3. 9. Fin ALGORITMO #2 1. Inicio 2. Obtener un número entero positivo N. 3. Inicializar una variable M en 0. 4. Inicializar una variable contador en 0. 5. Obtener un número entero positivo x. 6. Si x es mayor que M entonces almacenar x en M. 7. Incrementar contador en 1. 8. Si contador es diferente de N entonces volver a 5. 9. Mostrar el valor de M. 10. Fin. ALGORITMO #3 1. Inicio. 2. Obtener un número entero positivo N. 3. Inicializar una variable nuevo en 0. 4. Multiplicar nuevo por 10. 5. Añadir a nuevo el residuo de dividir N entre 10. 6. Dividir N entre 10. { división entera } 7. Si N es mayor que 0 volver a 4. 8. Mostrar el valor de nuevo. 9. Fin. ALGORITMOS, PSEUDOCÓDIGO Y DIAGRAMAS DE FLUJO UMSS 8/17 INF-SIS
  • 9. 2. ¿Cuáles son los resultados visualizados por el siguiente programa en pseudocódigo, si los datos proporcionados son 12 y 9? inicio mß6 leer a, b c ß 2*a-b c ß c-m b ß a + c-m mostrar a b ß b-1 mostrar a, b, eol fin 3. Indique que hace el siguiente algoritmo y compárelo con el de la otra columna. ¿Son equivalentes? ¿por qué? ¿qué les falta? ¿qué les sobra? inicio contador ß 1 suma ß 0 inicio para contador ß 1 .. 100, +1 mientras contador ≤ 100 suma ß suma + contador suma ß suma + contador finPara contador ß contador + 1 finMientras mostrar suma fin mostrar suma fin Haga diagramas de flujo para las dos versiones corregidas de este algoritmo. 4. ¿Qué valores tomará la variable R en el siguiente algoritmo? inicio aß2 bß4 d ß 5.5 f ß "Pancho" g ß "Pancha" h ß 'A' j ß 'a' m ß verdad n ß falso R ß (a > b) ∧ (d > 3.4) R ß ∼(a ≠ b) ∨ (f ≠ g) ∧ m mostrar R, fin_linea Rßm∨n mostrar R, fin_linea ALGORITMOS, PSEUDOCÓDIGO Y DIAGRAMAS DE FLUJO UMSS 9/17 INF-SIS
  • 10. R ß (f > g) ∧ ∼ (a+2 = b) ∧ (h ≠ j) mostrar R, fin_linea fin 5. ¿Qué es lo que hace el siguiente programa? Inicio suma 0 i 0 i > 100 si suma no suma suma + (2*i +1) Fin i i+1 Escriba una versión de este algoritmo en pseudocódigo. 6. Indique qué valor almacena la variable contador al finalizar el algoritmo. Inicio numero INT (x) es una función que devuelve la parte numero INT(numero) entera de un número x no numero=0 si contador 0 contador 1 numero=0 si contador no numero numero div 10 Fin contador contador +1 - Represente el anterior algoritmo con un pseudocódigo. ALGORITMOS, PSEUDOCÓDIGO Y DIAGRAMAS DE FLUJO UMSS 10/17 INF-SIS
  • 11. 7. Muestre el resultado impreso del siguiente programa. inicio iß1 aß2 mientras a=a para j ß 1.. i, +1 mostrar j, "_" finPara mostrar fin_linea i ß i +1 finMientras fin 8. Indique para que sirve el siguiente algoritmo y luego represéntelo en pseudocódigo. Inicio num num INT(num) sumaP 0 sumaI 0 num > 0 no sumaP = sumaI no si si d num mod 10 "si" "no" no d mod 2 = 0 si Fin sumaP sumaP + d sumaI sumaI + d num num div 10 ALGORITMOS, PSEUDOCÓDIGO Y DIAGRAMAS DE FLUJO UMSS 11/17 INF-SIS
  • 12. 9. Lleve el siguiente algoritmo a su versión en pseudocódigo e indique qué es lo que hace. Inicio a, b a=INT(a) ^ no "Error" b=INT(b) si sumaA 0 sumaB 0 α i 1 .. a, +1 a mod i = 0 si no sumaA sumaA+i i i 1 .. b, +1 b mod i = 0 si no sumaB sumaB+i i sumaA=b si ^ no sumaB=a "si" "no" α Fin ALGORITMOS, PSEUDOCÓDIGO Y DIAGRAMAS DE FLUJO UMSS 12/17 INF-SIS
  • 13. EJERCICIOS 1. Diseñe una solución para resolver los siguientes problemas y trate de refinar sus soluciones mediante algoritmos adecuados. a) Hacer una llamada telefónica desde un teléfono público. b) Freír un huevo. c) Resolver un examen dado. d) Prestarse un libro de una biblioteca. e) Buscar una palabra determinada en un diccionario. f) Determinar si un punto pertenece a una circunferencia con centro en el origen y radio 4. g) Determinar si un número es primo o no. h) Dado un laberinto, salir de él. i) Calcular el tiempo transcurrido entre dos horas dadas en formato hh:mm de un mismo día. j) Calcular la suma de los 30 primeros números primos. k) Calcular el factorial de un número. l) Averiguar si una palabra es un palíndromo. Un palíndromo es una palabra que se lee de igual manera en sentido directo y en sentido inverso; por ejemplo: "radar". 2. Escriba un algoritmo que represente el método aprendido en la escuela primaria para: a) Sumar dos números enteros. b) Restar dos números enteros. c) Multiplicar dos números. d) Dividir un número entero. e) Multiplicar dos números enteros por el método de las sumas sucesivas. Nota: Para todos los casos supóngase que se conocen las operaciones de suma, resta, multiplicación y división, pero únicamente para números de una sola cifra. 3. Escriba un programa que obtenga tres números, los almacene en variables y luego calcule y muestre un reporte sobre su suma y su promedio. ax + by = c 4. Escriba un programa para resolver un sistema de ecuaciones como este: . dx + ey = f 5. Dados los coeficientes de una ecuación de segundo grado, calcular las raíces de la ecuación considerando todos los casos posibles. Recuerde que una computadora no conoce los números imaginarios así que deberá encontrar alguna forma de representarlos claramente. 6. Realice un diagrama de flujo y pseudocódigo para los siguientes enunciados: a) Dado un número entero, indique si este es par o no. b) Dados dos números reales. Indique cuál es el mayor. c) Desde un dispositivo de E/S se leen tres números. Indique cuál es el menor. d) Se obtienen 4 números de la recta real. Indique cuál es el mayor y cuál el menor. e) Desde un dispositivo de E/S se leen tres números. Indique cual de ellos es la suma de los otros dos. 7. ¿Qué es lo que debería mostrar el programa representado en el siguiente diagrama de flujo? - Complete las figuras con lo que les falte. ALGORITMOS, PSEUDOCÓDIGO Y DIAGRAMAS DE FLUJO UMSS 13/17 INF-SIS
  • 14. - ¿Qué es lo que hace el programa? - ¿Es un buen algoritmo? ¿Por qué? Inicio a, b x a>b si x = (b>a) no Fin 8. Un año es bisiesto si es múltiplo de 4, pero no de 100, pero sí de 400. (Ejemplos: 1984 es bisiesto, 2000 es bisiesto, 1800 no es bisiesto). Determine un algoritmo que permita determinar si un año introducido desde el teclado es bisiesto o no. 9. Realice un programa para obtener la suma de los n primeros números primos. 10. Realice un programa para encontrar los 100 primeros números perfectos. Un número es perfecto cuando la suma de sus divisores (sin contar el mismo número) es igual al mismo número. Por ejemplo: 6 = 1+2+3. 11. Realiza un procedimiento para calcular el factorial de un número que debe estar comprendido entre 5 y 62. 12. Leer dos números positivos a y b e imprimir los a primeros números primos si a < b. En caso contrario 1 1 1 1 imprimir el resultado de la serie: + + + ... + . a 2a 3a ba 13. Dada una secuencia de números naturales, calcular cuál es el segundo mayor, el tercer menor y el promedio de todos. La secuencia se lee desde un dispositivo de E/S y finaliza cuando se ingresa un número que no cumple con las restricciones. 14. Realice un diagrama de flujo que indique el procedimiento para hallar el máximo común divisor de dos números enteros (MCD) por el algoritmo de Euclides. ALGORITMOS, PSEUDOCÓDIGO Y DIAGRAMAS DE FLUJO UMSS 14/17 INF-SIS
  • 15. 1 1 1 15. Efectuar el cálculo de la siguiente serie de números: 1 + + + ... + ; con 3 < n < 20 . 2 3 n 16. Realice un programa que, de las siguientes series: - Muestre la serie infinitamente - Muestre los primeros n términos de la serie - Muestre el n-esimo término de la serie a) -1 1 -1 1 -1 1 -1 1 ... b) 1 2 3 4 3 8 6 8 12 18 96 ... c) 1 2 3 0 5 -2 7 -4 1 2 -5 ... d) 1 3 2 -1 -3 -2 1 3 2 ... e) 2 3 5 7 16 73 ... f) 1234 14 1248 34 1282 18 1300 ... g) 1 2 3 3 -1 6 4 5 2 ... h) 1 0 1 1 0 1 1 1 0 1 1 1 1 1 1 0 ... 17. Obtener el primer número de la serie de FIBONACCI que sea mayor que n. Sabiendo que la secuencia de la serie es la siguiente: 0, 1, 1, 2, 3, 5, 8, 13, 21, ... 18. Visualice las siguientes series de números: a) 1 b) 1 c) 1 2 3 1 2 2 4 3 4 5 1 2 3 3 6 9 4 5 6 7 1 2 3 6 4 8 12 16 ... ... ... n 1 2 3 6 ... n .... n*n d) * e) 1 *** 3 5 ***** 7 9 11 ******* 13 15 17 19 * ... (2n-1) ... * ... *** ... n *** *** 19. Dos números a y b enteros positivos son amigos si y solo si la suma de los divisores de a es igual al número b, y la suma de los divisores de b es igual al número a. Realice un programa para verificar que dos números son amigos o no. 20. Realiza un programa que lea un entero n y un dígito d. Si d aparece en n se debe desplegar un carácter * en la posición en la que se encuentra d. Por ejemplo: si n=123668 y d=6. Se desplegaría 123**8. 21. Dado un número entero con un número par de dígitos, escribir un programa que muestre el número con cada par de dígitos intercambiado. Por ejemplo: si N=654321 se debe mostrar 563412 22. Trabajando con números se encontró que 12 × 12 = 144 y que 21 × 21 = 441, así también, 13 × 13 = 169 y 31 × 31 = 961. Escribe un programa que despliegue en pantalla todos los números de dos dígitos que tienen ALGORITMOS, PSEUDOCÓDIGO Y DIAGRAMAS DE FLUJO UMSS 15/17 INF-SIS
  • 16. una característica similar a la del número 12 y 13. Limita tu programa a valores cuyos cuadrados sean números de 3 dígitos como máximo. 23. Un número es un capicúa si su valor es el mismo tanto si es leído de izquierda a derecha como de derecha a izquierda. Por ejemplo: 35253 es un capicúa. 26547 no es un capicúa. Diseña un algoritmo que determine si un número introducido es un capicúa o no. 24. Obtener el número en sistema binario que corresponda a un número en sistema decimal introducido desde un dispositivo de E/S. 25. Realice el problema inverso del problema anterior. PROBLEMAS Y EJERCICIOS DE COMPRESIÓN 1. La fecha del domingo de Pascua corresponde al primer domingo después de la primera luna llena que sigue al equinoccio de primavera. Los cálculos que permiten conocer esta fecha son: A=anno mod 19, B=anno mod 4, C=anno mod 7, D=(19×A+24) mod 30, E=(2×B+4×C+6×D+5) mod 7, N=(22+D+E), donde N indica el número del día del mes de marzo (o abril si N es superior a 31) correspondiente al domingo de Pascua. Realizar un diagrama de flujo y pseudocódigo que determine esta fecha para todos los años comprendidos entre 2000 y 2010. 2. Una secretaria olvida por descuido la combinación de una caja fuerte, pero recuerda que cuando cambió la clave por última vez no utilizó para nada los dígitos de la anterior clave que era abc, donde a, b y c son dígitos (0-9). En el peor de los casos, ¿cuántas posibles combinaciones tendría que probar la secretaria antes de abrir la caja fuerte?. 3. Al nacer un niño su madre le abre una caja de ahorros y le deposita todos los años Bs. 50 el primero de enero. Al dinero que ingresa se le añaden los intereses del 13.5% anual sobre la cantidad que en el momento tenga ahorrada. Después de 18 años el joven retira sus ahorros. ¿Cuánto dinero le dan? (Suponga que la fecha de nacimiento del niño fue el 31 de diciembre). 4. Efectuar el cálculo de la siguiente serie de números: (2t )1 + (2t )2 − (2t )3 + ... ± (2t )i . Detenga el cálculo 1 × 1! 2 × 2! 3 × 3! i × i! de la serie cuando el añadir un término (en valor absoluto) a la serie le haga variar menos de un valor épsilon que es introducido desde el teclado. Indique cuántos términos fueron necesarios para realizar el cálculo. 5. La función random() devuelve un número pseudo-aleatorio x, donde 0 ≤ x < 1 y con una distribución aproximadamente uniforme. Una partícula se mueve en un reloj de manecillas y puede tomar una de cuatro posiciones: las 12, las 3, las 6 o las 9. Su movimiento es aleatorio y puede ser en sentido horario o en sentido antihorario. Si cada movimiento es como máximo hasta la siguiente posición a su derecha o a su izquierda, calcule cuantas veces caerá sobre cada posición después de n saltos. La probabilidad de ir a la izquierda o a la derecha es la misma. ALGORITMOS, PSEUDOCÓDIGO Y DIAGRAMAS DE FLUJO UMSS 16/17 INF-SIS
  • 17. 6. Existe un juego que se llama PING-PONG, que es jugado por un grupo de personas que están en círculo; el cual consiste básicamente en generar una secuencia de números desde 1 a n con ciertas restricciones. Una de las personas del círculo inicia el juego diciendo 1, y el resto de las personas en orden van diciendo los números correlativos correspondientes, con la condición de que a cada persona que le toque decir un número múltiplo de X, en vez de decir el número dice "ping" y cada vez que le toque decir un múltiplo de Y dice "pong". Escriba un pseudocódigo que muestre la secuencia correcta de los n números del juego, con las condiciones antes mencionadas. Tome en cuenta que si existe alguna ocurrencia que es múltiplo de X y Y a la vez, entonces se debería decir "ping-pong". Por otro lado n, al igual que X y Y son leídos por teclado. 7. Se tiene 3 jugadores que deben adivinar un número entero generado por la computadora en forma aleatoria (entre 1 y 100). Los jugadores rotan tratando de adivinar el número. Gana el jugador que adivina primero. Cuando el jugador da el número: si su distancia al número que se desea adivinar está en los rangos presentados a continuación, la computadora mostrará los siguientes mensajes. [ 1 ... 10) à Te quemas [ 10 ... 20) à Caliente [ 20 ... 30) à Tibio [ 30 ... ∞) à Frío 8. Una compañía aseguradora tiene promotores de ventas para sus seguros. La compañía ofrece tres tipos de seguros cuyos precios son negociables: el tipo I que vale entre 6 y 7.5 $, el tipo II que vale entre 10.5 y 12 $, el tipo III que vale entre 15 y 17 $. Si un promotor vende un seguro del tipo I recibe como comisión el 20% del valor al que vendió el seguro; si vende un seguro del tipo II recibe el 25% y si vende un seguro del tipo III recibe el 30%. Además de sus comisiones por ventas, el mejor vendedor (el que consigue vender más, es decir: el que tiene más dinero en comisión acumulada) recibe un bono del 20% del total de sus comisiones. Hacer un programa en pseudocódigo que muestre quien es el vendedor que tiene más comisión acumulada, si sabemos que los vendedores llegan a fin de mes para realizar su rendición de cuentas e ingresan los datos secuencialmente según el orden de llegada. Nota: Este ejercicio se debe resolver sin utilizar arreglos. Este documento fue actualizado por última vez el 21 de septiembre de 2001. Visite el sitio web: www.cs.umss.edu.bo/inf135/ para obtener una versión actualizada de este documento. © 2000 - 2001 Departamento de Informática y Sistemas – Universidad Mayor de San Simón Cochabamba - Bolivia ALGORITMOS, PSEUDOCÓDIGO Y DIAGRAMAS DE FLUJO UMSS 17/17 INF-SIS