EjerciciosBasicos de c

26
Instalación y Mantenimiento 1º C.F. G.M. Explotación de Sistemas Informáticos. de servicios de redes locales. IES “Inca Garcilaso” Montilla (Córdoba) Profesor: Angel Delgado Herrador 1 EJERCICIOS de C Ejercicios Básicos Resueltos 1. Programa que convierte de metros a pies y pulgadas. #include <stdio.h> main(){ float metros,resul,pulg; int resul2,pulg2; clrscr(); printf("\nValor en metros: "); scanf("%f",&metros); resul=metros*(1/.3048); resul2=resul; pulg=resul-resul2; pulg=pulg*12; pulg2=pulg; printf("El resultado es: %d pies %d pulgadas",resul2,pulg2); getch(); } 2. Para ejemplificar todo esto vamos a realizar un programa que nos calcule el espacio recorrido por un móvil con velocidad uniforme durante un tiempo determinado. El programa sería algo así: #include <stdio.h> main() { float e,v,t; v = 30; /* Velocidad del móvil en Km/h */ t = 5; /* Tiempo durante el cual se mueve */ e = v*t; printf ("\nVelocidad : %f\nTiempo : %f",v,t); printf ("\nEspacio recorrido : %f",e); }

Transcript of EjerciciosBasicos de c

Page 1: EjerciciosBasicos de c

Instalación y Mantenimiento 1º C.F. G.M. Explotación de Sistemas Informáticos. de servicios de redes locales. IES “Inca Garcilaso” Montilla (Córdoba)

Profesor: Angel Delgado Herrador 1

EJERCICIOS de C Ejercicios Básicos Resueltos

1. Programa que convierte de metros a pies y pulgadas.

#include <stdio.h> main(){ float metros,resul,pulg; int resul2,pulg2; clrscr(); printf("\nValor en metros: "); scanf("%f",&metros); resul=metros*(1/.3048); resul2=resul; pulg=resul-resul2; pulg=pulg*12; pulg2=pulg; printf("El resultado es: %d pies %d pulgadas",resul2,pulg2); getch(); }

2. Para ejemplificar todo esto vamos a realizar un programa que nos

calcule el espacio recorrido por un móvil con velocidad uniforme durante un tiempo determinado. El programa sería algo así:

#include <stdio.h> main() { float e,v,t; v = 30; /* Velocidad del móvil en Km/h */ t = 5; /* Tiempo durante el cual se mueve */ e = v*t; printf ("\nVelocidad : %f\nTiempo : %f",v,t); printf ("\nEspacio recorrido : %f",e); }

Page 2: EjerciciosBasicos de c

Instalación y Mantenimiento 1º C.F. G.M. Explotación de Sistemas Informáticos. de servicios de redes locales. IES “Inca Garcilaso” Montilla (Córdoba)

Profesor: Angel Delgado Herrador 2

3. Suponga que un individuo desea invertir su capital en un banco y desea saber cuanto dinero ganara después de un mes si el banco paga a razón de 2% mensual.

Inicio

Leer cap_inv gan = cap_inv * 0.02

Imprimir gan Fin #include <stdio.h> main() { int cap_inv; float gan; printf ("Cantidad a invertir:"); scanf ("%i",& cap_inv); gan=cap_inv*.02; printf ("\nLa ganancia es:%F", gan); }

4. Un vendedor recibe un sueldo base mas un 10% extra por comisión

de sus ventas, el vendedor desea saber cuanto dinero obtendrá por concepto de comisiones por las tres ventas que realiza en el mes y el total que recibirá en el mes tomando en cuenta su sueldo base y comisiones. Inicio Leer sb, v1, v2, v3 tot_vta = v1 + v2 + v3 com = tot_vta * 0.10 tpag = sb + com Imprimir tpag, com Fin #include <stdio.h> main() { float sb,v1,v2,v3,com,tot_ven,tot_pag; sb=5000; printf ("\nIngrese la venta 1:"); scanf ("%f",& v1); printf ("\nIngrese la venta 2:"); scanf ("%f",& v2); printf ("\nIngrese la venta 3");

Page 3: EjerciciosBasicos de c

Instalación y Mantenimiento 1º C.F. G.M. Explotación de Sistemas Informáticos. de servicios de redes locales. IES “Inca Garcilaso” Montilla (Córdoba)

Profesor: Angel Delgado Herrador 3

scanf ("%f",& v3); tot_ven=v1+v2+v3; com=tot_ven*.10; tot_pag=sb+com; printf ("\nTotal de pago:%f",tot_pag); printf ("\nComision:%f",com); }

