Está en la página 1de 16

EJERCICIOS EN TURBO C++

Ejercicio: 01

Algoritmo que lea tres números y los muestre de forma descendente.

Solución:

#include<stdio.h>
#include<conio.h>
void main()
{
int a,b,c;
clrscs();
printf(“Ingrese el primer número:”);
scanf(“%d”,&a);
printf(“Ingrese el segundo número:”);
scanf(“%d”,&b);
printf(“Ingrese el tercer número:”);
scanf(“%d”,&c);
if((a>b)&&(a>c))
if(b>c)
printf(“\n Los números son:%d %d %d”, a,b,c );
else
printf(“\n Los números son:%d %d %d”, a,c,b);
if((b>a)&&(b>c))
if(a>c)
printf(“\n Los números son:%d %d %d”, b,a,c );
else
printf(“\n Los números son:%d %d %d”, b,c,a);
if((c>a)&&(c>b))
if(a>b)
printf(“\n Los números son:%d %d %d”, c,a,b );
else
printf(“\n Los números son:%d %d %d”, c,b,a);
getch();
}
Ejercicio: 02

Algoritmo que lea una edad y diga si es o no mayor de edad.

Solución:

#include<stdio.h>
#include<conio.h>
void main()
{
int x;
clrscr();
printf(“Ingrese la edad:”);
scanf(“%d”,&x);
if(x>=18)
printf(“\n Es mayor de edad”);
else
printf(“\n No es mayor de edad”);
getch();
}

Ejercicio: 03

Algoritmo que lea una edad y diga si es: Niño, adolescente, joven o adulto.

Solución:

#include<stdio.h>
#include<conio.h>
void main()
{
int x;
clrscr();
printf(“Ingrese la edad de la persona:”)
scanf(“%d”,&x);
if((x>=2)&&(x<=10))
{
printf(“\nLa persona es un niño”);
getch();
}
if((x>=11)&&(x<=17))
{
printf(“\nLa persona es un adolescente”);
getch();
}
if((x>=18)&&(x<=26))
{
printf(“\nLa persona es un joven”);
getch();
}
if((x>=27)&&(x<=60))
{
printf(“\nLa persona es un adulto”);
getch();
}
}
Ejercicio: 04

Algoritmo que calcule el promedio de tres notas, diga la máxima y mínima


nota.

Solución:

#include<stdio.h>
#include<conio.h>
void main()
{
int a,b,c;
float x;
clrscr();
x=0.0
printf(“Ingrese la primera nota:”);
scanf(“%d”,a);
printf(“Ingrese la segunda nota:”);
scanf(“%d”,b);
printf(“Ingrese la tercera nota:”);
scanf(“%d”,c);
x=(a+b+c)/3;
printf(“\nEl promedio es.:%f”,x);
if((a>b)&&(b>c))
{
printf(“\nLa nota máxima es:%d”,a);
printf(“\nLa nota mínima es:%d”,c);
getch();
}
if((a>c)&&(c>b))
{
printf(“\nLa nota máxima es:%d”,a);
printf(“\nLa nota mínima es:%d”,b);
getch();
}
if((b>a)&&(a>c))
{
printf(“\nLa nota máxima es:%d”,b);
printf(“\nLa nota mínima es:%d”,c);
getch();
}

if((b>c)&&(c>a))
{
printf(“\nLa nota máxima es:%d”,b);
printf(“\nLa nota mínima es:%d”,a);
getch();
}
if((c>a)&&(a>b))
{
printf(“\nLa nota máxima es:%d”,c);
printf(“\nLa nota mínima es:%d”,b);
getch();
}
if((c>b)&&(b>a))
{
printf(“\nLa nota máxima es:%d”,c);
printf(“\nLa nota mínima es:%d”,a);
getch();
}
getch();
}

Ejercicio: 05

Algoritmo que muestre los ¨n¨ primeros números positivos pares e impares que
pidamos.

Solución:

#include<stdio.h>
#include<conio.h>
void main(){
clrscr();
int i,n;
printf("¿Hasta qué número desea conocer los pares e impares?\n");
printf("Ingrese el valor:");
scanf("%d",&n);

if(n<=0)
{
printf("No hay valores para este número");
}

else {
{
for(i=2;i<=n;i+=2)
printf("Número par:%d\n",i);
getch();
}
{
for(i=1;i<=n;i+=2)
printf("\nNúmero impar:%d",i);
getch();
}
}
getch(); }
Ejercicio: 06

