Mes: octubre 2011
1×15: Lee 20 números reales y devuelve la media
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 |
// 1x15: Lee 20 números reales y di la media, con el mínimo de variables. #include <stdio.h> // Se puede colorear el texto que imprimamos por pantalla usando una secuencia de caracteres especiales. // Para emplearlos de forma más cómoda se definen como constantes y para su uso solo habrá que llamar a la constante con la función printf de la siguiente forma: printf(RED "cadena" WHITE), al finalizar se ha de volver a poner el color por defecto o tras finalizar la ejecución del programa permanecerá ese color. // Lista de colores: #define WHITE "\e[m" #define RED "\e[31m" #define B_RED "\e[31;1m" #define GREEN "\e[32m" #define B_GREEN "\e[32;1m" #define YELLOW "\e[33m" #define B_YELLOW "\e[33;1m" #define BLUE "\e[34m" #define B_BLUE "\e[34;1m" #define MAGENTA "\e[35m" #define CYAN "\e[36m" #define BRIGHT "\e[1m" main(){ system("clear"); float numero, resultado = 0; int i = 0; printf("A continuacion introduzca 20 numeros, se le devolvera la media:\n"); for( i; i<20; i++ ){ printf(" %i = ", i+1 ); scanf( "%g", &numero ); resultado += numero; }; resultado /= 20; if( resultado<5 ){ printf( "La media es de: " RED "%g\n\n" WHITE, resultado ); } else{ printf( "La media es de: " GREEN "%g\n\n" WHITE, resultado ); }; }; |
1×14: Calcula si un año es bisiesto o no
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 |
// 1x14: Calcula si el año introducido es bisiesto o no. // Un año es bisiesto si es múltiplo de 4 pero no de 100 aunque sí de 400. #include <stdio.h> #include <string.h> main(){ system("clear"); int anio; char respuesta[3]; printf("Introduzca un anio para calcular si es bisiesto: "); scanf( "%i", &anio ); if ( (anio%4 == 0) && (anio%100 != 0) || (anio%400 == 0) ){ // "strcpy" permite copiar una cadena dentro de otra. strcpy(respuesta, "si"); } else{ strcpy(respuesta, "no"); }; printf( " El anio %i %s es bisiesto.\n\n", anio, respuesta ); }; |
1×13: Devuelve el valor absoluto de un número
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 |
// 1x13: De un número introducido se pasa a su valor absoluto. #include <stdio.h> // Función que calcula el valor absoluto y devuelve el resultado. float absoluto( float num ){ // Precondición: Se recibe un parámetro de tipo real. // Poscondición: Se devuelve el mismo número pero en positivo. if( num < 0 ){ num *= -1; }; return num; }; main(){ system("clear"); float numero; printf("Introduzca un numero para calculara su valor absoluto: "); scanf( "%g", &numero ); printf("El valor absoluto es: %g\n\n", absoluto(numero) ); }; |
1×12: Realiza la conversión de grados Celsius a Fahrenheit
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 |
// 1x12: Realiza la conversión de grados Celsius a Fahrenheit y viceversa. #include <stdio.h> main(){ system("clear"); char menu; float C, F; do{ printf("Elija 1, 2 o 3 dependiendo de la opción deseada:\n\n 1. Pasar grados Celsius a Fahrenheit\n 2. Pasar Fahrenheit a Celsius\n 3. Salir\n\n"); do{ scanf( "%c", &menu ); } while( menu != '1' && menu != '2' && menu != '3' ); switch( menu ){ case '1': //C -> F printf("Indique los grados Celsius: "); scanf( "%g", &C ); F = C * 9/5 + 32; printf("Los %gC corresponden a %gF\n\n", C, F ); break; case '2': // F -> C // printf("Indique los grados Fahrenheit: "); scanf( "%g", &F ); C = (F-32) * 5/9; printf("Los %gF corresponden a %gC\n\n", F, C ); break; }; } while( menu != '3' ); //Salir }; |
Conversor de gráficos de 8×8 pixeles a binario para matrices de Leds
Ahora que estoy empezando a usar matrices de Leds he observado que es algo complicado dibujar los diferentes caracteres o gráficos de forma directa, pues los valores que hay que usar están en binario, bueno, en realidad se trabaja con un rango de números entre 0 y 255 por fila que se obtienen al usar la base dos y el exponente correspondiente al número de columna.
En resumen, si queremos encender los siguientes Leds para formar una flecha hay que pasar los siguientes números.
Leer más1×11: Hacer la conversión de Metros a Pies
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
// 1x11: Hacer la conversión de Metros a Pies pasando por pulgadas. /* 1 metro = 39.3700787 pulgadas 12 pulgadas = 1 pie */ #include <stdio.h> main(){ system("clear"); float metros, pies; printf("Deme un numero de Metros para pasarlos a Pies: "); scanf( "%g", &metros); pies = (metros*39.3700787) / 12; printf( "Los %g Metros corresponden a %g Pies.\n\n", metros ,pies ); }; |