Está en la página 1de 13

FUNDAMENTOS DE PROGRAMACIÓN

UNIDAD
DIDÁCTICA
Guía Didáctica Módulo 4
1
TECNICATURA EN INFORMÁTICA
DE GESTIÓN

Docente
JORGE A. PRODOLLIET

Autor del Material


JORGE PRODOLLIET
Fundamentos de Programación | Guía Didáctica 1 | Módulo 4 TIG

ESTRUCTURAS DE CONTROL EN JAVA


INTRODUCCIÓN
Estudiaremos aquí la sintaxis de las estructuras de control en Java.
En los primeros diseños de proyectos sólo utilizamos acciones de estructura secuencial
(sentencias simples de Java), es decir, los pasos o acciones indicados se ejecutan uno tras
otro, a medida que van apareciendo; es decir, secuencialmente.
Pero en el diseño de algoritmos computacionales, generalmente es necesario modificar
el orden secuencial de ejecución del conjunto de acciones. Por ejemplo, es común tener que
tomar decisiones al efectuar un cálculo: “Si el empleado tiene asistencia perfecta, entonces
cobra un premio adicional de X cantidad de pesos, si no el adicional se reduce a menos
cantidad de pesos”. Otro caso es tener que repetir acciones muchas veces; por ejemplo:
“Ingresar los nombres y las 3 calificaciones parciales de 160 alumnos, determinar el promedio
de cada uno”.
Los lenguajes de programación poseen herramientas para resolver estos casos con
facilidad a través de las llamadas estructuras de control.
Es fundamental que practiquemos la sintaxis resolviendo problemas. ¡No hay mejor
forma de aprender la sintaxis de un lenguaje de programación que programando!.

OBJETIVOS
Conocer y utilizar las estructuras de control del lenguaje Java.
Resolver problemas de complejidad creciente usando el modelo de objetos, y aplicando
estructuras de control condicionales e iterativas.

TIPOS DE SENTENCIAS EN JAVA


Java posee 3 tipos de sentencias: simples, compuestas y estructuradas.
Estudiemos cada una de ellas.

11.. SENTENCIAS SIMPLES


La asignación y las llamadas a métodos o funciones son consideradas en Java como
sentencias simples. (Aunque goto es una palabra reservada, actualmente el lenguaje Java no
soporta la sentencia goto).
Ejemplos:
x = 15; //asigna 15 a la variable xX
String texto=”Hola Mundo”; //asigna una cadena a texto
Cilindro.Calcular; //llamar al método Calcular del objeto cilindro
System.exit( 0 ); // llama al comando exit para cerrar la aplicación

22.. SENTENCIAS COMPUESTAS


