ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Ejercicios En C


Enviado por   •  29 de Agosto de 2014  •  4.977 Palabras (20 Páginas)  •  262 Visitas

Página 1 de 20

/* fichero sumaFor.c */ #include <stdio.h> void main(void) { int i, suma=0; for(i=0; i<=5; i++) suma+=i; printf("La suma de los cinco primeros numeros es: %d\n", suma); } Comentario: En este fichero se ha utilizado la equivalencia directa entre los bucles for y while. Por lo demás, este programa no tiene nada de particular.

EJERCICIO 1.8: SOLUCIÓN DE LA ECUACIÓN DE SEGUNDO GRADO.

Dada la ecuación de segundo grado 2 0 ax bx c + +=: se calcula el discriminante 2 4 discr b ac =− . Se pueden presentar tres casos distintos: – Si discr >0.0 las dos raíces son reales y distintas, y valen:

12 22 b discr b discr xx aa − + − − == – Si discr = 0.0 las dos raíces son reales e iguales, y valen: 12 2 bxx a − == – Finalmente, si discr<0.0 las dos raíces son complejas conjugadas. Las partes real e imaginaria valen:

22 b discr xr xi aa −− == Teclea y compila el siguiente programa para resolver la ecuación de segundo grado. Llámalo ecuacion2.c. Compila y ejecuta este programa cambiando los valores de a, b y c, de modo que se prueben las tres opciones del programa. Solución comentada al Ejercicio 1.8. /* fichero ecuacion2.c */ /* resolución de la ecuación de segundo grado */ #include <stdio.h> #include <math.h> /* incluye decl. de la función sqrt() */ void main(void) { double a, b, c; double discr, x1, x2, xd, xr,xi; printf("Escribe los valores de los coeficientes A, B y C\n");

Ejercicios Resueltos de Programación en ANSI C pág. 9

scanf("%lf%lf%lf", &a, &b, &c); discr=b*b-4.0*a*c; if (discr>0.0) { x1=(-b+sqrt(discr))/(2.0*a); x2=(-b-sqrt(discr))/(2.0*a); printf("\nLas dos raices reales son: %12.6e y %12.6e \n", x1, x2); } else if (discr<0.0) { xr=-b/(2.0*a); xi=sqrt(-discr)/(2.0*a); printf("\nRaices complejas:\n"); printf("(%12.6e, %12.6ei) y (%12.6e, %12.6ei)\n", xr, xi, xr, -xi); } else { x1 = -b/(2.0*a); printf("\nLas dos raices son iguales y valen: %12.6e \n", x1); } } Comentario: Incluyendo la librería math.h se pueden usar las funciones matemáticas tales como sqrt() para la raíz cuadrada; cos() para calcular el coseno de un ángulo, etc. La instrucción if...else permite hacer una bifurcación, dependiendo de la cual se realizarán diferentes actividades. Merece la pena observar la forma utilizada para partir en varias líneas las distintas llamadas a la función printf(). La idea fundamental es que, en el fichero *.c la cadena de control (lo que va entre comillas como primer argumento de la función printf()) no se puede partir entre dos o más líneas

EJERCICIO 1.9: PARA EXPERTOS. Realiza un programa en C que escriba una tabla de dos columnas para la conversión entre las temperaturas en grados Fahrenheit −comprendidas entre 0 ºF y 300 ºF, según incrementos de 20 ºF− y su equivalente en grados centígrados. Se realizarán dos versiones de este programa: una llamada temp1.c que empleará un bucle while. La otra versión se llamará temp2.c y utilizará un bucle for. La conversión entre grados Centígrados y grados Fahrenheit obedece a la fórmula: 5 * (ºF - 32) ºC = 9 siendo ºC la temperatura en grados Centígrados y ºF en grados Fahrenheit. Solución comentada al Ejercicio 1.9. /* fichero temp1.c */ #include <stdio.h> void main(void) { double gradosFahr, gradosCent; printf("grados Fahrenheit grados Centigrados\n"); printf("----------------- ------------------\n\n"); gradosFahr = 0.0; while (gradosFahr<=300.0) { gradosCent=(5*(gradosFahr-32.0))/9.0; printf("%17.2lf%17.2lf\n", gradosFahr, gradosCent); gradosFahr+=20.0; } }

/* fichero temp2.c */ #include <stdio.h>

Ejercicios Resueltos de Programación en ANSI C pág. 10

void main(void) { double gradosFahr, gradosCent; printf("grados Fahrenheit grados Centigrados\n"); printf("----------------- ----------------\n\n"); for (gradosFahr=0.0; gradosFahr<=300.0; gradosFahr+=20.0) { gradosCent = (5*(gradosFahr-32.0))/9.0; printf("%17.2lf%17.2lf\n", gradosFahr, gradosCent); } } Comentario: Como podrás observar la diferencia entre los dos programas está fundamentalmente en la forma de utilizar los bucles respectivos, a diferencia del while, en los parámetros del bucle for está incluidas todas las condiciones necesarias para su ejecución, es decir se encuentran: la inicialización, la condición a cumplir y además el incremento del contador, lo cual simplifica mucho el programa.

Ejercicios Resueltos de Programación en ANSI C pág. 11

PRÁCTICA 2.

EJERCICIO 2.1: VARIAS FORMAS DE UTILIZAR EL BUCLE FOR. En el siguiente programa se muestran distintas formas de escribir un bucle for para sumar los enteros del 1 al 5. Escribe el siguiente programa y guárdalo con el nombre sumaFor2.c. Compílalo, ejecútalo y observa los resultados. ¿Ves algo raro? Solución comentada al Ejercicio 2.1. /* fichero sumaFor2.c */ /* Programa para sumar los enteros del 1 al 5 */ #include <stdio.h> void main(void) { int i=1, suma=0; for ( ; i<=5 ; ) { /* primera forma */ suma += i; ++i; } printf("suma 1 = %d\n", suma); suma=0; /* segunda forma */ for (i=1; i<=5; ++i) suma+=i; printf("suma 2 = %d\n", suma); for(i=1, suma=0; i<=5 ; ++i, suma+=i) /* tercera forma */ ; printf("suma 3 = %d\n", suma); for(i=1, suma=0; i<=5 ; suma+=i, ++i) /* cuarta forma */ ; printf("suma 4 = %d\n", suma); } Comentario: Para definir un bucle hace falta un contador o variable de control (que casi siempre es un entero y suele nombrarse con las letras típicas de subíndices: i, j, k, ...). Esta variable de control es la que se chequea cada vez que comienza el bucle y la que permite continuar o no realizando las operaciones de dentro del bucle. Por otra parte, en C, el bucle for tiene tres componentes separadas por puntos y comas: la primera es una inicialización de la variable de control (u otras que pudieran afectar al bucle), la segunda es la sentencia de chequeo de la variable de control que siempre es necesaria (véase la primera forma); por último, la tercera son sentencias de actualización que se ejecutan al final del bucle (que también se podrían poner entre las llaves del bucle,

...

Descargar como (para miembros actualizados)  txt (21.6 Kb)  
Leer 19 páginas más »
Disponible sólo en Clubensayos.com