Upload
stonec35
View
713
Download
2
Embed Size (px)
DESCRIPTION
problemas de nivel moderado resueltos con metodos simples de entender
Citation preview
CeGo.net.....Stone_c35....FIEE-UNI
1
PROBLEMAS DE JAVA EN NETBEANS-ARREGLOS Y INSTRUCCIONES DE
CONTROL.
UNIVERSIDAD NACIONAL DE INGENIERIA
EXAMEN PARCIAL 2010-II
PROGRAMACION DIGITAL
Problema1:
Calcule la expresión de la serie de Taylor del seno para N términos y x
grados sexagesimales.
(N términos)
package javaapplication25;
import java.util.Scanner;
public class Problema1 {
int N;int grados1;
//metodo lectura: solo lee las dimensiones de los arreglos
void lectura(int NN,int grados11){
NN=N;grados11=grados1;
Scanner ob=new Scanner(System.in);
System.out.println("Escriba el numero de terminos:");
//llama por el teclado
N=ob.nextInt();
System.out.println("Escriba el anuglo a evlauar:");
grados1=ob.nextInt();
//llama por el teclado a grados1
}
CeGo.net.....Stone_c35....FIEE-UNI
2
//metodo funcion:evalua la serie
void funcion(int NN,int grados11){
//igualo parametro locales con los de clase
NN=N;grados11=grados1;
double grados2;
//tranformo grados1 a radianes
grados2=(grados1*Math.PI)/180;
double sumaseno=0;
//for me dara la suma de terminos(sumaseno)
for(int i=1;i<=N;i++){
//falta hhallar el factorial
double fac;
double producto=1;
//for para el factorial
for(int j=1;j<=2*i-1;j++ ){
producto=producto*j;}
//fin for factorial
//funcion de un factor de la serie
fac=(Math.pow(-1,i+1)*Math.pow(grados2,(2*i)-1))/producto;
//sumador de cada factor(fac)
sumaseno=sumaseno+fac;
CeGo.net.....Stone_c35....FIEE-UNI
3
}
//impresion
System.out.println("sen("+grados1+")= "+sumaseno);
}
public static void main(String[] args) {
//creo una prueba
Problema1 obj=new Problema1();
//inicializo valores de prueba
int n=0;int grados=0;
//llamo alos metodos
obj.lectura(n, grados);
obj.funcion(n, grados); }}
run:
Escriba el numero de terminos:
6
Escriba el anuglo a evlauar:
30
sen(30)= 0.4999999999999643
BUILD SUCCESSFUL (total time: 3 seconds)
Problema 2:
Codifique un programa que cargue dos arreglos unidimensionales de n y
m elementos ,con valores aleatorios enteros en el rango de 10 y 100 y
con ellos genere un tercer arreglo el cual está formado por los elementos
pares tomados de izquierda a derecha y los elementos impares tomados
del otro arreglo de derecha a izquierda .
package javaapplication27;
CeGo.net.....Stone_c35....FIEE-UNI
4
import java.util.Scanner;
public class Problema2 {
public static void main(String[] args) {
//lectura de las dimensiones arreglos
Scanner ob=new Scanner(System.in);
System.out.println("Escriba la dimension primer arreglo:");
int n=ob.nextInt();
System.out.println("Escriba dimension segundo arreglo:");
int m=ob.nextInt();
//fin lectura dimensiones
int contparn=0;
int contimparm=0;
//creo de nueva matriz n
int arreglon[]=new int[n];
System.out.println("Primer arreglo");
for(int i=0;i<arreglon.length;i++){
arreglon[i]=(int)(Math.random()*90+10);
//cuento los multiplos de 2(pares)de la matriz n
if(arreglon[i]%2==0){
contparn=contparn+1;}
//imprimo matriz valores aleatorios
System.out.print(" "+arreglon[i]);}
System.out.println();
//creo nueva matriz m
int arreglom[]=new int[m];
System.out.println("Segundo arreglo");
for(int i=0;i<arreglom.length;i++){
arreglom[i]=(int)(Math.random()*90+10);
//cuento los impares de la matriz m
if(arreglom[i]%2==1){
contimparm=contimparm+1;}
//imprimo valores aleatorios
System.out.print(" "+arreglom[i]);}
System.out.println();
//creando matriz de factores pares e impares
//creo arreglo con los valores pares
CeGo.net.....Stone_c35....FIEE-UNI
5
System.out.println();
int matrizpar[]=new int[contparn];
System.out.print("numero elemntos pares :"+contparn);
System.out.println();
//inserto los valores pares a la matriz par
int contadorpar=0;
for(int i =0;i<arreglon.length;i++){
if(arreglon[i]%2==0){
matrizpar[contadorpar]=arreglon[i];
System.out.print(" "+matrizpar[contadorpar]);
contadorpar=contadorpar+1; }
} System.out.println();
//creo arreglo con valores impares
int matrizimpar[]=new int[contimparm];
System.out.print("numero elemntos impares :"+contimparm);
System.out.println();
//inserto valores impares de la matriz m
int contadorimpar=0;
for(int i =0;i<arreglom.length;i++){
if(arreglom[i]%2==1){
matrizimpar[contadorimpar]=arreglom[i];
System.out.print(" "+matrizimpar[contadorimpar]);
contadorimpar=contadorimpar+1; }
} System.out.println();
//cambio de izquierdz<a a derecha
int matrizimparinv[]=new int[contadorimpar];
for(int i=0;i<matrizimpar.length;i++){
matrizimparinv[i]=matrizimpar[matrizimpar.length-i-1];
} System.out.println();
//su busca cunatos facores tomo d cada arreglo
int contador=Math.min(contadorimpar, contadorpar);
//creo arreglo para el resultado final
int arreglo3[]=new int[2*contador];
System.out.println("La matriz arreglada es:");
//intercalo valores pares e impares
for(int i=0;i<arreglo3.length;i++){
if(i==0){
CeGo.net.....Stone_c35....FIEE-UNI
6
arreglo3[i]=matrizpar[i];}
if(i%2==1){
arreglo3[i]=matrizimparinv[(int)(0.5*(i-1))];}
if(i%2==0){
arreglo3[i]=matrizpar[(int)(0.5*(i))];}
//impresion
System.out.print("[ "+arreglo3[i]+" ]");}
System.out.println();
//fin
}}
run:
Escriba la dimension primer arreglo:
8
Escriba dimension segundo arreglo:
9
Primer arreglo
41 38 37 15 58 49 43 32
Segundo arreglo
23 95 26 11 54 58 76 13 32
numero elemntos pares :3
38 58 32
numero elemntos impares :4
23 95 11 13
Problema 3
El arreglo A esta cargado de N numeros enteros aleatorios , determinar
el pivot como el valor de la semi-suma del primer y ultimo
elemento(valor medio), formar dos grupos o subarreglos en el mismo
arreglo A ,al izquierda menores que el pivot y al a derecha mayores que
el pivot.
package javaapplication28;
import java.util.Scanner;
CeGo.net.....Stone_c35....FIEE-UNI
7
public class Problema3 {
public static void main(String[] args) {
//le la dimension del arreglo
Scanner ob=new Scanner(System.in);
System.out.println("ingrese N :");
int N=ob.nextInt();
//creo arreglo de dim. N
int A[]=new int[N];
System.out.println("La matriz aleatoria es:");
//arreglo con valoes aleatorios
for(int i=0;i<A.length;i++){
A[i]=(int)(Math.random()*49+1);
System.out.print(" ["+A[i]+"] "); }
//busc el pivot
System.out.println();
double pivot=0.5*(A[0]+A[A.length-1]);
System.out.println("Pivot: "+pivot);
int contmenor=0;
int contmayor=0;
//cuent lo mayores y menores ue el pivot
for(int i=0;i<A.length;i++){
if(A[i]<pivot){
contmenor=contmenor+1;}
CeGo.net.....Stone_c35....FIEE-UNI
8
if(A[i]>=pivot){
contmayor=contmayor+1;}}
//creo arreglo de mayoresy menores que el pivot
int submenor[]=new int[contmenor];
int submayor[]=new int[contmayor];
//inserto los menores al arreglo
System.out.println("menores: "+contmenor);
int contme=0;
for(int i=0;i<A.length;i++){
if(A[i]<pivot){
submenor[contme]=A[i];
System.out.print(" "+submenor[contme]);
contme=contme+1;}}
System.out.println();
//inserto mayores al arreglo
System.out.println("mayores: "+contmayor);
int contma=0;
for(int i=0;i<A.length;i++){
if(A[i]>=pivot){
submayor[contma]=A[i];
System.out.print(" "+submayor[contma]);
contma=contma+1;}}
System.out.println();
System.out.println("La matriz arreglada: ");
CeGo.net.....Stone_c35....FIEE-UNI
9
int contadoralfa=0;
int contadorbeta=0;
//creo matriz resultado
int matrix[]=new int[N];
//uno pares e impres
for(int i=0;i<matrix.length;i++){
//contmenor a la izquierda
if(i<contmenor){
matrix[i]=submenor[contadorbeta];
contadorbeta=contadorbeta+1;}
//cont mayor a la derecha
if(i>=contmenor){
matrix[i]=submayor[contadoralfa];
contadoralfa=contadoralfa+1;}
System.out.print(" ["+matrix[i]+"] ");}
System.out.println(); }}
run:
ingrese N :
8
La matriz aleatoria es:
[22] [31] [29] [23] [43] [8] [5] [11]
Pivot: 16.5
menores: 3
8 5 11
mayores: 5
22 31 29 23 43
CeGo.net.....Stone_c35....FIEE-UNI
10
La matriz arreglada:
[8] [5] [11] [22] [31] [29] [23] [43]
BUILD SUCCESSFUL (total time: 3 seconds)