Está en la página 1de 16

LISTADO DE EJERCICIOS

INTRODUCCIÓN A LA PROGRAMACIÓN

Secuencia

1. Indique cual es el valor de a, b y c después de las siguientes operaciones:


a=2
b = 20
c = a+a
a = a+c-5
b = a+c+7
a = c-b
2. Resolver las siguientes operaciones (Mod, obtiene el resto de la división de enteros y
Div, obtiene el entero de una división):
a) X = 21 Mod ( 17 Mod 3) =?
b) Y = 38 Div (49 Mod 5) =?
3. Diseñar un algoritmo que permita obtener el valor absoluto de un número.
4. Desarrolle un algoritmo que permita calcular la función: f(x) = (x + 1)2 + (2*x)2, para
un valor de x
5. Escriba un algoritmo que reciba un ángulo en radianes y lo transforme en grados.
6. Desarrolle un algoritmo que permita imprimir el número mayor de dos elementos de
entrada.
7. Desarrolle un algoritmo que permita dados dos puntos del plano cartesiano,
determinar la pendiente de la recta que pasa por dichos puntos.
8. Desarrolle un algoritmo que permita calcular la distancia entre dos puntos de plano
cartesiano.
9. Desarrolle un algoritmo que permita, dado un valor entero x calcular:
- el perímetro del cuadrado cuyo lado mide x
- el área de un circulo, cuyo diámetro es x
- el área de un rectángulo, cuyos lados miden x y 2*x respectivaente.
- el perímetro de un triangulo equilátero, cuyo lado mide x
- la hipotenusa de un triangulo isósceles, cuyo cateto mide x
10. Desarrolle un algoritmo que permita calcular el cuadrado de un número ingresado
por teclado.
11. Desarrolle un algoritmo que permita calcular la raíz para cualquier número
ingresado por teclado.
Bifurcación

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

5. Crear el algoritmo que permita calcular:


a*b si c>1
f(a,b,c)= a/b si c=1
a2*b2 si c<1

Imprimiendo finalmente el valor de de f(a,b,c).


6. Se desea saber si un número es divisible por seis. Desarrolle al menos dos algoritmos
distintos para resolver el problema.
7. Calcular e imprimir el valor de la siguiente función matemática:
X2 – 2*x – 5 Si x < 0
X3 – 3*x2 Si x >0 y x < 3
F(x)
X4 –4*x3 + x2 Si x>=3 y x<5
X5 – 5*x4 + x3 Si x>=5

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

1. Generar e imprimir los “n” primeros números pares.


2. Generar e imprimir los “n” primeros números impares.
3. Imprimir la sumatoria de los “N” primeros múltiplos de 3, con “N” ingresado desde
teclado.
4. Imprimir el promedio de los “N” primeros números pares.
5. Imprimir el promedio de los primeros “N” múltiplos de 5, con “N” ingresado por
teclado.
6. Generar la siguiente sumatoria: S =1+2+3+···+N finalmente imprima S.
7. Generar la siguiente sumatoria: S =2+4+6+···+2*N y finalmente imprima S.
8. Generar la siguiente sumatoria: S = 1n+2n+3n+4n+···+nn finalmente imprima S.
9. Generar siguiente sumatoria: S=5*1+5*2+5*3+5*4+···+5*n y finalmente imprima S.
10. Generar las sumatorias:
S=n*1+n*2+n*3+n*4+···+n*n
E=1− (x2/3!) + (x3/4!) − (x4/5!)+···± (xn/(n+1))!

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)!

22. Construir un algoritmo que permita calcular la potencia de un número (ab) en la


forma (a*a*a…*a) “b” veces.
23. Ingresar una secuncia de números hasta que se ingrese por teclado el cero.
Determinar cuántos de éstos números fueron positivos y negativos.
24. El cajero de un banco (no un cajero automático) necesita un programa que le facilite
la entrega de una determinada cantidad de dinero, es decir, que le indique la manera de
fraccionar dicha cantidad utilizando billetes de $20.000, $10.000, $5.000, $2.000,
$1.000 y monedas de $500, $100, $50, $10 y $1. El objetivo del problema es utilizar la
menor cantidad de monedas y billetes de bajo valor. Construir un algoritmo que
entregue esta distribución más optima de monedas y billetes.
25. Diseñar un algoritmo que permita determinar si dos números ingresados por el
usuario, son o no amigos. Dos números son amigos cuando cada uno es igual a la suma
de los divisores del otro (por ejemplo 220 y 284).
- Construir un algoritmo que permita descubrir todos los pares de números amigos
menores a 10.000.
26. Generar e imprimir la tabla de multiplicar de un numero ingresado por teclado hasta
un númeron también ingresado por el usuario.
27. Leer un número hasta que este se encuentre entre los valores 1 y 10 incluidos. Si un
número ingresado no está en ese rango el programa pide el ingreso de orto número.
28. Determinar el número mayor y el menor de n números de entrada y entregar la
diferencia entre ellos sin utilización de resta.
29. Desarrolle un algoritmo que simule el ingreso de una clave numérica para entrar a
un sistema con un intento de ingreso de tres veces, en el último intento sale del sistema.
La clave numérica debe ser ingresada por teclado (sin que el usuario de la aplicación la
conozca).
Nota: Envíe mensajes de Ingreso al Sistema o Salió del sistema por ingreso incorrecto
de contraseña.
30. Imprimir el promedio de los n primeros números pares e impares.
31. Ingresar 13 números e imprimir la cantidad total de números pares e impares
ingresados.
32. Imprimir la sumatoria de los N primeros múltiplos de 3, con N ingresado por el
usuario.
33. Construya un algoritmo que sume los primeros números pares ingresados por
teclado hasta que su suma sea mayor o igual a 150.

