Documentos de Académico
Documentos de Profesional
Documentos de Cultura
INTRODUCCIÓN A LA PROGRAMACIÓN
Secuencia
1. Diseñe un algoritmo que permita determinar si un número “X” entero ingresado por
el usuario es divisible por 5. El algoritmo debe imprimir uno de los 2 siguientes
mensajes:
a) X es divisible por 5
b) X no es divisible por 5
2. Determinar si un número de tipo entero de entrada es par o impar.
3. Una oficina de meteorología tiene un problema de conversión al sistema métrico.
Diseñar un algoritmo para realizar las siguientes conversiones:
a) Leer una temperatura dada en grados Celsius e imprimir su equivalente en
grados Fahrenheit.
b) Leer la cantidad de lluvia caída en pulgadas e imprimir su equivalente en
milímetros.
c) Leer la velocidad del viento dado en millas por hora e imprimir su equivalente
en kilómetros por hora.
4. Crear el algoritmo que permita calcular:
1 si x < y/z
f(x,y,z)= 0 si x=y/z
-1 si x> y/z
8. Diseñe un algoritmo que para cualquier valor de “x” determine el valor de la función
f(x):
x2 + cos (x) si 00≤ x < 1200
f(x)= cos (x) + sen (x) si1200≤ x < 2700
tang (x) si 2700 ≤ x < 3600
9. Dados tres lados de entrada S1, S2 y S3 determinar qué tipo de triángulo forman
ellos, considerando que si:
• S1 = S2 = S3, entonces el triángulo es equilátero.
• S1 <> S2 <> S3, entonces el triángulo es escaleno.
• Existen dos lados iguales, entonces el triángulo es isósceles.
Se debe comprobar primero, si estos tres lados forman o no un triángulo, esto es, se
debe
Comprobar que la suma de dos lados cualquiera debe ser mayor al tercer lado.
10. El 17 de marzo del 2010 la lista de conversión para cambio de monedas y unidades
monetarias en chile son:
1 UF 21.558,80
1 UTM 37.794
1 Dólar 484,01
1 Euro 671,40
Desarrollar un algoritmo que permita dada una determinada cantidad (en cualquiera de
las unidades) realizar la conversión a las otras unidades.
11. Construya un algoritmo que dado tres números ingresados por teclado busque el
mayor de los tres.
12. Suponga que usted es un ejecutivo del Bío-Bío Bank, encargado de entregar
créditos a las personas. De acuerdo a las reglas del banco en que usted trabaja, el monto
del crédito al que una persona puede acceder depende de su sueldo. Para determinar el
crédito al que una persona puede optar, debe utilizar la siguiente tabla entregada por el
banco:
Sueldo menor a $200.000 no tiene derecho a crédito.
Sueldo entre $200.000 y $500.000 tiene derecho a crédito hasta por $500.000
Sueldo entre $500.000 y $1.000.000 tiene derecho a crédito hasta por
$2.000.000.
Escriba un algoritmo que, dado el sueldo de un cliente, le indique el valor del crédito al
que puede optar.
13. Dado el siguiente esquema de evaluación:
Promedio Test 30%
Promedio Tareas 20%
Certámenes 50%
Donde:
Certamen 1: 40% y Certamen 2 : 60%
Realice un DF que permita:
a) Calcular la Nota Final obtenida, sabiendo que se realizarán 3 tests, 2 certámenes y 2
tareas.
b) Informar la Situación académica del alumno, sabiendo que:
Si nota final >= 60, mostrar por pantalla “aprobado”.
Si nota final < 60 y >= 40, mostrar por pantalla “A examen”.
Si nota final < 40, mostrar por pantalla “Reprobado”.
NOTA: Todas las notas del alumno son ingresadas desde teclado.
Ciclos
y finalmente imprima S y E.
11. Generar e imprimir los “N” primeros números primos.
12. Determinar la cantidad de números primos entre 3 y 100. Finalmente se debe
imprimir esta cantidad.
13. Diseñe un algoritmo que permita determinar e imprimir la cantidad de números
divisibles por “N” en el intervalo [a,b], con “N” ingresado por teclado.
14. Las potencias de 2 son 1, 2, 4, 8, 16, 32, 64, etc. Para obtener la siguiente potencia
de 2 se multiplica la anterior por 2. Usando ciclos, escriba un algoritmo para imprimir
la primera potencia de dos mayor que1000.
15. Crea el algoritmo que permita calcular:
x2 − 2x − 5 si x< 0
x3 + 3x2 si 0 ≤ x < 3
f(x)=
x4 − 4x3 + x2 si 3 ≤ x < 5
x5 − 5x3 + x4 si x ≥ 5
Imprimiendo finalmente el valor de f(x), para valores enteros, donde x esta en el
intervalo [a,b].
16. Generar e imprimir los “n” primeros números primos.
17. Supóngase que se desea saber si un número es divisible por tres. Existe una regla
que dice que un número es divisible por tres, si la suma de sus dígitos es divisible por
tres. Desarrolle un algoritmo que aplicando esta regla sucesivamente permita
determinar si un número es divisible por tres.
18. Existe un método para comprobar si la multiplicación entre dos números fue
correctamente realizada. El método consiste en reducir los multiplicandos a un solo
número (sumando sus cifras), y verificando si la multiplicación entre ellos es igual a la
cifra reducida del producto. Genere los siguientes algoritmos:
a) que reciba tres números, y verifique, por este método si la multiplicación de
los dos primeros coincide con el tercero.
b) que busque un contraejemplo que invalide lo propuesto.
19. Escriba un algoritmo que permita realizar la multiplicación de dos números
ingresados por el usuario sólo utilizando suma entre ellos, es decir, se debe suponer que
para resolver el problema no conocemos la operación multiplicación.
20. Construir un algoritmo que permita resolver la siguiente sumatoria, para cualquier
valor de X.
S = − x − x2 + x4 − x6 + · · · x2*n
1! 2! 3! n!
Con n ingresado por teclado.
21. Construir un algoritmo que permita resolver la siguiente sumatoria, para cualquier
valor de X.
S = 1 - x + x2 − x3 +…± xn__
3! 5! 7! (2n+1)!
Considerando ‘n’ términos. El valor de n deberá ser ingresado por la entrada estándar.
3. Generar e imprimir un arreglo con los elementos que vienen dados por el siguiente
patrón:
456; 458; 460;.....;800
4. Generar e imprimir un arreglo con los elementos que vienen dados por el siguiente
patrón:
500; 456; 510; 454; 520; 452;.....;800
5. Leer “n” caracteres y guardarlos en un arreglo, luego imprimir:
Cantidad de vocales que aparecen en el arreglo
Letra que más se repite dentro del arreglo
Verificar si la palabra es palíndrome, esto significa que se lea igual de derecha a
izquierda que de izquierda a derecha.
La cantidad de términos que se incluyan será hasta que la suma sea mayor o igual a un
número decimal “e” ingresado desde la entrada estándar.
9. Construya un algoritmo que permita generar una letra “X” en una matriz cuadrada de
orden impar mayor o igual a 5. El carácter a ocupar para generar la letra es”#”.
10 Construya un algoritmo que permita:
a. Ingresar elementos enteros a una matriz de orden “n” , donde n es
ingresado por teclado.
b. Restarle la suma de los elementos pares a la suma de los elementos
impares.
11. Ingresar n temperaturas a un vector y calcular su media, y que muestre además las
temperaturas más altas y más bajas
12. Determinar la cantidad de elementos negativos, positivos y cero de un vector dado
13. Diseñe una algoritmo que calcule dentro de un arreglo:
La suma de números pares
La suma de números impares
La suma total de los elementos del arreglo
14. Escriba un algoritmo que permita invertir un arreglos de n elementos enteros
15. Seleccionar los elementos (números reales) de un arreglo X según el siguiente
criterio
Si los números están comprendidos entre 0 y 49, ponerlos en el arreglo 1
Si los números están comprendidos entre 50 y 100, ponerlos en el arreglo 2
Si los números son mayores a 101 ponerlos en el arreglo 3.
16. Rellenar una matriz de 4 x 4 con los números consecutivos 1, 2,3,4,5,6,7,….
17. Construya un algoritmo que permita buscar un número en una matriz recorriendo
una por una las posiciones de la matriz. El algoritmo debe indicar si se encontró o
no el elemento.
18. Construir un algoritmo que permita realizar la suma de dos matrices de n x m
19. Construir un algoritmo que permita realizar la multiplicación de dos matrices n x m
20. Diseñe un algoritmo que permita multiplicar un escalar por la matriz. ( k x Mnxm )
21. Obtenga un algoritmo que permita calcular la inversa de una matriz dada (M -1)
22. Construya un algoritmo que calcule el determinante de una matriz dada.
23. Construya un algoritmo que defina la matriz identidad.
24. Construir un programa en C que permita imprimir los N primeros números de la
serie de Fibonacci (N ingresado por teclado). La serie de Fibonacci es: 1,2,3
, 5 , 8 , 13 , 21 , 34 , 55 , 89 , … y se genera de acuerdo a la siguiente ley:
Fibonacci (1) = 1
Fibonacci (2) = 2
Fibonacci (3) = Fibonacci (2) + Fibonacci (1) = 2 + 1 =3
Fibonacci (4) = Fibonacci (3) + Fibonacci (2) = 3 + 2 = 5
Fibonacci (N) = Fibonacci (N -1) + Fibonacci (N -2)
Obs : Utilice un vector en su solución.
12 3 2 31 1 0 7 19 12 2 5
ALGORITMO ¿ ... ?
26. Construya un algoritmo, utilizando lenguaje C, que permita crear una matriz de n
filas y m columnas (dónde n y m sean ingresados por teclado) de números reales.
Luego, el algoritmo debe permitir llenar esta matriz con números ingresados por
teclado. Posteriormente se debe buscar un elemento denominado objetivo en toda la
matriz indicando cuantas veces se encuentra en la matriz (también podría no
encontrarse). El elemento objetivo también es ingresado por teclado.
El programa debe estar constituido por dos funciones:
Una que permita ingresar los elementos a la matriz, por lo que no devuelve
un valor (es un procedimiento)
Otra función que retorna la cantidad de veces que el elemento se encuentra
en la matriz
27. Construya un programa en C que permita ingresar valores enteros a una matriz de
3x4. El programa debe posteriormente copiar los elementos de cada fila en un
arreglo, por lo que se producirán tres arreglos distintos.
28. Permita calcular la multiplicación de dos matrices, dónde el usuario pueda:
Ingresar las dimensiones de las matrices
Ingresar los valores de las matrices
Además debe cumplir las condiciones generales para la multiplicación de
matrices, es decir :
A mxn * B pxq = C mxp
donde n = p ;
29. Construya un programa en C que permita crear una matriz identidad de n x n,
siendo n ingresado por teclado. El programa además debe imprimir la matriz.
Obs. Considere que en una matriz identidad los elementos de su diagonal principal son
1 y el resto son 0.
30. Juan, el cartero, una noche se aburría y para romper la monotonía llevó a cabo un
experimento con una fila de buzones de correo. Estos buzones estaban numerados
del 1 al 150, y empezando con el 2 abrió todas las puertas de los buzones numerados
con un número par. Después, comenzando con el buzón 3, fue de tres en tres
abriendo las puertas si estaban cerradas y cerrándolas si estaban abiertas. Volvió a
repetir este proceso con los buzones haciéndolo de cuatro en cuatro, de cinco en
cinco, etc. Cuando terminó, se sorprendió de la distribución de los buzones cerrados.
Escriba un programa que determine cual eran estos buzones.
31. Construya un programa en C que ingrese 20 elementos a un arreglo de números
enteros. Una vez ingresados estos elementos al arreglo, encuentre el elemento mayor
y el menor de todos ellos.
32. Construya un programa en C que calcule las horas, minutos y segundos que trabaja
una persona en el día, donde se ingresa la hora exacta* de entrada y salida en la
mañana y luego la misma información en la tarde.
*: La hora exacta se refiere a Horas, Minutos y Segundos, que pueden ser capturados en
un arreglo.
33. Para prevenir errores de digitación es frecuente el uso de un dígito verificador. Un
caso puntual es el dígito verificador modulo 11, utilizado en la cédula nacional de
identidad, el cual se calcula multiplicando los dígitos del numero por 2, 3, 4, 5, 6, 7,
2, 3,…., comenzando por el dígito menos significativo. Luego se suman los
productos obtenidos y esta suma se divide por 11. El resto de la división se le resta a
11, y de esta diferencia se obtiene el dígito. Finalmente hay dos casos especiales, si
el dígito resulta 10, se utiliza la letra K y si resulta 11 el número 0. Escribir un
programa en C que indique el dígito verificador módulo 11 de un número dado leído
desde el teclado, utilizando VECTORES para el ingreso del rut.
34. Construya un programa en C que permita imprimir las primeras 20 filas de la
siguiente pirámide :
1 Fila 1
2 3 2 Fila 2
3 4 5 4 3 Fila 3
4 5 6 7 6 5 4 Fila 4
5 6 7 8 9 8 7 6 5 Fila 5
6 7 8 9 10 11 10 9 8 7 6 Fila 6
.... 13 .... ...
...
36. Construya un programa, utilizando lenguaje C, que permita crear una matriz
tridimensional (dónde n, m y p sean ingresados por teclado). Luego, el algoritmo
debe permitir llenar esta matriz con números ingresados por teclado, de números
reales. Posteriormente se debe buscar un elemento denominado objetivo en toda la
matriz indicando cuantas veces se encuentra en la matriz (también podría no
encontrarse). El elemento objetivo también es ingresado por teclado.
37. Suponga que usted es un vendedor de la línea de productos para adelgazar Reduce
Guata Fast. Es usted un empresario exitoso, y ha instalado una tienda en el centro de
la ciudad, donde puede atender a sus clientes, ofrecerles su línea de productos,
evaluar su estado de salud, conversar con ellos, etc. Usted tiene muchos clientes, y
también llegan muchos clientes nuevos, dado lo efectivo de los productos que vende
en su tienda. Lo primero que usted debe hacer cuando llega un potencial cliente, es
evaluarlo para saber si su peso corresponde al de una persona delgada, normal, con
sobrepeso u obesa. Para ello, usted cuenta con la formula del peso ideal:
peso
Peso ideal=
estatura 2
Si el peso ideal es hasta 20 entonces la persona es delgada.
Si el peso ideal es mayor que 20 y menor que 23 entonces la persona es
normal.
Si el peso ideal está entre 23 y 26 entonces la persona tiene sobrepeso.
Si el peso ideal es mayor a 26 entonces la persona es obesa.
Al llegar un cliente a la tienda, usted anota su nombre, su peso, su estatura y su teléfono
en un cuaderno. Como debe atender a muchos clientes, no tiene tiempo de realizar la
evaluación en el mismo momento. Al final del día, usted debe calcular el peso ideal de
los clientes que llegaron durante el día, para posteriormente llamar a aquellos que tienen
sobrepeso o que son obesos y ofrecerles su producto.
De esta manera, usted desea generar un listado con el nombre y el teléfono de las
personas con sobrepeso y obesas, para luego llamarlas. Las personas delgadas y
normales son descartadas. Desarrolle la solución al problema de generar el listado
requerido.
38. Realice un método en C++ que al recibir un arreglo como parámetro, permita
determinar si, al dividir la suma de todos los elementos que se encuentran al interior
del arreglo en posiciones pares por el elemento que se encuentra en la posición 4 de
este, da una división exacta.
39. Construir un programa en C que permita verificar si una matriz, cuyos valores son
leídos desde teclado es triangular superior. Se dice que una matriz es triangular
superior si todos los elementos que están bajo la diagonal principal son 0.
40. Construir un algoritmo que permita ingresar “n” números a un vector de tipo entero
y determine:
a) Promedio de los números ingresados
b) La sumatoria de todos los números positivos múltiplos de 5
c) La suma de todos los números ubicados en las posiciones impares del vector
d) La suma de todos los números pares positivos
44 Leer dos vectores, uno de dimensión n y otro de dimensión m y determinar cual tiene
más elementos distintos de 0. Tanto n, m y los valores de ambos vectores deben ser
ingresados desde teclado.
45. Para un vector de dimensión m, ya ingresado, determinar cuál es el valor que más se
repite.
47. ¿Cuál es el número promedio de consultas que se deben realizar para encontrar un
valor particular dentro de un vector de dimensión n?
48. Ingresar n temperaturas a un vector y calcular su media, y que muestre además las
temperaturas más altas y más bajas
50. Escriba un algoritmo que permita invertir un arreglo de n elementos de tipo entero.
Código
1) Considere el siguiente seudo-código:
entero i,j,k,m;
m=0;
n=10;
for (i=0; i<n; i++)
for (j=0; j<n; j++)
for (k=0; k<n; k++)
m=m+1;
entero n,i;
Imprimir “Ingrese un número”
Leer N
i=0;
while (n>1){
si ((n%2)==0)
n=n/2;
en caso contrario
n=n*3+1;
i++;
}
Imprimir i
Funciones
54. Construya una función que reciba un string (arreglo de caracteres) y devuelva la
cantidad de caracteres que posee este string. No utilice ninguna función ya creada
propia del C.
55. Construya una función en lenguaje C que calcule la suma de los primeros n
términos de la serie ( el n debe ser ingresado como parámetro a la función )
Programa
Principal
Existe adicionalmente una función que genera sólo mensajes de error y es llamada
cuando se produce algún error en las entradas (números negativos, valor 0, etc.)
Construya el programa utilizando las funciones pedidas, considere la validación de las
entradas
Recursividad
58. El Máximo Común Divisor de dos números, según el algoritmo de Euclides, puede
ser representado por la siguiente función:
MCD(n, m) , si n m
MCD(m, n) m , si n 0
MCD(n, mod( m, n)) , si n 0
Se pide que Ud. implemente en el lenguaje C, recursivamente esta función.
Nota : mod(m,n) es una función que retorna el resto de la división de m por n.