Una sentencia compuesta o un bloque es un conjunto de sentencias, que puede estar
vacía, encerrada entre llaves "{ }".
Sintácticamente, un bloque se considera como una única sentencia. Los bloques
pueden estar anidados hasta cualquier profundidad.
Ejemplo:
{
x = 15;
y = x * 34;
JOptionPane.showMessageDialog(null,"Resultado: ”+y);
}

Página 2
Fundamentos de Programación | Guía Didáctica 1 | Módulo 4 TIG

33.. SENTENCIAS ESTRUCTURADAS


Son sentencias que permiten alterar la secuencia lineal de ejecución en un programa.
Con ellas podemos plantear alternativas o iteraciones.
Son también conocidas como estructuras de control.
En Java las sentencias estructuradas son:

Estructuras de control condicional:


 Decisión simple if
 Decisión mÚltiple switch
 Decisión in line (?) a>b? “a”:”b”;

Estructuras de control iterativas:


 while
 do-while
 for

A continuación estudiaremos a cada una de ellas.

ESTRUCTURAS DE CONTROL CONDICIONAL


Estas estructuraspermiten ejecutar una de entre varias acciones en función del valor de
una expresión lógica o relacional. Se tratan de estructuras muy importantes ya que son las
encargadas de controlar el flujo de ejecución de un programa provocando una bifurcación

ESTRUCTURAS DE CONTROL CONDICIONAL: IF / ?


La estructura condicionar if permite tomar decisiones en un algoritmo o en un programa.
La sintaxis que deberemos emplear en Java es la siguiente:

if ( expresión booleana )
{ sentencias por verdadero };
[ else { sentencias por falso }; ]

En esta sentencia, se evaluará la expresión booleana (lógica) que puede ser cualquier
proposición que arroje un resultado lógico: true o false.
La presencia de esta estructura en un algoritmo le indica al ejecutante que:
 debe evaluar la expresión lógica planteada.
 si es verdadera, debe ejecutar las acciones indicadas en las sentencias por
verdadero y luego al fin de la estructura.
 si es falsa, resolver el bloque de las sentencias por falso y luego ir al fin de la
estructura.
Si se desea ejecutar más de una sentencia simple por verdadero o por falso, deberá
crear un bloque, es decir encerrar las sentencias entre llaves que, como se mencionó
anteriormente, se transforma en una sentencia compuesta que se comporta como una unidad.
Importante
 La alternativa por False indicada con else es opcional. Pero la acción por True es
obligatoria.
 ? in line: <expresión booleana> ? Ejecución por verdadero (true): Ejecución por falso
(False)
Ejemplo: a>b? “ a es Mayor” : “b es Mayor”;

Página 3
Fundamentos de Programación | Guía Didáctica 1 | Módulo 4 TIG

Análisis de dos casos de anidamiento empleando if


Observemos detenidamente los dos diagramas que se presentan a continuación y su
codificación en Java.

Código

if ( Decisión ) {
if ( Decisión )
A;
}
else
B;

Código

if ( Decisión )
if ( Decisión )
A;
else
B;

Atención: Se observe la presencia de los delimitadores { } en el segmento de código


Java del primer ejemplo. Si no estuvieran presentes, el código Java sería idéntico al del
segundo ejemplo siendo porciones de algoritmos diferentes. Las llaves { } son necesarias en
este caso de anidamiento ya que si no, el compilador consideraría que el else pertenece al
último if (el anidado).

Página 4
Fundamentos de Programación | Guía Didáctica 1 | Módulo 4 TIG

Ejemplo 4.1. Ingresar un número, si es mayor o igual que 6 mostrar el Texto ‘Aprobado’ en caso
contrario ‘Insuficiente’.

Código:
package u4_ejemplo1;
/**
* @author Fx8350
*/
import javax.swing.JOptionPane;
public class U4_ejemplo1 {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
int nota;//declara la variable como entera
nota = Integer.parseInt(JOptionPane.showInputDialog("Ingese la nota de 0 a 10")); //Lee nota
if (nota >= 6) //decisión simple if
JOptionPane.showMessageDialog(null,"Aprobo con " + nota);
else
JOptionPane.showMessageDialog(null,"Insuficiente con " + nota);
}
}

Resolución paso a paso: Debemos leer un número y mostrar un mensaje en pantalla


por lo tanto necesitaremos una variable numérica tipo entera para almacenar ese dato, que
llamarenos nota (sentencia int nota).
Con la instrucción JOptionPane.showInputDialog(“Mensaje”) podemos leer un string en
una caja de diálogo, pero queremos asignarla a una variable tipo entera, así que utilizaremos
Integer.parseInt() para convertir el String en entero. Para poder utilizar estos comandos
debemos importar la librería swing.JOptionPane. Esto debe hacerse antes de la declaración de
la clase U4_ejemplo1. Bien una vez ingresada la nota debemos utilizar la instrucción if para
decidir el curso de acción, dependiendo del valor que tome nota y mostrar un Mensaje que diga
si aprobó o no. Esto lo haremos con la instrucción showMessageDialog(). Notar que la acción
en el if tanto por el verdadero como por el falso es una sentencia simple, no es necesario el uso
de llaves para crear un bloque (igualmente si se colocan las llaves no esta mal)

Ejemplo 4.2. Determine el tipo de raíces de una ecuación cuadrática del tipo ax 2 + bx + c = 0
conociendo los coeficientes a, b y c de la ecuación. Informe el tipo determinado.

Resolución paso a paso: Las raíces de una ecuación cuadrática dependen del
resultado de la formula del discriminante (discriminante) pueden ser: reales distintas
(discriminante > 0), reales iguales (discriminante = 0) o complejas (discriminante < 0) siendo
discriminante = b * b – 4 * a * c
Como para la formula de la resolvente necesitaremos la operación potencia “pow()”
importaremos la librería Math y como tendremos que ingresar datos y escribir resultados por
pantalla importaremos la librería swing.JOptionPane.
Ya en el desarrollo del programa dentro de U4_ejemplo2, tendremos que definir tres
variables para almacenar los coeficientes a, b y c que pueden contener números con coma.
Para ello utilizaremos el tipo double. También nos hará falta una variable para guardar el
mensaje a mostrar en pantalla, la llamaremos texto y será de tipo String.
Con la instrucción JOptionPane.showInputDialog() leemos los valores de las variables
y con Double.parseDouble() convertimos estos String en datos de tipo Double para asignarlos
a las variables a, b y c respectivamente.
Por último luego de calcular el discriminante con la instrucción if decidimos que mensaje
le asignaremos a la variable texto para ser mostrado antes de finalizar la aplicación

