Sunteți pe pagina 1din 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)

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);
}

Profesor: Angel Delgado Herrador 1


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)
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");
Profesor: Angel Delgado Herrador 2
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)
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

Profesor: Angel Delgado Herrador 3


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)
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

Profesor: Angel Delgado Herrador 4


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)
#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);
}

Profesor: Angel Delgado Herrador 5


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)
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);
}

Profesor: Angel Delgado Herrador 6


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)
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);
}

Profesor: Angel Delgado Herrador 7


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)
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á

Profesor: Angel Delgado Herrador 8


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)
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.

Profesor: Angel Delgado Herrador 9


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)
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();

Profesor: Angel Delgado Herrador 10


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)
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);
}

Profesor: Angel Delgado Herrador 11


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)
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.

Profesor: Angel Delgado Herrador 12


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)
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.

Profesor: Angel Delgado Herrador 13


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)
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.

Profesor: Angel Delgado Herrador 14


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)
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);
}

Profesor: Angel Delgado Herrador 15


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)
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);
}

Profesor: Angel Delgado Herrador 16


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)

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);
}

Profesor: Angel Delgado Herrador 17


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)
Ejercicio 6: Escriba un programa que visualice el resultado de la
expresión:

b2-4ac

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
}

Profesor: Angel Delgado Herrador 18


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)
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 ();
}

Profesor: Angel Delgado Herrador 19


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)
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);
}

Profesor: Angel Delgado Herrador 20


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)
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);
}

Profesor: Angel Delgado Herrador 21


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)
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);
}

Profesor: Angel Delgado Herrador 22


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)
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);
}

Profesor: Angel Delgado Herrador 23


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)
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 =----------------------------------
2a

/********** 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);
}

Profesor: Angel Delgado Herrador 24


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)
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);
}

Profesor: Angel Delgado Herrador 25


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)

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);
}

Profesor: Angel Delgado Herrador 26