Documentos de Académico
Documentos de Profesional
Documentos de Cultura
May29,2022
1 Fundamentos de programación
1.1.1 Laboratorio 1
Problema Elabore un programa en Java que permita encontrar la sumatoria de los n primeros
elementos de la siguiente sucesión numérica:
Para verificar el programa, agregue las sentencias que sean necesarias para mostrar que se generan
cada uno de los términos que forman la serie. Prefiera esta técnica de validación antes que comparar
resultados finales.
Su programa debe utilizar únicamente los contenidos cubiertos hasta el momento, NO se acep-
tan programas con estructuras de datos, tales como arreglos o listas, tampoco programas que
implementen otros métodos adicionales al principal (main), aunque en este entorno es innecesario.
NO BORRE las sentencias que se muestran a continuación, aquellas que están al final de la celda
con código. Si lo hace su programa será calificado sobre el 25% de la nota.
//Información general - Por favor NO borrar. Si no incluye este código y su salida, se califica
System.getProperties().forEach((k, v) -> System.out.printf("%s: %s\n", k, v));
Explicación
1. La serie numérica es una mezcla entre números primos y Fibonacci.
1
2. Los signos son alternados e incrementales, así: empieza por 1 positivo que se utiliza en el
primer término, cambia a negativo y se usa en los siguientes 2 términos, nuevamente cambia
a positivo y se usa en los siguientes 3 términos, así sucesivamente.
En las siguientes celdas debe ingresar el código que resuelva el problema propuesto.
Puede ejecutar el código, presionando simultáneamente las teclas Shift+Enter.
A manera de ayuda se ha incluido porciones de código y una breve explicación de su propósito. En
muchas de las líneas de código usted debe completarlas o escribirlas por completo o corregir algún
error.
[ ]: /**
Paso 1. Ingreso de valores.
Reemplace los guiones bajos con las palabras correspondientes de tal manera␣
,→que no
existan errores.
**/
import java.util.Scanner;
//Declaracion de variable
2
double termino_sucecion=0;//guarda el valor del termino de la sucecion
int␣
,→controladorSignoNegativo=0,controladorDeSigno=1,controladorSignoPositivo=controladorDeSigno+
,→//controlan el signo
entrada.close();
//Bucle para recorrer el numero de terminos del 1 al n introducido
for(double i=1;i<=numeroDeTerminos;i++) {
//Condicional para controlar el signo
if(controladorSignoNegativo<=controladorDeSigno){
controladorSignoNegativo++;
determinadorSigno=false;
controladorSignoNegativo=controladorDeSigno+2;
controladorDeSigno++;
controladorSignoPositivo=0;
}
//Condicional para determinar si el numero es impar
if(!(i%2==0)) {
switch(formaAumentoIndiceRadical) {
//case 1 aumenta el indice del radical en 4
case 1 :{
//Condicional que comprueba si el signo del termino es positivo o negativo
if(determinadorSigno==true) {
termino_sucecion=Math.pow(i,exponenteFraccion);
3
sumaTerminos=sumaTerminos+termino_sucecion;
parteEnterai=(int)i;
parteEnteraIndiceRadical=(int)indiceRadical;
//Salida de datos
System.out.print(parteEnterai+"^1/"+parteEnteraIndiceRadical+"= ");
else {
termino_sucecion=-Math.pow(i,exponenteFraccion);
sumaTerminos=sumaTerminos+termino_sucecion;
parteEnterai=(int)i;
parteEnteraIndiceRadical=(int)indiceRadical;
//Salida de datos
System.out.print("-("+parteEnterai+"^1/"+parteEnteraIndiceRadical+") = ");
}
indiceRadical=indiceRadical+4;
exponenteFraccion=1/indiceRadical;
formaAumentoIndiceRadical=2;
} break;
//case 2 aumenta el indice del radical en 2
case 2:{
//Condicional que comprueba si el signo del termino es positivo
if(determinadorSigno==true) {
termino_sucecion=Math.pow(i,exponenteFraccion);
sumaTerminos=sumaTerminos+termino_sucecion;
4
//Salida de datos
System.out.print(parteEnterai+"^1/"+parteEnteraIndiceRadical+"= ");
else {
termino_sucecion=-Math.pow(i,exponenteFraccion);
sumaTerminos=sumaTerminos+termino_sucecion;
//Salida de datos
System.out.print("-("+parteEnterai+"^1/"+parteEnteraIndiceRadical+") = ");
indiceRadical=indiceRadical+2;
exponenteFraccion=1/indiceRadical;
formaAumentoIndiceRadical=1;
} break;
}
//Condicional que entra si el numero es par
if(i%2==0) {
//Condicional para signar signo, sea positivo o negativo
if(determinadorSigno==true) {
termino_sucecion=Math.pow(i,exponenteTerminoPar);
sumaTerminos=sumaTerminos+termino_sucecion;
5
parteEnteraExponente=(int)exponenteTerminoPar; // instruccion apra␣
mostrar el numero como entero
,→
//Saliuda de datos
System.out.print(parteEnterai+"^"+parteEnteraExponente+"= ");
else {
termino_sucecion=-Math.pow(i,exponenteTerminoPar);
sumaTerminos=sumaTerminos+termino_sucecion;
parteEnteraExponente=(int)exponenteTerminoPar;
//Salida de datos
System.out.print("-("+parteEnterai+"^"+parteEnteraExponente+") = ");
penultimoExponente=ultimoExponente;
ultimoExponente=exponenteTerminoPar;
exponenteTerminoPar=penultimoExponente+ultimoExponente;
controladorSignoPositivo++;
determinadorSigno=true;
//Condicional para activar el signo negativo y desactivar el signo␣
positivo
,→
if(controladorSignoPositivo==controladorDeSigno+1){
controladorSignoPositivo=controladorDeSigno+2;
controladorDeSigno++;
controladorSignoNegativo=0;
6
}
}
//Salida de datos
System.out.println(termino_sucecion);
System.out.println("");
//Salida de datos
System.out.println("La suma de los terminos es igual= "+sumaTerminos);
Antes de enviar el código, primero debe ejecutar su código y luego exportarlo a PDF (clic en el
menu File->Download as->PDF via Latex(.pdf)).
Finalmente debe seguir las instrucciones que encontrará en el entorno virtual de aprendizaje.