Ejercicios Varios en Pseudocódigo (Resueltos y no resueltos)

1.      Ingresar 2 números distintos de cero e indicar cual es divisor de cual.

 

ALGORITMO Divisor

ESCRIBIR ('Ingrese dos números distintos de cero: ')

LEER (NumUno, NumDos)

SI (NumUno > NumDos) ENTONCES

   SI ((NumUno MOD NumDos) = 0) ENTONCES

         ESCRIBIR('El número: ', NumDos)

         ESCRIBIR('...es divisor de: ', NumUno)

   FIN SI

FIN SI

 

SI (NumUno < NumDos) ENTONCES

   SI ((NumDos MOD NumUno) = 0) ENTONCES

         ESCRIBIR('El número: ',NumUno)

         ESCRIBIR('...es divisor de: ',NumDos)

   FIN SI

FIN SI

 

SI (NumUno = NumDos) ENTONCES

ESCRIBIR('Los números son iguales.')

FIN SI

FIN ALGORITMO

                     

2.      Dada una velocidad indicada en metros por segundo convertir la misma a kilómetros por hora.

3.      Ingresar un número, redondearlo e indicar si es par o impar.

4.      Dadas las medidas de los lados de un triángulo indicar que tipo de triángulo es (equilátero,  Escaleno o Isoceles).  

5.      Ingresar 3 números por teclado e imprimirlos en forma ordenada.

                  ALGORITMO Orden

ESCRIBIR('Ingrese tres números: ')

LEER(A, B, C)

ESCRIBIR('Los números ordenados son: ')

SI (A<B) Y (B<C) ENTONCES ESCRIBIR(A, B, C)

SI (A<B) Y (C<B) ENTONCES ESCRIBIR(A, C, B)

SI (B<A) Y (A<C) ENTONCES ESCRIBIR(B, A, C)

SI (B<C) Y (C<A) ENTONCES ESCRIBIR(B, C, A)

SI (C<A) Y (A<B) ENTONCES ESCRIBIR(C, A, B)

SI (C<B) Y (B<A) ENTONCES ESCRIBIR(C, B, A)

FIN ALGORITMO

 

6.      Efectuar un algoritmo que permita obtener el valor de la función 4x3 para un rango de valores ingresado.

         ALGORITMO Tabla

      Escribir('Indique el rango (Xi..Xf): ')

      Leer(Xi,Xf)

      Escribir('X:','Y:')

      Para X=Xi Hasta Xf Hacer

            Y=4*X*X*X

            Escribir(X,Y)

      Fin Para

FIN ALGORITMO

     

7.      Efectuar un algoritmo que permita calcular el n-ésimo término de la Serie de Fibonacci de orden 2. Para pensar: ¿Qué problema se nos presenta para efectuar un Algoritmo que resuelva el Fibonacci genérico de orden N?

 

Introducción Matemática

             ·        Serie de Fibonnaci de orden N

 

 

 

·        Serie de Fibonnaci de Orden 2

 

 

Análisis del Problema

 

               Antes de pasar a la edición del código, se debe efectúar un análisis que, si bien muchas veces, por ser un problema sencillo o muy conocido, se efectúa en forma mental otras tantas no resulta para nada obvio y es imprescindible efectuarlo en detalle.

 

               Este caso, para muchos ha de pertenecer a la segunda opción, por lo que procederemos a efectuar el análisis correspondiente:

 

               Una de las formas de analizar estos problemas es hacer manualmente lo que debería hacer la máquina, para obtener así, el algoritmo ha codificar; entonces tratemos de hallar el término n-ésimo de la serie:

 

Por ej.

 

Fácil ¿No?, ¿Qué relación encontraron? Ninguna útil verdad, bueno, tratemos el problema por otro lado:

 

En lugar de ir hacia atrás en la serie, tratemos de contruir ésta desde sus raíces:

 

1

1

2

3

5

8

 

 

¿Encontraron la relación?

Cada térmimo de Fibonacci, como bien lo indica la definición matemática (y que quizás no se la ve a simple vista), es la suma de sus dos términos anteriores.

 

¿Qué significado puede tener esto?

Significa que necesitaremos hacer un algoritmo que continuamente almacene los dos términos anteriores de la serie para autosustentarse y poder ir generando los términos restantes. Fácil ¿No?

 

He aquí un algoritmo que cumple con lo solicitado:

 

ALGORITMO Fib2

      Escribir('Ingrese término a calcular?: ')

      Leer(n)

      n1 = 1                             {Valor de Fib(1)}

      f  = 1                             {Valor por defecto}

      Si n>=2 Entonces                   {Ve si debe iterar}

            Para i=2 Hasta n Hacer       {Itera hasta Fib(n)}

                  n2=n1                  {Se almacena fib(n-2)}

                  n1=f                   {Se almacena fib(n-1)}

                  f=n1+n2                {Se calcula nuevo fib}

            Fin Para

      Escribir('El valor del término deseado es:,f)

FIN ALGORITMO

 

¿Qué problema se nos presenta para efectuar un Algoritmo que resuelva el Fibonacci genérico de orden N?

El problema es tener N variables definidas (¿Cuánto vale N genérico?), quizás podemos tener un N máximo de forma tal que podamos contemplar varios ordenes pero nunca podremos hacer un algoritmo genérico (el problema es el mismo que representar TODOS los números naturales -la máquina no trabaja con valores infinitos-).

 

Bueno, supongamos que sólo queremos considerar una cota de N  ¿sería fácil?

Con los conocimientos actuales no, ya que deberíamos poner N condicionales dentro del PARA para poder sumar y almacenar sólo los términos anteriores correspondientes al orden en el que estemos trabajando.