Banco de Preguntas Segundo Parcial Programacion 2 2021
Banco de Preguntas Segundo Parcial Programacion 2 2021
Banco de Preguntas Segundo Parcial Programacion 2 2021
BANCO DE PREGUNTAS
SEGUNDO PARCIAL
DOCENTES PARTICIPANTES:
LA PAZ – BOLIVIA
II / 2021
1
UIDADES TEMÁTICAS A EVALUAR:
• Algoritmos Repetitivos
• Fundamentos de Programación
El contenido de las unidades temáticas está reflejado en los siguientes ejercicios a
través de la utilización de estructuras repetitivas y fundamentos de programación en
el Lenguaje C++, mismos que fueron organizados a partir de su complejidad.
EJERCICIO DE COMPLEJIDAD SIMPLE: (CONTADORES, LOTES DE
NÚMEROS)
NOTA: 3 Puntos
Puntos a evaluar:
Análisis: 0,5 Pts
Pseudocódigo: 1 Pt.
Diagrama de Flujo: 1 Pt.
Prueba de escritorio: 0,5 Pts
2
2. Hacer un algoritmo para calcular el resto y cociente por medio de restas
sucesivas
3
3. Realizar un algoritmo que nos permita saber cuál es el número mayor y
menor, se debe ingresar sólo veinte números.
4
4. Hacer un algoritmo que imprima la tabla de multiplicar de números del uno
al nueve.
5
6. Realice un algoritmo en el que se introduzca 5 números y se halle la suma de
los números pares.
6
7. Realice el algoritmo que lea 5 número e indique si se ha introducido algún
número par.
7
8. Hacer un algoritmo para determinar la media de una lista de números positivos,
se debe acabar el programa al ingresar un número negativo.
8
9. Realizar el diagrama de flujo, para pedir un lote de números hasta que se introduzca
un número negativo, de los cuales se debe sumar solo los números primos. Ejemplo,
si ingresan 4, 7, 5, 41, 22, -6 se muestra la suma es S=7+5+41=53
9
10. Un docente desea saber cual es promedio de las notas de un curso para ello
se necesita saber cuantos estudiantes hay (N) y cuales son las notas de cada
uno.
10
EJERCICIO DE COMPLEJIDAD MEDIA: (DIVISORES, DESCOMPOSICION DE
DÍGITOS)
NOTA: 3 Puntos
Puntos a evaluar:
Análisis: 0,5 Pts.
Diagrama de Flujo: 1 Pt.
Prueba de escritorio: 0,5 Pts.
Código en C++: 1 Pt.
11
1. Dado un numero entero positivo de más de 3 dígitos, componer un numero
con los dígitos que son números primos.
Ejemplo
Si 35689
Entonces el nuevo numero es 53
DIAGRAMA DE FLUJO
PSEUDOCODIGO
Algoritmo sin_titulo
Repetir
Escribir "ingrese un numero de mas de 3 digitos"
Leer X
Hasta Que X>0
NN = 0
c=0
Mientras X>0 Hacer
12
D = X MOD 10
X = TRUNC(X/10)
Para i<-1 Hasta D Hacer
Si D MOD i=0 Entonces
c = c+1
FinSi
FinPara
Si c=2 Entonces
NN = NN*10+D
FinSi
C=0
FinMientras
Escribir "EL NUMERO COMPUESTO POR LOS DIGITPOS PRIMOS ES", NN
FinAlgoritmo
CODIGO FUENTE
#include<iostream>
using namespace std;
int main() {
float c;
int d, i;
float nn;
int x;
do { cout << "ingrese un numero de mas de 3 digitos" << endl;
cin >> x;
} while (x<=0);
nn = 0;
c = 0;
while (x>0) {
d = x%10;
x = int(x/10);
for (i=1;i<=d;i++) {
if (d%i==0) {
c = c+1;
}
}
if (c==2) {
nn = nn*10+d;
}
c = 0;
}
cout << "EL NUMERO COMPUESTO POR LOS DIGITPOS PRIMOS ES" << nn << endl;
return 0;
}
13
2. Dado un numero W armar un numero con los divisores del número menores
que el numero
Por ejemplo
Si W=12 sus divisores menores son 1,2,3,4,6, entonces el NN=12346
DIAGRAMA DE FLUJO
PSEUDOCODIGO
Algoritmo sin_titulo
Repetir
Escribir "INGRESAR UN NUMERO POSITVO"
Leer X
Hasta Que X>0
NN = 0
Para i<-1 Hasta X-1 Hacer
Si X MOD i =0 Entonces
NN = NN*10+i
FinSi
FinPara
Escribir "el numero conofmado por los divisores es" , NN
FinAlgoritmo
14
CODIGO FUENTE
#include<iostream>
using namespace std;
int main() {
int i, nn, x;
do {
cout << "INGRESAR UN NUMERO POSITVO" << endl;
cin >> x;
} while (x<=0);
nn = 0;
for (i=1;i<=x-1;i++) {
if (x%i==0) {
nn = nn*10+i;
}
}
cout << "el numero conofmado por los divisores es" << nn << endl;
return 0;
}
Ej: N= 5432 → 52 + 4! + 32 + 2! = 25 + 24 + 9 + 2 = 60
{
int N, X, F, Y;
float Suma;
cout<<endl<<"Ingrese Numero:";
cin>>N;
while (N>0)
{
X=N%10;
N=N/10;
Y=X%2;
F=1;
if (Y==0)
{
for (int I=X;I>=1;I--)
{
F=F*I;
}
}
else
{
F=X*X;
}
Suma=Suma + F;
}
cout<<endl<<"LA SUMA DE TERMINOS ES: "<<Suma<<endl;
}
15
4. Realizar un programa para ingresar un número entero positivo de 2 dígitos
(hacer la verificación de este requisito), realizar el proceso para hallar y
visualizar la suma de todos los residuos de cada división desde 1 hasta el
número ingresado.
16
17
6. Hacer un algoritmo que nos permita saber si un número es un número perfecto.
Un número es perfecto si la suma de sus divisores menores que el da igual al
mismo número.
Por ejemplo, X=8
DIVISORES 1,2,4
S= 1+2+4 =7 ENTONCES 8 NO ES PERFECTO
18
7. Diseñar un algoritmo que nos permita convertir un numero decimal a
hexadecimal.
19
20
8. Separa un número entero en sus dígitos, luego mostrarlos uno por uno y su
posición de izquierda a derecha.
21
EJERCICIO DE COMPLEJIDAD ALTA: (SERIES SUCESIONES Y SUMATORIA,
MISCELANEAS)
NOTA: 4 Puntos
Puntos a evaluar:
Diagrama de Flujo: 1,5 Pts.
Prueba de escritorio: 1 Pt.
Código en C++:1,5 Pts.
22
1. Generar los N términos de la siguiente serie
Si N=6
DIAGRAMA DE FLUJO:
PSEUDOCODIGO:
Algoritmo sin_titulo
Repetir
Escribir 'INGRESE EL TAMANIO DEL TRIANGULO'
Leer N
Hasta Que N>0
n2 <- N
N1 <- N
C <- N*2-1
23
Para i<-1 Hasta N1 Hacer
Para j<-1 Hasta n2 Hacer
Escribir C, " " Sin Saltar
C = C-2
FinPara
Escribir " "
C = N*2-1
N2 = N1-i
FinPara
FinAlgoritmo
CODIGO EN C++:
#include<iostream>
using namespace std;
int main() {
float c;
float i;
float j;
float n;
float n1;
float n2;
do {
cout << "INGRESE EL TAMANIO DEL TRIANGULO" << endl;
cin >> n;
} while (n<=0);
n2 = n;
n1 = n;
c = n*2-1;
for (i=1;i<=n1;i++) {
for (j=1;j<=n2;j++) {
cout << c << " ";
c = c-2;
}
cout << " " << endl;
c = n*2-1;
n2 = n1-i;
}
return 0;
}
24
2. Realizar un programa para introducir un número entero por teclado y visualizar
en pantalla el siguiente triángulo de números. EJEMPLO: N=7
1111111
222222
33333
4444
555
66
7
int main ()
{
int N,i,j,y,x;
cout<<"Programa para formar un triangulo de
numeros"<<endl;
cout<<"Introducir un numero entero: ";
cin>>N;
y=N;
for (i=1;i<=N;i++)
{
for (j=1;j<=y;j++)
{
cout<<i<<" ";
}
y=y-1;
cout<<endl;
}
25
4. Hacer un algoritmo que cumpla con la aproximación del número pi con la
serie:
26
27
5. Calcule la siguiente sumatoria, para n términos.
28
PROGRAMA EN C++
#include<iostream>
#include<math.h>
using namespace std;
main()
{
int a,f,i,j,n;
float s,x;
cout << "Introduce el valor de x";
cin >> x;
cout << "Introduce el tamaño de la serie ";
cin >> n;
a = 1;
for (i=1;i<=n;i++) {
f = 1;
for (j=1;j<=a;j++)
{
f = f*j;
}
if (i%2==1)
{
s = s+((pow(x,a))/f);
}
else
{
s = s-((pow(x,a))/f);
}
a = a+2;
}
cout << "El valor del Seno de x es: " << s;
}
29
30
7. Escriba un programa que determine si dos números son amigos. Los números
amigos son dos números enteros positivos a y b tales que la suma de los
divisores propios de uno es igual al otro número y viceversa.
El ejemplo más conocido es el de 220 y 284.
Los divisores de 220 son 1, 2, 4, 5, 10, 11, 20, 22, 44, 55, 110.
Si hacemos la suma 1+2+4+5+10+11+20+22+44+55+110 = 284.
igual, los divisores de 284 son 1, 2, 4, 71, 142.
Al sumarlos 1+2+4+71+142 = 220
Así vemos como 220 y 284 son números amigos
DIAGRAMA DE FLUJO
31
PSEUDOCODIGO
Algoritmo sin_titulo
sa = 0
sb = 0
Repetir
Escribir "ingrese numero a"
Leer a
Hasta Que a>0
Repetir
Escribir "ingrese numero b"
Leer b
Hasta Que b>0
Para i<-1 Hasta a-1 Hacer
Si a mod i=0 Entonces
sa = sa+i
FinSi
FinPara
Para i<-1 Hasta b-1 Hacer
Si b mod i=0 Entonces
sb = sb+i
FinSi
FinPara
Si sa=b & sb=a Entonces
Escribir sa, " "
Escribir sb, " "
Escribir "numeros amigos"
SiNo
Escribir sa, " "
Escribir sb," "
Escribir "no son numeros amigos"
FinSi
FinAlgoritmo
CODIGO FUENTE
#include<iostream>
using namespace std;
int main() {
int a, b, i, sa, sb;
sa = 0;
sb = 0;
do {
cout << "ingrese numero a" << endl;
cin >> a;
} while (a<=0);
do {
32
cout << "ingrese numero b" << endl;
cin >> b;
} while (b<=0);
for (i=1;i<=a-1;i++) {
if (a%i==0) {
sa = sa+i;
}
}
for (i=1;i<=b-1;i++) {
if (b%i==0) {
sb = sb+i;
}
}
if (sa==b && sb==a) {
cout << sa << " " << endl;
cout << sb << " " << endl;
cout << "numeros amigos" << endl;
} else {
cout << sa << " " << endl;
cout << sb << " " << endl;
cout << "no son numeros amigos" << endl;
}
return 0;
}
33
PSEUDOCODIGO:
Algoritmo sin_titulo
pd = 0
Repetir
Escribir "ingrese cantidad de productos"
Leer n
Hasta Que n>0
Escribir "ingrese los precios de los productos"
Para i<-1 Hasta n Hacer
Escribir "producto", i, " precio "
Leer p
Escribir "tipo"
Leer t
Segun t Hacer
34
1:
pd = p-p*0.05
2:
pd = p- p*0.07
3:
pd = p-p*0.1
De Otro Modo:
pd = p
FinSegun
total = total +pd
FinPara
Escribir "su compra es por el total de :", total
Escribir "con cuanto pagara"
Leer pago
cambio = pago-total
Escribir "total----->",total
Escribir "Pago con----->", pago
Escribir "su cambio es------> ", cambio
FinAlgoritmo
CODIGO EN C++:
#include<iostream>
using namespace std;
int main() {
float cambio;
float i;
float n;
float p;
float pago;
float pd;
int t;
float total;
pd = 0;
do {
cout << "ingrese cantidad de productos" << endl;
cin >> n;
} while (n<=0);
cout << "ingrese los precios de los productos" << endl;
for (i=1;i<=n;i++) {
cout << "producto" << i << " precio " << endl;
cin >> p;
cout << "tipo" << endl;
cin >> t;
switch (t) {
case 1:
pd = p-p*0.05;
break;
case 2:
35
pd = p-p*0.07;
break;
case 3:
pd = p-p*0.1;
break;
default:
pd = p;
}
total = total+pd;
}
cout << "su compra es por el total de :" << total << endl;
cout << "con cuanto pagara" << endl;
cin >> pago;
cambio = pago-total;
cout << "total----->" << total << endl;
cout << "Pago con----->" << pago << endl;
cout << "su cambio es------> " << cambio << endl;
return 0;
}
CODIGO EN C++
#include<iostream>
using namespace std;
main()
{
int a,ano,c,dia,mes,s;
cout << "Numero magico\n";
cout << "Formato: aaaammdd\n";
do
{
cout << "Año";
cin >> ano;
} while (ano<=0);
do
{
cout << "Mes";
cin >> mes;
} while (!(mes>0 && mes<=12));
do
{
cout << "Dia";
36
cin >> dia;
} while (!(mes>0 && dia<=31));
cout << ano << "-" << mes << "-" << dia<<"\n";
n = ano*10000+mes*100+dia;
cout << n<<"\n";
s = 0;
c = 0;
do
{
s=0;
while (n!=0)
{
a = n%10;
n = n/10;
s = s+a;
}
n = s;
} while (s>=10);
cout << s << "\n";
}
37
10. Durante la emisión de un programa televisivo de una hora se realizan cuatro
cortes comerciales, ingresar el tiempo de duración de cada corte comercial,
cada segundo de comercial cuesta 10Bs. en ese horario. Calcular los siguientes
elementos:
• Tiempo total de comerciales.
• Tiempo medio de duración de todos los comerciales
• Ingreso obtenido por cada corte comercial.
• Ingreso total obtenido en el programa.
38
PSEUDOCODIGO:
Proceso COMERCIALES
Definir i,seg Como Entero
t=0
ti=0
ic = 0
Para i<-1 Hasta 4 Hacer
Escribir "Ingrese el tiempo de un comercial: "
Leer seg
t = t + seg
ic = 10*seg
Escribir "El costo de cada comercial es: ", ic
ti= ti + ic
FinPara
Escribir "El tiempo total de los comerciales es: ",t
tm= t/4
Escribir "El tiempo medio de los comerciales es: ", tm
Escribir "El ingreso total obtenido es: ", ti
FinProceso
39