Página 5
Fundamentos de Programación | Guía Didáctica 1 | Módulo 4 TIG

Código:
package u4_ejemplo2;
/**
* @author FX8350
*/
import static java.lang.Math.*;
import javax.swing.JOptionPane;
public class U4_ejemplo2 {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
String texto;
double a,b,c,discriminante;
a= Double.parseDouble(JoptionPane.showInputDialog("Ingrese coeficiente a"));
b= Double.parseDouble(JOptionPane.showInputDialog("Ingrese coeficiente b"));
c= Double.parseDouble(JOptionPane.showInputDialog("Ingrese coeficiente C"));
discriminante = Math.pow(b,2) - 4 * a * c;
if (discriminante >= 0)
if (discriminante >0)
texto = "Raíces Reales Distintas";
else
texto= "Raíces Reales Iguales";
else
texto = "Raíces Complejas";
JOptionPane.showMessageDialog(null,texto);
}
}

Observe en este último ejemplo, que una estructura if se anida dentro de otra, pues hay
3 posibilidades (3 tipos de raíces).

Consejo : Vea en el código Java, como la indentación (espacios delante de cada


línea), si bien es ignorada por el compilador, juega un rol fundamental en nuestra
lectura e interpretación del código fuente. La indentación es también una muy
buena forma de documentar nuestro código .

ESTRUCTURA DE SELECCIÓN MÚLTIPLE SWITCH

La estructura de selección switch permite seleccionar una opción de ejecución entre


múltiples posibilidades. Estas posibilidades se basan en el valor de una variable de control
llamada selector de tipo ordinal. La sintaxis Java es la siguiente:
switch ( variable de control ) {
case valor1: sentencia1; break;
case valor2: sentencia2; break;
case valor3: sentencia3; break;
………..
case valorN: sentenciaN; break;
[default: sentencia1;]
}

Esta estructura trabaja de la siguiente manera:


 Observa el valor de la variable de control.
 Buscar en la lista de valores propuestos el valor que coincida con el de
la variable de control.
 Si encuentra dicho valor, ejecutar las acciones indicadas para esa

Página 6
Fundamentos de Programación | Guía Didáctica 1 | Módulo 4 TIG

opción. Ejecuta el break y va al fin de la estructura


 Si el valor asignado a la variable, no coincide con ningún valor de la
lista propuesta, salta al final del la estructura sin ejecutar ninguna
acción.
 Opcionalmente, pueden plantearse acciones para el caso de que la
variable de control no coincida con ningún valor de la lista en una
opción por default.
Cada sentencia case se corresponde con un único valor de expression. No se
pueden establecer rangos o condiciones sino que se debe comparar con valores
concretos.
Los valores no comprendidos en ninguna sentencia case se pueden gestionar en
default, que es opcional.
En ausencia de break, cuando se ejecuta una sentencia case se ejecutan también
todas las case que van a continuación, hasta que se llega a un break o hasta que se
termina el switch.
Una estructura switch se puede sustituir por parias estructuras if anidadas.

Aclaración:
 La alternativa default es opcional. La sentencia correspondiente será
ejecutada si el valor de la variable de control no coincide con ninguno de
los presentes en la lista del los case.
 La variable de control debe ser de tipo ordinal, no puede ser un valor de
tipo double, float o String. En caso de tener que comparar multiples valores
de tipos no ordinales, se deberán utilizar if anidados.

Ejemplo 4.3. En base a la calificación obtenida por un alumno (1..10) determine la


calificación en letras que le corresponde de acuerdo a la escala establecida por la
Universidad Nacional del Litoral de Santa Fe.
Resolución paso a paso:
Debemos declarar una variable tipo entera (“int nota”) para ingresar la nota que
puede variar de 0 a 10. Luego otra variable tipo String (“String calificación”) para asignarle
la nota en letras.
Con JOptionPane.showInputDialog() ingresaremos la nota y con Integer.parseInt()
convertimos el String para asignarlo a la variable nota.
Luego con la sentencia switch y en función del valor de nota asignamos a la
variable calificación la nota en letras.
1,2,3,4,5: Calificación ‘Insuficiente’;
6: Calificación ‘ Aprobado’;
7: Calificación ‘Bueno’;
8: Calificación ‘Muy Bueno’;
9: Calificación ‘Distinguido’;
10: Calificación ‘Sobresaliente’;

