//Un postulante a un empleo, realiza un test de capacitación, se obtuvo la siguiente información: cantidad
//total de preguntas que se le realizaron y la cantidad de preguntas que contestó correctamente.
//Se pide confeccionar un programa que ingrese los dos datos por teclado e informe el nivel del mismo según el
//porcentaje de respuestas correctas que ha obtenido, y sabiendo que:
//Nivel máximo: Porcentaje>=90%.
//Nivel medio: Porcentaje>=75% y <90%.
//Nivel regular: Porcentaje>=50% y <75%.
//Fuera de nivel: Porcentaje<50%.
import java.util.Scanner;
public class Postulanteaempleo {
public static void main(String[] args) {
Scanner teclado= new Scanner(System.in);
int preguntotal;
int preguntascorrectas;
int porcentaje;
System.out.println("Introduce cantidad total de preguntas que se le realizaron: ");
preguntotal=teclado.nextInt();
System.out.println("Cantidad de preguntas que contestó correctamente: ");
preguntascorrectas=teclado.nextInt();
porcentaje= preguntascorrectas*100/preguntotal;
if(porcentaje >= 90 )
{
System.out.println("Nivel máximo");
}
else
{
if(porcentaje >= 75 && porcentaje < 90)
{
System.out.println("Nivel medio");
}
else
{
if(porcentaje >= 50 && porcentaje < 75)
{
System.out.println("Nivel regular");
}
else
{
System.out.println("Fuera de nivel");
}
}
}
}
}
en el proceso de hallar el porcentaje de preguntas correctas
porcentaje= preguntascorrectas*100/preguntotal; si introducimos primero asi,
Introduce cantidad total de preguntas que se le realizaron:
20
Cantidad de preguntas que contestó correctamente:
15
Nivel medio
pero si matematicamente al dividir 15/20= 0.75 *100 = 75 que seria nivel medio
entonces al yo hacer
porcentaje = preguntascorrectas / preguntotal*100;
Introduce cantidad total de preguntas que se le realizaron:
20
Cantidad de preguntas que contestó correctamente:
15
Fuera de nivel
no entiendo aqui la prioridad de operador ,,, xq sera ??? :-[
Así, <Tienes que hacer que ingrese los números desde la consola>,
public class PoC {
public static void main(String[] args){
int sTotalPreguntas;
int sPreguntasCorrectas;
double sPorcentaje;
sTotalPreguntas = 20;
sPreguntasCorrectas = 10;
sPorcentaje = sPreguntasCorrectas * 100 / sTotalPreguntas;
System.out.println(sPorcentaje + "\n");
if(sPorcentaje >= 90){
System.out.println("Nivel máximo");
}else if((sPorcentaje >= 75) && (sPorcentaje < 90)){
System.out.println("Nivel medio");
}else if((sPorcentaje >= 50) && (sPorcentaje < 75)){
System.out.println("Nivel regular");
}else{
System.out.println("Fuera de nivel");
}
}
}
sabes que puedes usar parentesis para forzar la priorizacion de calculos?
Saludos
Simon. Como en matemáticas, verdad?
sPorcentaje = (sPreguntasCorrectas * 100) / sTotalPreguntas;
Mmm no entiendo tu primera respuesta :S
Saludos
Cita de: Shell Root en 30 Septiembre 2010, 19:28 PM
Así, <Tienes que hacer que ingrese los números desde la consola>,
public class PoC {
public static void main(String[] args){
int sTotalPreguntas;
int sPreguntasCorrectas;
double sPorcentaje;
sTotalPreguntas = 20;
sPreguntasCorrectas = 10;
sPorcentaje = sPreguntasCorrectas * 100 / sTotalPreguntas;
System.out.println(sPorcentaje + "\n");
if(sPorcentaje >= 90){
System.out.println("Nivel máximo");
}else if((sPorcentaje >= 75) && (sPorcentaje < 90)){
System.out.println("Nivel medio");
}else if((sPorcentaje >= 50) && (sPorcentaje < 75)){
System.out.println("Nivel regular");
}else{
System.out.println("Fuera de nivel");
}
}
}
gracias por la respuesta shell root , pero es que osea asi como lo tienes,,tambien con todas la variables de tipo int da correcto todo... debe ser que me explique mal...
entonces en lo que tienes hay el resultado seria verdad, 50 que segun la condicion es NIVEL REGULAR
pero si hacemos lo siguente
CON lavariables de tipo
intponemos
porcentaje = preguntascorrectas / preguntotal*100; el resultado da
Introduce cantidad total de preguntas que se le realizaron:
20
Cantidad de preguntas que contestó correctamente:
10
Fuera de nivel
0
entonces hay era lo que decia
YO EL ERROr fetido ese que me daba
y hay lo que hize fue poner todas las variables float y ahora da bien... es mas puse solo
int preguntotal;
float preguntascorrectas;
float porcentaje;
con eso me daba bien igual ...
mira dudilla es ,,,hay que controlar ajuro ,,todos los resultados de salida de todas la variables de salida ? cierto para estar mejor ? y ver posibles errores ?creditos también
Javier Salcedo coder and desing.
Cómo?, No entendí, hice esto,
[SNIP]
sTotalPreguntas = 20;
sPreguntasCorrectas = 10;
[/SNIP]
y me dio como resultado lo siguiente,
shellroot@alex-laptop:~/Escritorio$ java PoC
50.0
Nivel regular
disculpa si estoy hablando mal o algo ,,,osea si te entiendo tu codigo esta perfecto me ayudo del todo ,,,pero es que ve
desde un principio ,,el codigo que puse estaba bien ves, con la variables de tipo int
pero con las variables de tipo int si ponia
sPorcentaje = sPreguntasCorrectas / sTotalPreguntas *100 ; pero con la variables tipo int
hay da error ves,,, si ponemos las variables a float no da error.o double; :)
gracias por la ayuda... pana
jajajjaa pero entonces, cual es tú pregunta!
public class PoC {
public static void main(String[] args){
int sTotalPreguntas;
int sPreguntasCorrectas;
int sPorcentaje;
sTotalPreguntas = 20;
sPreguntasCorrectas = 2;
sPorcentaje = sPreguntasCorrectas * 100 / sTotalPreguntas;
System.out.println(sPorcentaje + "\n");
if(sPorcentaje >= 90){
System.out.println("Nivel máximo");
}else if((sPorcentaje >= 75) && (sPorcentaje < 90)){
System.out.println("Nivel medio");
}else if((sPorcentaje >= 50) && (sPorcentaje < 75)){
System.out.println("Nivel regular");
}else{
System.out.println("Fuera de nivel");
}
}
}
Resultado,
shellroot@alex-laptop:~/Escritorio$ javac PoC.java
shellroot@alex-laptop:~/Escritorio$ java PoC
10
Fuera de nivel
Cita de: RuB'n. en 30 Septiembre 2010, 22:04 PM
hay da error ves,,, si ponemos las variables a float no da error.o double; :)
Es qué no se trata de solo corregir para solucionar el problema, recuerda que Java es un lenguaje Orientado a Objetos y como tal una de sus caracteristicas es la Abstracción de la información, por ejemplo como mencionas de colocar las variables tipo float; sTotalPreguntas, no te pueden hacer 1.25 preguntas. Pero si tú maestro (o a quien vayas a entregar tu trabajo) no te dice nada pues vale.
Cita de: Shell Root en 30 Septiembre 2010, 23:11 PM
jajajjaa pero entonces, cual es tú pregunta!
+1