Está en la página 1de 17

1.

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;
printf("Bienvenido a su cajero virtual.\n");
printf("Seleccione una opcion:\n\n");
printf("1.Ingreso en cuenta.\n2.Reintegro.\n3.Ver el saldo disponible\
n0.Salir\n\nUsted ha marcado: ");
scanf("%d",&opc);
if(opc==1){
printf("\nBien, escriba el dinero que desee introducir: ");
scanf("%f",&din);
S=SI+din;
printf("\nIngreso realizado correctamente. Su saldo actual es de %f\
n",S);
}else if(opc==2){
printf("\nAhora, teclee la cantidad de capital que desea retirar: ");
scanf("%f",&dan);
if(dan>SI){
printf("\nError. No dispone de tanto sueldo.\n");
}else{
S=SI-dan;
printf("\nReintegro realizado correctamente. Su saldo actual es de
%f\n",S);
}
}else if(opc==3){
printf("\nSu saldo actual es de %d\n",SI);
}else if(opc==0){
printf("\nGracias por utilizar este programa.\n\n");
}else{
printf("\nDisculpe, se ha equivocado al marcar.\n\n");
}
}
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”)).

2. Programa que borre la pantalla al pulsar “Intro”.

#include <stdio.h>
#include <stdlib.h>
void main(){
char Espera;
printf("Programa de prueba de borrado de pantalla");
printf("\nPulsa intro");
scanf("%c",&Espera);
system("cls");
printf("Ha funcionado!, Hasta pronto.\n");
}

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

Será necesario el uso de un contador (i).

3. Programa que muestra los veinte primeros números naturales.

#include <stdio.h>
void main(){
int i=21;
const int tope=20;
for(i=0;i<=20;i=i+1){
printf("%d\n",i);
}
printf("\nHasta pronto");
}

4. Programa que muestra los números pares hasta 30.

#include <stdio.h>
void main(){
int i=31;
const int tope=30;
for(i=0;i<=30;i=i+2){
printf("%d\n",i);
}
printf("\nHasta pronto");
}

5. Programa que muestre los múltiplos de siete (hasta 123).

#include <stdio.h>
void main(){
int i=124;
const int tope=123;
for(i=0;i<=123;i=i+7){
printf("%d\n",i);
}
printf("\n,Hasta pronto");
}

6. Programa que muestre una cuenta atrás desde diez hasta cero.

#include <stdio.h>
void main(){
int i=10;
const int tope=0;
for(i=10;i>=0;i=i-1){
printf("%d\n",i);
}
printf("\nHasta pronto!\n");
}

7. Programa que muestre un menú de múltiplos (De 2,3,5,7,11).

