Ejercicios en Turbo c

18
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(); }

Transcript of Ejercicios en Turbo c

Page 1: Ejercicios en Turbo c

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 );elseprintf(“\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 );elseprintf(“\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 );elseprintf(“\n Los números son:%d %d %d”, c,b,a);

getch();}

Page 2: Ejercicios en Turbo c

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”);elseprintf(“\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();}

}

Page 3: Ejercicios en Turbo c

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.0printf(“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)){

Page 4: Ejercicios en Turbo c

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(); }

Page 5: Ejercicios en Turbo c

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;

Page 6: Ejercicios en Turbo c

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(); }

Page 7: Ejercicios en Turbo c

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 prueba1.-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,

Page 8: Ejercicios en Turbo c

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ódigoALGORITMO primos1ENTRADAS: n: ENTERO (Valor límite)SALIDAS: numero: ENTEROVARIABLES divisor: ENTEROINICIO 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.

Page 9: Ejercicios en Turbo c

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 arreglo11. int arreglo[ ] = {11,10,0,5,3,9,6,8,4,7,2,1}; //arreglo de 12 elementos12. 13. //declaracion de una variable temporal y 2 variables para los bucles14. int i, j, temp;15. 16. //imprimos el arreglo con los valores iniciales17. 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 el47. 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 valores54. por medio de uan variable temporal...(4)55. */56. 57. temp = arreglo[j];58. arreglo[j] = arreglo[j + 1] ;59. arreglo[j + 1] = temp;

Page 10: Ejercicios en Turbo c

60. 61. }//fin del condicion62. 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 programa76. system("pause");77. 78. return 0;79. 80.} //fin del programa

Page 11: Ejercicios en Turbo c

#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(); }

Page 12: Ejercicios en Turbo c

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 matrizfor (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++)

Page 13: Ejercicios en Turbo c

{if (strcmp(Escuelas[i],Escuelas[j])!=0){

//Ingreso de Golesprintf ("\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 CriteriosMatriz[i][1]++; //Partidos Jugados Equipo1Matriz[j][1]++; //Partidos Jugados Equipo2

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

Matriz[i][7]+=3; //3 Puntos Equipo1}else if(goles1<goles2){Matriz[j][2]++; //Partidos Ganados Equipo2Matriz[i][4]++; //Partidos Perdidos Equipo1

Matriz[j][7]+=3; //3 Puntos Equipo2}else{Matriz[i][3]++; //Partidos Empatados Equipo1Matriz[j][3]++; //Partidos Empatados Equipo2

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

Matriz[i][5]+=goles1; //Goles Favor Equipo1Matriz[i][6]+=goles2; //Goles Contra Equipo1

Matriz[j][5]+=goles2; //Goles Favor Equipo2Matriz[j][6]+=goles1; //Goles Contra Equipo2

}}

}//COLOR DE RESULTADOStextcolor(YELLOW);

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

printf("\n"); cprintf("Ú");

Page 14: Ejercicios en Turbo c

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 matrizfor (i=1; i<=MAXESC; i++){printf("\n"); cprintf("³"); printf(" %s\t",Escuelas[i]); //muestra escuelasfor (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 Posicionesfor (i=1; i<=MAXESC; i++){

Posiciones[i][1]=i;Posiciones[i][2]=Matriz[i][7];

}int Temp1, Temp2;

//ORDENARfor (i=1; i<=MAXESC-1; i++){

for (j=i+1; j<=MAXESC; j++){

if (Posiciones[i][2]<Posiciones[j][2])

Page 15: Ejercicios en Turbo c

{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 GANADOREStextcolor(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();

}

Page 16: Ejercicios en Turbo c