Por último mostramos la nota en con :


JOptionPane.showMessageDialog(null,"La nota en letras es: \n"+calificacion);

package u4_ejemplo3;
/* @author FX8350*/
import javax.swing.JOptionPane;
public class U4_ejemplo3 {
/* @param args the command line arguments */
public static void main(String[] args) {
// TODO code application logic here
int nota;
String calificacion;

Página 7
Fundamentos de Programación | Guía Didáctica 1 | Módulo 4 TIG

nota = Integer.parseInt(JOptionPane.showInputDialog("Ingrese la nota numerica"));


switch (nota){
case 1: case 2: case 3: case 4: case 5: calificacion = "Insuficiente";
break;
case 6: calificacion= "Aprobado";
break;
case 7: calificacion= "Bueno";
break;
case 8: calificacion= "Muy Bueno";
break;
case 9: calificacion = "Distinguido";
break;
case 10: calificacion= "Sobresaliente";
break;
default: calificacion = "Error "+nota+" no corresponde a una nota";
}
JOptionPane.showMessageDialog(null,"La nota en letras es: \n"+calificacion);
}
}

ESTRUCTURAS DE CONTROL ITERATIVAS


Se utilizan para realizar un proceso repetidas veces. Se denomina también bucles,
ciclos, lazos o loops. El código incluido entre las llaves { } (opcionales si el proceso repetitivo
consta de una sola línea), se ejecutará mientras se cumplan unas determinadas condiciones.
Hay que prestar especial atención a los bucles infinitos, hecho que ocurre cuando la condición
de finalizar el bucle (ExpresiónBooleana) no se llega a cumplir nunca. Se trata de un fallo muy
típico, habitual sobre todo entre programadores poco experimentados.

ESTRUCTURA ITERATIVA WHILE


Esta estructura permite hacer iteraciones (repeticiones) y su sintaxis en Java es muy
sencilla:
while ( ExpresiónBooleana )
{
sentencia;
}

El compilador evalúa la ExpresiónBooleana (lógica) y mientras arroje un valor


true (verdadero) se ejecuta la sentencia; luego se vuelve a evaluar la expresión boolean y así
sucesivamente.
Debia a que la evaluación de la expresión lógica se realiza al comienzo de la
estructura, es posible que sea falsa antes de comenzar la iteración por lo que la cantidad
mínima de veces que se repetiría la sentencia es 0 (cero).

Importante: Casi siempre sentencia será una sentencia compuesta, pues


necesitamos de al menos una acción simple para alterar el valor de verdad de la
expresión Booleana.
De otra forma, si la esta expresión siempre fuera verdadera el while nunca
terminaría quedando en un bucle infinito

.
Ejemplo 4.4. Ingrese un número entero y determine los pares menores a dicho número.
Muéstrelos ordenados en forma decreciente.

Pista: si el resto de la división (%) por 2 da cero (0) el numero es par.

Página 8
Fundamentos de Programación | Guía Didáctica 1 | Módulo 4 TIG

Resolución paso a paso:


Necesitamos ingresar un número así que importaremos la librería
swing.JOptionPane con la instrucción “import javax.swing.JOptionPane;”.
Deberemos guardar ese número en una variable tipo entera que definiremos con
int numero; Luego la leeremos por pantalla y la asignaremos a la variable numero con la
instrucción:
numero= Integer.parseInt(JOptionPane.showInputDialog("Ingrese un numero"));

Para mostrar el resultado en pantalla crearemos un String que guardará los


números solicitados. String salida=""; ahora bien supongamos que nos dan el número
impar 7, los pares menores son 6, 4, 2 y si nos dan el número par 8, los pares menores
son los mismos. Así que si se ingresa un número impar y le sumamos 1 y luego lo vamos
decrementando de 2 en 2 hasta cero.
Obtendremos todos los números pares menores a él, en cambio si el número
ingresado es par, solo lo decrementaremos de 2 en 2.
Esto lo lograremos con el ciclo repetitivo while (numero>2), la variable de control
es numero y debemos decrementarla en el interior del while para que en algún momento
la comparación (numero > 2) de cómo resultado Falso y finalice el while. Dentro del while
deberemos ir concatenando los valores de numero para mostrarlos por pantalla una vez
finalizado el ciclo while.
package u4_ejemplo4;
/**
* @author FX8350
*/
import javax.swing.JOptionPane;
public class U4_ejemplo4 {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
int numero;
numero= Integer.parseInt(JOptionPane.showInputDialog("Ingrese un numero"));
String salida=""; //string para guardar la salida
if (numero % 2 != 0){ //si no es par
numero++; //incremento en 1 su valor (numero = numero + 1)
}
while (numero > 2){
numero -= 2; //decremento en 2 su valor (numero = numero - 2)
salida+= numero+"\n"; //concateno el resultado y agrego un salto de linea
}
JOptionPane.showMessageDialog(null,salida); //muestro el resultado
}
}