Algoritmo que muestra un menú de solo 5 opciones (suma, resta, producto y


división) y que podemos elegir cualquiera de ellos.

Solución:

#include<stdio.h>
#include<conio.h>
void main()
{
clrscr();
int x,y,opc,result;
float div;
opc=1;
while(opc!=5){
printf("1.Sumar\n");
printf("2.Restar\n");
printf("3.Multiplicar\n");
printf("4.Dividir\n");
printf("5.SALIR\n");
printf("Eliga la opcion:");
scanf("%d",&opc);

switch(opc){

case 1:
clrscr();
printf("Valor1:");
scanf("%d",&x);
printf("Valor2:");
scanf("%d",&y);
result=x+y;
printf("La suma es:%d",result);
getch();
break;

case 2:
clrscr();
printf("Valor1:");
scanf("%d",&x);
printf("Valor2:");
scanf("%d",&y);
result=x-y;
printf("La resta es:%d",result);
getch();
break;

case 3:
clrscr();
printf("Valor1:");
scanf("%d",&x);
printf("Valor2:");
scanf("%d",&y);
result=x*y;
printf("La multiplicacion es:%d",result);
getch();
break;
case 4:
clrscr();
printf("Valor1:");
scanf("%d",&x);
printf("Valor2:");
scanf("%d",&y);
div=(float) x/y;
printf("La division es:%.2f",div);
getch();
break;
}
}
}

Ejercicio: 07

Algoritmo que dados como datos el código y cinco notas de un estudiante,


imprima el código , las notas, el promedio simple y la palabra aprobado si el
estudiante tiene promedio mayor o igual a 11; caso contrario imprima
desaprobado.

#include<stdio.h>
#include<conio.h>
void main() {
clrscr();
int a,b,c,d,e;
float prom;
char cod;
printf("Ingrese codigo:");
scanf("%s",cod);
printf("Ingrese nota1:");
scanf("%d",&a);
printf("Ingrese nota2:");
scanf("%d",&b);
printf("Ingrese nota3:");
scanf("%d",&c);
printf("Ingrese nota4:");
scanf("%d",&d);
printf("Ingrese nota5:");
scanf("%d",&e);
clrscr();
prom=(a+b+c+d+e)/5;
if(prom>=11) {
printf("Codigo del alumno:%s\n",cod);
printf("\n\tNotas:%d %d %d %d %d",a,b,c,d,e);
printf("\n\tPromedio:%.2f",prom);
printf("\n\n\tAlumno Aprobado"); }
else {
printf("Codigo del alumno:%s\n",cod);
printf("\n\tNotas:%d %d %d %d %d",a,b,c,d,e);
printf("\n\tPromedio:%.2f",prom);
printf("\n\n\tAlumno Desaprobado"); }
getch();
}
Ejercicio: 08

Algoritmo que ordena ascendentemente 10 elementos enteros de un vector.

#include<stdio.h>
#include<conio.h>
void main() {
int i,numeros[10],aux,j;
clrscr();
printf("Ingrese elementos antes de ordenar\n");
for(i=0;i<=9;i++) {
printf("Numero:");
scanf("%d",&numeros[i]);
}
for(j=1;j<=9;j++)
{
for(i=0;i<=8;i++)
{
if(numeros[i]>numeros[i+1])
{
aux=numeros[i];
numeros[i]=numeros[i+1];
numeros[i+1]=aux;
}
}
}
clrscr();
printf("Numeros ordenados de \nmayor a menor:\n");
for(i=9;i>=0;i--)
{
printf("\n\t%d\n",numeros[i]);
}
getch();
}

Ejercicios de internet sin prueba


1.-El siguiente programa comprueba si un número es primo o no.

#include <stdio.h>
#include <math.h>
void main(void) {
int numero, divisor;
printf("Que numero quieres saber si es primo?\n");
scanf("%d", &numero);
while(numero<2) {
printf("Lo siento, no acepto numeros menores que 2.\n");
printf("Intentalo de nuevo\n");
scanf("%d", &numero);
}
for (divisor=2; divisor<=sqrt(numero); divisor++) {
if (numero%divisor==0) {
printf("%d no es primo.\n", numero);
return;
}
}
printf("%d es primo.\n", numero);
}