5. Una tienda ofrece un descuento del 15% sobre el total de la compra

y un cliente desea saber cuanto deberá pagar finalmente por su compra. Inicio Leer tc d = tc * 0.15 tp = tc - d Imprimir tp Fin #include <stdio.h> main() { float tc,d,tp; printf ("\nIngrese la compra:"); scanf ("%f",& tc); d=tc*.15; tp=tc-d; printf ("\nEl total de la compra es:%f",tp); }

6. Un alumno desea saber cual será su calificación final en la materia

de Física. Dicha calificación se compone de los siguientes porcentajes:

55% del promedio de sus tres calificaciones parciales. 30% de la calificación del examen final. 15% de la calificación de un trabajo final.

Inicio Leer c1, c2, c3, ef, tf Prom = (c1 + c2 + c3)/3 Ppar = prom * 0.55 Pef = ef * 0.30 Ptf = tf * 0.15

Page 4: EjerciciosBasicos de c

Instalación y Mantenimiento 1º C.F. G.M. Explotación de Sistemas Informáticos. de servicios de redes locales. IES “Inca Garcilaso” Montilla (Córdoba)

Profesor: Angel Delgado Herrador 4

Cf = ppar + pef + ptf Imprimir cf Fin #include <stdio.h> main() { float c1,ef,c2,c3,cf,tf,prom,ppar,pef,ptf; printf ("Ingrese la primer calificacion:"); scanf ("%f",& c1); printf ("\nIngrese la segunda calificacion:"); scanf ("%f",& c2); printf ("\nIngrese la tercer calificacion:"); scanf ("%f",& c3); printf ("\nIntroduce la calificacion del trabajo final:"); scanf ("%f",& tf); printf ("\nIntroduce la calificacion de tu examen final:"); scanf ("%f",& cf); prom=(c1+c2+c3)/3; ppar=prom*.55; pef=ef*.15; ptf=tf*.15; cf=ppar+pef+ptf; printf ("\nTu calificacion final es:%f", cf); }

7. Un maestro desea saber que porcentaje de hombres y que

porcentaje de mujeres hay en un grupo de estudiantes. Inicio Leer nh, nm ta = nh + nm ph = nh * 100 / ta pm = nm * 100 / ta Imprimir ph, pm Fin

Page 5: EjerciciosBasicos de c

Instalación y Mantenimiento 1º C.F. G.M. Explotación de Sistemas Informáticos. de servicios de redes locales. IES “Inca Garcilaso” Montilla (Córdoba)

Profesor: Angel Delgado Herrador 5

#include <stdio.h> main() { float nh,nm,ta,ph,pm; printf ("Ingrese el numero de hombres"); scanf ("%f",& nh); printf ("\nIngrese el numero de mujeres"); scanf ("%f",& nm); ta=nh+nm; ph=nh*100/ta; pm=nm*100/ta; printf ("\nEl porcentaje de hombres es:%f", ph); printf ("\nEl porcentaje de mujeres es:%f", pm); }

8. Realizar un programa que calcule la edad de una persona.

Inicio Leer fnac, fact edad = fact - fnac Imprimir edad Fin. #include <stdio.h> main() { int fnac,fact,edad; printf ("Introduce tu año de nacimiento:"); scanf ("%d",& fnac); printf ("\nIntroduce el año actual:"); scanf ("%d",& fact); edad=fact-fnac; printf ("\nTu edad es:%d",edad); }

Page 6: EjerciciosBasicos de c

Instalación y Mantenimiento 1º C.F. G.M. Explotación de Sistemas Informáticos. de servicios de redes locales. IES “Inca Garcilaso” Montilla (Córdoba)

Profesor: Angel Delgado Herrador 6

9. Dada un cantidad en pesos, obtener la equivalencia en dólares, asumiendo que la unidad cambiaría es un dato desconocido. #include <stdio.h> main() { float pes,dol,valdol; printf ("Introduzca el sistema cambiario:"); scanf ("%f",& valdol); printf ("\nIntroduce cual es tu monto en pesos:"); scanf ("%f",& pes); dol=pes/valdol; printf ("El valor en pesos es:%f", dol); }

10. Calcular el numero de pulsaciones que una persona debe tener por

cada 10 segundos de ejercicio, si la formula es: num. pulsaciones = (220 - edad)/10

#include <stdio.h> main () { float np; int edad; printf ("\nIntroduce tu edad:"); scanf ("%f",& edad); np=((220-edad)/100)*10; printf ("\n\nEl resultado es:%f", np); }