34. Generar las –siguientes sumatorias:


S= 1+ 2+ 3+ ....+N
S= 2+ 4+ 6+ ....+ 2*N
S= 1n+ 2n+ 3n+...+ n n
S= n*1+ n*2+ n*3+...+ n*n
S= 5*1+ 5*2+ 5*3+...+ 5*n
35. Determinar e imprimir la cantidad de números divisibles por N entre el intervalo
[1,1000]
36. Leer dos números de entrada y determinar el cuociente y el resto de la división entre
ambos
Utilizando solo sumas y restas. Imprimir resultados.
37. Leer un número real de entrada y determinar su parte entera y real solo utilizando
resta y suma. Imprimir resultados.
38. Un número perfecto es aquel número que es igual a la suma de todos sus divisores
exactos, excepto el mismo. El primer número perfecto es 6, ya que 1+2+3=6. Escribir
un algoritmo que muestre todos los números perfectos hasta un número dado leído
desde el teclado.
39. Construya un algoritmo que permita obtener la SUMA de los primeros 20 términos
de la serie:
X = 1 + 3 + 5 + 7 + ...
38. Construir los siguientes algortimos, en cada uno “n” debe ser ingresado por
teclado:
a) 1*2*3*4*……*N
b) 12+22+32+… +N2
c) 1!+2!+3!+…+N!
d) Crear un algoritmo donde el usuario ingrese N números y que cuente cuántos
de los números ingresados son pares.
e) Crear un algoritmo donde el usuario ingrese N
f) números y que muestre el mayor, el menor y el promedio.
g) Crear un algoritmo que reciba a>=0 y b>=0 y que calcule: a!/((a-b)!b!)
h) 11+22+33+… +NN
i) -11+22-33+…..+Nn, tal que N es par
j) (1+1)+(2+(1+2))+(3+(1+2+3))+…(N+(1+2+…N))
k) (1!+2!+3!+…+N!)/(1+2+3+…+N)
l) 11+(21+22)+(31+32+33)+…+(N1+N2+…+NN)
m) 11!+(21!+22!)+(31!+32!+33!)+…+(N1!+N2!+…+NN!)
n) 1N+2N-1+3N-2+….+N1

Vectores, Matrices, Cadenas

1. Generar e imprimir un arreglo que contenga los elementos de la siguiente serie:


7,14,21,28,35…..

Considerando ‘n’ términos. El valor de n deberá ser ingresado por la entrada estándar.

Luego se debe imprimir la cantidad total de números pares que se encuentran en el


arreglo y la suma total de los elementos que se encuentran ubicados en las posiciones
impares del arreglo.

2. Generar e imprimir un arreglo de acuerdo al siguiente patrón:


0 1 2 3 4 …… n
7 x 2x 3x 4x

Considerando ‘n’ términos. El valor de n y de x 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.

6. Generar a imprimir un arreglo con los elementos de la siguiente serie:


7; x!; (x-1)2 ; x! ; (x-3)4 ; x! ; (x-5)6;…….
2 3 4 5 6 7

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.

7. Construir el siguiente algoritmo


 Leer “n” caracteres y guardarlos en un arreglo A
 Leer “m” caracteres y guardarlos en un arreglo B
 Mostrar el carácter de A que más se repite en B
 Mostrar los caracteres que están en A y no están en B
 Generar y mostrar un arreglo C que contenga la unión de los arreglos A y B
considerando la siguiente regla: primer elemento de A, último elemento de B,
segundo elemento de A, penúltimo elemento de B, tercer elemento de A,
antepenúltimo elemento de B …

8. Construir el siguiente algoritmo


 Leer “n” caracteres y guardarlos en un arreglo A
 Leer un carácter desde teclado
 Eliminar del arreglo A todas las ocurrencias del carácter leído, indicando
cuántos elementos han quedado en el arreglo.

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.

25. Realice la traza del programa para un arreglo como el siguiente:

12 3 2 31 1 0 7 19 12 2 5

Siendo n = 11 = largo del arreglo.

ALGORITMO ¿ ... ?

VARIABLES i, j , aux, n : entero


A[50] : entero /* arreglo de 50
elementos*/
INICIO
PARA i DESDE 1 HASTA (n -1)
INICIO
PARA j DESDE 1 HASTA (n - i )
SI (A[ j ] >= A[ j+1 ]) ENTONCES
INICIO
aux = A[ j ]
A[ j ] = A[ j+1 ]
A[ j+1 ] = aux
FIN
FIN
FIN

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 .... ...
...