Comentario
El comentario más apropiado para este ejercicio es el algoritmo para calcular el primo con el
bucle for (divisor=2; divisor<=sqrt(numero); divisor++). Observa que este bucle se termina
cuando se encuentra un divisor del número, en cuyo caso se escribe el mensaje de que el
número no es primo y se termina la ejecución del programa con un return, o cuando divisor llega
a su valor límite, en cuyo caso el número es primo porque no se ha encontrado ningún divisor.

2.-Basándote en el ejercicio Comprobar si un número es primo, realiza un programa que imprima


todos los números primos comprendidos entre el 2 y un valor límite que se preguntará al
ejecutar el programa.

#include <stdio.h>
void main(void) {
int numero, divisor;
int n;
printf("¿Hasta qué número desea conocer los primos?\n");
printf("Introduzca el valor: ");
scanf("%d", &n);
for (numero=2; numero<=n; numero++) {
esPrimo=1; /* numero es primo */
for (divisor=2; divisor<=sqrt(numero); divisor++){
if (numero%divisor==0){
esPrimo=0;
break;
}
}
if(esPrimo==1) printf("%d\n", numero);
}
}
Comentario
Para poder escribir todos los números primos hasta un límite, basta introducir un nuevo bucle for
al programa anterior que vaya recorriendo todos los números enteros desde el 2 hasta dicho
límite inclusive. En cada ejecución del bucle se comprueba si el número considerado es primo
aprovechando las sentencias del programa anterior. En este caso se calcula si un número es
primo mediante el bucle for (divisor=2; divisor<=sqrt(numero); divisor++). Observa que se ha
definido una variable esPrimo que indica si el número es primo o no. Al principio se supone que
el número es primo, y esta condición se cambia si se encuentra un divisor exacto. En esta caso,
la sentencia break hace que se termine el bucle for más interno.

Solucion en Pseudocódigo
ALGORITMO primos1
ENTRADAS:
n: ENTERO (Valor límite)
SALIDAS:
numero: ENTERO
VARIABLES
divisor: ENTERO
INICIO

ESCRIBIR "¿Hasta qué número desea conocer los primos?"


ESCRIBIR SaltoDeLinea
ESCRIBIR "Introduzca el valor: "
LEER n
PARA numero<--2 HASTA n HACER
esPrimo<--1 ( numero es primo)
divisor<--2
MIENTRAS divisor<=RAIZ(numero) Y esPrimo=1 HACER
SI (numero MOD divisor) = 0 ENTONCES
esPrimo<--0;
FIN_SI
FIN_MIENTRAS
SI esPrimo=1 ENTONCES
ESCRIBIR numero
ESCRIBIR SaltoDeLinea
FIN_SI
FIN_PARA

FIN

Comentario
En la creación del pseudocódigo a partir del código en C mostrado en el apartado anterior hemos
realizado algunas sustituciones para que el pseudocódigo fuera correcto. El bucle for más
interno ha sido sustituido por una sentecia MIENTRAS, ya que en el código C dicho bucle estaba
siendo utilizado como una sentencia MIENTRAS. Además en el diseño en pseudocódigo no es
recomendable incluir sentencias de ruptura de flujo como break, por lo que se ha simulado su
comportamiento incluyendo en la condición del MIENTRAS la comparación esPrimo=1. Por último,
se ha utilizado la función ficticia RAIZ(numero) como si ya estubiera declarada anteriormente.

Este es un ejemplo de metodo burbuja en C++ , compilado en Dev C++ , es un sencillo


algoritmo de ordenamiento. Funciona revisando cada elemento de la lista que va a ser ordenada
con el siguiente, intercambiándolos de posición si están en el orden equivocado. Es necesario
revisar varias veces toda la lista hasta que no se necesiten más intercambios, lo cual significa
que la lista está ordenada. Este algoritmo obtiene su nombre de la forma con la que suben por la
lista los elementos durante los intercambios, como si fueran pequeñas "burbujas". También es
conocido como el método del intercambio directo.
Dado que solo usa comparaciones para operar elementos, se lo considera un algoritmo de
comparación, siendo el más sencillo de implementar.