Page 7: EjerciciosBasicos de c

Instalación y Mantenimiento 1º C.F. G.M. Explotación de Sistemas Informáticos. de servicios de redes locales. IES “Inca Garcilaso” Montilla (Córdoba)

Profesor: Angel Delgado Herrador 7

11. En un hospital existen tres áreas: Ginecología, Pediatría, Traumatologia. El presupuesto anual del hospital se reparte conforme a la sig. tabla: Área Porcentaje del presupuesto Ginecología 40% Traumatologia 30% Pediatría 30% Obtener la cantidad de dinero que recibirá cada área, para cualquier monto presupuestal. #include <stdio.h> main () { float gin,pedia,trauma,pres; printf ("Ingrese el monto del presupuesto"); scanf ("%f",& pres); gin=pres*.40; trauma=pres*.30; pedia=pres*.30; printf ("\n El presupuesto para ginecologia es:%f",gin); printf ("\n\nEl presupuesto para traumatologia es:%f",trauma); printf ("\n\nEl presupuesto para pediatria es:%f",pedia); }

12. El dueño de una tienda compra un articulo a un precio determinado.

Obtener el precio en que lo debe vender para obtener una ganancia del 30%. #include <stdio.h> main() { float p_c,por,gan; printf ("Introduce el monto de la compra:"); scanf ("%f",& p_c); por=p_c*.30; gan=por+p_c; printf ("\nEl precio de venta es:%f", gan); printf ("\nLaganancia es de :%f", por); }

Page 8: EjerciciosBasicos de c

Instalación y Mantenimiento 1º C.F. G.M. Explotación de Sistemas Informáticos. de servicios de redes locales. IES “Inca Garcilaso” Montilla (Córdoba)

Profesor: Angel Delgado Herrador 8

13. Programa que convierte de metros a pies y pulgadas. #include stdio.h main() { float metros,resul,pulg; int resul2,pulg2; clrscr(); printf("\nValor en metros: "); scanf("%f",&metros); resul=metros*(1/.3048); resul2=resul; pulg=resul-resul2; pulg=pulg*12; pulg2=pulg; printf("El resultado es: %d pies %d pulgadas",resul2,pulg2); getch(); }

14. El siguiente programa muestra el número ASCII de cualquier

carácter. #include <stdio.h> #include <conio.h> main() { char ch; printf ("Introduzca un caracter:"); ch=getche (); printf ("\nEl codigo ASCII es:%d",ch); }

Ejemplos Básicos Propuestos.

1. Leer un número y escribir el valor absoluto del mismo. 2. La presión, el volumen y la temperatura de una masa de aire se

relacionan por la formula: masa = (presión * volumen)/(0.37 * (temperatura + 460))

3. Calcular el nuevo salario de un obrero si obtuvo un incremento del 25% sobre su salario anterior.

4. Todos los lunes, miércoles y viernes, una persona corre la misma ruta y cronometra los tiempos obtenidos. Determinar el tiempo promedio que la persona tarda en recorrer la ruta en una semana cualquiera.

5. Tres personas deciden invertir su dinero para fundar una empresa. Cada una de ellas invierte una cantidad distinta. Obtener el porcentaje que cada quien invierte con respecto a la cantidad total invertida.

6. Un alumno desea saber cual será su promedio general en las tres materias mas difíciles que cursa y cual será el promedio que obtendrá

Page 9: EjerciciosBasicos de c

Instalación y Mantenimiento 1º C.F. G.M. Explotación de Sistemas Informáticos. de servicios de redes locales. IES “Inca Garcilaso” Montilla (Córdoba)

Profesor: Angel Delgado Herrador 9

en cada una de ellas. Estas materias se evalúan como se muestra a continuación: La calificación de Matemáticas se obtiene de la sig. manera:

· Examen 90%, Promedio de tareas 10% · En esta materia se pidió un total de tres tareas.

La calificación de Física se obtiene de la sig. manera: · Examen 80% · Promedio de tareas 20% · En esta materia se pidió un total de dos tareas.

La calificación de Química se obtiene de la sig. manera: · Examen 85% · Promedio de tareas 15% · En esta materia se pidió un promedio de tres tareas.

Page 10: EjerciciosBasicos de c

Instalación y Mantenimiento 1º C.F. G.M. Explotación de Sistemas Informáticos. de servicios de redes locales. IES “Inca Garcilaso” Montilla (Córdoba)

Profesor: Angel Delgado Herrador 10