ESTRUCTURA ITERATIVA DO-WHILE


Es similar al bucle while pero con la particularidad de que el control está al final del
bucle (lo que hace que el bucle se ejecute al menos una vez, independientemente de que la
condición se cumpla o no). Una vez ejecutadas las sentencias, se evalúa la condición: si
resulta true se vuelven a ejecutar las sentencias incluidas en el bucle, mientras que si la
condición se evalúa a false finaliza el bucle.
Este tipo de bucles se utiliza con frecuencia para controlar la satisfacción de una
determinada condición de error o de convergencia.
La sintaxis de la estructura se encuentra a continuación:

Página 9
Fundamentos de Programación | Guía Didáctica 1 | Módulo 4 TIG

do {
sentencia1;
sentencia2;

sentenciaN;
} while ( ExpresionBooleana );

ESTRUCTURA ITERATIVA FOR


Esta estructura ejecuta la sentencia por primera vez con el valor inicial de la variable de
control, la cual se incrementa automáticamente en cada iteración. La última ejecución de la
sentencia se realiza cuando la variable toma el valor final propuesto. La sintaxis Java es :
for (valores de entrada ; condición de terminación ; iteración por ciclo) {
sentencias;
}

oo Las tres partes del ciclo se encuentran separadas por ; (punto y coma)
oo La primer parte del ciclo especifica el valor inicial de la variable de control
oo La segunda parte indica la condición de terminación para el ciclo, la cual
esta directamente relacionada con los valores iniciales.
oo Finalmente, la última parte especifica como serán manipulados los
valores iniciales en cada iteración del ciclo. Lo más frecuente es
incrementar o decrementar la variable de control.
Cada parte del ciclo debe incluir al menos un elemento, a la cual es posible agregar
otros elementos a partir de una , (coma).
Por ejemplo, el código situado a la izquierda produce la salida que aparece a la
derecha:
Código: Salida:
i = 1 j = 11
for (int i = 1, j = i + 10; i < 5; i++, j = 2*i) {
System.out.println(" i = " + i + " j = " + j); i=2 j=4
} i=3 j=6
i=4 j=8

Objservación: Al igual que en casos anteriores, esta estructura no posee un


delimitador propio por lo que tendremos que utilizar sentencias compuestas { } en
muchas ocasiones. El dato de la variable de control de la estructura debe ser de
tipo simple ordinal. En todos los casos, el próximo valor de la variable de control
se basa en la secuencia del tipo ordinal asociado a dicha variable. Se puede
utilizar cualquier incremento para la variable de control, especificado en el 3er.
parámetro.

Página 10
Fundamentos de Programación | Guía Didáctica 1 | Módulo 4 TIG

Ejemplo 4.5. Ingrese un número entre 1 y 10. Valide que el número este en ese rango, si no
es así reingréselo, a continuación muestre la tabla de multiplicar correspondiente.-

Resolución paso a paso:


Necesitamos ingresar un número por pantalla, así que importaremos la librería
swing.JOptionPane con la sentencia “import javax.swing.JOptionPane;”
Deberemos guardar ese número en una variable tipo entera y debemos utilizar una
variable para contar de 1 a 10, que definiremos con int numero, contador;. Luego leeremos
por pantalla el valor y lo asignaremos a la variable numero con la instrucción:
numero= Integer.parseInt(JOptionPane.showInputDialog("Ingrese un numero"));

Con un ciclo do while() validamos que el numero este en el rango de 1 a 10.

Para mostrar el resultado en pantalla crearemos un String que guardará los


números solicitados. String cadena=""; Por ultimo con un ciclo for vamos concatenando la
cadena de salida con los valores de la tabla de multiplicar solicitada.

A continuación está el código en Java