#include <stdio.h>
void main(){
int x,i,y,t,r,s;
printf("\nBienvenido, seleccione la opcion que desee mostrar.\n");
printf("1.Multiplos de 2\n2.Multiplos de 3\n3.Multiplos de 5\
n4.Multiplos de 7\n5.Multiplos de 11\n\nNota:Exclusivamente mostrara hasta
100\n\n");
printf("Su opcion es:");
scanf("%d",&x);
if(x==1){
int i=100;
const int tope=100;
for(i=0;i<=100;i=i+2){
printf("%d\n",i);
}}else if(x==2){
int y=100;
const int tope=100;
for(y=0;y<=100;y=y+3){
printf("%d\n",y);
}}else if(x==3){
int t=100;
const int tope=100;
for(t=0;t<=100;t=t+5){
printf("%d\n",t);
}}else if(x==4){
int s=100;
const int tope=100;
for(s=0;s<=100;s=s+7){
printf("%d\n",s);
}}else if(x==5){
int r=100;
const int tope=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.

8. Programa que realice una cuenta atrás con un bucle de retardo.

#include <stdio.h>
void main(){
int i=10;
const int tope=1;
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.

While à Iteraciones >= 0.


Do while à Iteraciones >=1.

9. 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){
printf("\n\nEste numero es par.\n");
}else{
printf("\n\nEste numero es impar.\n");
}
}
printf("\nHasta luego.\n\n");
}

Aquí tenemos un extenso programa como ejemplo para demostrar la sencillez


y utilidad del bucle “do while”.

10. Programa que simule un calculadora científica de 25 funciones.

#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;
printf("Bienvenido a la calculadora de 25 funciones.\n\n");
do{
printf("Por favor, introduzca un numero (0 para salir): ");
scanf("%f",&x);
printf("\nAhora, inserte otro: ");
scanf("%f",&y);
printf("\n\nBien. Ya puede seleccionar una opcion:\n\n1.Sumar\
n2.Restar\n3.Multiplicar\n4.Dividir\n5.Indicar el mayor\n6.Raiz cuadrada del
primer numero\n7.Raiz cuadrada del segundo numero\n8.Cuadrado del primer
numero\n9.Cuadrado del segundo numero\n10.Raiz cubica del primer numero\
n11.Raiz cubica del segundo numero\n12.Coseno del primer numero\
n13.Coseno del segundo numero\n14.Seno del primer numero\n15.Seno del
segundo numero\n16.Tangente del primer numero\n");
printf("17.Tangente del segundo numero\n18.Cubo del primer
numero\n19.Cubo del segundo numero\n20.Inversa del primer numero\
n21.Inversa del segundo numero\n22.Logaritmo decimal del primer numero\
n23.Logaritmo decimal del segundo numero\n24.Logaritmo neperiano del
primer numero\n25.Logaritmo neperiano del segundo numero\n0.Salir\n\
nUsted ha marcado: ");
scanf("%d",&opc);
if(opc==1){
s=x+y;
printf("La suma de ambos numeros es %f\n\n",s);
}else if(opc==2){
d=x-y;
printf("La diferencia de ambos numeros es %f\n\n",d);
}else if(opc==3){
p=x*y;
printf("El producto de ambos numeros es %f\n\n",p);
}else if(opc==4){
c=x/y;
printf("El cociente de la razon de ambos numeros es %f\n\
n",c);
}else if(opc==5){
if(x>y){
printf("El mayor es %f\n\n",x);
}else if(y>x){
printf("El mayor es %f\n\n",y);
}else{
printf("Disculpe, estos dos numeros son iguales.\n\n");
}
}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);
printf("La raiz cuadrada del segundo numero es %f\n\n",sr);
}else if(opc==8){
res=x*x;
printf("El cuadrado del primer numero es %f\n\n",res);
}else if(opc==9){
ros=y*y;
printf("El cuadrado del segundo numero es %f\n\n",ros);
}else if(opc==10){
cb=cbrt(x);
printf("La raiz cubica del primer numero es %f\n\n",cb);
}else if(opc==11){
ch=cbrt(y);
printf("La raiz cubica del segundo numero es %f\n\n",ch);
}else if(opc==12){
co=cos(x);
printf("El coseno del primer numero es %f\n\n",co);
}else if(opc==13){
cop=cos(y);
printf("El coseno del segundo numero es %f\n\n",cop);
}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);
printf("El seno del segundo numero es %f\n\n",sep);
}else if(opc==16){
ta=tan(x);
printf("La tangente del primer numero es %f\n\n",ta);
}else if(opc==17){
tap=tan(y);
printf("La tangente del segundo numero es %f\n\n",tap);
}else if(opc==18){
cub=x*x*x;
printf("El cubo del primer numero es %f\n\n",cub);
}else if(opc==19){
cubp=y*y*y;
printf("El cubo del segundo numero es %f\n\n",cubp);
}else if(opc==20){
in=1/x;
printf("La inversa del primer numero es %f\n\n",in);
}else if(opc==21){
inp=1/y;
printf("La inversa del segundo numero es %f\n\n",inp);
}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);
printf("El logaritmo decimal del segundo numero es %f\n\
n",lop);
}else if(opc==24){
ln=log(x);
printf("El logaritmo neperiano del primer numero es %f\n\
n",ln);
}else if(opc==25){
lnp=log(y);
printf("El logaritmo neperiano del segundo numero es %f\n\
n",lnp);
}else if(opc==0){
printf("Gracias por utilizar este programa.\n\n");
}else{
printf("Disculpe, se ha equivocado al marcar.\n\n");
}
}while(x!=0);
}

11. Programa que muestre los divisores de un número introducido por el


usuario.