1.- Realiza un programa que introduciendo dos números nos calcule el producto, división y resto de dichos números. /* Ejercicio nº 1 */ #include<stdio.h> main() { int a,b; clrscr(); printf("\nIntroduzca a y b: "); scanf("%d%d",&a,&b); printf("\n%d*%d=%d",a,b,a*b); printf("\n%d/%d=%.2f",a,b,(float)a/b); printf("\n%dmod%d=%d",a,b,a%b); getch(); }

2.- Elabora un programa en el cual sabiendo el peso en libras nos calcule el peso en kilogramos y gramos. Cada libra es igual 453,59237 gramos. /* Ejercicio nº2 */ #include<stdio.h> main() { float lb; clrscr(); printf("\nIntroduce el peso en libras: "); scanf("%f",&lb); printf("\nEl peso en kilogramos es: %.2f kg",lb*0.453592); printf("\nEl peso en gramos es: %.2f g",lb*453.59237); getch(); }

Page 11: EjerciciosBasicos de c

Instalación y Mantenimiento 1º C.F. G.M. Explotación de Sistemas Informáticos. de servicios de redes locales. IES “Inca Garcilaso” Montilla (Córdoba)

Profesor: Angel Delgado Herrador 11

3.- Sabiendo los segundos totales que tarda un avión en llegar a su destino. ¿a cuántas semanas, días, horas y minutos corresponde? /* Ejercicio n§ 3 */ #include <stdio.h> main() { long int s,seg,min,hor,dia,sem; clrscr(); printf("\nIntroduzca el n£mero total de segundos: "); scanf("%ld",&s); seg=s%60; s=s/60; min=s%60; s=s/60; hor=s%24; s=s/60; dia=s%7; s=s/7; sem=s; printf("\n%ld semanas: %ld d¡as: %ld horas: %ld minutos: %ldsegundos",sem,dia,hor,min,seg); getch(); }

Ejercicio 1: El operador de división (/).

Ejecuta el siguiente programa para aclarar las ideas sobre cómo funciona este operador con distintos tipos de variables. En él se puede comprobar la diferencia entre la división entera y de punto flotante. Guarda el programa como division.c.

Solución comentada al Ejercicio 1.

/* fichero division.c*/ # include <stdio.h > void main(void) { printf("división entera: 5/4 es %6d\n", 5/4); printf("división entera: 6/3 es %6d\n", 6/3); printf("división entera: 7/4 es %6d\n", 7/4); printf("división flotante: 7./4. es %6.3f\n", 7./4.); printf("división mixta: 7./4 es %6.3f\n", 7./4); }

Page 12: EjerciciosBasicos de c

Instalación y Mantenimiento 1º C.F. G.M. Explotación de Sistemas Informáticos. de servicios de redes locales. IES “Inca Garcilaso” Montilla (Córdoba)

Profesor: Angel Delgado Herrador 12

Comentario: Es importante recordar que el tipo de formato debe estar de acuerdo con el tipo del argumento en la función printf(). Para el formato de salida (%6.3f) se tendrán un total de 6 espacios de salida, de los cuales tres serán decimales.

Ejercicio 2: UNA PEQUEÑA OPERACIÓN ARITMÉTICA.

Estarás pensando que el C ha de servir para algo más que mantener una aburrida conversación con tu pantalla (¿amiga?). En el siguiente programa te presentamos un avance de las "complicadas" operaciones que puede realizar el C. Escribe el programa y sálvalo como maraton.c.

Compila el programa y ejecútalo; apuntando el resultado. Después modifica el programa sustituyendo 1760.0 por 1760 en la línea que calcula el número de kilómetros. Vuelve a compilar y a ejecutar. ¿Sale lo mismo que antes? ¿Qué ha podido pasar?

Solución comentada al Ejercicio 2.

// fichero marathon.c // Un marathon tiene 26 millas y 385 yardas. // Calcula la distancia del marathon en kilómetros. // Una milla tiene 1760 yardas. #include <stdio.h> void main(void) { int millas, yardas; float kilometros; millas = 26; yardas = 385; kilometros = 1.609 * (millas + yardas / 1760.0); printf("\nUn marathon tiene %f kilometros.\n\n", kilometros); }

Comentario: En C las constantes que incluyen un punto decimal son de tipo double. La variable yardas es de tipo int. Si en el denominador se pone sólo 1760, el resultado de yardas/1760 es entero y por tanto incorrecto. Basta poner 1760.0 para que yardas sea promovido a double y todas las operaciones aritméticas de esa sentencia se realicen con precision double.

Page 13: EjerciciosBasicos de c