package u4_ejemplo5;
/**
* @author FX8350
*/
import javax.swing.JOptionPane;
public class U4_ejemplo5 {
/**
* @param args the command line arguments
*/

public static void main(String[] args) {


// TODO code application logic here
int numero,contador;
String cadena="";
do{
numero= Integer.parseInt(JOptionPane.showInputDialog("Ingrese un número etre 1 y 10"));
} while ((numero<1)||(numero>10)); //valida el rango de 1 a 10
for (contador=1; contador<=10; contador++){
cadena += numero + " * " + contador + " = " + contador * numero + "\n";
}
JOptionPane.showMessageDialog(null,cadena);
}
}

SÍNTESIS
11.. Las estructuras de programación o estructuras de control permiten tomar decisiones y
realizar un proceso repetidas veces.
22.. Las llaves { } sirven para agrupar en un bloque las sentencias que se han de ejecutar y no
son necesarias si sólo hay una sentencia

33.. La estructura condicional if permite tomar un camino u otro en la secuencia de ejecución,


en base al valor de verdad de una proposición lógica (expresión booleana).
if ( expresión booleana )
{ sentencias por verdadero };
[ else { sentencias por falso }; ]

Página 11
Fundamentos de Programación | Guía Didáctica 1 | Módulo 4 TIG

44.. La estructura de selección múltiple switch permite ejecutar una o más acciones
selectivamente en base al valor de una variable de control que es evaluada al inicio.
switch ( variable de control) {
case valor1: sentencia1; break;
case valor2: sentencia2; break;
case valor3: sentencia3; break;
………..
case valorN: sentenciaN; break;
[default: sentencia1;]
}

55.. La estructura iterativa while permite evaluar una expresión lógica al inicio y si su valor de
verdad arroja verdadero se ejecutan las acciones incluidas en la estructura; luego se vuelve
a evaluar la expresión lógica y así sucesivamente. Las acciones incluidas en esta estructura
se podrán ejecutar 0 o más veces.
while ( ExpresiónBooleana )
{
sentencias;
}

66.. La estructura iterativa do-while actúa similarmente a la estructura while solo que la
expresión lógica se evalúa al final; si esta arroja falso se abandona la estructura, y se
continúa iterando en caso de arrojar verdadero. Mínima cantidad de iteraciones: 1
do {
sentencia1;
sentencia2;

sentenciaN;
} while ( ExpresionBooleana );

77.. Estructura for


for (valores de entrada ; condición de terminación ; iteración por ciclo) {
sentencias;
}

Página 12
Fundamentos de Programación | Guía Didáctica 1 | Módulo 4 TIG

Actividades
Los ejercicios son para la práctica de estudio y no se deben presentar.
Las respuestas a los mismos se encontraran en un archivo .pdf ubicado en el aula
virtual.
El ejercicio propuesto se podrá realizar en grupo, pero se deberá subir en forma
individual en la tarea correspondiente de la plataforma

Ejercicios
1) Escriba un programa que permita ingresar un número natural N como dato y muestre
todos los pares menores a N en forma creciente. Tener en cuenta que el dato puede
ser tanto par como impar. (Sugerencia para la solución: revise el ejemplo 4.4)

2) Escriba un programa que a partir del ingreso de los coeficientes a, b, c, de una


ecuación cuadrática de la forma: ax2 + bx + c = 0 , determine las raíces de la
ecuación y el caracter de las mismas (reales distintas, reales iguales, complejas
conjugadas). Si las raíces fueran complejas informar un mensaje alusivo, en caso
contrario mostrar las soluciones reales. (Sugerencia para la solución: revise el
ejemplo 4.2)

3) Modifique el proyecto anterior para poder mostrar las raíces complejas en


forma binómica de la forma a + bi.

4) Crear un proyecto Java para que:


a) Escriba todos los caracteres del código ASCII.
b) Escriba sólo las letras del abecedario en mayúsculas.
c) Escriba sólo las letras del abecedario en minúsculas.

5) Diseñe una aplicación Java que permita mostrar 50 datos numéricos generados al
azar entre 1 y 50000. Obtener los siguientes parámetros estadísticos:
a) la media,
b) los 2 mayores
c) el menor de la lista y su posición.
Sugerencia para la solución: La función Java Math.random() genera enteros al azar
entre 0 y 1. (revea la Unidad 3)

Ejercicio Propuesto
Diseñe una aplicación Java que permita ingresar un entero y determine si el
número es primo o no.
Sugerencia para la solución: Un número primo solo es divisible por 1 y por sí
mismo.

Página 13

También podría gustarte