Вы находитесь на странице: 1из 6

ANALISIS DE ALGORITMOS !

!

ABRIL 2010

Guía Ejercicios Prueba 1

Preguntas

  • 1. Interprete el siguiente gráfico e indique cual algoritmo es mas eficiente y porque.

ANALISIS DE ALGORITMOS ! ! ABRIL 2010 Guía Ejercicios Prueba 1 Preguntas 1. Interprete el siguiente
  • 2. Para los siguientes algoritmos indique cual utilizaría en función a los distintos valores de n.

ANALISIS DE ALGORITMOS ! ! ABRIL 2010 Guía Ejercicios Prueba 1 Preguntas 1. Interprete el siguiente
  • 3. ¿Qué algoritmo es más eficiente para resolver un mismo problema, uno que tarda T(n) = 100n 2 o uno que tarda T(n) = 5n 3 ?

  • 4. Indicar cual de las afirmaciones son ciertas o no es cierta.

    • 1. n 2 O(n 3 ) ___________

ANALISIS DE ALGORITMOS !

!

ABRIL 2010

  • 2. n 3 O(n 2 ) ___________

  • 3. 2 n+1 O(2 n ) ___________

  • 5. Dado el siguiente programa ZeroCount(A) que recibe un arreglo A de números enteros y devuelve el número de ceros que éste contiene.

ZeroCount(A) [1] count = 0 [2] for i = 1 to length(A) [3] if A[ i ] = 0 then [4] count = count + 1 [5] return(count)

  • a. Realice un análisis línea a línea del programa y obtenga el tiempo de ejecución T(n), donde n es el largo del arreglo A. Suponga un costo = 1 para cada línea de código.

  • b. Demuestre que la complejidad del algoritmo es lineal.

  • c. Calcule el orden de complejidad O(n) del algoritmo.

  • d. Describa el escenario del mejor caso y determine su complejidad asintótica.

  • e. Describa el escenario del peor caso y determine su complejidad asintótica.

  • 6. Encontrar la eficiencia del siguiente algoritmo:

float sum (float *a, const int n) { float s = 0; int i = 0; while (i < n) { s +=a[i]; i++;

}

}

return s;

  • 7. Implementar una función que calcule el n-esimo término de la serie: 1,12,123,1234,12345,123456, .... Determine, además T(n) y O((Tn)) (Ocupar Sumatorias).

  • 8. Determine T(n) y O((Tn)) para el siguiente trozo de código (Ocupar Sumatorias).

