Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Ejercicios Practicos de C++
Ejercicios Practicos de C++
#include <stdio.h>
void main(){
int X,Y,Z;
scanf("%d",&X);
scanf("%d",&Y);
Z=X+Y;
#include <stdio.h>
void main(){
float R,sol1;
scanf("%f",&R);
sol1=2*3.141592*R;
}
Programa que calcula la media aritmética de tres números cualesquiera.
#include <stdio.h>
void main(){
float a,b,c,M;
scanf("%f",&a);
scanf("%f",&b);
scanf("%f",&c);
M=(a+b+c)/3;
#include <stdio.h>
void main(){
float bma,bme,h,A;
scanf("%f",&bma);
scanf("%f",&bme);
scanf("%f",&h);
A=((bma+bme)*h)/2;
Ahora pasaremos a aprender operaciones aritméticas más complejas, como la raíz cuadrada
(sqrt). Para ello introducimos una nueva librería (<math.h>).
#include <stdio.h>
#include <math.h>
void main(){
int X,R;
scanf("%d",&X);
R=sqrt(X);
}
Programa que calcula el área de un triángulo (Fórmula de Herón).
#include <stdio.h>
#include <math.h>
void main(){
float a,b,c,sp,R;
scanf("%f",&a);
scanf("%f",&b);
scanf("%f",&c);
sp=(a+b+c)/2;
R=sqrt(sp*(sp-a)*(sp-b)*(sp-c));
#include <stdio.h>
void main(){
float c,I,t,F;
scanf("%f",&I);
scanf("%f",&t);
F=c+c*(I/100)*t;
Otro símbolo que necesitaremos a partir de ahora será el “%”, que sirve para calcular el resto de
una división. Podemos verlo en el siguiente ejemplo.
#include <stdio.h>
void main(){
int D,d,R;
scanf("%d",&D);
R=D%d;
10. Programa que calcula el precio de un objeto sin el impuesto de valor añadido (IVA).
#include <stdio.h>
void main(){
float X,IVA,R;
scanf("%f",&X);
IVA=(16*X/100);
R=X-IVA;
void main(){
int B,H,A;
scanf("%d",&B);
scanf("%d",&H);
A=B*H/2;
#include <stdio.h>
#include <math.h>
void main(){
float a,b,c,R;
scanf("%f",&a);
scanf("%f",&b);
printf("Por ultimo, escriba el tercer numero: ");
scanf("%f",&c);
R=cbrt(a*b*c);
Volver
Una de las estructuras más utilizadas en programación en C++ es el “if”. Sirve para el ordenador
distinga entre varios caminos posibles. Si hay más de uno, se utilizará “else” para señalar el
restante. Las condiciones van entre llaves.
Mayor
>
Menor
<
Igual
==
Distinto
!=
Mayor o igual
>=
Menor o igual
<=
13. Programa que indica qué numero de los dos introducidos por el usuario es mayor.
#include <stdio.h>
void main(){
int X,Y;
scanf("%d",&X);
scanf("%d",&Y);
if(X>Y){
}else if(Y>X){
}else{
}
}
14. Programa que escriba en pantalla un comentario con respecto a la temperatura del día.
#include <stdio.h>
void main(){
int X,Y;
scanf("%d",&X);
if(X<15){
}else if(X<25){
printf("\nClima templado\n");
}else{
printf("\nBuf!..Que calor!\n");
#include <math.h>
void main(){
float A,B,C,D,S,sol1,sol2;
scanf("%f",&A);
scanf("%f",&B);
scanf("%f",&C);
D=B*B-4*A*C;
if(D<0){
}else if(D==0){
S=-B/2*A;
}else{
sol1=(-B+sqrt(D))/(2*A);
sol2=(-B-sqrt(D))/(2*A);
Como posiblemente habréis notado, se han utilizado dos iguales para expresar la segunda
condición del anterior programa. Esto es porque se quiere lanzar una pregunta al ordenador, lo
que indica que no siempre es de ese modo. (¿Y si D=0?) Otro ejemplo donde se ve este fenómeno
con mayor facilidad:
16. Programa que indica la correspondencia de un número introducido por el usuario con un mes
del año (aconsejable realizarlo con SWITCH).
#include <stdio.h>
void main(){
int m;
printf("\n");
scanf("%d",&m);
if(m==1){
}else if(m==2){
}else if(m==4){
}else if(m==5){
}else if(m==6){
}else if(m==7){
}else if(m==8){
}else if(m==9){
}else if(m==10){
}else if(m==11){
}else if(m==12){
}else{
}
Muchas veces querremos realizar un programa que muestre un menú, es decir, una serie de
opciones para que nosotros decidamos a nuestra conveniencia. ¿Cómo se hace? Pues
simplemente tomando una nueva variable “opción”, de la que extraeremos su jugo con “if”.
17. Programa que simula un cajero automático con un saldo inicial de 1000 Euros.
#include <stdio.h>
void main(){
int SI,opc;
float din,dan,S;
SI=1000;
scanf("%d",&opc);
if(opc==1){
scanf("%f",&din);
S=SI+din;
}else if(opc==2){
scanf("%f",&dan);
if(dan>SI){
}else{
S=SI-dan;
}else if(opc==3){
}else if(opc==0){
}else{
En determinadas ocasiones nos será de mucha utilidad el poder borrar lo escrito en pantalla. Para
ello debemos utilizar una nueva librería (<stdlib>) que contenga la instrucción para que se
produzca el borrado. (system(“cls”)).
18. Programa que borre la pantalla al pulsar “Intro”.
#include <stdio.h>
#include <stdlib.h>
void main(){
char Espera;
printf("\nPulsa intro");
scanf("%c",&Espera);
system("cls");
Volver
Una vez visto cómo se realiza un borrado de pantalla, pasaremos a ver los bucles en C++, que
realizan tareas repetitivas. El primero de ellos es el bucle “for”. Lo usaremos siempre que
conozcamos el número de iteraciones (Desde – hasta).
#include <stdio.h>
void main(){
int i=21;
for(i=0;i<=20;i=i+1){
printf("%d\n",i);
printf("\nHasta pronto");
#include <stdio.h>
void main(){
int i=31;
for(i=0;i<=30;i=i+2){
printf("%d\n",i);
}
printf("\nHasta pronto");
#include <stdio.h>
void main(){
int i=124;
for(i=0;i<=123;i=i+7){
printf("%d\n",i);
printf("\n,Hasta pronto");
22. Programa que muestre una cuenta atrás desde diez hasta cero.
#include <stdio.h>
void main(){
int i=10;
for(i=10;i>=0;i=i-1){
printf("%d\n",i);
printf("\nHasta pronto!\n");
#include <stdio.h>
void main(){
int x,i,y,t,r,s;
scanf("%d",&x);
if(x==1){
int i=100;
for(i=0;i<=100;i=i+2){
printf("%d\n",i);
}}else if(x==2){
int y=100;
for(y=0;y<=100;y=y+3){
printf("%d\n",y);
}}else if(x==3){
int t=100;
for(t=0;t<=100;t=t+5){
printf("%d\n",t);
}}else if(x==4){
int s=100;
for(s=0;s<=100;s=s+7){
printf("%d\n",s);
}}else if(x==5){
int r=100;
for(r=0;r<=100;r=r+11){
printf("%d\n",r);
}}else{
printf("Se ha equivocado.\n\n");
}
Cuando no deseemos que el ordenador vaya tan rápido, hay que meterle instrucciones inútiles
que no se pinten en pantalla (Bucle de retardo), como por ejemplo una cuenta atrás del
159999999 al 0.
24. Programa que realice una cuenta atrás con un bucle de retardo.
#include <stdio.h>
void main(){
int i=10;
for(i=10;i>=1;i=i-1){
printf("%d\n",i);
int k=159999999;
for(k=159999999;k>=1;k=k-1);
printf("\nPUM!\n");
}
En los bucles “while” y “do while” no es necesario conocer el número de iteraciones.
25. Programa que diga si un número es par o no. Finaliza al pulsar “0”.
#include <stdio.h>
void main(){
int num;
printf("Por favor, escribe el numero que quieras.Te diremos si es par o impar: ");
while (num!=0){
scanf("%d",&num);
if(num%2==0){
}else{
printf("\nHasta luego.\n\n");
}
Aquí tenemos un extenso programa como ejemplo para demostrar la sencillez y utilidad del bucle
“do while”.
#include <stdio.h>
#include <math.h>
void main(){
float x,y,s,d,p,c,sr,rq,res,ros,cb,ch,co,cop,se,sep,ta,tap,cub,cubp,in,inp,lo,lop,ln,lnp;
int opc;
do{
scanf("%f",&x);
scanf("%f",&y);
scanf("%d",&opc);
if(opc==1){
s=x+y;
}else if(opc==2){
d=x-y;
}else if(opc==3){
p=x*y;
}else if(opc==4){
c=x/y;
}else if(opc==5){
if(x>y){
}else if(y>x){
}else{
}else if(opc==6){
rq=sqrt(x);
printf("La raiz cuadrada del primer numero es %f\n\n",rq);
}else if(opc==7){
sr=sqrt(y);
}else if(opc==8){
res=x*x;
}else if(opc==9){
ros=y*y;
}else if(opc==10){
cb=cbrt(x);
}else if(opc==11){
ch=cbrt(y);
}else if(opc==12){
co=cos(x);
}else if(opc==13){
cop=cos(y);
}else if(opc==14){
se=sin(x);
printf("El seno del primer numero es %f\n\n",se);
}else if(opc==15){
sep=sin(y);
}else if(opc==16){
ta=tan(x);
}else if(opc==17){
tap=tan(y);
}else if(opc==18){
cub=x*x*x;
}else if(opc==19){
cubp=y*y*y;
}else if(opc==20){
in=1/x;
}else if(opc==21){
inp=1/y;
}else if(opc==22){
lo=log10(x);
printf("El logaritmo decimal del primer numero es %f\n\n",lo);
}else if(opc==23){
lop=log10(y);
}else if(opc==24){
ln=log(x);
}else if(opc==25){
lnp=log(y);
}else if(opc==0){
}else{
}while(x!=0);
27. Programa que muestre los divisores de un número introducido por el usuario.
#include <stdio.h>
void main(){
int num;
while(num!=0){
scanf("%d",&num);
if(num%i==0){
printf("\n\t\t\t\t\t%d\t\n",i);
printf("\n");
28. Programa que calcule la suma o el producto de los números comprendidos entre los límites
marcados por el usuario.
#include <stdio.h>
void main(){
double suma,prod;
do{
suma=0;
prod=1;
scanf("%d",&sup);
scanf("%d",&inf);
scanf("%d",&opc);
switch (opc){
case 1:
for(int i=inf;i<=sup;i++){
suma=suma+i;
break;
case 2:
for(int i=inf;i<=sup;i++){
prod=prod*i;
printf("%f",prod);
}
break;
}while(sup!=0);
#include <stdio.h>
#include <stdlib.h>
void main(){
char borrado;
scanf("%d",&veces);
scanf("%c",&borrado);
system("cls");
printf("He aqui la sucesion de %d terminos: \n",veces);
for(int i=0;i<=veces;i++){
r=primer+segun;
primer=segun;
segun=r;
printf("\n\t\t\t\t%d",r);
#include <stdio.h>
void main(){
int n;
scanf("%d",&n);
printf("\n");
while(n!=1){
if (n%2==0) {
printf("%d\t",(n/=2));
}else{
n=(3*n)+1;
printf("%d\t",n);
printf("\n");
Ahora vamos a realizar un programa con números aleatorios. Para ello debemos utilizar el reloj del
ordenador (No se repitan los mismos valores una y otra vez), con la consiguiente aparición de una
nueva librería (<time>).
srand((unsigned)time(NULL))
El problema es que el ordenador puede inventar números aleatorios desde uno hasta dos elevado
a quince. Es muy útil saber poner un límite.
Número aleatorio=rand()%(Tope+1);
31. Programa que invente un número para que lo adivine el usuario, colocando un contador de
intentos.
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
void main(){
int x,num,contador=0;
srand((unsigned)time(NULL));
x=rand()%(101);
int bandera=0;
while (bandera==0){
scanf("%d",&num);
contador++;
if(num>x){
printf("\nMenor");
}else if(num<x){
printf("\nMayor");
}else{
bandera=1;
}
Volver
Una vez visto ejemplos de bucles, pasemos a explicar la toma de caracteres (getch). Para ello hay
que introducir una nueva librería (<conio>), prototipo necesario para la instrucción
#include <stdio.h>
#include <conio.h>
void main(){
char c;
while (c!='-'){
c=getch();
printf("%c",c);
33. Programa de escritura en pantalla con función de poder borrar lo escrito hasta el momento.
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
void main(){
char c;
char Espera;
while (c!='-'){
c=getch();
printf("%c",c);
if(c=='+'){
scanf("%c",&Espera);
system("cls");
Como habréis visto en el programa de la calculadora científica, el uso del “ else if” es
extremadamente extenso. Es muy aconsejable realizar ese tipo de programas con la estructura
siguiente:
Switch(opción){
Case 1: -------------------------;
Break;
Case2: ------------------------;
Break;
Default: -----------------------;
#include <stdio.h>
void main(){
int x;
scanf("%d",&x);
switch(x){
case
1:printf("\n\nLunes:\n\nReligion\nDibujo\nInformatica\nIngles\nLiteratura\nMatematicas\nFisica
y Quimica\n\nVamos a por la semana!\n\n");break;
case 2:printf("\n\nMartes:\n\nFilosofia\nDibujo\nMatematicas\nLiteratura\nEducacion
fisica\nFisica y Quimica\n\nHoy hay una horita menos!\n\n");break;
case 3:printf("\n\nMiercoles:\n\nFisica y
Quimica\nDibujo\nIngles\nInformatica\nCiencias para el mundo
contemporaneo\nFilosofia\nTutoria\n\nMitad de jornada, anima la moral!\n\n");break;
case
4:printf("\n\nJueves:\n\nFilosofia\nDibujo\nLiteratura\nInformatica\nIngles\nEducacion
Fisica\nMatematicas\n\nVenga, que mañana es viernes!\n\n");break;
Otra estructura muy práctica es el uso de || (ctrl. + alt + 1). Indica unión. Lo único que hay que
recordar es que no soporta más de una separación, es decir:
(num=x)||(num=y) à Bien
(num=x)||(num=y)||(num=z) à Mal
Luego habrá que hacer uso frecuente del paréntesis, como por ejemplo:
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
void main(){
int x,y,z,o,opc;
do{
printf("1.Si\n2.No\n0.Salir\n");
scanf("%d",&opc);
if(opc==1){
srand((unsigned)time(NULL));
do{
x=rand()%(13);
}while(((x==8)||(x==9))||(x==0));
do{
y=rand()%(13);
}while(((y==8)||(y==9))||(y==0));
do{
z=rand()%(13);
}while(((z==8)||(z==9))||(z==0));
do{
o=rand()%(13);
}while(((o==8)||(o==9))||(o==0));
printf("\n\n%d\t\t%d\t\t%d\t\t%d\t\t",x,y,z,o);
printf("\n\n");
else if(opc==2){
printf("\n\nMas tarde entonces.\n\n");
}else{
printf("\nHasta pronto.\n\n");
}while(opc!=0);
#include <stdio.h>
void main(){
while(num!=0){
scanf("%d",&num);
if(num%i!=0){
printf("\nPrimo\n");
}else{
printf("\nNo primo\n");
}
printf("\n");
#include <stdio.h>
#include <math.h>
void main(){
float l,d;
do{
scanf("%f",&l);
d=sqrt(l*l+l*l);
}while(l!=0);
}
38. Programa que pregunte un número para contestar su correspondencia en código ASCII. Incluye
una opción para ver el abecedario (desde el 97 hasta el 122).
#include<stdio.h>
void main(){
int i,num;
do{
scanf("%d",&num);
if(num==256){
for(i=97;i<=122;i++){
}else{
for(i=1;i<=255;i++);
i=num;
}while(num!=0);
}
39. Programa que cuente el número de vocales de un texto escrito por el usuario.
#include <stdio.h>
#include <conio.h>
void main(){
int bandera=0,a=0,e=0,i=0,o=0,u=0;
char c;
while(bandera==0){
c=getche();
if(c=='a'){
a++;
}else if(c=='e'){
e++;
}else if(c=='i'){
i++;
}else if(c=='o'){
o++;
}else if(c=='u'){
u++;
}else if(c=='-'){
bandera=1;
}else{
bandera=0;
printf("\n\n\t\t\tRecuento de vocales\n");
#include <stdio.h>
void main(){
int i,num,fact=1;
scanf("%d",&num);
for(i=num;i>1; i--){
fact=fact*i;
#include <stdlib.h>
#include <time.h>
void main(){
int a;
srand((unsigned)time(NULL));
printf("\n\n");
a=rand()%(3);
if(a==1){
printf("\t\t\t\t%d - 1\n",i);
}else if(a==2){
printf("\t\t\t\t%d - 2\n",i);
}else{
printf("\t\t\t\t%d - X\n",i);
}
}
42. Programa que simule el lanzamiento de una moneda las veces que el usuario desee,
posteriormente hará un recuento de las veces que ha salido tanto cara como cruz.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void main(){
int x,veces,cara=0,cruz=0;
srand((unsigned)time(NULL));
scanf("%d",&veces);
for(int i=1;i<=veces;i++){
x=rand()%(2);
if(x==1){
printf("\nCara\n\n");
cara++;
}else{
printf("\nCruz\n\n");
cruz++;
printf("\n\tRecuento\n\n");