Instalación y Mantenimiento 1º C.F. G.M. Explotación de Sistemas Informáticos. de servicios de redes locales. IES “Inca Garcilaso” Montilla (Córdoba)

Profesor: Angel Delgado Herrador 13

Ejercicio 3: PREGUNTAS INDISCRETAS.

En este programa vas a utilizar la función scanf() con distintos tipos de variables. De paso podrás contestar a algunas preguntas indiscretas, pero de indudable interés social. El siguiente programa debe ser almacenado en un fichero llamado mascota.c.

Si tu mascota favorita es una boa, una ardilla o una gacela, tendrás que cambiar el artículo "un" por "una", para respetar la concordancia.

Solución comentada al Ejercicio 3.

// fichero mascota.c #include <stdio.h> void main(void) { int edad; float sueldo; char cachorro[30]; printf("Confiesa tu edad, sueldo y mascota favorita.\n"); scanf("%d %f",&edad, &sueldo); scanf("%s", cachorro); printf("%d %.0f pts. %s\n",edad, sueldo, cachorro); printf("Un ¡¡%s!!", cachorro); printf("¿Cómo te puede gustar un %s?\n", cachorro); }

Comentario: En la función scanf(), se incluye el operador dirección (&) delante de las variables escalares para pasar a la función las direcciones de dichas variables (paso de argumentos por referencia). De esta forma la función scanf() puede depositar en las direcciones de memoria correctas los valores que lee desde teclado. Recordemos que para leer cadenas de caracteres basta poner el nombre de la cadena, que de por sí ya es una dirección.

Page 14: EjerciciosBasicos de c

Instalación y Mantenimiento 1º C.F. G.M. Explotación de Sistemas Informáticos. de servicios de redes locales. IES “Inca Garcilaso” Montilla (Córdoba)

Profesor: Angel Delgado Herrador 14

Ejercicio 4: MODIFICA EL PROGRAMA mascota.c.

En este ejercicio se te pide una modificación del programa del Ejercicio 3. Edita el programa mascota.c y guardado con el nombre pregunta.c, modificándolo de manera que una vez ejecutado nos pregunte el número de calzado, peso y color favorito.

Solución comentada del Ejercicio 4.

// fichero pregunta.c #include <stdio.h> void main(void) { int calzado; float peso; char color[20]; printf("Confiesa tu calzado, peso y color favorito:\n"); printf("\n Calzado: "); scanf("%d", &calzado); printf("\n Peso: "); scanf("%f", &peso); printf("\nColor favorito: "); scanf("%s", color); printf("¡El %s!\n", color); printf("¿Cómo puede gustarte el %s\n", color); printf("Calzando un %d y pesando %6.2f Kg.?\n", calzado, peso); }

Comentario: En la función printf() hay que utilizar diferentes formatos de salida para las variables que deseamos imprimir en pantalla. Así, el formato %6.2f: mostrará peso en 6 espacios, de los cuales dos serán para los decimales y uno para el punto decimal. Observa cómo se pide el peso, calzado y color favorito de forma que los dos puntos (:) queden alineados en la pantalla.

Page 15: EjerciciosBasicos de c

Instalación y Mantenimiento 1º C.F. G.M. Explotación de Sistemas Informáticos. de servicios de redes locales. IES “Inca Garcilaso” Montilla (Córdoba)

Profesor: Angel Delgado Herrador 15

Ejercicio 1: Realiza un programa que realice las operaciones aritméticas fundamentales.

/******************* Operaciones aritméticas *******************/

/ aritmeti.c #include <stdio.h> main() { int dato1, dato2, resultado; dato1 = 20; dato2 = 10; // Suma resultado = dato1 + dato2; printf("%d + %d = %d\n", dato1, dato2, resultado); // Resta resultado = dato1 - dato2; printf("%d - %d = %d\n", dato1, dato2, resultado); // Producto resultado = dato1 * dato2; printf("%d * %d = %d\n", dato1, dato2, resultado); // Cociente resultado = dato1 / dato2; printf("%d / %d = %d\n", dato1, dato2, resultado); }

Page 16: EjerciciosBasicos de c

Instalación y Mantenimiento 1º C.F. G.M. Explotación de Sistemas Informáticos. de servicios de redes locales. IES “Inca Garcilaso” Montilla (Córdoba)

Profesor: Angel Delgado Herrador 16

Ejercicio 2: Colores. /* enum.c */ #include <stdio.h> enum colores { azul, amarillo, rojo, verde, blanco, negro }; main() { enum colores color; /* Leer un color introducido desde el teclado */ printf("Color: "); scanf("%d", &color); /* Visualizar un color */ printf("%d\n", color); }

