Download guia

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project

Document related concepts

Algoritmo de multiplicación wikipedia, lookup

Algoritmo de Karatsuba wikipedia, lookup

Printf wikipedia, lookup

División larga wikipedia, lookup

Constante zeta wikipedia, lookup

Transcript
GUIA DE EJERCICIOS
Taller de Programación
Profesor : Wenceslao Palma M.
1.- Dado un número entero positivo, su crápulo es un número que se obtiene de la
siguiente forma : se suman los dígitos que lo componen si el valor de la suma es menor
que 10, el crápulo es el valor obtenido sino el crápulo es el crápulo de la suma de los
dígitos.
Ejemplo :
Número
Crápulo
7
7
13
4
492
6
5678
8
Escriba un algoritmo que lea un entero positivo y escriba el valor de su crápulo.
2.- Un número entero positivo se dice M-alternante si :
El primer dígito es par (impar) entonces los 2 dígitos siguientes deben ser impares
(pares), luego los tres siguientes dígitos deben ser pares (impares) y así sucesivamente.
Por ejemplo : 122357 es un número M-alternante de orden 3.
Escriba un programa que determine si un número es o no M-alternante y si lo es a que
orden corresponde.
3.- El algoritmo de Newton , usado para calcular la raíz cuadrada, se basa en
aproximaciones sucesivas , donde la primera aproximación de la raíz de un número N es
:
X1 = N/2
Xi+1 = Xi /2 + N/(2*Xi)
4.- Escriba un algoritmo que permita calcular :
ex = 1 + x + x2/2! + x3/3! + x4/4! + .......
5.- Suponga que en una variable se tiene una secuencia de ceros y unos que componen
un número binario.
Escriba un programa que determine su equivalente en decimal.
6.- La multiplicación rusa consiste en multiplicar sucesivamente por el multiplicando y
dividir por 2 el multiplicador hasta que el multiplicador tome el valor 1. Luego, se suman
todos los multiplicandos correspondientes a los multiplicadores impares. Dicha suma es el
resultado del producto de los dos números. La tabla muestra el cálculo realizado para
multiplicar 37 por 12, cuyo resultado final es 12 + 48 + 384 = 444.
Multiplicador
37
18
9
4
2
1
Multiplicando
12
24
48
96
192
384
Multiplicador impar
si
No
Si
No
No
si
Suma
12
60
444
Escriba un programa en C, que permita realizar dicha multiplicación.Considere el
multiplicador y el multiplicando ingresados por el usuario,
7.- Un par de números m y n son llamados par amigable, si la suma de todos los divisores
de m (excluyendo m ) es igual al número n y la suma de todos los divisores del número n
(excluyendo n) es igual a m (m  n).
Por ejemplo, los numeros 220 y 284 son un par amigable porque los únicos números que
dividen de forma excacta a 220 son 1,2,4,5,10,11,20,22,44,55 y 110, y
1 + 2 + 4 + 10 + 11 + 20 + 22 + 44 + 55 + 110 = 284
Los números que dividen a 284 son 1,2,4,71 y 142, y
1 + 2 + 4 + 71 + 142 = 220
Por lo tanto 220 y 284 son un par amigable.
Escriba un programa en C que ingrese m y n , asegure que m es distinto de n
determine si dichos números son par amigable.
y
8.- Cuando la suma de los dígitos alternos de un número son iguales, ese número es
exactamente divisible por once. Por ejemplo 5841 :
5+4 = 8+1
Por lo tanto el número 5841 es divisible por once.
9.- Un número se dice automórfico si su cuadrado termina en los mismos dígitos que el
número original, por ejemplo 762 = 5776. Un número se dice trimórfico si su cubo termina
en los mismos dígitos que el número original, por ejmplo 493 = 117649. Escriba un
programa en C que determine los números automórficos y trimórficos menores que 1000.
ARREGLOS UNIDIMENSIONALES
10.- Un método clásico para identificar los números primos existentes en una secuencia
de números que va desde 2 a N es la llamada Criba de Eratóstenes.
El algoritmo usado para este propósito va marcando (eliminando) todos los mútliplos de 2,
3, 4, 5 y así sucesivamente hasta que se encuentre el primer número no marcado que es
mayor que la raíz cuadrada de N.
Ejemplo : suponga una secuencia de números desde 2 a 20.
a) Se toma el número 2, dado que es el primer número no marcado.
b) Marcar todos los múltiplos de 2 a partir de 22 .
c) Se toma al 3, dado que es el siguiente número no marcado.
d) Marcar todos los múltiplos de 3 a partir de 32.
e) Se toma el número 5 como el siguiente número. Pero 52 es mayor que 20. Entonces el
algoritmo aquí se detiene y todos los números no marcados son los números primos.
Gráficamente : (E significa eliminado (marcado) )
a)
2
3
4
5
6
7
8
9
10 11 12 13 14 15 16 17 18 19 20
3
E 5
E 7
E 9
E 11
E 13
E 15
E 17 E 19 E
3
E 5
E 7
E 9
E 11
E 13
E 15
E 17
E 19
E
3
E 5
E 7
E E E 11
E 13
E E E 17
E 19
E
3
E 5
E 7
E E E 11
E 13 E E E 17
E 19
E
b)
2
c)
2
d)
2
e)
2
Escriba un algoritmo que permita solucionar el problema, para una secuencia que va
desde 2 hasta cualquier N.
11.- Se tiene dos cadenas (arreglos de caracteres): A y SEPARADORES, cuyos
contenidos son ingresados desde teclado. El programa a escribir debe ser tal que si :
a.- La cadena A tiene el contenido : “sin embargo, es la dinámica autopoiética la
responsable de permitir la fractura en un plano permitido . . . fenómeno muy
particular en.....”
b.- Y los SEPARADORES son : “, . ”
Debe salir por pantalla:
(1) sin embargo
(2) es la dinámica autopoiética la responsable de permitir la fractura en un plano permitido
(3) fenómeno muy particular en
12.- Dados 2 conjuntos A y B, que solo poseen números enteros postivos, escriba un
programa en C que determine:
- A unión B
- A inter B
- A menos B
- B menos A
Nota : Almacene los conjuntos en arreglos unidimensionales de enteros y asegure que los
elementos de los conjuntos son enteros positivos.
13.- Dado un arreglo llamado PROM, mantiene los promedios ( valores reales), de un
curso que posee N alumnos, escriba un programa en C que entregue :
- El promedio de las notas
- El mayor y el menor promedio
- La cantidad de promedios en [4.5 - 6.0]
14.- Se tiene un arreglo de tamaño 50 que posee las respuestas correctas de una prueba
de alternativas, escriba un programa en C que :
- Lea las respuestas de una determinada prueba.
- Muestre el número de preguntas correctas y erradas.
- Obtenga la nota final sabiendo que : cada respuesta errada resta una
respuesta buena y que cada respuesta buena vale 2 ptos.
15.- Dado un mensaje se debe calcular su costo para enviarlo por telégrafo. Para esto se
sabe que las letras cuestan, cada una, $10. Lo caracteres especiales que no sean letras
cuestan $30 y los dígitos tienen un valor de $20 cada uno. Los espacios no tienen valor.
Restricciones :
- El mensaje es una cadena
- Las letras ñ,á,é,í,ó,ú se consideran caracteres especiales.
Un ejemplo de ejecución del programa es :
Entrada : Feliz cumpleaños
Salida : Valor del mensaje : $ 170
16.- Escriba un algoritmo que transforme 2 números enteros positivos a su equivalente en
binario, los cuales deberán estar almacenados e dos arreglos. Posteriormente realice las
operaciones lógicas AND y OR entre ellos y almacene los resultados en arreglos.
17.- Suponga existen dos arreglos A y B de tamaño M y N respectivamente, los cuales
poseen números enteros positivos ordenados en forma ascendente.
Escriba un algoritmo que permita mezclar A y B en un tercer arreglo con sus
elementos
ordenados en forma ascendente y sin repetición.Ejemplo :
A
1
4
6
7
B
2
3
4
6
C
1
2
3
4
6
7
Considere que A y B no tienen elementos repetidos.
18.- Realice el ruteo de los siguientes programas en C :
main ( ) {
int a = 5, b = 6,c = 11;
main ( ){
int a = 5, b = 6;
p (a,b,&c);
printf(“%d %d %d”, a, b,c);
}
void p (int x, int y, int *z) {
*z = 2 * y + *z;
x = *z +y;
printf(“%d %d %d”, x, y, *z);
}
p(&a,b);
printf(“%d %d”,a,b);
}
void p (int *b, int a){
int c;
c = *b + a;
printf (“%d %d %d”, a,*b,c);
}
Para cada programa haga una tabla con todas las variables para mostrar el valor que
éstas van tomando e indique claramente los resultados entregados en pantalla
19.- Realice dos funciones que permitan hallar el valor de  mediante :
  4
2 4 4 6 6 8
     
3 3 5 5 7 7
(a) una función considera que la precisión del calculo depende del imite superior
de la multiplicatoria. Es decir , se consideran los n primeros términos de la
serie donde n es un parámetro de la función.
(b) la otra función considera que la precisión del cálculo depende de la diferencia
entre dos términos consecutivos del serie : si ésta es menor que el parámetro
de la función  se detiene el cálculo.