C++:
1.#include <iostream>
2.
3. using namespace std;
4.
5.int main(){
6.
7.cout<<" Metodo Burbuja en C++ \t 22/04/2009 \n";
8.cout<<" Autor: Allan Duvallier \n \n";
9.
10. //declaramos el arreglo
11. int arreglo[ ] = {11,10,0,5,3,9,6,8,4,7,2,1}; //arreglo de 12 elementos
12.
13. //declaracion de una variable temporal y 2 variables para los bucles
14. int i, j, temp;
15.
16. //imprimos el arreglo con los valores iniciales
17.
18. cout<<"arreglo antes de ordenar......"<<endl;
19. cout<<endl;
20. cout<<endl;
21.
22. for (j =0; j <12; j++) {
23.
24. cout<<"arreglo[" <<j <<"] = " <<arreglo[j] <<endl;
25.
26. }
27.
28.
29. //despues imprimimos el arreglo ordenado...(1)
30.
31. cout<<endl;
32. cout<<endl;
33. cout<<"arreglo despues de ordenar..........."<<endl;
34. cout<<endl;
35. cout<<endl;
36.
37. //ordenamos los elementos de el arreglo de menor a mayor ...(2)
38. //realizamos el recorrido del arreglo con dos bucles "for"
39.
40.
41. for (i = 1; i <12; i++ ){
42.
43. for (j = 0; j <12 - i ; j++){
44.
45. /*
46. el elemento del arreglo con respecto a la varible j que esta dentro de el
47. bucle, se compara con su adyacente en el arreglo (el primero con el segundo)..(3)
48. */
49.
50. if (arreglo[j]> arreglo[j + 1]) {
51.
52. /*
53. si se cumple la condicion, hacen el intercabio de valores
54. por medio de uan variable temporal...(4)
55. */
56.
57. temp = arreglo[j];
58. arreglo[j] = arreglo[j + 1] ;
59. arreglo[j + 1] = temp;
60.
61. }//fin del condicion
62.
63. }// fin del segundo bucle for "j"
64.
65. } // fin del primer bucle for "i"
66.
67. //imprimimos el arreglo con los valores ya ordenados ...(5)
68.
69. for (j =0; j <12; j++) {
70.
71. cout<<"arreglo[" <<j <<"] = " <<arreglo[ j ] <<endl;
72.
73. }
74.
75. //pausamos despues de que muestre el resultado el programa
76. system("pause");
77.
78. return 0;
79.
80.} //fin del programa
#include<stdio.h>
#include<conio.h>
void main() { clrscr();
int a[10],c,b,s,i,k,d[10],n;
printf("Ingrese valor1:");
scanf("%d",&a[0]);
for(k=2;k<=10;k++)
{
do { s=1;
printf("ingrese valor%d:",k);
scanf("%d",&a[k-1]);
for(i=0;i<=k-2;i++)
{
if(a[i]==a[k-1])
b=0;
else
b=1;
s=b*s;
}
}
while(s==0);
}
for(n=0;n<=9;n++)
{
c=0;
for(i=0;i<=9;i++)
{
if(a[i]>=c)
c=a[i];
else
c=c;
}
d[n]=c;
for(i=0;i<=9;i++)
{
if(a[i]==c)
a[i]=0;
}
}
for(n=0;n<=9;n++)
{
printf("\nel orden es:%d",d[n]);
}
getch();
}
MATRICES
//FIXTURE CON CUADROS

#include <stdio.h>
#include<conio.h>
#include<string.h>
#define MAX 12
#define MAXESC 3
#define MAXCRI 7

char Escuelas[6][10]={"","I.E","I.C.E","MAT","EST","FIS"};
char Criterio[8][10]={"","PJ","PG","PE","PP","GF","GE","PT"};