Ejercicio 3.- Raiz Cuadrada /* raiz_cuadrada.c */ #include <stdio.h> // necesaria para printf #include <math.h> // necesaria para sqrt (raíz cuadrada) main() { int i = 9; double r = 0; r = sqrt((double)i/2); printf("La raíz cuadrada es %g\n", r); }

Ejercicio 4: Calcula el área de un triángulo. /* tríangulo.c */ #include <stdio.h> main() { double base = 11.5, altura = 3.0, area = 0.0; area = base * altura / 2; printf("Area = %g\n", area); }

Page 17: EjerciciosBasicos de c

Instalación y Mantenimiento 1º C.F. G.M. Explotación de Sistemas Informáticos. de servicios de redes locales. IES “Inca Garcilaso” Montilla (Córdoba)

Profesor: Angel Delgado Herrador 17

Ejercicio 5: Escriba un programa que calcule la suma y la media de cuatro valores de tipo int. /*************************** Media ***************************/ #include <stdio.h> /* La suma de 4 números del tipo int es un valor que oscila entre (2e31-1)*4 y -(2e31). Como el tamaño de un long es igual que el de un int, la suma podría ser un float o un double. Además, la media puede tener decimales, por lo que los tipos posibles para la operación podrían ser float o double: */ /* (El uso de long double, puede hacer al programa dependiente de la arquitectura de los micros de Intel '80x87') */ main() { int a, b, c, d; float suma, media; a = 12000, b = 32422, c = 123000, d = -1212; suma = a + b + c + d; // El compilador debe transformar los int a float media = suma / 4; printf("a = %d\tb = %d\tc = %d\td = %d\nsuma = %g\nmedia = %g\n", a, b, c, d, suma, media); }

Page 18: EjerciciosBasicos de c

Instalación y Mantenimiento 1º C.F. G.M. Explotación de Sistemas Informáticos. de servicios de redes locales. IES “Inca Garcilaso” Montilla (Córdoba)

Profesor: Angel Delgado Herrador 18

Ejercicio 6: Escriba un programa que visualice el resultado de la expresión: b2-4ac 2ª para valores de a=1, b=5 y c=2 /*************************** Evaluación ***************************/ // Cap2\ejercicio08.c #include <stdio.h> main() { float a = 1, b = 5, c = 2, result; // Se inician a, b, c en la propia declaración result = (b*b - 4*a*c) / (2*a); // El uso de paréntesis es conveniente cuando // se dude de la prioridad de los operadores. // No se genera más código por emplear muchos // paréntesis. En nuestro caso es necesario. printf("a = %g\tb = %g\tc = %g\nResultado = %g\n", a, b, c, result); // Observe la diferencia entre utilizar %f y %g }

Page 19: EjerciciosBasicos de c

Instalación y Mantenimiento 1º C.F. G.M. Explotación de Sistemas Informáticos. de servicios de redes locales. IES “Inca Garcilaso” Montilla (Córdoba)

Profesor: Angel Delgado Herrador 19

Ejercicio 7: Realiza un programa que nos de el año de nacimiento de una persona, como du nombre. Pedimos lo que necesitemos. // Ejercicio #include <stdio.h> #include <conio.h> void main () { clrscr (); int edad, dia, mes, anyo, anyonac; char nombre [40]; //Pidamos al usuario lo que necesitamos printf ("Escribe tu nombre: \n"); scanf ("%s", &nombre); printf ("Dime tu edad: \n"); scanf ("%d", &edad); printf ("Dame la fecha actual (dia/mes/anyo): \n"); scanf ("%d %d %d", &dia, &mes, &anyo); //ahora vamos a averiguar su fecha de nacimiento anyonac = anyo - edad; //y le decimos en que año nacio printf ("Pues has nacido en %d (anyo arriba, anyo abajo).\n", anyonac); getch (); }

Page 20: EjerciciosBasicos de c

Instalación y Mantenimiento 1º C.F. G.M. Explotación de Sistemas Informáticos. de servicios de redes locales. IES “Inca Garcilaso” Montilla (Córdoba)

Profesor: Angel Delgado Herrador 20

