/* algunos ejemplos hechos en clase nota: un programa esta separado de otro con tres asteriscos: *** */ /* SEMANAS 1 y 2, secuenciar */ // buenosDias.c, despliega 'Buenos dias.' #include #include int main() { printf("Buenos dias.\n\n"); system("pause"); return 0; } *** /* digitoCentena.c, separa digito centena de n ecabrera, intec, febrero 2008 */ #include #include int digCen(int n) { // separa digito centenas de n n = n/100; n = n%10; return n; } int main() { int n, d; // el numero printf("Separa el digito de las centenas.\n\n"); printf("De un numero entero: "); scanf("%d", &n); d = digCen(n); printf("Digito centena: %d\n\n", d); getch(); return 0; } *** /* farCel.c, convierte de farenheit a celsius ecabrera, intec, febrero 2008 */ #include #include float farenheitCelsius(float f) { // convierte temperatura farenheit a celsius float c; // temeperatura celsius c = 5*(f - 32)/9; return c; } int main() { float tf, tc; // temperatura farenheit, celsius printf("Convierte farenheit a celsius.\n\n"); printf("De temperatura farenheit: "); scanf("%f", &tf); tc = farenheitCelsius(tf); printf("Temperatura celsius: %.2f\n\n", tc); system("pause"); return 0; } *** /* SEMANA 3, seleccionar */ *** // signoRealtivo.c, signo de un numero con respecto al otro #include #include int main() { float a, b; // los numeros printf("Determina el signo de numero con respecto"); printf(" a otro (-1: ab)\n\n"); printf("De dos #s separados por espacio: "); scanf("%f %f", &a, &b); if (a < b) printf("-1\n\n"); else if (a == b) printf("0\n\n"); else printf("1\n\n"); getch(); return 0; } *** // siBisiesto.c, determina si un ano es bisesto #include #include int main() { int a, sb = 0; // ano, si bisiesto (1 = si, 0 = no) printf("Determina si un ano es bisiesto.\n\n"); printf("Teclee el agno: "); scanf("%d", &a); if (a%4 == 0) sb = 1; if (a%100 == 0) sb = 0; if (a%400 == 0) sb = 1; if (sb == 1) printf("Es bisiesto.\n\n"); else printf("NO es bisiesto.\n\n"); printf("Pulse una tecla para continuar..."); getch(); return 0; } *** // nombreDigito.c, nombre de un # de un digito (0 a 9) #include #include int main() { int n; // numero printf("Nombre de un # de un digito (0 a 9).\n\n"); printf("De numero: "); scanf("%d", &n); if (n >= 0 && n <= 9) { if (n == 0) printf("Cero.\n"); else if (n == 1) printf("Uno.\n"); else if (n == 2) printf("Dos.\n"); else if (n == 3) printf("Tres.\n"); else if (n == 4) printf("Cuatro.\n"); else if (n == 5) printf("Cinco.\n"); else if (n == 6) printf("Seis.\n"); else if (n == 7) printf("Siete.\n"); else if (n == 8) printf("Ocho.\n"); else printf("Nueve.\n"); } else printf("Numero fuera de rango.\n"); system("pause"); return 0; } *** // ecu2dogra.c, soluciona ecuacion de 2do grado #include #include #include int main() { float a, b, c; // coeficientes float d, x1, x2; // discriminante, raices reales float r, i; // parte real e imaginaria de raices complejas printf("Raices de ecuacion de 2do grado."); printf("\n\nValores de a b y c, separados por espacio: "); scanf("%f %f %f", &a, &b, &c); d = b*b - 4*a*c; if (d >= 0) { x1 = (-b + sqrt(d))/(2*a); x2 = (-b - sqrt(d))/(2*a); printf("x1 = %f, x2 = %f\n\n", x1, x2); } else { r = -b /(2*a); i = sqrt(-d)/(2*a); printf("x1 = (%f, %f), x2 = (%f, %f)\n\n", r,i,r,-i); } getch(); return 0; } *** // fechaValida.c, si fecha es valida #include #include int main() { int d, m, a; // dia, mes, agno printf("Determina si una fecha es valida.\n\n"); printf("Introduzca fecha (dd mm aaaa): "); scanf("%d %d %d", &d, &m, &a); if (m < 1 || m > 12) printf("No valida.\n\n"); else if (d < 1 || d > 31) printf("No valida.\n\n"); else if ((d > 30) && (m == 4 || m == 6 || m == 9 || m == 11)) printf("No valida.\n\n"); else if (d > 28 && m == 2) printf("No valida.\n\n"); else printf("Valida.\n\n"); system("pause"); return 0; } *** // menor3.c, determina el menor de 3 numeros #include #include int main() { float a, b, c; // los numeros printf("Determina el menor de 3 numeros reales.\n\n"); printf("Ingrese los numeros, separados por espacio: "); scanf("%f %f %f", &a, &b, &c); if (a <= b && a <= c) printf("Menor: %f\n\n", a); if (b <= a && b <= c) printf("Menor: %f\n\n", b); if (c <= a && c <= b) printf("Menor: %f\n\n", c); getch(); return 0; } *** /* semana 4, repetir */ // proDig.c, producto de los digitos de un numero entero #include #include int productoDigitos(int n) { // calcula producto digitos de n int p = 1; // producto digitos de n while (n > 0) { p *= n%10; n/= 10; } return p; } int main() { int num, pro; // numero, producto printf("Calcula productop digitos de un entero.\n\n"); do { printf("cantidad de numeros a promediar (1 a 30000): "); scanf("%d", &num); } while (num < 1 || num > 30000); pro = productoDigitos(num); printf("\n\nProducto digitos: %d\n\n", pro); system("pause"); return 0; } *** // maxFacPri.c, maximo factor primo #include #include int primo(long n) { // determina si n es primo int sp = 1; // si primo (1 = si, 0 = no) long d; // divisor for (d = 2; sp && d <= n/2; d++) if (!(n%d)) sp = 0; return sp; } long maxFacPri(long n) { // retormna maximo factor primo long m = 1; // maximo factor primo long c; // contador de 2 a n/2 for (c = 2; c < n/2; c++) if (!(n%c) && primo(c)) m = c; return m; } int main( ) { printf("%ld\n\n", maxFacPri(360)); system("pause"); return 0; } *** /* maxPalin.c, maximo palindromo producto de dos numeros de 3 digitos */ #include #include int palindro(int n) { // determina si n es palindromo int sp = 0; // si palindromo (1 = si, 0 = no) int i = 0; // invertido int c = n; // copia de n while (n > 0) { i = 10*i + n%10; n /= 10; } if (i == c) sp = 1; //printf("%d ", i);} return sp; } int potencia(int n, int e) { // eleva n a la e (ambos enteros positivos) int p = n; while (--e) p *= n; return p; } int maxPal(int d) { // calcula maximo palindromo de d digitos int m = 1; // maximo int t1 = potencia(10, d-1); // tope 1 int t2 = potencia(10, d); // tope 2 int c1, c2; // contadores int p; for (c1 = t1; c1 < t2; c1++) for (c2 = t1; c2 < t2; c2++) { p = c1*c2; if (palindro(p) && p > m) m = p; } return m; } int main() { printf("%d\n\n", maxPal(4)); system("pause"); return 0; } *** // rango.c, rango de n valores #include #include int main() { int can, con ; // cantidad de valores float val, men, may, ran; // valores, menor, mayor, rango printf("calcula el rango de n valores reales.\n\n"); do { printf("De la cantidad de valores (1 a 20): "); scanf("%d", &can); } while (can < 1 || can > 20); printf("De 1er valor: "); scanf("%f", &val); men = val; may = val; for (con = 2; con <= can; con++) { printf("Valor # %d: ", con); scanf("%f", &val); if (val < men) men = val; if (val > may) may = val; } ran = may - men; printf("\n\nRango: %f\n\n", ran); system("pause"); return 0; } *** // sumFibPar.c, suma fibonacci pares menores que 1M #include #include int sumFibPar(int n) { // suma de los fibonaci pares menores que n int s = 2; // suma int f1 = 1, f2 = 2; //1ros fibonacci int f = 3; // siguiente fibo while (f < n) { if (!(f%2)) s += f; //printf("%d ",f);} f1 = f2; f2 = f; f = f1 + f2; } return s; } int main() { printf("%d\n\n", sumFibPar(90)); system("pause"); return 0; } *** // esta es una funcion... int sumMul3o5(int n) { /* suma los multiplos de 3 o 5 menores que n */ int s = 0; // suma int c; // contador de 1 a n-1 int r3, r5; // residuos de division for (c = 1; c < n; c++) { r3 = c % 3; r5 = c %5; if ( r3 == 0 || r5 == 0) s += c; } return s; } *** ecabrera, intec, febrero 2008.