You are on page 1of 14

UNIVERSIDAD NACIONAL

DE INGENIERA
FACULTAD DE INGENIERA
ELCTRICA Y ELECTRNICA
ESCUELA DE ELECTRNICA

ASIGNATURA: PROGRAMACIN DIGITAL

ALUMNO:
CURO BLAS, DANTE MEYER 20154167G

III CICLO - SECCIN P


LIMA PER
2016

1) leer un numero binario racional convertir a base decimal


Ejemplo: 1010.011 en base binario, convertido a decimal 10.375

Realizando el proceso en el diagrama Nassi-Sneiderman


Realizando el problema en el programa de Netbeans

1 package javaproblema02;
2
3 import java.util.Scanner;
4 public class JavaProblema02 {
5
6 public static void main(String[] args) {
7 //variables
8 int numero, digito, decimal, exponente;
double decimal1, r;
9 //arreglos
1
0 int N[]=new int[3];
1
1
1
2 //entrada
1 Scanner teclado = new
3 Scanner(System.in);
1
4 System.out.print("introduce un numero binario: ");
1
5 numero= teclado.nextInt();
1 System.out.println("introduce la parte decimal del
6 binario: ");
1 System.out.print("introduce el primer
7 numero: ");
1
8 N[0]= teclado.nextInt();
1
9 System.out.print("introduce el segundo numero: ");
2
0 N[1]= teclado.nextInt();
2 System.out.print("introduce el tercer
1 numero: ");
2
2 N[2]= teclado.nextInt();
2
3
2 //proceso para pasar de binario a
4 decimal
2
5 exponente = 0;
2 decimal = 0; //ser el equivalente en base
6 decimal
2
7 while (numero != 0) {
2 //se toma la ltima
8 cifra
2 digito = numero %
9 10;
3 //se multiplica por la potencia de 2 correspondiente y se suma
0 al nmero
3 decimal = decimal + digito * (int) Math.pow(2,
1 exponente);
3 //se aumenta el
2 exponente
3
3 exponente++;
3 //se quita la ltima cifra para repetir el
4 proceso
3 numero = numero /
5 10;
3
6 }
3 //proceso para la parte
7 decimal
3
8 decimal1= N[0]/2.0+N[1]/4.0+N[2]/8.0;
3
9 r= decimal+decimal1;
4
0
4
1

4 System.out.println("Decimal: "
2 + r);
4
3
4
4 }
4
5 }
4
6
4
7 /*run:
4 introduce un numero binario:
8 1010
4
9 introduce la parte decimal del binario:
5
0 introduce el primer numero: 0
5 introduce el segundo numero:
1 1
5
2 introduce el tercer numero: 1
5
3 Decimal: 10.375
5 BUILD SUCCESSFUL (total time: 20
4 seconds)
* Realizando el diagrama de clase

2) Disee un algoritmo para hallar una de las races de la funcin f= 6


x 3 + x 2145 x+145

Con un error menor a 0.001, si sabe que f es real y continua y cambia


de signo en el intervalo a, b. Sugerencia; utilizar mtodo de biseccin
o pto medio.
SOLUCION:

El algoritmo del problema 3 en el diagrama NASSI-SNEIDERMAN.


En el programa de netbeans, tenemos la codificacin

package
1 teoremadelvalormedio;
2 import java.util.Scanner;
3
public class
4 Teoremadelvalormedio {
5
6
public static void main(String[]
7 args) {
8 double a,b,c,l,fa,fb,fc;
System.out.println("introduzca los extremos del
9 intervalo a analizar");
Scanner infimo=new
10 Scanner(System.in);
Scanner supremo=new
11 Scanner(System.in);
12

13 a=infimo.nextDouble();

14 b=supremo.nextDouble();
15
16 do {
17 c=(a+b)/2;
18
fa=6*a*a*a+a*a-
19 145*a+145;
fb=6*b*b*b+b*b-
20 145*b+145;
fc=6*c*c*c+c*c-
21 145*c+145;
22 if((fa*fb)<0){
23 if((fa*fc)<0){
24 b=c;
25
26 }
27 else
28 a=c;
29
30 }
31 else {
System.out.println("el polinomio no tiene
32 raices en este intervalo");
33 break;
34 }
35 l=b-a;
}while((l>0.001)||(l<-
36 0.001));
System.out.println("La raiz del polinomio
37 es: " + c);
38 }
39 }
40
41 //run :
42
//introduzca los extremos del
43 intervalo a analizar
44 //1
45 //2
La raiz del polinomio es
46 1.0556640625
3. Leer da, mes y ao y diga si los valores son de una fecha
correcta, considere los aos bisiestos.

Diagrama de Nassi-Shneiderman

En el programa de netbeans la codificacin es la siguiente:


1 //entrada
2 Scanner teclado = new Scanner(System.in);
3 System.out.print("dia: ");
4 d = teclado.nextInt();
5 System.out.print("mes: ");
6 m = teclado.nextInt();
7 System.out.print("ao: ");
8 a = teclado.nextInt();
9 //proceso
10 switch(m) {
11 case 1:
12 case 3:
13 case 5:
14 case 7:
15 case 8:
16 case 10:
17 case 12:
18 dmax =31;
19 break;
20 case 4:
21 case 6:
22 case 9:
23 case 11:
24 dmax = 30;
25 break;
26 case 2:
27 if(a % 4 == 0 && (!(a % 100 == 0)|| a % 400 == 0))
28 dmax = 29;
29 Else
30 dmax = 28;
31
32 }
33 if((d>0 && d<= dmax) &&(m>0 && m < 13) && a > 0)
34 r = "CORRECTO";
35 Else
36 r = "INCORRECTO";
37 //salida
38 System.out.println("");
39 System.out.println("respuesta: " +r);
40 }
41
42 }
43
44
45
46 run:
47 dia: 29
48 mes: 2
49 ao: 2003
50
51 respuesta: INCORRECTO
52 BUILD SUCCESSFUL (total time: 15 seconds)

4. Determinar todos los nmeros de 3 cifras que sean amigos, se dice


que dos nmeros son amigos si cada uno de ellos es igual a la suma
de sus divisores del otro.

Diagrama de Nassi-Shneiderman
En el programa de Netbeans, la codificacin es la siguiente

1 package diga.si.son.numeros.amigos;
2
3 import java.util.Scanner;
4 public class DigaSiSonNumerosAmigos {
5
6 public static void main(String[] args) {
7 // variables
8 int i, n1, n2, s1=0, s2=0;
9 String r= "";
10 // entrada
11 Scanner teclado = new Scanner(System.in);
12 System.out.print("NUMERO 1:");
13 n1 = teclado.nextInt();
14 System.out.print("NUMERO 2:" );
15 n2 = teclado. nextInt();
16 //proceso
17 i=1;
18 while(i <= n1 /2){
19 if(n1 % i == 0) {
20 s1 += i;
21 }
22 i++;
23 }
24 i = 1;
25 while(i <= n2 /2){
26 if(n2 % i == 0) {
27 s2 += i;
28 }
29 i++;
30 }
31 if(n1 == s2 && n2 == s1)
32 r= " son amigos";
33 else
34 r="no son amigos";
35 //salida
36 System.out.println("");
37 System.out.println("Resultado: " +r);
38
39 }
40
41 }
42
43 // run:
44 //NUMERO 1:220
45 //NUMERO 2:284
46
47 //Resultado: son amigos
48 //BUILD SUCCESSFUL (total time: 7 seconds)