Ejercicio 8: Escriba un programa que lea dos números y aplique sobre ellos todos los operadores aritméticos (incluyendo el pre y post incremento y decremento. Solución: #include <stdio.h> int main (void) { clrscr (); /* Definición de variables*/ int a, b; int suma, resta, producto, division, modulo; int postincremento, preincremento; int postdecremento, predecremento; printf(“introduzca dos números a y b: “); scanf(“%d %d”, &a, &b); suma=a+b; resta=a-b; producto=a*b; division=a/b; modulo=a%b; postincremento=a++; preincremento=++a; postdecremento=b--; predecremento=--b; printf(“Suma= %d\n”, suma); printf(“Resta= %d\n”, resta); printf(“Producto= %d\n”, producto); printf(“Division= %d\n”, division); printf(“Modulo= %d\n”, modulo); printf(“Postincremento de %d= %d\n”, a, postincremento); printf(“Preincremento de %d= %d\n”, a, preincremento); printf(“Postincremento de %d= %d\n”, a, postdecremento); printf(“Predecremento de %d= %d\n”, a, predecremento); return(0); }

Page 21: EjerciciosBasicos de c

Instalación y Mantenimiento 1º C.F. G.M. Explotación de Sistemas Informáticos. de servicios de redes locales. IES “Inca Garcilaso” Montilla (Córdoba)

Profesor: Angel Delgado Herrador 21

Ejercicio 9: Escriba un programa que defina la constante PI como 3,1416, que calcule el área de un círculo cuyo radio se pide por pantalla, la imprima por pantalla. Solución: #include <stdio.h> #define PI 3,1416 /*constate PI*/ int main (void) { clrscr (); /* Definición de variables*/ float area=0; int radio=5; printf(“Introduzca el radio del circulo: “); scanf(“%d”, &radio); /*Area de un circulo*/ area=PI*radio*radio; printf(“El área del circulo de radio = %d es %f \n”, radio, area); return(0); }

Page 22: EjerciciosBasicos de c

Instalación y Mantenimiento 1º C.F. G.M. Explotación de Sistemas Informáticos. de servicios de redes locales. IES “Inca Garcilaso” Montilla (Córdoba)

Profesor: Angel Delgado Herrador 22

Ejercicio 10: Escriba un programa que calcule la ecuación del espacio recorrido por un objeto que se mueve a velocidad constante. Había recorrido un espacio inicial de 5,5m y se mueve a velocidad constante de 3,2 m/s. Debe pedir por la entrada estándar los segundos que se mueve. Solución: /*Cálculo del espacio que recorre un móvil*/ #include <stdio.h> #define EspacioInicial 5.5.F #define Velocidad 3,2F int main (void) { clrscr (); /* Definición de variables*/ float tiempo=22.3F; /*Tiempo del recorrido*/ float espacio=0; printf(“Tiempo de desplazamiento: “); scanf(“%f”, &tiempo); /*operaciones solicitadas*/ espacio=EspacioInicial+Velocidad*tiempo; /*salida de resultados*/ printf(“Espacio recorrido = %f metros\n”, espacio); return(0); }

Page 23: EjerciciosBasicos de c

Instalación y Mantenimiento 1º C.F. G.M. Explotación de Sistemas Informáticos. de servicios de redes locales. IES “Inca Garcilaso” Montilla (Córdoba)

Profesor: Angel Delgado Herrador 23

Ejercicio 11: Realizar un programa que dé como resultado los intereses producidos y el capital total acumulado de una cantidad c, invertida a un interés r durante t días. La fórmula utilizada para el cálculo de los intereses es: c*r*t I= 360*100 Siendo : I= Total de intereses producidos. c= Capiltal. r= Tasa de interés nominal en tanto por ciento. t= Período de cálculo en días. /********************* Capital e Intereses *********************/ /* capital.c */ #include <stdio.h> #include <stdlib.h> main() { double c, intereses, capital; float r; int t; clrscr(); /* limpiar pantalla */ /* Entrada de datos */ printf("Capital invertido "); scanf("%lf", &c); printf("\nA un %% anual del "); scanf("%f", &r); printf("\nDurante cuántos días "); scanf("%d", &t); printf("\n\n"); /* Cálculos */ intereses = c * r * t / (360L * 100); capital = c + intereses; /* Escribir resultados */ printf("Intereses producidos...%10.0f\n", intereses); printf("Capital acumulado......%10.0f\n", capital); }

Page 24: EjerciciosBasicos de c

Instalación y Mantenimiento 1º C.F. G.M. Explotación de Sistemas Informáticos. de servicios de redes locales. IES “Inca Garcilaso” Montilla (Córdoba)

Profesor: Angel Delgado Herrador 24

Ejercicio 12: Realizar un programa que dé como resultado las soluciones reales x1 y x2 de una ecuación de segundo grado, de la forma: ax2 + bx + c = 0 Las soluciones de una ecuación de segundo grado vienen dadas por la fórmula: -b+ b2 - 4ac xi =---------------------------------- 2 a /********** Solución de una ecuación de segundo grado **********/ /* ecuacion.c */ #include <stdio.h> #include <stdlib.h> #include <math.h> main() { double a, b, c, d, x1, x2; clrscr(); /* Entrada de datos */ printf("Introducir los coeficientes a b c: "); scanf("%lf %lf %lf", &a, &b, &c); /* Comprobar si las raíces son reales */ d = b * b - 4 * a * c; (d < 0) ? printf("Las raíces son complejas\n"), exit(0) : printf("Las raíces reales son:\n"); /* Cálculo de las soluciones */ d = sqrt(d); x1 = (-b + d) / (2 * a); x2 = (-b - d) / (2 * a); /* Escribir resultados */ printf("x1 = %g\nx2 = %g\n", x1, x2); }

Page 25: EjerciciosBasicos de c

Instalación y Mantenimiento 1º C.F. G.M. Explotación de Sistemas Informáticos. de servicios de redes locales. IES “Inca Garcilaso” Montilla (Córdoba)

Profesor: Angel Delgado Herrador 25

Ejercicio 13: Realizar un programa que calcule el volumen de una esfera que viene dado por la fórmula: V=4/3* ∏3 /* Obtención del volumen de una esfera * */ #include <stdio.h> main() { double radio, volumen; printf("Radio de la esfera: "); scanf("%lf", &radio); // Leer un valor double desde el teclado y almacenalo // en la variable radio volumen = 4.0 / 3.0 * 3.141593 * radio * radio * radio; // No es necesario usar paréntesis, aunque también se podía haber escrito: // volumen = (4.0 / 3.0) * 3.141593 * radio * radio * radio. printf("Volumen de la esfera = %.4f\n", volumen); // 4 decimales fijos }

Ejercicio 14: Realizar un programa que pregunte el nombre, el año de nacimiento, el año actual y dé como resultado : Hola nombre, en el año 2030 cumplirás n años. /* Calcula la edad en el 2030 */ #include <stdio.h> main() { char nombre[30]; // Se reservan 30 caracteres para el nombre int edad, anyo; printf("Introduzca su nombre: "); scanf("%s", nombre); // 'nombre' es una cadena de caracteres printf("Introduzca su edad: "); scanf("%d", &edad); printf("Introduzca el año actual ####: "); scanf("%d", &anyo); printf("Hola %s, en el año 2030 cumplirás %d años\n", nombre, edad + (2030 - anyo) + 1); }

Page 26: EjerciciosBasicos de c

Instalación y Mantenimiento 1º C.F. G.M. Explotación de Sistemas Informáticos. de servicios de redes locales. IES “Inca Garcilaso” Montilla (Córdoba)

Profesor: Angel Delgado Herrador 26

Ejercicio 15: Realizar un programa que evalúe el polinomio p=3x5-5x3+2x-7 y visualice el resultado con el siguiente formato: /* Evalúa el polinomio: ax5-bx3+cx-7*/ #include <stdio.h> main() { double a = 0, b = 0, c = 0, x = 0, p = 0; // Se inicializan los valores a 0 (opcional) printf("Introduzca los coeficientes y el valor de x para obtener el resultado de:\n" "\tax^5 - bx^3 + cx - 7\n\n"); printf("a = "); scanf("%lf", &a); // Si se escriben todos los datos secuencialmente, printf("b = "); // también los acepta scanf("%lf", &b); // Si no se quisiera esto, poner 'fflush(stdin);' printf("c = "); // detrás de cada 'scanf()' scanf("%lf", &c); printf("x = "); scanf("%lf", &x); p = a*x*x*x*x*x - b*x*x*x + c*x - 7; printf("\nPara x = %g, %gx^5 - %gx^3 + %gx - 7 = %g\n", x, a, b, c, p); }

Ejercicio 16: Indiqué qué resultado da el siguiente programa. A continuación ejecute el programa y compare los resultados. /* Uso de constantes numéricas*/ #include <stdio.h> /* Con este programa, se obtiene un número ASCII y su letra correspondiente; en este caso "97 a" en ambos printf */ main() { char car1 = 'A', car2 = 65, car3 = 0; // el valor ASCII de 'A' es 65 car3 = car1 + 'a' - 'A'; // car3 = 'A' + 'a' - 'A' = 'a' printf("%d %c\n", car3, car3); // 'A' dista de 'a' 32 caracteres, luego: car3 = car2 + 32; // car3 = 'A' + 32 = 'a' printf("%d %c\n", car3, car3); }