#include <stdio.h>
void main(){
int num;
printf("Bienvenido al programa para calcular los divisores de un
numero.\n\n");
while(num!=0){
printf("Introduzca un numero: ");
scanf("%d",&num);
printf("\n\nSus divisores son:\n");
for(int i=1; i<=num; i++){
if(num%i==0){
printf("\n\t\t\t\t\t%d\t\n",i);
}
}
printf("\n");
}
printf("\nGracias por utilizar este programa.\n\n");
}

12. 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(){
int sup,inf, opc;
double suma,prod;
printf("Bienvenido al programa de calculo con limites.\n\n");
do{
suma=0;
prod=1;
printf("Introduzca el limite superior: ");
scanf("%d",&sup);
printf("\nAhora, escriba el limite inferior: ");
scanf("%d",&inf);
printf("\n\nSeleccione una opcion:\n\n1.Suma\n2.Producto\n\nTeclee
su eleccion: ");
scanf("%d",&opc);
switch (opc){
case 1:
for(int i=inf;i<=sup;i++){
suma=suma+i;
}
printf("\n\nEl resultado es %f\n\n",suma);
break;
case 2:
for(int i=inf;i<=sup;i++){
prod=prod*i;
printf("%f",prod);
}
printf("\nEl resultado es %f\n\n",prod);
break;
default:printf("\nNo es un valor valido.\n\n");
}
}while(sup!=0);
printf("\n\nGracias por utilizar este programa. Le esperamos pronto.\n\
n");
}

13. Programa que calcule “x” términos de la sucesión de Fibonacci.

#include <stdio.h>
#include <stdlib.h>
void main(){
printf("Bienvenido al programa para calcular la progresion de
Fibonacci.\n\n");
int veces, primer=0,segun=1,proximo,r;
char borrado;
printf("Introduzca el numero de terminos: ");
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);
}
printf("\n\nGracias por utilizar este programa.\n\n");
}

14. Programa que demuestre la validez de la conjetura de Collatz.

#include <stdio.h>
void main(){
int n;
printf("Bienvenido al programa demostracion de la conjetura de Collatz.\
n\n");
printf("Inserte un numero: ");
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);
15. 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);
printf("Intenta adivinar el numero que he pensado entre 0 y 100.");
int bandera=0;
while (bandera==0){
printf("\n\nIntroduce numero: ");
scanf("%d",&num);
contador++;
if(num>x){
printf("\nMenor");
}else if(num<x){
printf("\nMayor");
}else{
printf("\n\nEnhorabuena! Lo has adivinado en %d intentos.\
n\n",contador);
bandera=1;
}
}
}

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

16. Programa de escritura en pantalla. Finaliza al pulsar la tecla “-“.

#include <stdio.h>
#include <conio.h>
void main(){
char c;
while (c!='-'){
c=getch();
printf("%c",c);
}
}

17. 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;
printf("Bienvenido al programa de escritura en C++.\n\nSi pulsa + y
posteriormente teclea Enter, se borrara todo lo escrito.\nSi pulsa -, dara por
concluida su sesion.\n\n");
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: -----------------------;
}

18. Programa que muestre el horario escolar del día.

#include <stdio.h>
void main(){
int x;
printf("Bienvenido. Introduzca el numero del dia de la semana a
consultar: ");
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;
case 5:printf("\n\nViernes:\n\nCiencias para el mundo
contemporaneo\nReligion\nFisica y Quimica\nLiteratura\nMatematicas\
nInformatica\n\nYa se ha terminado lo duro. Descansa hoy!\n\n");break;
case 6:printf("\n\nSabado:\n\nDeja el ordenador y disfruta del
dia!\n\n");break;
case 7:printf("\n\nDomingo:\n\nAprovecha el tiempo que mañana
hay que volver a empezar!\n\n");break;
default:printf("\n\nDisculpe, se ha equivocado al marcar.\n\n");
}
}
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:

19. Programa que genere manos de mus.

#include <stdio.h>
#include <time.h>
#include <stdlib.h>
void main(){
int x,y,z,o,opc;
do{
printf("Desea una mano de mus?:\n\n");
printf("1.Si\n2.No\n0.Salir\n");
printf("\nUsted ha introducido: ");
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);
}

También podría gustarte