Páginas

miércoles, 26 de marzo de 2014

Series y Sumatorias en Java


Para ir conociendo el lenguaje de programacion en Java, el hacer ejercicios de generar series y calcular sumatorias nos ayuda a ir aprendiendo el uso correcto del for y el while.

SERIES

EJEMPLOS

1. Generar la serie de fibonacci
Si n=9 se tendra: 0,1,1,2,3,5,8,13,21


2. Generar la siguiente serie

Si n=18 se debe mostrar 1,2,2,3,3,3,4,4,4,4,5,5,5,5,5,6,6,



import java.util.Scanner;

class Series {

 public static void main(String[] args) {
  int n,j,x,i;
  Scanner lee=new Scanner(System.in);
  n=lee.nextInt();
  j=1;
  x=1;
  for (i = 1; i <= n; i++) {
   System.out.print(x+",");
   if (j < x) {
    j++;
   } else {
    j=1;
    x++;
   }
  }
  System.out.println();
 }
}


3. Generar la siguiente serie

Si n=18 se debe mostrar 1,0,0,1,1,1,0,0,0,0,1,1,1,1,1,

import java.util.Scanner;

class Series2 {

 public static void main(String[] args) {
  int n,x,j,b,i;
  Scanner lee=new Scanner(System.in);
  n=lee.nextInt();
  x=1;
  j=1;
  b=1;
  for (i = 1; i <= n; i++) {
   System.out.print(b+",");
   if (j < x) {
    j++;
   } else {
    j=1;
    x++;
    b=1-b;
   }
  }
 }
}
    


4. Generar la serie de numeros primos

Si n=10 se debe mostrar 2,3,5,7,11,13,17,19,23,29



import java.util.Scanner;

class Series {

     public static void main(String[] args) {
 int n,c,p,d;
 Scanner lee=new Scanner(System.in);
 n=lee.nextInt();
 c=1;
 p=2;
 d=2;
 while(c<=n){
     if(p%d==0){
  if(p==d){
       System.out.print(p+",");
       c++;
  } 
     d=2;
     p++;
     }
     else
  d++;
 }
    }
}
    

SUMATORIAS

EJEMPLOS


1. Resolver la siguiente sumatoria


import java.util.Scanner;

public class Sumatorias {

 public static void main(String[] args) {

  int a, j, n, x;
  double m = 3, s = 0;
  System.out.println("valor de n : ");
  Scanner lee = new Scanner(System.in);
  n = lee.nextInt();
  // para x
  System.out.println("valor de X : ");
  lee = new Scanner(System.in);
  x = lee.nextInt();
  a = 1;
  j = 1;
  for (int i = 1; i <= n; i++) {
   s = s + (Math.pow(x, a)) / m;
   m = m + 3;
   if (j < a)
    j++;
   else {
    a++;
    j = 1;
   }
  }
  System.out.println("Resultado = " + s);
 }
}
    

    

(*) En esta parte del diagrama de flujo se tiene (x^a)/m, que en codigo Java se utiliza Math.pow(x,a) y la variable m en java es de tipo double, y todo se guarda en la variable s que tambien es double. RECUERDA que para obtener un valor real se debe dividir ValorReal/ValorEntero o tambien ValorEntero/ValorReal

Resolver la siguiente sumatoria



import java.util.Scanner;

public class Sumatorias2 {

 static int fibo(int n){
  int a,b,c;
  a = -1;
  b = 1;
  c=0;
  for (int i = 1; i <= n; i++) {
   c = a + b;
   a = b;
   b = c;
  }  
  return c;
 }

static int primo(int n){
  int c,d,p,primo;
  c=1;
  p=2;
  d=2;
  primo=2;
  while(c<=n){
   if(p%d==0){
    if(p==d){
     primo=p;
     c++;
    } 
    d=2;
    p++;
   }
   else
    d++;
  }
  return primo;
 }




 public static void main(String[] args) {

  int n,num;
  double den, s = 0;
  System.out.println("valor de n : ");
  Scanner lee = new Scanner(System.in);
  n = lee.nextInt();
  
  for (int i = 1; i <= n; i++) {
   //llamamos a la funcion fibo el cual 
   //nos devuelva el fibo que corresponde
   //al termino i-esimo
   num=fibo(i);
   //llamamos a la funcion primo el cual 
   //nos devuelva el primo que corresponde
   //al termino i-esimo   
   den=primo(i);
   if (i % 2 == 0) {
    System.out.print(num+"/"+den+"+");
    s=s-num/den;
   } 
   else {
    System.out.print(num+"/"+den+"-");
    s=s+num/den;
   }
  }
  System.out.println("\nResultado = " + s);
 }
}

    

(*) En esta parte del diagrama de flujo se esta llamando a dos funciones una de ellas, la funcion fibo con el parametro i, para que nos devuelva el valor q corresponde a ese termino, y de la misma forma la funcion primo. Es decir

Si fibo(4) en la serie de fibonacci corresponde al valor 2, es decir 0,1,1,2
Si primo(4) en la serie de fibonacci corresponde al valor 7, es decir 2,3,5,7

Es asi que cuando la variable i vale 1, se pide el fibo(1)=0 y el primo(1)=2
cuando la variable i vale 2, se pide el fibo(2)=1 y el primo(2)=3
y asi sucesivamente..

7 comentarios:

  1. Gracias amigo...me sirvió de mucho para mis examenes...

    ResponderEliminar
  2. necesito uno amigo estoy barado 1,2,2,4,8,32,

    ResponderEliminar
  3. Ayudame porfa nesecito saber cómo hacer 12121212 que me imprima en pantalla si es un número intercalo caso contrario si es 986046323 no es un número intercalado

    ResponderEliminar
  4. Si se podría, necesito ayuda con una serie 1,0,1,0,1...

    ResponderEliminar