void main()
{
int Matriz[MAX][MAX];
int Posiciones[MAXESC][2];
int goles1, goles2;

int i,j,k;

//inicializar matriz
for (i=1; i<=MAXESC; i++)
{
for (j=1; j<=MAXCRI; j++)
{
Matriz[i][j]=0;
}
}

clrscr();
textbackground(GREEN);
textcolor(WHITE);

cprintf ("\n\n ----- FIXTURE UNPRG -----");

printf ("\nIntroducir los goles que se dieron en cada partido...");


printf("\n");

/*
for (i=1; i<=MAXESC; i++)
{
for (j=1; j<=MAXESC; j++)
{
if (strcmp(Escuelas[i],Escuelas[j])!=0)
{
*/

for (i=1; i<=MAXESC-1; i++)


{
for (j=i+1; j<=MAXESC; j++)
{
if (strcmp(Escuelas[i],Escuelas[j])!=0)
{

//Ingreso de Goles
printf ("\nPARTIDO ENTRE: %s vs %s",Escuelas[i],Escuelas[j]);
printf ("\nGoles %s\t: ",Escuelas[i]);
scanf ("%d", &goles1);
printf ("Goles %s\t: ",Escuelas[j]);
scanf ("%d", &goles2);

//Calculo de Criterios
Matriz[i][1]++; //Partidos Jugados Equipo1
Matriz[j][1]++; //Partidos Jugados Equipo2

if (goles1>goles2)
{
Matriz[i][2]++; //Partidos Ganados Equipo1
Matriz[j][4]++; //Partidos Perdidos Equipo2

Matriz[i][7]+=3; //3 Puntos Equipo1


}
else if(goles1<goles2)
{
Matriz[j][2]++; //Partidos Ganados Equipo2
Matriz[i][4]++; //Partidos Perdidos Equipo1

Matriz[j][7]+=3; //3 Puntos Equipo2


}
else
{
Matriz[i][3]++; //Partidos Empatados Equipo1
Matriz[j][3]++; //Partidos Empatados Equipo2

Matriz[i][7]++; //1 Punto Equipo1


Matriz[j][7]++; //1 Punto Equipo2
}

Matriz[i][5]+=goles1; //Goles Favor Equipo1


Matriz[i][6]+=goles2; //Goles Contra Equipo1

Matriz[j][5]+=goles2; //Goles Favor Equipo2


Matriz[j][6]+=goles1; //Goles Contra Equipo2

}
}
}
//COLOR DE RESULTADOS
textcolor(YELLOW);

printf("\n\n ---------- RESULTADOS ----------------\n\n");


printf("\n"); cprintf("Ú");
for (k=1; k<=71; k++)
{
cprintf("Ä");
}
cprintf("¿");

printf("\n"); cprintf("³"); printf(" ESCUELA");


for (k=1; k<=7; k++)
{
cprintf("³"); printf(" %s\t",Criterio[k]);
}
cprintf("³");

printf("\n"); cprintf("³");
for (k=1; k<=71; k++)
{
cprintf("Ä");
}
cprintf("³");

//Mostrando la matriz
for (i=1; i<=MAXESC; i++)
{
printf("\n"); cprintf("³"); printf(" %s\t",Escuelas[i]); //muestra
escuelas
for (j=1; j<=MAXCRI; j++)
{
cprintf("³"); printf(" %d\t",Matriz[i][j]); //muestra valores
}
cprintf("³");
}

printf("\n"); cprintf("À");
for (k=1; k<=71; k++)
{
cprintf("Ä");
}
cprintf("Ù");

//Tabla de Posiciones
for (i=1; i<=MAXESC; i++)
{
Posiciones[i][1]=i;
Posiciones[i][2]=Matriz[i][7];
}
int Temp1, Temp2;

//ORDENAR
for (i=1; i<=MAXESC-1; i++)
{
for (j=i+1; j<=MAXESC; j++)
{
if (Posiciones[i][2]<Posiciones[j][2])
{
Temp1=Posiciones[i][1];
Posiciones[i][1]=Posiciones[j][1];
Posiciones[j][1]=Temp1;

Temp2=Posiciones[i][2];
Posiciones[i][2]=Posiciones[j][2];
Posiciones[j][2]=Temp2;
}
}
}

//COLOR DE GANADORES
textcolor(RED);

printf("\n\n ---------- GANADORES ----------------\n\n");

printf("\n"); cprintf("Ú");
for (k=1; k<=33; k++)
{
cprintf("Ä");
}
cprintf("¿");

printf("\n");cprintf("³");printf(" ESCUELA\t");
cprintf("³");printf(" POSICION\t");
cprintf("³");

printf("\n");cprintf("³");
for (k=1; k<=33; k++)
{
cprintf("Ä");
}
cprintf("³");

//Posicion[i][1] == 4
//Escuelas(Posicion[i][1]) == Escuelas(4)
for (i=1; i<=MAXESC; i++)
{
printf("\n");cprintf("³");printf(" %s\t\t",Escuelas[Posiciones[i][1]]);
cprintf("³");printf(" Puesto %d\t",i);
cprintf("³");
}
printf("\n");cprintf("À");
for (k=1; k<=33; k++)
{
cprintf("Ä");
}
cprintf("Ù");

getch();