Está en la página 1de 18

UNIVERSIDAD NACIONAL DE INGENIERIA

Facultad de ingeniera elctrica y electrnica


Practica Calificada Nro. 1

CURSO:
Programacin Digital (MA 713)

SECCION:
Q

PROFESOR:
-Vilca Romn Arturo Dionisio .
.

Alumno:

-CARDENAS CUETO, Erick Alejandro. (20151027J)

ESPECIALIDAD:
Ingeniera Electrnica
I. Pregunta 1:

Diagrama de flujo
Cdigo del Problema 1

#include<stdio.h>
2 int main(){
3 int year,n,m,p;
4
5 printf("introduce un ao para saber si es bisiesto:\n");
6 scanf("%d",&year);
7
8 m=year%100;
9 n=year%4;
10 p=year%400;
11 if(m==0)
12 if(p==0)
13 printf("el ao es bisiesto");
14 else
15 printf("el ao no es bisiesto");
16
17 else
18 if(n==0)
19 printf("el ao es bisiesto");
20 else
21 printf("el ao no es bisiesto");
22
23
24
25
26 return 0;
27 }
28
29

Salidas del Programa 1


Observaciones
En este problema se utiliz el comando el if anidado
para poder separar los mltiplos de 4 de los que no lo
son.
Tambin se utiliz el comando % que calcula el resto
entre dos nmeros para hallar los mltiplos.
II. Pregunta 2:

Diagrama de flujo
Codigo del Problema 2
1 #include<stdio.h>
2
3
4 int main(){
5 int dia,mes;
6 enum month {
7 enero=1,
8 febrero,
9 marzo,
10 abril,
11 mayo,
12 junio,
13 julio,
14 agosto,
15 setiembre,
16 octubre,
17 noviembre,
18 diciembre,
19 };
20
21 printf("introducir numero de dia y mes (ao 2017) :\n");
22 scanf("%d%d",&dia,&mes);
23
24 if((mes==enero || mes==marzo || mes==mayo || mes==junio || mes==agosto || mes==octubre ||
mes==diciembre) && (dia==31))
25 {
26 mes=mes+1;
27 dia=1;}
28
29 if(( mes==abril || mes==junio || mes==setiembre || mes==noviembre) && (dia==30))
30 {
31 mes=mes+1;
32 dia=1;}
33 if(dia!=30 || dia!=31)
34 if(dia==28 && mes==2)
35 {dia=1;
36 mes=mes+1;}
37 else
38 dia=dia+1;
39
40 if(dia<=31 && mes<=12)
41 {printf("EL dia siguiente es : %d ",dia);
42 switch(mes)
43 {case enero:printf("de Enero");break;
44 case febrero:printf("de Febrero");break;
45 case marzo:printf("de Marzo");break;
46 case abril:printf("de Abril");break;
47 case mayo:printf("de Mayo");break;
48 case junio:printf("de Junio");break;
49 case julio:printf("de Julio");break;
50 case agosto:printf("de Agosto");break;
51 case setiembre:printf("de Setiembre");break;
52 case octubre:printf("de Octubre");break;
53 case noviembre:printf("de Noviembre");break;
54 case diciembre:printf("de Dciembre");break;
55 default: printf("ERROR, MAL INGRESADO");break;
56 }}
57
58 else
59 printf("INGRESO INCORRECTO");
60 return 0;

61 }
Observaciones:
Se utilizo el tipo de variable enum que funciona asignando
valores numericos a la lista colocada es decir le otorga un
valor entero a cada uno de los componentes de la lista de
acuerdo al orden ingresado.
Se uso tambien el switch y el if para elaborar el programa
evitando errores en el caso particular de que sea fin de mes.
III. Pregunta3:

