Académique Documents
Professionnel Documents
Culture Documents
secuenciales. Cuando hay que tomar una decisin aparecen las estructuras
condicionales.
En nuestra vida diaria se nos presentan situaciones donde debemos decidir.
Elijo
la
carrera
A
o
la
carrera
B?
Me
pongo
este
pantaln?
Para ir al trabajo, elijo el camino A o el camino B?
Al cursar una carrera, elijo el turno maana, tarde o noche?
Por supuesto que en un problema se combinan estructuras secuenciales y
condicionales.
Problema:
Ingresar el sueldo de una persona, si supera los 3000 pesos mostrar un
mensaje en pantalla indicando que debe abonar impuestos.
Diagrama de flujo:
importjava.util.Scanner;
publicclassEstructuraCondicionalSimple1{
publicstaticvoidmain(String[]ar){
Scannerteclado=newScanner(System.in);
floatsueldo;
System.out.print("Ingreseelsueldo:");
sueldo=teclado.nextFloat();
if(sueldo>3000){
System.out.println("Estapersonadebe
abonarimpuestos");
}
}
}
La palabra clave "if" indica que estamos en presencia de una estructura
condicional; seguidamente disponemos la condicin entre parntesis. Por
ltimo encerrada entre llaves las instrucciones de la rama del verdadero.
Es necesario que las instrucciones a ejecutar en caso que la condicin sea verdadera
estn encerradas entre llaves { }, con ellas marcamos el comienzo y el fin del bloque del
verdadero.
Ejecutando el programa e ingresamos un sueldo superior a 3000 pesos. Podemos
observar como aparece en pantalla el mensaje "Esta persona debe abonar impuestos", ya
que la condicin del if es verdadera.
Volvamos a ejecutar el programa y carguemos un sueldo menor o igual a 3000 pesos.
No debe aparecer mensaje en pantalla.
Problema:
Realizar un programa que solicite ingresar dos nmeros distintos y muestre por pantalla
el mayor de ellos.
Diagrama de flujo:
Se hace la entrada de num1 y num2 por teclado. Para saber cual variable tiene un valor
mayor preguntamos si el contenido de num1 es mayor (>) que el contenido de num2, si
la respuesta es verdadera vamos por la rama de la derecha e imprimimos num1, en caso
que la condicin sea falsa vamos por la rama de la izquierda (Falsa) e imprimimos
num2.
Como podemos observar nunca se imprimen num1 y num2 simultneamente.
Estamos en presencia de una ESTRUCTURA CONDICIONAL COMPUESTA ya que
tenemos actividades por la rama del verdadero y del falso.
Programa:
importjava.util.Scanner;
publicclassEstructuraCondicionalCompuesta1{
publicstaticvoidmain(String[]ar){
Scannerteclado=newScanner(System.in);
intnum1,num2;
System.out.print("Ingreseprimervalor:");
num1=teclado.nextInt();
System.out.print("Ingresesegundo
valor:");
num2=teclado.nextInt();
if(num1>num2){
System.out.print(num1);
}else{
System.out.print(num2);
}
}
}
Cotejemos el diagrama de flujo y la codificacin y observemos que el primer bloque de
llaves despus del if representa la rama del verdadero y el segundo bloque de llaves
representa la rama del falso.
Compilemos el programa, si hubo errores sintcticos corrijamos y carguemos dos
valores, como por ejemplo:
Ingrese el primer valor: 10
Ingrese el segundo valor: 4
10
Si ingresamos los valores 10 y 4 la condicin del if retorna verdadero y ejecuta el
primer bloque.
Un programa se controla y corrige probando todos sus posibles resultados.
Ejecutemos nuevamente el programa e ingresemos:
Ingrese el primer valor: 10
Ingrese el segundo valor: 54
54
Cuando a un programa le corregimos todos los errores sintcticos y lgicos ha
terminado nuestra tarea y podemos entregar el mismo al USUARIO que nos lo solicit.
Operadores
En una condicin deben disponerse nicamente variables, valores constantes y
operadores relacionales.
>Operadores Relacionales:
> (mayor)
< (menor)
>= (mayor o igual)
<= (menor o igual)
== (igual)
!= (distinto)
Operadores Matemticos
+ (ms)
- (menos)
* (producto)
/ (divisin)
% (resto de una divisin) Ej.: x=13%5; {se guarda 3}
Hay que tener en cuenta que al disponer una condicin debemos seleccionar que
operador relacional se adapta a la pregunta.
Ejemplos:
Problemas propuestos
1. Realizar un programa que lea por teclado dos nmeros, si el primero es mayor al
segundo informar su suma y diferencia, en caso contrario informar el producto y
la divisin del primero respecto al segundo.
2. Se ingresan tres notas de un alumno, si el promedio es mayor o igual a siete
mostrar un mensaje "Promocionado".
3. Se ingresa por teclado un nmero positivo de uno o dos dgitos (1..99) mostrar
un mensaje indicando si el nmero tiene uno o dos dgitos.
(Tener en cuenta que condicin debe cumplirse para tener dos dgitos, un
nmero entero)
4. importjava.util.Scanner;
5.
6. publicclassEstructuraCondicionalCompuesta2{
7. publicstaticvoidmain(String[]ar){
8.
Scannerteclado=newScanner(System.in);
9.
intnum1,num2;
10. System.out.print("Ingreseprimervalor:");
11. num1=teclado.nextInt();
12. System.out.print("Ingresesegundovalor:");
13. num2=teclado.nextInt();
14. if(num1>num2){
15. intsuma,diferencia;
16. suma=num1+num2;
17. diferencia=num1num2;
18. System.out.print("Lasumadelosdos
valoreses:");
19. System.out.println(suma);
20. System.out.print("Ladiferenciadelos
dosvaloreses:");
21. System.out.println(diferencia);
22. }else{
23. intproducto,division;
24. producto=num1*num2;
25. division=num1/num2;
26. System.out.print("Elproductodelosdos
valoreses:");
27. System.out.println(producto);
28. System.out.print("Ladivisindelosdos
valoreses:");
29. System.out.println(division);
30. }
31. }
32. }
33.
34.
35.
36. importjava.util.Scanner;
37.
38. publicclassEstructuraCondicionalSimple2{
39. publicstaticvoidmain(String[]ar){
40. Scannerteclado=newScanner(System.in);
41. intnota1,nota2,nota3;
42. System.out.print("Ingreseprimernota:");
43. nota1=teclado.nextInt();
44. System.out.print("Ingresesegundanota:");
45. nota2=teclado.nextInt();
46. System.out.print("Ingresetercernota:");
47. nota3=teclado.nextInt();
48. intpromedio;
49. promedio=(nota1+nota2+nota3)/3;
50. if(promedio>=7){
51. System.out.print("Promocionado");
52. }
53. }
54. }
55.
56.
57.
58. importjava.util.Scanner;
59.
60. publicclassEstructuraCondicionalCompuesta3{
61. publicstaticvoidmain(String[]ar){
62. Scannerteclado=newScanner(System.in);
63. intnum;
64. System.out.print("Ingreseunvalorenterode
1o2dgitos:");
65. num=teclado.nextInt();
66. if(num<10){
67. System.out.print("Tieneundgito");
68. }else{
69. System.out.print("Tienedosdgitos");