35. Construya un programa en C para determinar la cantidad de centenas, decenas y


unidades que posee un número entero ingresado por teclado. El programa sólo debe
trabajar con números positivos desde el 1 hasta el 999. El programa debe poseer al
menos 3 funciones: un para calcular la cantidad de centenas, otra para calcular la
cantidad de decenas y otra para la cantidad de unidades.

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

41. Dados dos vectores V1 y V2 de dimensión n, ya ingresados, se pide:


a) construir un algoritmo que permita sumar los vectores V1 y V2. El resultado
de la suma debe ser almacenado en V3.
V3[i]= V1[i]+ V2[i]

b) construir un algoritmo que permita obtener el producto escalar V1 y V2. El


producto escalar de dos vectores da como resultado un número.
n
V1* V2 = ∑ V1[i] * V2[i]
i=1
42. Se dice que un elemento de un vector de tipo entero es débil, si el elemento anterior
y el siguiente son mayores. Construir un algoritmo que permita la lectura de un
vector de dimensión n y posteriormente determine cuantos elementos débiles
existen.

43. Dados dos vectores V1 y V2 de dimensión n y m respectivamente, construir un


algoritmo que permita concatenar dichos vectores en un tercer vector (V3)

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.

46. Ordenar en forma ascendente un vector de dimensión m ya ingresado.

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

49. Determinar la cantidad de elementos negativos, positivos y cero de un vector dado.

50. Escriba un algoritmo que permita invertir un arreglo de n elementos de tipo entero.

51. Escriba un algoritmo que permita verificar si la secuencia de elementos de un


arreglo de dimensión n (ya ingresado) es igual a la secuencia de elementos del último al
primero. El siguiente vector cumple la característica:
2 5 70 7 6 6 7 70 5 2
0 1 2 3 4 5 6 7 8 9

52. Distribuir los elementos de un arreglo X de dimensión n (números reales) según el


siguiente criterio
 Si los números están comprendidos entre 0 y 49, ponerlos en el arreglo 1 (A1)
 Si los números están comprendidos entre 50 y 100, ponerlos en el arreglo
(A2)
 Si los números son mayores a 101 ponerlos en el arreglo 3 (A3)

53. Realice la traza del algoritmo para un arreglo como el siguiente:


12 3 2 31 1 0 7 19 12 2 5
0 1 2 3 4 5 6 7 8 9 10
(n=11)
ALGORITMO ¿ ... ?
Inicio
VARIABLES i, j , aux, n : entero
A[50] : entero /* arreglo de 50
elementos*/
Para (i=1; i <= n-1; i=i+1)
INICIO
Para (j=1; j<=n-i; j=j+1)
SI (A[ j ] >= A[ j+1 ]) ENTONCES
INICIO
aux = A[ j ]
A[ j ] = A[ j+1 ]
A[ j+1 ] = aux
FIN
FIN
FIN

54. 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.

55. Dado dos vectores V1 y V2 de dimensión n y m respectivamente (con n ≤ m) se


pide determinar si V1 es un sub conjunto de V2. Se dice que V1 es sub conjunto de V2
si todo elemento de V1 está presente en V2.

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;

¿Cuántas veces se comprueba la condición i<n?


¿Cuántas veces se comprueba la condición j<n?
¿Qué valor tiene m al finalizar la ejecución del algoritmo?

2) Considere el siguiente seudo-código:

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

a) ¿Cuando se detiene este algoritmo?


b) ¿Para que sirve la variable i?
c) ¿Se debe recibir alguna entrada del usuario?
d) ¿Qué resultado entrega el algoritmo?
e) Suponga que el usuario ingresa el número 3, ¿Que resultado entrega el
algoritmo? Indicación: Rutee el algoritmo

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 )

1  12  24  63  84  105  126  ....


56. Realice un programa en C, que implemente una calculadora que realiza sólo dos
operaciones : el factorial de un número y que imprima la tabla de multiplicar de un
número dado. Estas operaciones las implementa mediante dos funciones que
reciben como entradas al número a utilizar, la función factorial retorna como
resultado el número entero factorial y la función que genera la tabla de multiplicar
no entrega resultado explícitamente sino que imprime en pantalla la tabla pedida
hasta el número 12.
Una descomposición del problema podría ser la siguiente :

Programa

Principal

Factorial Tabla de Mensajes de


Multiplicar Errores

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

57. El método de la división por restas sucesivas, consiste en restar sucesivamente el


divisor del dividendo hasta obtener un resultado menor que el divisor, que será el
resto de la división; el número de restas efectuadas será el cuociente.
Ejemplo : 50 ÷ 13 = 3(cuociente)
11(resto)
50 - 13 = 37
37 - 13 = 24
24 - 13 = 11 (resto) Número de restas = 3 (cuociente)
Se Pide a Ud. construir una función recursiva que entregue el modulo o resto de la
división.

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.

También podría gustarte