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 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
// 1x10: Se piden tres números al usuario y se muestran ordenados, intercambiando variables. #include <stdio.h> // Función ordena dos números: float ordDosNum ( float *numA, float *numB, int bol){ // Precondición: numA y numB deben ser parámetros de tipo real, Bol debe de ser un entero/booleano con valor de 0 ó 1 // Poscondición: Se modifica el orden de numA y numB a elección: si bol=0 orden ascendente, bol=1 orden descendente. float x; if( bol == 0 && *numA > *numB ){ x = *numA; *numA = *numB; *numB = x; } else if( bol == 1 && *numA < *numB ){ x = *numB; *numB = *numA; *numA = x; }; }; main(){ system("clear"); float numeroA, numeroB, numeroC; printf("Inserte tres numeros para que se los muestre de forma ordenada.\n Primer numero: "); scanf("%g", &numeroA); printf(" Segundo numero: "); scanf("%g", &numeroB); printf(" Tercer numero: "); scanf("%g", &numeroC); if( numeroA > numeroB ){ // Ordena AyB: 0=ascend, 1=descend. ordDosNum( &numeroA , &numeroB, 0 ); }; if( numeroA > numeroC ){ ordDosNum( &numeroA , &numeroC, 0 ); }; if( numeroB > numeroC ){ ordDosNum( &numeroB , &numeroC, 0 ); }; printf("\n El orden correcto de los numeros es %g, %g y %g\n\n", numeroA, numeroB, numeroC); }; |
Mes: octubre 2011
Apaño para usar chips incompatibles con placa protoboard
Compre unos chips y resultaron usar otro encapsulado, creo que llamado PDIP, al que normalmente se usa en placas protoboard. Como necesito primero hacer pruebas con él pues idee este apaño. Si todo va bien los siguientes ya irían soldados en un PCB :/
1×08: Pasa H:M:S a Segundos y Segundos a H:M:S
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 51 52 53 54 55 56 57 |
// 1x08: Muestra un menú que te permita convertir H:M:S a Segundos, Segundos a H:M:S y salir del menú. #include <stdio.h> #include <string.h> main(){ system("clear"); int horas, minutos, segundos, segTotales; char tiempo[9]; do{ printf( "Escriba:\n1. \"horas\" para pasar H:M:S a Segundos.\n2. \"segundos\" si quiere pasar Segundos a H:M:S.\n3. \"salir\" en caso de querer cerrar el programa.\n" ); do{ scanf("%s", tiempo); }while( strcmp( tiempo, "horas" ) != 0 && strcmp( tiempo, "segundos" ) != 0 && strcmp( tiempo, "salir" ) != 0 ); if( strcmp( tiempo, "horas" ) == 0 ){ //Conversión de H:M:S -> Segundos printf("Introduce las horas: "); scanf("%i", &horas); printf("Introduce los minutos: "); scanf("%i", &minutos); printf("Introduce los segundos: "); scanf("%i", &segundos); segTotales = (horas*60*60) + (minutos*60) + (segundos); printf("\nSu tiempo introducido: %ih %im %is corresponde a %i segundos.\n\n\n", horas, minutos, segundos, segTotales); } else if( strcmp( tiempo, "segundos" ) == 0 ){ //Conversión de Segundos -> H:M:S printf("Introduce una cantidad de segundos: "); scanf("%i", &segTotales); horas = (segTotales / 60) / 60; minutos = (segTotales / 60) % 60; segundos= segTotales % 60; printf("El numero de segundos %i corresponde a %i horas %i minutos %i segundos.\n\n\n", segTotales, horas, minutos, segundos); }; }while( strcmp( tiempo, "salir" ) != 0 ); }; |
1×07 y 1×09: Convierte euros en pesetas y viceversa
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 |
// 1x07: Muestra un menú que te permite convertir euros a pesetas y viceversa además de poder salir del menú. #include <stdio.h> #include <string.h> //Biblioteca para tratamiento de cadenas #define pesetas 166.386 //Se define una constante, durante el tiempo de compilacion se sustituira la palabra pesetas por el valor 166.386 main(){ system("clear"); float moneda; char conversion[8]; //Se crea un array de 8 celdas //puts(conversion); //Permite imprimir un cadena+salto de linea. do{ //Obliga al usuario a elegir entre "euros", "pesetas" o "salir" como únicas opciones. printf( "Escriba:\n1. \"euros\" si quiere pasar Pesetas a Euros.\n2. \"pesetas\" si quiere pasar Euros a Pesetas.\n3. \"salir\" para salir\n" ); do{ scanf("%s", conversion); //Para los arrays no se usa el carácter &. }while( strcmp( conversion, "euros" ) != 0 && strcmp( conversion, "pesetas" ) != 0 && strcmp( conversion, "salir" ) != 0 ); // La función strcmp() compara dos cadenas, si son iguales devuelve 0 if( strcmp( conversion, "euros" ) == 0 ){ //Conversión de Pesetas -> Euros printf( "Introduzca el valor de Pesetas que quiere convertir a Euros: " ); scanf( "%g", &moneda ); printf( "La cantidad de %g de Pesetas son %.2f Euros.\n\n\n", moneda, moneda/pesetas ); } else if( strcmp( conversion, "pesetas" ) == 0 ){ //Conversión de Euros -> Pesetas printf( "Introduzca el valor de Euros que quiere convertir a Pesetas: " ); scanf( "%g", &moneda ); printf( "La cantidad de %.2f de Euros son %g Pesetas.\n\n\n", moneda, moneda*pesetas ); }; }while( strcmp( conversion, "salir" ) != 0 ); }; |
1×06: Dame un número de segundos y lo paso a H:M:S
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 |
// 1x06: A partir de una cantidad de segundos se devolverá expresada en H:M:S. /* / División entera % Resto de la división entera */ #include <stdio.h> main(){ system("clear"); int segTotales, horas, minutos, segundos; printf("Introduce una cantidad de segundos: "); scanf("%i", &segTotales); horas = (segTotales / 60) / 60; minutos = (segTotales / 60) % 60; segundos= segTotales % 60; printf("El numero de segundos %i corresponde a %i horas %i minutos %i segundos.\n\n\n", segTotales, horas, minutos, segundos); }; |
1×05: Dame H:M:S y devuelvo segundos
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 |
// 1x05: A partir de una cantidad de tiempo expresada en H:M:S se devolverá expresada en S. #include <stdio.h> main(){ system("clear"); int horas, minutos, segundos, totalSegundos; printf("Introduce las horas: "); scanf("%i", &horas); printf("Introduce los minutos: "); scanf("%i", &minutos); printf("Introduce los segundos: "); scanf("%i", &segundos); totalSegundos = (horas*60*60) + (minutos*60) + (segundos); printf("\nSu tiempo introducido: %ih %im %is corresponde a %i segundos.\n\n\n", horas, minutos, segundos, totalSegundos); }; |
1×04: Calcular el año de nacimiento del usuario
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 |
// 1x04: Calcula el año de nacimiento del usuario, para ello se pregunta al usuario el año y la edad actual además de si en el año actual ya se ha cumplido la edad. #include <stdio.h> main(){ system("clear"); int edad, anio, cumplioAnios; printf("A continuacion se calculara su anio de nacimiento a partir de cierta informacion:\n\nIntroduzca su edad actual: "); scanf( "%i", &edad); printf("Introduzca el anio actual: "); scanf( "%i", &anio); // Mientras el dato introducido sea diferente de 0 y 1 re-solicitar el dato. printf("Este anio ha cumplido anios?, 0=No/1=Si: "); do{ scanf( "%i", &cumplioAnios); }while( cumplioAnios != 0 && cumplioAnios != 1); if( cumplioAnios == 0){ printf("\nUsted nacio en el anio: %i\n\n\n", anio-edad-1); } else{ printf("\nUsted nacio en el anio: %i\n\n\n", anio-edad); }; }; |
1×03: Muestra de forma ordenada dos números
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 |
// 1x03: Se piden dos números al usuario y se guardan en variables, si están desordenados se intercambian los valores para mostrarlos ordenados. #include <stdio.h> main(){ system("clear"); float numeroA, numeroB, tmp; printf("Inserte dos numeros para que se los muestre de forma ordenada.\n\nPrimer numero: "); scanf("%g", &numeroA); printf("Segundo numero: "); scanf("%g", &numeroB); if( numeroA > numeroB ){ tmp = numeroA; numeroA = numeroB; numeroB = tmp; } printf("\nEl orden correcto de los numeros es %g y %g\n\n", numeroA, numeroB); } |