ANALISIS DE ALGORITMOS ! ! ABRIL 2010 2. n ∈ O(n ) ___________ 3. 2 O(2

ANALISIS DE ALGORITMOS !

!

ABRIL 2010

  • 9. Cual es el tiempo de ejecución y el orden de complejidad del siguiente trozo de programa (Ocupar Sumatorias).

ANALISIS DE ALGORITMOS ! ! ABRIL 2010 9. Cual es el tiempo de ejecución y el

OBS: Asumir que el tiempo de ejecución de subprog es igual a N.

Algoritmos

Diseñe un algoritmo y encuentre el tiempo de ejecución máximo en cada caso.

  • 1. Imprimir los números enteros de 0 a 100.

  • 2. Imprimir los números enteros de 100 a 0.

  • 3. Imprimir los números pares 0 a 100.

  • 4. Imprimir la suma de los primeros 100 números naturales.

  • 5. Imprimir los números impares hasta 100 y contarlos.

  • 6. Imprimir los números impares desde 100 hasta 1 y calcular la suma.

  • 7. Imprimir los números naturales desde 1 hasta un número ingresado por teclado.

  • 8. Imprimir y contar los múltiplos de 3 desde 1 hasta 100.

  • 9. Calcular la suma de los números impares entre 0 y 100.

    • 10. Contar e imprimir los múltiplos de 5 que hay entre 1 y 500.

    • 11. Calcular la suma de los cuadrados de los números pares entre 0 y 100.

    • 12. Imprimir y contar los números que son múltiplos de 2 o 3 que hay entre 1 y 100.

    • 13. Imprimir y contar los números que son múltiplos de 2 y 3 que hay entre 1 y 100.

    • 14. Determinar la suma de N números ingresados por teclado.

    • 15. Determinar el promedio de N números ingresados por teclado.

    • 16. Determinar la multiplicación de dos números enteros mediante sumas sucesivas.

    • 17. Determinar la división de dos números enteros mediante restas sucesivas.

    • 18. Determinar el resto de la división entera entre dos números enteros, mediante restas sucesivas.

    • 19. Determinar la cantidad de dígitos de un número entero positivo.

  • 20. Contar las veces que se repite un dígito d cualquiera en un número entero positivo.

  • 21. Determinar si un número N entero positivo es primo.

  • 22. Calcular el factorial de un número entero positivo.

  • 23. Determinar si M es divisor de N mediante restas sucesivas.

ANALISIS DE ALGORITMOS !

!

ABRIL 2010

  • 24. Calcule e imprima el valor de a b , a:real y b:entero.

  • 25. Averigue mediante restas sucesivas si un número n es par o impar.

  • 26. Determinar la suma de los dígitos pares de un número entero positivo N.

  • 27. Imprimir, contar y sumar los múltiplos de 2 hasta un número introducido por teclado.

  • 28. Para un número N menor de 500. Imprimir, sumar y contar los números que están separados entre si 8 posiciones, desde ese número al 500.

  • 29. Para un número N menos de 100. Entregar la suma de los cuadrados de los números que están separados entre sí cuatro posiciones.

  • 30. Imprimir y contar los números que hay del 1 al 100, excepto los múltiplos de 5, entregar la suma de los múltiplos de
    5.

  • 31. Introducir una serie de números. Sumar los múltiplos de 8, determinar cuál es el mayor y cuántos números se han introducido.

  • 32. Imprimir 10 veces la serie de números de 1 a 10.

  • 33. Introducir tantos números como queramos. Decir sin son mayores o menores que un número N.

  • 34. Imprimir, contar y sumar los múltiplos de 2 de la serie de números que hay entre dos números N y M, tal que el segundo sea mayor o igual al primero.

  • 35. Para un número N imprimir su tabla de multiplicar.

  • 36. Invertir los dígitos de un número entero positivo.

  • 37. Determinar si un número entero positivo es palíndromo.

  • 38. Identificar si la suma de los dígitos de un número entero positivo es par o impar.

  • 39. Determinar e imprimir los primeros N términos de la serie fibonacci.

  • 40. Determinar e imprimir los primeros N términos primos de la serie fibonacci.

  • 41. Simplificar la fracción N/M, con N y M enteros positivos.

  • 42. Determinar

e imprimir el valor de la serie 1 + ½ + 1/3 + ¼ + 1/5 +

+ 1/N.

...

  • 43. Determinar e imprimir el valor de la serie 1 + ½! + 1/3! + ¼! + 1/5! +

+ 1/N! .

  • 44. Determinar e imprimir los valores de la función F(x) = x 3 - x 2 + 1 para valores de x entre 1 y N enteros.

  • 45. Determinar e imprimir los valores de la serie : x - x 2 /2! + x 3 /3! - x 4 /4! + x 5 /5! -

+ x N /N!

  • 46. Imprima los N primeros números primos.

  • 47. Imprima la suma de los N primeros números primos.

  • 48. Determine todos los factores primos que componen un entero N.

  • 49. Imprima un mensaje que indique si la cantidad de dígitos de un número n es par o impar.

  • 50. Determine los N primeros números perfectos.

  • 51. Imprimir cada valor y obtener la suma de los N primeros términos de la serie: 1, 12, 123, 1234,

.

.

  • 52. Se ingresan N números desde el teclado, calcular e imprimir el promedio de los datos positivos, y el promedio de los datos negativos (considere al cero como positivo).

  • 53. Se ingresan N números enteros positivos, imprima aquellos cuyos últimos k dígitos sean divisibles por 7.

  • 54. Valide el dígito verificador de un rut ingresado por teclado.

  • 55. Se lee un número N entero positivo y se desea imprimir los dígitos pares de este. Ejemplo: Si N= 1876543, se imprimen los dígitos 4, 6 y 8.

  • 56. Calcular la suma de los términos de la serie ½ + 2/2 2 + 3/2 3 +

. . .

+ n/2 n

  • 57. Determinar de cuántas maneras posibles un número entero positivo N puede descomponerse en la suma de enteros positivos.

ANALISIS DE ALGORITMOS !

!

ABRIL 2010

58. Multiplique dos números enteros mediante el algoritmo de la multiplicación rusa. Este algoritmo multiplica por
58.
Multiplique dos números enteros mediante el algoritmo de la multiplicación rusa. Este algoritmo multiplica por 2
el multiplicando y divide por 2 el multiplicador hasta que el multiplicador toma el valor 1. Después suma todos los
multiplicadores correspondientes a multiplicadores impares. Dicha suma es el resultado del producto de los dos
números.
Ejemplo: 37 * 12 = 444 ( multiplicador :37, multiplicando:12)
!!!!!!!!!
!
!
37!
12
!
!
!
18!
24
!
!
!
9!
48
!
!
!
4!
96
!
!
!
2!
192
!
!
!
1!
384
!
!
!
producto!=!12!+!48!+!384!=!444
59.
Genere e imprima los elementos de la serie. 1,!41,!½,!41/3,!¼,!41/5, .......
60.
Los números de las claves de dos cajas fuertes están mezcladas en un número entero llamado clave maestra.
Determine ambas claves, la primera clave se construye con los dígitos impares de la clave maestra y la segunda con
los pares. Ejemplo: Clave maestra = 12345, Clave1= 135, Clave2=24.
61.
Se recibe como parámetro una cadena de caracteres. Se pide imprimir el primer carácter, luego los dos primeros,
luego los tres primeros y así sucesivamente hasta imprimir la cadena completa.
Ejemplo: Para la cadena ‘HOLA’, el procedimiento imprime
!!!!!!!
!
‘H’
!
!
‘HO’
!!!
!
‘HOL’
!
!
‘HOLA’! !
62.
Mezcle ordenadamente dos números enteros A y B en un tercer número C que contenga el total de dígitos de
ambos números. A y B tienen sus dígitos ordenados ascendentemente de derecha a izquierda, el número C debe
quedar ordenado de igual forma.Ejemplo:
A = 7321, B = 87543 se obtiene C = 877543321
63.
Determinar el mayor y menor elemento de N datos ingresados por teclado.
64.
Escriba el operador BASEB, que recibe un número entero en base 10 e imprime su equivalente número entero en
una base base b (2 ..
65.
Escriba el operador BDIEZ, que recibe un número entero en base b y lo transforma a base diez. Puede utilizar la
función pot(a,b), que retorna a elevado a b.
66.
Diseñe el operador DIGITO(N,K), que retorna el k-ésimo dígito de la derecha del entero positivo N.
67.
Se recibe un valor entero positivo y se retorna el número de dígitos cinco (5) que posee.
68.
Determinar la suma de los n primeros términos de la serie:
4 + x2/3 - x4/5 + x6/7 - x8/9
.....
evaluada en un
valor x real.
69.
Determinar cuántos dígitos distintos tiene un número entero positivo cualquiera.
70.
Se tiene la función mayor3(a,b,c), que retorna el mayor de tres enteros . Se pide crear la función mayor5(a,b,c,d,e)
que retorna el mayor de cinco números enteros, usando mayor3. No puede usar sentencias selectivas ni iterativas.
71.
Determine usando una función si una palabra s es palíndroma.
72.
Imprimir los elementos de un vector.
73.
Invertir los elementos de un vector.
74.
Determinar la suma de los elementos de un vector.
75.
Determine el mayor y el menor elemento de un vector.
76.
Encontrar la posición de un elemento e en un vector V.
77.
Contar en un vector los números iguales a x.
78.
Determinar la cantidad de valores mayores que X, en un vector A de N elementos reales. Versión recursiva.

ANALISIS DE ALGORITMOS !

!

ABRIL 2010

  • 79. Diseñe una proceso que indique si una matriz de orden NxN es simétrica. Una matriz es simétrica si se cumple que A[i] [ j ] = A[ j ] [i] para todo i,j=1

..

N.

  • 80. Escriba una función que determine si A y B dos matrices de NxM son una espejo de la otra.

  • 81. Diseñe una función que determine el elemento más cercano al promedio de una matriz M.

  • 82. Sumar los elementos de la triangular superior de una matriz cuadrada M, sin incluir la diagonal principal

  • 83. Encontrar el elemento mayor de la fila i de una matriz M.

  • 84. Dada una matriz de orden N, determine el cuociente entre la suma de los elementos de la diagonal principal y la suma de los elementos de la diagonal secundaria.

  • 85. Diseñe una función que permita buscar y contar la cantidad de veces que se encontró un elemento e, en una columna j de una matriz A de orden NxM.