Diagrama de flujo
Cdigo del Problema 3
1 #include<stdio.h>
2 int main(){
3 int n,entero,resto;
4 printf("Ingrese ao de entre 1000 a 2000 para convertir a numeros romanos :\n");
5 scanf("%d",&n);
6
7 entero=n/1000;
8 resto=n%1000;
9 if(n>=1000 && n<2000)
10 {printf("El ao convertido a numeros romanos es:\n");
11 switch(entero)
12 {case 1:printf("M");break;
13 case 2:printf("MM");break;
14 }
15 entero=resto/100;
16 resto=resto%100;
17 switch(entero)
18 {case 1:printf("C");break;
19 case 2:printf("CC");break;
20 case 3:printf("CCC");break;
21 case 4:printf("CD");break;
22 case 5:printf("D");break;
23 case 6:printf("DC");break;
24 case 7:printf("DCC");break;
25 case 8:printf("DCCC");break;
26 case 9:printf("CM");break;
27 }
28 entero=resto/10;
29 resto=resto%10;
30 switch(entero)
31 {case 1:printf("X");break;
32 case 2:printf("XX");break;
33 case 3:printf("XXX");break;
34 case 4:printf("XL");break;
35 case 5:printf("L");break;
36 case 6:printf("LX");break;
37 case 7:printf("LXX");break;
38 case 8:printf("LXXX");break;
39 case 9:printf("XC");break;
40 }
41 switch(resto)
42 {case 1:printf("I");break;
43 case 2:printf("II");break;
44 case 3:printf("III");break;
45 case 4:printf("IV");break;
46 case 5:printf("V");break;
47 case 6:printf("VI");break;
48 case 7:printf("VII");break;
49 case 8:printf("VIII");break;
50 case 9:printf("IX");break;
51 }
52 }
53 else
54 printf("EL NUMERO INTRODUCIDO ESTA FUERA DE RANGO");
55
56 return 0;
Observaciones
En este programa se trabajo con los enteros generados
de la division de dos enteros y ademas con el resto
generado de la division de los mismos,utilizando el
comando %.
Tambien se aprovecho el comando switch para
escoger entre muchas opciones las correspondientes y
despues mandarlas a imprimir.
IV. Pregunta4:

Diagrama de Flujo
Cdigo del Problema 4
1 #include<stdio.h>
2 #include<math.h>
3
4 int main(){
5 int m,b;
6 float r;
7 float y,x1,x2,discr;
8
9 printf("Bienvenido al programa que halla la interseccion de una
recta y una circunferencia\n");
10 printf("1) Dada la RECTA de la forma y=mx+b\n");
11 printf("Inserte los valores de m y b\n");
12 scanf("%d%d",&m,&b);
13
14 printf("2) Inserte el radio de la CIRCUNFERENCIA \n");
15 scanf("%f",&r);
16
17 discr=4*m*m*b*b-4*(m*m+1)*(b*b-r*r);
18
19
20 if(discr<0)
21 printf("no tiene solucion real");
22 else
23 { if(discr==0)
24 {x1=(-2*m*b+pow(discr,0.5))/(2*(m*m+1));
25 x2=x1;
26 printf("El punto unico que satisfacen la condicion
es:\n");
27 printf("x=%.3f\t y=%.3f\n",x1,m*x1+b);}
28
29 else
30 {x1=(-2*m*b+pow(discr,0.5))/(2*(m*m+1));
31 x2=(-2*m*b-pow(discr,0.5))/(2*(m*m+1));
32 printf("Los puntos que satisfacen las condiciones son:\n");
33 printf("x=%.3f\t y=%.3f\n",x1,m*x1+b);
34 printf("x=%.3f\t y=%.3f\n",x2,m*x2+b);}
35
36 }
37 return 0;
38 }
39
Observaciones
En este problema que consistia en hallar el punto en
comun entre una recta y una circunferencia se utilizo
convenientemente el comando pow() de la librera
math.h para poder hallar la raiz cuadrada de dos
numeros.
Ademas se observa que existen tres casos dependiendo
el signo del discriminante y tambien se debe tener
cuidado con las expresiones matematicas utilizando
adecuadamente los signos de agrupacion.

También podría gustarte