Академический Документы
Профессиональный Документы
Культура Документы
Escribir un programa en C++ que permita ingresar una hora ( en horas, minutos y
segundos) e imprima la hora un segundo despus.
Solucion :
#include <iostream.h>
#include <stdlib.h>
void main()
{ int ns, hf, mf, sf, hh, mm, ss;
cout<<"Ingrese hora";cin>>hh ;
cout<<"Ingrese minutos";cin>>mm;
cout<<"Ingrese segundos";cin>>ss;
ns= hh*360+mm*60+ss+1;
hf=ns/3600;
ns=ns-hf*3600;
mf=ns/60;
ns=ns-mf*60;
sf=ns;
cout<<"La nueva hora es:";
cout<<hf<<":"<<mf<<":"<<sf;
}
3
Escribir un programa en C++ que permita ingresar un numero entero que representa
una determinada cantidad de dinero e imprima cuantos billetes de 100, 50, 20, 10, 5
y 1 soles se necesitan.
Solucion :
#include <iostream.h>
#include <stdlib.h>
void main()
{ int nb100, nb50, nb20,nb10, nb5, nb1, n;
cout<<"ingrese Cantidad ";cin>>n ;
nb100=n/100;
n=n-nb100*100;
nb50=n/50;
n=n-nb50*50;
nb20=n/20;
n=n-nb20*20;
nb10=n/10;
n=n-nb10*10;
nb5=n/5;
n=n-nb5*5;
nb1=n;
cout<<"===>"<<nb1;
}
Un banco establece que la clave secreta para acceso a sus cajeros automaticos debe
ser un numero de cuatro digitos, tales que ninguno de ellos se repita y que la suma
de los dos digitos intermedios sea par. Escribir un programa en C++ que permita
ingresar un valor entero y si se trata de una clave valida imprimir el segundo digito
menor.
Solucion :
# include<iostream.h>
int IngresarClave();
void ValidarClave();
void MostrarSegundoMenor(int pc,int sc,int tc, int cc);
void main(){
ValidarClave();
}
int IngresarClave(){
int n;
cout<<"ingrese contrasea bancaria"<<endl;
cin>>n;
return n;
}
void ValidarClave(){
int pc,sc,tc,cc;
int n;
do{
n=IngresarClave() ;
pc=(n/1000);
sc=(n%1000)/100;
tc=((n%1000)%100)/10;
cc=(((n%1000)%100)%10)/1;
cout<<"Baja";
}
7
void main() {
int ano,mes;
cout<<"Ingrese ao:";cin>>ano;
cout<<"Ingrese mes:";cin>>mes;
if( mes==1 || mes==3 || mes==5 || mes==7 || mes==8 || mes==10 || mes==12 ){
cout<<"El Mes tiene 31 dias"<<endl;
}
if( mes==4 || mes==6|| mes==9 || mes==11 ){
cout<<"El Mes tiene 30 dias"<<endl;
}
if( mes==2 ){
de N
Solucion :
#include <iostream.h>
void main() {
int n,menor;
double largo,ancho,perimetro,area;
double largoMenor,anchoMenor;
cout<<"ingrese cantidad de Datos de Triangulos ";cin>>n ;
cout<<"Ingrese el Largo ";cin>>largo;
cout<<"Ingrese el Ancho ";cin>>ancho;
perimetro=2*largo+2*ancho;
menor=perimetro;
for( int i=2;i<=n;i++){
cout<<"Ingrese el Largo ";cin>>largo;
cout<<"Ingrese el Ancho ";cin>>ancho;
perimetro=2*largo+2*ancho;
if(perimetro<menor){
largoMenor=largo;
anchoMenor=ancho;
menor=perimetro;
}
}
cout<<"El Perimetro Menor es =="<<menor;
cout<<"\nEl Area del Perimetro Menor ==";cin>>area;
}
cout<<"Ingrese Numero===";cin>>n;
x=0;
while(n>0)
{
r=n%10;
n=n/10;
x=x*10+r;
acum=acum+r;
}
cout<<"Numero Inverso ==== "<<acum;
}
a[j]=a[j+1];
a [j+1]=resto;
} }while(sw!=1);
prom2=prom2+edad[i];
break;}
case 'C' : {
prom3=prom3+edad[i];
break;}
}
else {
if( ( sexo=='F') || ( sexo=='f')) {
switch(carrera ){
case 'A' : {
prom1=prom1+edad[i];
break;}
case 'B' : {
prom2=prom2+edad[i];
break;}
case 'C' : {
prom3=prom3+edad[i];
break;}
}
}
}
}
if( (prom1<prom2) && (prom1>prom3) )
{
menor=prom1;
car='A';
}
else {
){
j++;
}
else
{
while(( numero[j]==numero[(i-1)-j] ) && (j<=(i-1))
if(j==(i-1)){
j++;
cout<<" es capicua"<<endl;
}
}
} }
Solucion :
# include <iostream.h>
int factorial(int n);
void main(){
int a[100],i,n,s=0;
cout<<"ingrese cantidad de elementos"<<endl;
cin>>n;
for(i=0;i<=n;i++){
a[i+2]=a[i]+a[i+1];
}
s=0;
){
for(i=0;i<=n;i++){
s=s+a[i]/ factorial(i);
}
cout<<"La sumatoria de la serie es =="<<s<<endl;
}
int factorial(int n)
{
if( (n==0) || ( n==1) ) {
return 1;
}
else {
return n*factorial(n-1);
}
}
}
}
void main()
{
int term, fib;
cout<<"Ingrese termino de la serie de Fibonacci: ";
cin>>term;
fib = fibonacci(term);
cout<<"El termino "<<term<<" es "<<fib<<endl;
}
arreglos
Crea un array o arreglo unidimensional con un tamao de 5, asignale los valores numricos
manualmente (los que tu quieras) y muestralos por pantalla.
SeleccionarEsconder
Spoiler
1
2
3
4
5
6
7
8
9
Proceso Ejercicio1
//Declaramos variables
Definir num como entero;
Definir TAMANIO como entero;
TAMANIO<-5
//Definimos el array
Dimension num[TAMANIO]
//Asignamos valores
num[1]<-1
10
11
12
13
14
15
16
17
18
19
20
21
22
num[2]<-2
num[3]<-3
num[4]<-4
num[5]<-5
//Recorremos el array y mostramos su contenido
Para i<-1 Hasta TAMANIO Con Paso 1 Hacer
escribir num[i]
Fin Para
FinProceso
Modifica el ejercicio anterior para que insertes los valores numricos con leer mediante un bucle y
los muestre por pantalla.
SeleccionarEsconder
Spoiler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Proceso Ejercicio2
//Declaramos variables
Definir num como entero
Definir TAMANIO como entero;
TAMANIO<-5;
//Definimos el array
Dimension num[TAMANIO]
//Introducimos valores
Para i<-1 Hasta TAMANIO Con Paso 1 Hacer
Escribir "Introduce un valor para la posicin ",i
leer num[i]
Fin Para
//Recorremos el array y mostramos su contenido
Para i<-1 Hasta TAMANIO Con Paso 1 Hacer
escribir num[i]
FinPara
FinProceso
Crea un array o arreglo unidimensional con un tamao de 10, inserta los valores numricos que
desees de la manera que quieras y muestra por pantalla la media de valores del array.
Spoiler
1
Proceso Ejercicio3
SeleccionarEsconder
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
//Declaramos variables
Definir num como entero
Definir TAMANIO como entero
Definir suma Como Entero
TAMANIO<-10
//Definimos el array
Dimension num[TAMANIO]
//Introducimos valores
Para i<-1 Hasta TAMANIO Con Paso 1 Hacer
Escribir "Introduce un valor para la posicin ",i
leer num[i]
Fin Para
//Recorremos el array, sumando su contenido
Para i<-1 Hasta TAMANIO Con Paso 1 Hacer
suma<-suma+num[i]
FinPara
FinProceso
4) Crea un array o arreglo unidimensional donde tu le indiques el tamao por teclado y crear una
funcin que rellene el array o arreglo con los mltiplos de un numero pedido por teclado. Por
ejemplo, si defino un array de tamao 5 y eligo un 3 en la funcin, el array contendr 3, 6, 9, 12, 15.
Muestralos por pantalla usando otra funcin distinta.
Spoiler
SeleccionarEsconder
5) Crea dos arrays o arreglos unidimensionales que tengan el mismo tamao (lo pedir por teclado),
en uno de ellos almacenaras nombres de personas como cadenas, en el otro array o arreglo ira
almacenando la longitud de los nombres, para ello puedes usar la funcin LONGITUD(cadena) que
viene en PseInt. Muestra por pantalla el nombre y la longitud que tiene. Puedes usar funciones si lo
deseas.
SeleccionarEsconder
Funciones
) Escribe una funcin en pseudocdigo que devuelva el resultado de un nmero elevado a un
exponente dado.
Spoiler
SeleccionarEsconder
Papel:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2) Escribe una funcin en pseudocdigo que devuelva el trmino N (siendo N un nmero entero
positivo) de la serie de Fibonacci, esta sigue la siguiente serie: 1, 1, 2, 3, 5, 8, 13, 21
y as sucesivamente. Date cuenta, que para obtener un numero, suma los dos nmeros anteriores.
Por ejemplo, si introducimos un 3, la funcin nos devuelve el 2.
Spoiler
Papel:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
SeleccionarEsconder
18
19
20
21
22
23
resultado<-Fibonacci(posicion)
escribir resultado
Fin
PseInt:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
) Escribe una funcin en pseudocdigo que devuelva el rea de un crculo dado su radio. Recuerda
que para calcular el area, la formula es * r2
Spoiler
Papel:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
PseInt:
SeleccionarEsconder
1
2
3
4
5
6
7
8
9
10
11
Spoiler
Papel:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
PseInt:
SubProceso suma <- factorial ( numero )
1
suma<-numero
2
Para contador<-numero-1 hasta 1 con paso -1
3
suma<-suma*contador
4
FinPara
FinSubProceso
5
6
7
8
9
10
11
12
Proceso ejercicio_funciones_5
escribir "Introduce un numero"
leer numero
resultado<-factorial(numero)
escribir resultado
FinProceso
SeleccionarEsconder
13
5) Escribe una funcin en pseudocdigo que devuelva si un nmero dado es primo o no. Para que
un numero sea primo solo es divisible entre 1 y s mismo (por ejemplo, 13, 17, 19). Utilizando la
funcin, escribe un programa que escriba todos los nmeros primos entre 1 y un
nmero ledo desde el teclado. Piensa que debe devolver la funcin.
Spoiler
SeleccionarEsconder
Papel:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
PseInt:
SubProceso resultado<- primo ( cuenta_primos )
1
contador_divisores<-0
2
para divisor<-trunc(cuenta_primos^0.5) hasta 1 con paso -1
3
si (cuenta_primos MOD divisor=0) Entonces
4
contador_divisores<-contador_divisores+1
finSi
5
Finpara
6
Si (contador_divisores>=2) Entonces
7
resultado<-Falso
8
sino
9
resultado<-Verdadero
FinSi
10
11 FinSubProceso
12
13
14
15
16
17
18
19
20
21
22
23
Proceso ejercicio_funciones_5
Escribir "Introduce el limite"
Leer limite
Para cuenta_primos<-1 hasta limite Con Paso 1
Si(primo(cuenta_primos)=Verdadero) entonces
escribir cuenta_primos
FinSi
FinPara
FinProceso
6) Escribe una funcin en pseudocdigo que dado un nmero decimal (en base 10), entre 0 y 15,
devuelva el valor equivalente en sistema de numeracin binario(en este caso, un numero binario de
4 dgitos). Os aconsejo que los dgitos binarios sean una cadena, para que se puedan concatenar
entre s. Por ejemplo, si introducimos un 7, nos devuelva 0111. Si se introduce un numero menos
que 0 o mayor que 16, no mostrara un mensaje de error.
Spoiler
Papel:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
SeleccionarEsconder
30
PseInt:
SubProceso resultado <- DecAbin ( numero )
contador<-1
Mientras contador<5 Hacer
si numero mod 2= 0 Entonces
digito<-"0"
Sino
digito<-"1"
FinSi
numero<-trunc (numero/2)
resultado<-digito+resultado
contador<-contador+1
FinMientras
FinSubProceso
Proceso ejercicio_funciones_6
Escribir "Introduce un numero"
Leer numero
si (numero>=0 y numero<16) Entonces
resultado<-DecAbin(numero)
escribir resultado
Sino
Escribir "Introduce un numero entre 0 y 15"
FinSi
FinProceso
7) Escribe una funcin en pseudocdigo llamada ConversionMoneda () que permita convertir una
cantidad de dinero dada en dolares, libras o yenes a Euros. Estas son las equivalencias
aproximadas:
1 libra=1,22 euros
1 dolar=0,75 euros
1 yen=0.009 euros
Spoiler
SeleccionarEsconder
Papel:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Fin
PseInt:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
8) Los empleados de una fabrica trabajan en dos turnos, Diurno y Nocturno. Se desea calcular el
jornal diario de acuerdo a con las siguientes reglas:
Escribe una funcin en pseudocdigo llamada jornal() que tome como parmetros el n de horas,
el turno y el tipo de da (Festivo, Laborable) y nos devuelva el sueldo a cobrar. Escribe tambin
un algoritmo principal que pida el nombre del trabajador, el da de la semana, turno y n de horas
trabajadas, nos escriba el sueldo a cobrar usando la funcin anterior.
Ten en cuenta, que en la funcin nos pide el tipo de da pero en el algoritmo le pedimos al da es
decir, que debemos saber si el dia que introduce el usuario es festivo o no.
Spoiler
SeleccionarEsconder
Papel:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
"domingo":
tipo_dia<-"festivo"
FinSegun
sueldo<-jornal(n_horas, turno, tipo_dia)
Escribir "El trabajador " trabajador " cobra " sueldo " euros"
Fin
PseInt:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
"sabado":
tipo_dia<-"festivo"
"domingo":
tipo_dia<-"festivo"
FinSegun
sueldo<-jornal(n_horas, turno, tipo_dia)
Escribir "El trabajador " trabajador " cobra " sueldo " euros"
FinProceso
9) Algoritmo que dado un nmero entero (este numero no podra ser menor o igual que 0),
determine el nmero de cifras que tiene. Por ejemplo, si introduzco un 253, me devuelva un 3.
Spoiler
SeleccionarEsconder
Papel:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
PseInt:
SubProceso cifras <- Cuenta_cifras ( numero )
1
numero_auxiliar<-numero
2
cifras<-0
3
Mientras (numero_auxiliar>0) Hacer
4
numero_auxiliar<-trunc(numero_auxiliar/10)
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
cifras<-cifras+1
FinMientras
FinSubProceso
Proceso ejercicio_funciones_9
Escribir "Escribe un numero"
Leer numero
si (numero<=0) Entonces
Escribir "Introduce un numero mayor que 0"
sino
numero_cifras<-Cuenta_cifras(numero)
Escribir "El numero " numero " tiene " numero_cifras " cifras"
FinSi
FinProceso
) Escribe una funcin en pseudocdigo que dibuje una pirmide invertida en pantalla como la de la
figura. La altura se pasar como parmetro. Si se pasa una altura =0 o negativa, la funcin
devolver 1; en caso contrario devolver 0 (xito).
Ejemplo para altura = 5
*********
*******
*****
***
*
Spoiler
Papel:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
SeleccionarEsconder
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
FinSi
Fin-Funcion
Algoritmo principal
Var altura, resultado: numerica
Inicio
Escribir "Introduce la altura de la pirmide invertida"
leer altura
resultado<-pir_inver(altura)
si resultado=-1 entonces
Escribir "ha introducido una altura 0"
Sino
Escribir ""
Escribir "introducion de datos correcta"
FinSi
Fin
PSeInt:
SubProceso cod<-pir_inver(altura)
1
numast<-3+2*(altura-2)
2
nespacios<-numast
3
espacios=""
4
si altura=0 Entonces
cod<- (-1)
5
Sino
6
Para i<-numast hasta 1 con paso -2
7
numast<-i
8
para k<-0 hasta numast-nespacios Con Paso 1
9
espacios<-espacios+" "
FinPara
10
Escribir Sin Saltar espacios
11
para j<-1 hasta numast con paso 1
12
Escribir Sin Saltar "*"
13
FinPara
nespacios<-nespacios-2
14
Escribir ""
15
FinPara
16
cod<-0
17
FinSi
18 FinSubProceso
19
20
21
22
23
24
25
26
Proceso ejercicio_10
Escribir "Introduce la altura de la pirmide invertida"
leer altura
resultado<-pir_inver(altura)
si resultado=-1 entonces
Escribir "ha introducido una altura 0"
Sino
Escribir ""
27
28
29
30
31
32
33
34
ESTRUCTURA MIENTRAS
WHILE - DO WHILE
Esta estructura nos permite repetir un bloque de instrucciones con una condicion y se repite
siempre en cuanto esta condicion sea verdadera, sino no entra al ciclo miestras.
La estructura es la siguiente:
INICIO.
INSTRUCCION 1
MIENTRAS( CONDICION LOGICA) HAGA
INSTRUCCION 2
INSTRUCCION 3
FIN MIENTRAS
INSTRUCCION 4
FIN
El ciclo mientras (while) tiene que tener su final y salirse de el, tiene un limite y su limite es
hasta que la condicion ya no se cumpla, osea que sea falsa.
EJEMPLO:
Hacer un algoritmo que lea 5 numeros y determine la suma entre ellos.
INICIO
ENTERO: N, i, SUMA
i=1
SUMA=0
MIESTRAS(i <=5) HAGA
MOSTRAR( 'DIGITE UN NUMERO')
LEER (N)
SUMA= SUMA+N
i= i+1
FIN MIENTRAS
MOSTRAR ('LA SUMA ES:', SUMA)
FIN
Como vemos en la condicion al principio se cumple, pero como i se va incrementando, al llegar
hacer mayor que 5 se sale del mientras y termina la ejecucion.
Realizar un algoritmo para sumar consecutivamente y cuando la suma sea superior a 100 deje
de pedir nmeros y muestre el total.
INICIO
ENTERO: N SUMA
SUMA=0
MIENTRAS(SUMA<=100)
Algoritmo que permita obtener el promedio de la cantidad de nmeros que el usuario desee
digitar, preguntando ademas si desea continuar o no.
INICIO
ENTERO: SUMA, CONTADOR, N
CADENA: DECISIN
DECISIN = 'SI'
SUMA= 0
CONTADOR=0
MIENTRAS(DECISIN = 'SI') HAGA
MOSTRAR('DIGITE UN NUMERO')
LEER(N)
SUMA= SUMA+N
CONTADOR=CONTADOR+1
MOSTRAR('DESEA CONTINUAR')
LEER(DECISIN)
FIN MIENTRAS
PROMEDIO=SUMA/CONTADOR
MOSTRAR('EL PROMEDIO ES:', PROMEDIO)
FIN
Realizar un algoritmo que pida al usuario digitar un color y lo muestre, pero cuando el usuario
digita el color rojo se termine y lo indica.
INICIO
CADENA: COLOR
COLOR= ''
MIENTRAS( COLOR <> 'ROJO') HAGA
MOSTRAR('DIGITE COLOR')
LEER(COLOR)
MOSTRAR('EL COLOR ES:', COLOR)
FIN MIENTRAS
MOSTRAR('HA FINALIZADO')
FIN
Estructura repetitiva
Hacer un programa que lea nmeros y los acumule hasta que se ingrese cero.
Mostrar cuanto acumulo (es decir la suma de todos ellos)
Inicio
Switch = 1
Acumulador = 0
Mientras Switch = 1 hacer
Leer Numero
Si Numero = 0 entonces
Swtich = 0
Si no
acumulador = acumulador + Numero
Fin_si
Fin_mientras
Escribir La suma de todos ellos es :, acumulador
Fin
Observe que:
1.- El numero de vueltas no se conoce
2.- En cada vuelta acumulador acumula lo que tiene la variable numero
3.- el ejemplo puede quedar de la siguiente forma tambien:
Inicio
numero = 1
Acumulador = 0
Mientras numero <> 0 hacer
Leer numero
acumulador = acumulador + Numero
Fin_si
Fin_mientras
Escribir La suma de todos ellos es :, acumulador
Fin
En este caso la variable numero hace de switch y las vueltas son controladas por
la variable numero cuando se tenga que numero vale cero dejar de dar vueltas.
Ejercicios resueltos:
Ejercicio 1)
Hacer un programa que lea los resultados de los partidos de un equipo de
futbol ante sus adversarios y diga cuanto puntaje acumul, cuantos goles a
favor tiene y cuantos goles en contra tiene:
Inicio
Switch = 1
Golesfavor = 0
Golescontra = 0
Puntos = 0
PartidosJugados = 0
Mientras Switch = 1 hacer
Escribe Desea Registrar un partido (digite 1 para si o 0 para
no)
Leer Switch
Si Switch = 1 entonces
Escribir Introduce el resultado del partido:
Leer Golesmiequipo,Golesdeladversario
Si Golesmiequipo = Golesdeladversario entonces
Escribe Empate
Puntos = Puntos + 1
Fin_Si
Si Golesmiequipo > Golesdeladversario entonces
Escribe Ganamos
Puntos = Puntos + 3
Fin_Si
Si Golesmiequipo < Golesdeladversario entonces
Escribe Perdimos
Fin_Si
Golesfavor = Golesfavor + Golesmiequipo
Golescontra = Golescontra + Golesdeladversario
PartidosJugados = PartidosJugados + 1
Fin_si
Fin_Mientras
Escribe Puntos,Golesfavor,GolesContra
Fin
Recomiendo:
Haga un seguimiento de este ejercicio con variables y valores
Ejercicio 2 )
Hacer un algoritmo que realice las 50 primeras potencias de 5.
Inicio
desde n=1 hasta 50 hacer
Escribe 5^n
fin_desde
Fin
Ejercicio 3 )
Realizar un algoritmo que obtenga la suma de los nmeros pares hasta 100.
Inicio
suma = 0
numero = 2
mientras numero <= 100 hacer
suma = suma + numero
numero = numero + 2
fin_mientras
Fin
Ejercicio 4)
Hacer una tabla del multiplicador en forma creciente.
Inicio
Leer n
x=1
mientras x <= 12 hacer
R=n*x
Escribe n, x, R
x=x+1
fin_mientras
Fin
Ejercicio 5)
Hacer un programa que calcule el factorial de un nmero.
Inicio
Leer n
i=1
X=1
mientras X = 1 hacer
X=i*X
i=i+1
fin_mientras
Escribir X
Fin
Ejercicio 6)
Hacer un programa que calcule la suma y el producto de los
nmeros pares comprendidos entre 20 y 400 ambos inclusive.
Inicio
S=0
P=1
X = 20
mientras X <= 400 hacer
S=S+X
P=P*X
X=X+1
fin_mientras
Escribir S, P
Fin