Sie sind auf Seite 1von 29

EscueladeCienciasdelaComputacinUTPL FundamentosdelaProgramacin Autores:Ing.JorgeLpez,Ing.

GreysonAlberca

CAPTULO2:SECUENCIACINYESTRUCTURASDESELECCIN
Empecemos el estudio de este segundo captulo no sin antes recordar que un programa tiene un orden estricto de ejecucin, en el pseudocdigo que estamos estudiando ubicamos nmeros y letras a la izquierda de cada lnea que es parte del algoritmo, vea la pgina 53 del texto bsico, para sealar cul es el orden de ejecucin. En los programas escritos en Java o en cualquier otro lenguaje de programacin no es necesario el uso de nmeros 1 para indicar cul es el orden de ejecucin, generalmente las lneas de cdigo se ejecutan segn el orden en el que fueron escritos. A este orden se lo denomina flujo normal de ejecucin. Todos los lenguajes de programacin que se denominan de alto nivel, poseen un conjunto de estructuras que permite controlar y modificar el flujo de ejecucin de un programa. Estas estructuras pueden clasificarse en: secuenciacin, seleccin y repeticin. En este captulo nos dedicaremos a aprender la secuenciacin y seleccin por lo cual necesitamos estudiar ciertas secciones del Captulo 2 Elementos para solucionar problemas en pseudocdigo, el Captulo 3 La secuenciacin y el Captulo 4 La seleccin del texto bsico. Iniciemos este captulo estudiando el comportamiento por defecto que tienen todos los programas, independientemente del lenguaje de programacin con el que fueron escritos, y que se denomina secuenciacin.

2.1Lasecuenciacin
Realice una lectura comprensiva del Captulo 3 La secuenciacin. Una vez hecha la lectura regrese a este apartado para revisar algunos temas que debe tener en cuenta. Qu le pareci la lectura? Comprendi? Si es as avancemos y repasemos ciertos elementos de la lectura anterior. Acuda a la pgina 50 del texto bsico y encontrar un definicin de secuenciacin y como se implementar en el pseudocdigo que estamos aprendiendo. Es necesario que analice a detalle los puntos 3.1 Nuestro primer programa y 3.2 Estructura y diseo de un algoritmo ya que ellos explican como se arma un algoritmo y se plantea el primer problema a resolver, para luego en el punto 3.3 Nuestro primer algoritmo mostrar ya el primer algoritmo que resuelve el problema planteado. Hagamos entonces una analoga con el mundo de Java. En Java, as como en
1 En la gua todas las imgenes que muestran programas Java tienen nmeros (a la izquierda de cada lnea), esos nmeros no son parte del programa y las usamos con el afn de hacer ms sencilla la explicacin de los mismos.
Esta obra ha sido licenciada con Creative Commons Ecuador 3.0 de Reconocimiento - No comercial Compartir igual (http://creativecommons.org/licenses/by-nc-sa/3.0/ec/).

EscueladeCienciasdelaComputacinUTPL FundamentosdelaProgramacin Autores:Ing.JorgeLpez,Ing.GreysonAlberca

todos los lenguajes de programacin, la secuenciacin es una caracterstica innata, es decir, que ya viene implementada como el comportamiento por defecto, ejecutando una tras otras las lneas de cdigo segn el orden en el que aparecen en el cdigo fuente. El cdigo fuente es un archivo en texto plano que muestra las instrucciones que el programa ejecutar. En Java el cdigo fuente se graba en un archivo con la extensin .java y contiene a una clase. Analicemos ahora como Java implementa las estructuras que posee un algoritmo (apartado 3.2 del texto bsico). 1. El encabezado Si bien en Java no existe una representacin directa para este elemento podemos utilizar comentarios de bloque para identificar el programa. Lo haramos as:
/** * Programa CALCULAR SUELDO DE UN EMPLEADO * @author jorgaf */

Ubicaremos una descripcin del programa que vamos a elaborar y otras explicaciones que le pueden ayudar a entender el propsito del programa. Adems podemos ubicar el nombre de la persona que elabor el programa, para ello debemos colocar @author y luego el nombre del programador. El @author es un comentario de documentacin, por ahora no nos preocuparemos del mismo. 2. Clases Todo programa que creamos en Java es una clase y se define con el siguiente cdigo:
public class Empleado1 {

Esta clase se llama Empleado1. Al final de la definicin de la clase se coloca una llave de apertura, que indica el inicio del bloque de cdigo que corresponde a la clase. Un bloque de cdigo es una o ms sentencias que se encierran entre llaves {} y pueden incluir a otras estructuras como mtodos y estructuras de control Adems de la clase se define el mtodo principal, que en Java tiene la siguiente forma:
public static void main(String args[]){

Los detalles lo dejaremos para el segundo bimestre cuando estudiemos mtodos. Por cada clase nicamente puede existir un mtodo principal. 3. Declaraciones

Esta obra ha sido licenciada con Creative Commons Ecuador 3.0 de Reconocimiento - No comercial Compartir igual (http://creativecommons.org/licenses/by-nc-sa/3.0/ec/).

EscueladeCienciasdelaComputacinUTPL FundamentosdelaProgramacin Autores:Ing.JorgeLpez,Ing.GreysonAlberca

Para las declaraciones revise la Ilustracin 1 que se encuentra en el captulo anterior de la presente gua didctica. Las declaraciones ms utilizadas sern las variables, razn por la cual debe estudiarlas con mayor detenimiento. 4. Leer, calcular e imprimir Las acciones de leer e imprimir o escritura de informacin lo analizamos en el captulo anterior, vuelva a revisarlas. Los clculos se realizan a travs de sentencias de asignacin, que son instrucciones que permiten asignar resultado de una expresin matemtica, trigonomtrica o lgica a una variable. Entraremos en detalles en la seccin 2.2 Operadores aritmticos y funciones matemticas de la presente gua didctica. 5. Fin del mtodo principal de la clase y del algoritmo En Java estos elementos se sealan con llaves de cierre para el mtodo principal y la clase. No se seala el cierre del algoritmo. Como se menciona en la nota de la pgina 53 del texto bsico, el mismo incluye un CD con los programas Java de cada uno de los algoritmos desarrollados en los diferentes captulos. Existen algunas diferencias entre lo que planteamos en la gua didctica y lo que encontrar en el CD. Las diferencias son: el ingreso de datos y la salida o escritura de datos. Usted est en la libertad de seleccionar la forma a la que mejor se adapte, aunque recomendamos usar lo expuesto en esta gua. En la siguiente ilustracin usted encontrar la traduccin que hemos realizado para el algoritmo que se encuentra en la pgina 53 del texto bsico. Observe como a travs de comentarios sealamos el encabezado y el inicio de algunas secciones como el mtodo principal, las declaraciones. Vea las diferencias que existen entre el cdigo que contiene el CD del texto bsico y el cdigo desarrollado para la materia, especialmente para el ingreso y escritura de datos.

Esta obra ha sido licenciada con Creative Commons Ecuador 3.0 de Reconocimiento - No comercial Compartir igual (http://creativecommons.org/licenses/by-nc-sa/3.0/ec/).

EscueladeCienciasdelaComputacinUTPL FundamentosdelaProgramacin Autores:Ing.JorgeLpez,Ing.GreysonAlberca

Ilustracin 1 Clase Empleado1, primer algoritmo "traducido"

Es necesario que revise la explicacin del algoritmo de la pgina 53, ponga especial atencin a la nota que se encuentra en la pgina 54 y establezca la relacin con la lnea 23 de la ilustracin anterior. Vea la representacin esquemtica de las variables en memoria. Finalmente haga la prctica que se recomienda en la pgina 55. Generalmente dentro de los programas como el que muestra la Ilustracin 5, se utilizan espacios en blanco (saltos de lnea y tabuladores) con el fin de mejorar la legibilidad del cdigo fuente, ellos no influyen de ninguna manera en el programa (no son la causa de errores, su existencia o ausencia no hace que un programa funcione) y su uso es exclusivamente para facilitar la lectura de los programas. Cosa igual sucede con los comentarios, solamente son tiles para que el programador entienda que hace y luego recuerde lo que hizo. La secuenciacin es til para resolver problemas en los que intervienen algn tipo de clculo (matemtico, trigonomtrico o lgico), como ejemplo calcular el sueldo de un empleado segn las horas trabajadas, calcular el rea de un tringulo, etc. Generalmente la secuenciacin se aplicar para hacer algoritmos y programas que resuelven alguna frmula. Para ello es necesario conocer los operadores matemticos (pgina 43 del texto bsico) y algunas funciones matemticas (pgina 55 del texto bsico). Seguidamente revisaremos estos temas.

Esta obra ha sido licenciada con Creative Commons Ecuador 3.0 de Reconocimiento - No comercial Compartir igual (http://creativecommons.org/licenses/by-nc-sa/3.0/ec/).

EscueladeCienciasdelaComputacinUTPL FundamentosdelaProgramacin Autores:Ing.JorgeLpez,Ing.GreysonAlberca

2.2Operadoresaritmticosyfuncionesmatemticas
Recurra nuevamente al texto bsico y lea detenidamente las pginas de 43 a la 55. Adems revise los ejemplos que ah se muestran.

Para realizar algn tipo de clculo es necesario trabajar con operadores, operandos y alguna funcin matemtica (elevar un nmero x a una potencia y por ejemplo). Por tal motivo debemos definir cada una ellas. El pseudocdigo que estamos aprendiendo muestra sus operadores aritmticos en la pgina 43 del texto bsico, concretamente en el apartado 3. Operaciones aritmticas fundamentales, ponga atencin a los notas que se muestran en las pginas 44 y 45. El ltimo ejemplo de la pgina 43 muestra como traducir expresiones algebraicas a expresiones comprensibles por un computador, que muchas veces puede traer problemas cuando nos iniciamos en la programacin. Otro punto a analizar es la precedencia de operadores que se encuentra explicado correctamente en la pgina 45. Finalmente vea los ejercicios de conversin que inician al final de la pgina 45 y terminan en la 46. Antes de pasar a analizar la correspondencia entre los operadores aritmticos del pseudocdigo con los operadores de Java, dos observaciones: - El operador de multiplicacin es el asterisco (*), no la letra equis minscula (x) o mayscula (X) - Expresiones as: 3(2y-1) no son vlidas, un computador no las comprender y nos lanzar un error lxico (pgina 25 del texto bsico, el tema 2). La omisin del operador de multiplicacin es un error programacin, especialmente cuando somos principiantes. comn en la

Dentro de Java existen los mismos operadores aritmticos que muestra el texto bsico, su correspondencia se muestra en la siguiente tabla:
Tabla 1 Correspondencia entre operadores aritmticos
Operador pseudocdigo + (Suma) - (Resta) * (Multiplicacin) / (Divisin real) \ (Divisin entera) Mod (Mdulo) = (Asignacin) Operador Java + * / NO EXISTE % = a = a % 3; a = 3; Ejemplo a = a + 3; a = a - 3; a = a * 3; a = a / 3;

En Java, no existe el operador de divisin entera, pero cuando estamos dividiendo 2 nmeros enteros, el resultado ser un nmero entero (Ejemplo: 5/2 = 2). Qu sucede con la parte decimal? Nada, simplemente la divisin entre enteros da como resultado un entero.

Esta obra ha sido licenciada con Creative Commons Ecuador 3.0 de Reconocimiento - No comercial Compartir igual (http://creativecommons.org/licenses/by-nc-sa/3.0/ec/).

EscueladeCienciasdelaComputacinUTPL FundamentosdelaProgramacin Autores:Ing.JorgeLpez,Ing.GreysonAlberca

En cambio la divisin entre nmeros reales (o cundo al menos uno de los operandos es un nmero real), el resultado ser un nmero real. Por ejemplo 5.0/2 = 2.5. En Java, la divisin entre nmeros enteros da como resultado otro nmero entero, sin parte decimal, sin redondeos, ni truncamientos. Otro de los operadores que cambia de forma, entre el pseudocdigo y Java es el operador mdulo, pero el resultado siempre ser el mismo (el residuo de una divisin entera), esto limita su aplicacin con nmeros enteros, tanto en Java como pseudocdigo. El operador mdulo (% en Java, Mod en pseudocdigo) solamente se puede aplicar entre nmeros enteros. Una operacin que a veces puede causar confusin es la asignacin, no siempre, pero s las que tienen la siguiente forma:
int a = 5; a = a + 2;

Alguna vez, nos podemos preguntar, Cmo es posible que la variable a est a ambos lados del signo igual? Cul es el valor que toma a antes de la asignacin, 5 o 7? Bien cuando estemos realizando cualquier tipo de asignacin (usando el signo igual), siempre se resuelve primero lo que tenemos a la derecha del igual, para luego asignar ese valor a la variable que se encuentra a la izquierda del igual. Entonces en el cdigo anterior, en la lnea en donde se realiza la suma (a la derecha del igual) a toma el valor de 5; finalmente y luego de la asignacin el valor de a es 7. Las funciones matemticas, pgina 55 del texto bsico, difieren considerablemente en Java. En Java para invocarlas es necesario utilizar la clase esttica Math. Veamos una tabla de equivalencias entre Java y pseudocdigo.
Tabla 2 Equivalencia entre funciones matemticas
Funcin pseudocdigo Seno(x) Coseno(x) ArcoTan(x) Ln(x) Exp(x) Absoluto(x) RaizCuad(x) Potencia(base, exponente) Funcin Java Math.sin(x) Math.cos(x) Math.atan(x) Math.log(x) Math.exp(x) Math.abs(x) Math.sqrt(x) Math.pow(base, exponente) Ejemplo Math.sin(45); Math.cos(90); Math.atan(0); Math.log(4.3); Math.exp(89); Math.abs(-2.8); Maht.sqrt(36); Math.pow(3, 4);

La tabla anterior muestra algunos ejemplos de equivalencias, solamente las definidas en el texto bsico, pero la clase Math tiene algunas otras funciones y valores constantes como PI y E, Math.PI y Math.E respectivamente. Tanto para el pseudocdigo como para Java el valor de x puede ser un nmero entero
Esta obra ha sido licenciada con Creative Commons Ecuador 3.0 de Reconocimiento - No comercial Compartir igual (http://creativecommons.org/licenses/by-nc-sa/3.0/ec/).

EscueladeCienciasdelaComputacinUTPL FundamentosdelaProgramacin Autores:Ing.JorgeLpez,Ing.GreysonAlberca

o real. Pero el resultado de una funcin matemtica en Java, siempre ser un nmero real. Luego de revisar la Tabla 2, posiblemente se pregunte cmo calculo la raz 7 de 127? La respuesta es usando la funcin potencia, debido a la siguiente equivalencia:

En un ejemplo sera:

Y en cdigo Java, se expresara as:


double raiz; raiz = Math.pow(127, 1.0/7);

Los siguientes programas Java muestran el uso de los operadores aritmticos y las funciones matemticas.

Ilustracin 2 Programa que muestra el uso de los operados aritmticos

Esta obra ha sido licenciada con Creative Commons Ecuador 3.0 de Reconocimiento - No comercial Compartir igual (http://creativecommons.org/licenses/by-nc-sa/3.0/ec/).

EscueladeCienciasdelaComputacinUTPL FundamentosdelaProgramacin Autores:Ing.JorgeLpez,Ing.GreysonAlberca

En la ilustracin anterior podemos ver como se hacen las divisiones enteras y reales, fjese en las lneas desde la 29 hasta la 34. La salida del programa se muestra en la siguiente imagen:

Ilustracin 3 Salida del programa de la Ilustracin 6

La Ilustracin 8 muestra el uso de las funciones matemticas. Recuerde que una funcin matemtica en Java siempre devuelve un valor real, por ese motivo la variable resultado se defini como double. En la lnea 32 se muestra el clculo de la raz 7 de 127, usamos 1.0 para decirle a Java que el exponente debe ser un valor real.

Ilustracin 4 Programa que muestra el uso de las funciones matemticas

La salida del programa es la siguiente:

Esta obra ha sido licenciada con Creative Commons Ecuador 3.0 de Reconocimiento - No comercial Compartir igual (http://creativecommons.org/licenses/by-nc-sa/3.0/ec/).

EscueladeCienciasdelaComputacinUTPL FundamentosdelaProgramacin Autores:Ing.JorgeLpez,Ing.GreysonAlberca

Ilustracin 5 Salida del programa de la Ilustracin 8

Observe, en la ejecucin del programa, que el separador decimal es la coma (,), aunque en el cdigo fuente de un programa en Java es el punto (.). La diferencia se da porque el sistema operativo usa como separador decimal la coma (,) y la ejecucin depende del sistema operativo. Esto puede cambiar segn la forma en la que trabaja su sistema operativo. Las siguientes imgenes muestran la traduccin de los algoritmos de los ejercicios 3.4.2 (pgina 59) y 3.5.2 (pgina 61).

Ilustracin 10 Programa para el algoritmo 3.4.2 del texto bsico

Como se mencion anteriormente la clase Math posee algunas constantes, por tal razn no se defini PI como tal, sino que se utiliz el valor que tiene la clase Math (vea las lneas 25 y 26 de la Ilustracin 10). La salida del programa anterior se muestra en la siguiente imagen:

Esta obra ha sido licenciada con Creative Commons Ecuador 3.0 de Reconocimiento - No comercial Compartir igual (http://creativecommons.org/licenses/by-nc-sa/3.0/ec/).

EscueladeCienciasdelaComputacinUTPL FundamentosdelaProgramacin Autores:Ing.JorgeLpez,Ing.GreysonAlberca

Ilustracin 7 Salida del programa de la Ilustracin 10

La siguiente ilustracin corresponde al programa del ejemplo 3.5.2, pgina 61 del texto bsico.

Ilustracin 12 Programa que representa al algoritmo 3.5.2 del texto bsico

La salida es la siguiente:

Ilustracin 9 Salida del programa que se muestra en la Ilustracin 12

Para una mejor comprensin de los temas aqu tratados es necesario que revise todos los ejercicios desde el 3.4.1 (pgina 58) hasta el 3.5.3 (pgina 62) del texto bsico. Antes de revisar las soluciones trate usted mismo de resolverlos y compare sus respuesta con el texto bsico. Recuerde que primero debe entender el pseudocdigo y luego la programacin Java. Una vez comprendidos los ejercicios, trate de codificarlos en Java. Recuerde que si tiene problemas en
Esta obra ha sido licenciada con Creative Commons Ecuador 3.0 de Reconocimiento - No comercial Compartir igual (http://creativecommons.org/licenses/by-nc-sa/3.0/ec/).

EscueladeCienciasdelaComputacinUTPL FundamentosdelaProgramacin Autores:Ing.JorgeLpez,Ing.GreysonAlberca

la traduccin a Java, puede revisar el CD del texto bsico y ver los ejercicios escritos en Java, sin olvidar la diferencia que existe en la entrada y salida de datos entre el cdigo Java que muestra el CD y el cdigo que se expone en esta gua. Una vez que hemos analizado la secuenciacin debemos iniciar el estudio de las estructuras de seleccin, ya que si bien la secuenciacin es un mecanismo que sirve para un tipo de problemas es limitado, por lo que es necesario complementarla a travs de otras estructuras como la seleccin.

2.3Estructurasdeseleccin
Es el momento de realizar una lectura comprensiva del Captulo 4 La seleccin del texto bsico. Una vez concluida la lectura vuelva a este apartado para desarrollar en detalle algunas ideas que le ayudaran a comprender de mejor manera este tema. Qu le pareci la lectura? Comprendi? Si es as avancemos y repasemos ciertos elementos de la lectura anterior. La secuenciacin, nos permite hacer un cierto tipo de ejercicios, que pueden ser clasificados como sencillos. Pero la secuenciacin no es suficiente, para resolver todos los problemas a los que nos podemos enfrentar, por tal motivo se han creado las estructuras de control: seleccin y repeticin. La primera de las estructuras de programacin que analizaremos es la seleccin, para lo cual nos apoyaremos en el texto bsico, en el Captulo 4 La seleccin, pgina 67. Para empezar revise el ejercicio que se muestra en la pgina 68 que nos muestra la necesidad de contar con estructuras que nos permitan decir si un grupo de acciones o instrucciones se ejecutan o no. De manera general las estructuras de seleccin son IF-THEN-ELSE, IF-THEN y SWITCH que son analizadas en las pginas 68, 79 y 80 respectivamente. Veamos cul es la representacin de cada uno de ellos en Java, iniciando por IF-THEN-ELSE, revise por completo el punto 4.1 del texto bsico. Vamos a usar el algoritmo que se muestra en la pgina 70, solamente mostraremos las secciones d, e y f.

Ilustracin 10 Ejemplo en Java de la estructura IF-THEN-ELSE

Recuerde siempre revisar la explicacin de cada uno de los algoritmos, para de esa manera comprenderlos. En la ilustracin anterior podemos ver como la lnea d del pseudocdigo corresponde a la lnea 29 en Java; la lnea e corresponde a la lnea 31 y la lnea f corresponde a la lnea 33. Para que se ejecute la lnea 30 es necesario que el valor de la variable horasTrab sea menor o igual a 40, sino es as (si es mayor

Esta obra ha sido licenciada con Creative Commons Ecuador 3.0 de Reconocimiento - No comercial Compartir igual (http://creativecommons.org/licenses/by-nc-sa/3.0/ec/).

Escuel ladeCienciasde d laComputac cinUTPL Fundamentos sdelaProgram macin Autores:Ing g.JorgeLpez,Ing.GreysonAlberca

que 40) se ejecutar e la lnea 32 2. Vemos como exi isten bloques (lnea as de cdig go, encerra adas entre e llaves {}) ) tanto par ra el if com mo para el else. En el e pseu udocdigo el bloque e del IF inicia en la siguie ente lnea luego de e su decla aracin y llega hasta a encontrar r la palabr ra ELSE, mientras m qu ue el bloque del ELSE E inicia luego de la pa alabra ELS SE y llega hasta h la palabra ENDIF. Una sentencia que sea parte p de un u bloque IF-THEN-E ELSE debe ubicarse en e el bloque de sentencias de el IF o en bloque b del ELSE, pero nunca f fuera. Tant to en Java a como en el pseudo ocdigo se suele usa ar indentac cin, revis se la pgin na 71 punt to 4.2 del texto bsico, para encontrar e una u definic cin a este e trmino y ver algunos ejemp plos. Entre las difere encias que e podemos encontrar r entre el pseudocdi p igo y Java para el IF-THEN-EL LSE (que podemos generaliza ar para to odas las estructuras de cont trol) son: - El l uso de las s minscul las para las palabras reservada as IF y ELS SE. - En n Java no existe e la pa alabra THE EN. - El l uso de los s parntes sis para enc cerrar la co ondicin qu ue en Java a es obligat torio. - Y el uso de llaves ({}) para iden ntificar los bloques de d cdigo, tanto para a el if co omo el else e. En la a pgina 77 del texto o bsico, encontrar e el tema 4.4 IFs anidados qu ue no es otra cosa que ubicar dentro de un IF a otro u otros s IF. La sig guiente imagen mue estra un eje emplo en Java J que nos ayuda a aclarar es ste tema.

Ilustracin r 11 Ejem mplo de IF's anidados

Veam mos ahora a la repre esentacin de IF-TH HEN o tam mbin conocida com mo la selec ccin simp ple (lea po or complet to el apart tado 4.5 La selecci in simple e (IFTHEN N) del tex xto bsico, pginas 79 y 80), en n Java. La seccin de e cdigo qu ue se toma ar corresp ponde al algoritmo de la pgina a 80 en los s puntos e. . y f.

Ilustracin r 12 Cd digo Java que e muestra la estructura e IF F-THEN

La lneas l e. y f. del pseudocdigo, corr responden a las ln neas 31 y 33 respectivamente del cd digo Java. En este caso c si el valor de horasTra ab es mayor que 40 se ejecuta ar la lnea a 32, si no es as, se continua c con la lnea a 34.
Esta a obra ha sido licenciada con Creative C Commo ons Ecuador 3.0 0 de Reconocim miento - No com mercial Compa artir igual (http:/ //creativecommo ons.org/licenses s/by-nc-sa/3.0/e ec/).

EscueladeCienciasdelaComputacinUTPL FundamentosdelaProgramacin Autores:Ing.JorgeLpez,Ing.GreysonAlberca

En este ejemplo no existe un caso alternativo, nicamente se cuenta con el bloque de sentencias del IF. La ltima estructura de seleccin es SWITCH, revisar por completo el acpite 4.6 La seleccin mltiple (SWITCH), pgina 80 del texto bsico. La siguiente seccin de cdigo muestra el algoritmo de la pgina 82, en las lneas d., e. y f. incluidas las lneas que estn dentro. La correspondencia es la siguiente: la lnea d. corresponde a la 22, la lnea e. a la 44 y la f. a la 46.

Ilustracin 13 Ejemplo de cdigo en Java que muestra un SWITCH

Para identificar cada caso en Java se usa la palabra reservada case, adems por cada caso se usa la palabra reservada break (vea las lneas 25, 28, 31, etc.) excepto, en el caso por defecto (lnea 44) en donde ya no es necesario. La palabra reservada break le dice a Java que se ha ejecutado uno de los casos del switch y que termine de realizar las comparaciones, saltando a la siguiente lnea luego del switch, en el programa sera la lnea 47. La nica operacin de comparacin que admite una estructura SWITCH es la igualdad, es decir se compara si el selector (numDia) es igual a uno de los valores de los casos (del 1 al 7). Si no existe ningn valor igual se ejecuta la opcin default. El caso por defecto (default) es opcional, es decir que podemos construir una estructura SWITCH sin el, para ver un ejemplo revise el algoritmo de la pgina 106 (acciones comprendidas entre 4 y 5) del texto bsico. Para aclarar el funcionamiento del SWITCH, lea la pgina 81 del texto bsico en donde habla del funcionamiento de esta estructura.

Esta obra ha sido licenciada con Creative Commons Ecuador 3.0 de Reconocimiento - No comercial Compartir igual (http://creativecommons.org/licenses/by-nc-sa/3.0/ec/).

EscueladeCienciasdelaComputacinUTPL FundamentosdelaProgramacin Autores:Ing.JorgeLpez,Ing.GreysonAlberca

En Java se cumple exactamente lo que dice el libro en la pgina 81 acerca del selector. Los nicos tipos de datos admitidos para la variable que har de selector son int y char; aunque se ha anunciado que para la versin 7 de Java se soportar el tipo String 2 . Para cada caso (case) existe un bloque de sentencias, aunque no se use las llaves ({}), para mostrarlo. El bloque inicia desde los dos puntos (:) hasta donde inicia el siguiente caso.Cuntas y cules sentencias pueden ser parte del bloque de un case? La respuesta es cualquier tipo y nmero de sentencias, no existe restriccin alguna. Aunque hasta el momento no hemos visto un bloque de un caso(case) con ms de 10 sentencias. En la pgina 83 del texto bsico se muestra otras aspectos de la estructura switch. Tanto para el ejercicio de la pgina 83 y 84 del texto bsico, en Java se pueden programar obviando el uso de las sentencias break en cada caso. Veamos el programa Java que representa el algoritmo de la pgina 84 para observar cmo trabajar con caracteres (variables tipo char).

Ilustracin 14 Programa que representa la algoritmo de la pgina 84 del texto bsico


2

Al momento de escribir este documento la ltima versin de Java era la 6

Esta obra ha sido licenciada con Creative Commons Ecuador 3.0 de Reconocimiento - No comercial Compartir igual (http://creativecommons.org/licenses/by-nc-sa/3.0/ec/).

EscueladeCienciasdelaComputacinUTPL FundamentosdelaProgramacin Autores:Ing.JorgeLpez,Ing.GreysonAlberca

La ilustracin anterior muestra como leer un tipo de dato tipo char (carcter) en la lnea 18. En Java, a travs de la clase Scanner, no se puede leer directamente un tipo de dato char, por lo cual leemos una cadena de caracteres (mtodo next()) y de esa cadena sacamos el primer carcter (mtodo charAt(0), porque las cadenas de caracteres inician en la posicin 0). Vemos tambin el manejo de los caracteres, siempre se encierra entre comilla sencilla (o apstrofe) y existe un carcter para las maysculas y otro para las minsculas que es diferente. Podemos ver como la ausencia de la sentencia break; afecta el comportamiento de un programa, permitiendo agrupar los casos. Recuerden que el break seala la salida del switch y al no existir, en los casos anteriores al caso con u (minscula o mayscula - lneas 24 y 32), hace que siempre se ejecute ese caso. Vea la explicacin de la pgina 84 del texto bsico para despejar sus dudas. Como se pudo haber percatado ya, para el correcto funcionamiento de las estructuras de seleccin se necesita implementar condiciones, por tal motivo debemos estudiar los operadores relacionales y lgicos ya que ellos permiten crear condiciones.

2.4Operadoreslgicosyrelacionales
Es necesario que acuda nuevamente al texto bsico y lea detenidamente las pginas de la 69 a la 76. Revise a detalle los conceptos y ejercicios que ah se desarrollan.

Qu le pareci la lectura? Comprendi? Si es as avancemos y repasemos ciertos elementos de la lectura anterior que son necesarios destacar. Para comprender el funcionamiento de stas estructuras de control (en especial IF-THEN-ELSE e IF-THEN), es necesario entender el concepto de condicin. En la pgina 69 del texto bsico, se da una definicin de lo que es una condicin. Para formar condiciones tanto en el pseudocdigo como en Java se debe hacer uso de los operadores relaciones, que son aquellos operadores que nos permiten realizar comparaciones y nos devuelven un valor de verdadero o falso. La siguiente tabla los muestra con su equivalencia en Java, en el texto bsico vea la pgina 73.
Tabla 3 Operadores relaciones en psuedocdigo y Java
Operador pseudocdigo < > <= >= = <> Operador Java < > <= >= == != Significado Menor que Mayor que Menor igual que Mayor igual que Igual que Diferente de

Esta obra ha sido licenciada con Creative Commons Ecuador 3.0 de Reconocimiento - No comercial Compartir igual (http://creativecommons.org/licenses/by-nc-sa/3.0/ec/).

EscueladeCienciasdelaComputacinUTPL FundamentosdelaProgramacin Autores:Ing.JorgeLpez,Ing.GreysonAlberca

Observe como existen diferencias entre los operados de igual y de diferencia que usa Java y el pseudocdigo. Nuestra recomendacin es que en el pseudocdigo, use el doble igual (==) para comparaciones de igualdad y (!=) para diferencia.

Cuando construya algoritmos en pseudocdigo use los smbolos == y != para relaciones de igual y diferencia respectivamente. As el proceso de traduccin a Java ser ms sencillo. Es comn que tengamos que realizar condiciones ms complejas que incluya la comparacin de los valores de varias variables. Ejemplo: si la persona tiene una edad mayor que 18 y su sexo es femenino es una mujer mayor de edad o revise el algoritmo que se muestra en la pgina 88 del texto bsico, el algoritmo MAYOR 3 NUMEROS, para ver como se forman condiciones que evalan el valor de ms de una variable. Por la anterior podemos decir que para formar condiciones complejas se debe usar, a ms de las operadores relacionales, los operadores lgicos, formando lo que se denomina expresiones lgicas. Por favor lea el punto 4.3 Expresiones lgicas del texto bsico en la pgina 72. La siguiente tabla muestra los operadores lgicos en pseudocdigo y Java.
Tabla 4 Operadores lgicos en Java
Operador pseudocdigo AND OR XOR NOT Operador Java && || NO EXISTE 3 ! Significado Conjuncin y Disyuncin O O Exclusiva Negacin

Recordemos que estos operadores lgicos tienen tablas de verdad que las pueden revisar en las pginas 74 a la 76 del texto bsico. Muchas de las veces, llegamos a acostumbrarnos a ver condiciones sencillas o relativamente fciles, y eso provoca que cuando tengamos que hacer condiciones complejas no sepamos cmo actuar. Pero recuerden que una condicin puede ser tan sencilla como la que se muestra en el algoritmo de la pgina 70 del texto bsico, relativamente compleja como muestra el algoritmo de la pgina 88 del texto bsico o compleja como la que se muestra en la siguiente imagen:

Ilustracin 15 Condicin compleja 4

Para expresiones complejas, ya sean frmulas matemticas o expresiones lgicas, es necesario utilizar parntesis para agrupar los elementos y garantizar que las operaciones se ejecuten en el orden correcto. Recuerden la precedencia de operadores que se analiz en el captulo anterior.

3 4

Existe un operador XOR a nivel de bits que no es igual al operador lgico y no puede aplicarse. La condicin ha sido formulada como un ejemplo sin interesarnos el valor de verdad de la misma.

Esta obra ha sido licenciada con Creative Commons Ecuador 3.0 de Reconocimiento - No comercial Compartir igual (http://creativecommons.org/licenses/by-nc-sa/3.0/ec/).

EscueladeCienciasdelaComputacinUTPL FundamentosdelaProgramacin Autores:Ing.JorgeLpez,Ing.GreysonAlberca

Dentro del pseudocdigo y en Java existe un tipo de dato boolean o lgico (pgina 37 del texto bsico). Este tipo de dato puede tener dos valores, pseudocdigo True (en Java true) y False (en Java false). Este tipo de dato se puede usar para declarar variables o para realizar comparaciones. Inclusive en Java una variable tipo boolean puede almacenar el resultado de una expresin boleana. Veamos un ejercicio en pseudocdigo y Java.
Algoritmo VARIABLES BOOLENAS Clase VarBoolean 1. Mtodo principal a. Declaraciones Variables expre1, op1, op2 : boolean b. Calcular op1 = True, op2 = False c. Calcular expre1 = NOT((op1 AND op2) or op1) d. IF (expre1 == True) THEN 1. Imprimir el valor de expre1 es verdadero e. ELSE 1. Imprimir el valor de expre1 es falso f. ENDIF h. Fin Mtodo principal Fin Clase VarBoolean Fin

El cdigo Java se muestra en la siguiente imagen:

Ilustracin 16 Ejemplo de un programa Java con valores y expresiones booleanas

Los siguientes ejercicios muestra algunas caractersticas de las estructuras que hemos estudiado, por lo que les invitamos a que los revisen detalladamente.

2.5Ejercicios
Es necesario que recuerde lo siguiente: en el anlisis de los ejercicios desarrollados se utiliza nmeros para referirse a lneas de cdigo de los programas Java. Mientras que, para los algoritmos escritos en pseudocdigo se utiliza letras del alfabeto y a veces la combinacin de letras y nmeros.

Esta obra ha sido licenciada con Creative Commons Ecuador 3.0 de Reconocimiento - No comercial Compartir igual (http://creativecommons.org/licenses/by-nc-sa/3.0/ec/).

EscueladeCienciasdelaComputacinUTPL FundamentosdelaProgramacin Autores:Ing.JorgeLpez,Ing.GreysonAlberca

1. Elabore un algoritmo y luego un programa en Java que aplicando el teorema de Pitgoras calcule el valor de la hipotenusa al cuadrado. Recuerde que: c 2 = a 2 + b 2 En dnde c es la hipotenusa, a y b son catetos.
Algoritmo Calculo Hipotenusa Clase Hipotenusa 1. Mtodo principal a. Declaraciones Variables c, a, b : Real b. Solicitar Cateto a y Cateto b c. Leer a, b d. Calcular c = (a*a) + (b*b) e. Imprimir Hipotenusa al cuadrado =, c f. Fin Mtdo principal Fin Clase Hipotenusa Fin

El cdigo Java se muestra continacin:

Ilustracin 17 Clculo de la hipotenusa

Ilustracin 18 Ejecucin de Clase Hipotenusa

Anlisis: Recuerde que: para el anlisis del cdigo Java todas los nmeros de lneas hacen referencia a la Ilustracin 22.

Esta obra ha sido licenciada con Creative Commons Ecuador 3.0 de Reconocimiento - No comercial Compartir igual (http://creativecommons.org/licenses/by-nc-sa/3.0/ec/).

EscueladeCienciasdelaComputacinUTPL FundamentosdelaProgramacin Autores:Ing.JorgeLpez,Ing.GreysonAlberca

Las entradas para este problema son los catetos a y b, el proceso es simple: aplicar la frmula. Para elevar un cateto al cuadrado mltiplicamos por si mismo el valor del cateto(luego veremos otras formas). La salida es el valor de c elevado al cuadrado. La entrada se realiza en los puntos b. y c. del algoritmo, mientras que en Java se lo hace en las lneas de la 19 a la 22. El proceso se ejecuta en el punto d. (algoritmo) y lnea 24 (Java). Finalmente la salida se lo hizo en el punto e. con la accin Imprimir y en las lneas 26 y 27 con la sentencia printf, en Java es posible dividir una sentencia en dos lneas. 2. Elabore un algoritmo y luego un programa en Java que calcule el nmero menor de billetes de 1, 5, 10, 20 50 que se tiene que entregar a una persona que ha ingresado un valor entero. Para resolver este problema imagnese que quiere retirar dinero de una cuenta bancaria usando un cajero automtico. Obviando algunos pasos, el proceso sera ms o menos as, el usuario digita la cantidad a retirar, el cajero determina la mejor combinacin de billetes a entregar.
Algoritmo CAJERO Clase Cajero 1. Mtodo principal a. Declaraciones Variables cantidad, nroBilletes : Entero b. Solicitar la cantidad de dinero c. Leer cantidad d. IF cantidad >= 50 THEN 1. nroBilletes = cantidad \ 50 2. Imprimir nroBilletes de $50 3. cantidad = cantidad MOD 50 e. ENDIF f. IF cantidad >= 20 THEN 1. nroBilletes = cantidad \ 20 2. Imprimir nroBilletes de $20 3. cantidad = cantidad MOD 20 g. ENDIF h. IF cantidad >= 10 THEN 1. nroBilletes = cantidad \ 10 2. Imprimir nroBilletes de $10 3. cantidad = cantidad MOD 10 i. ENDIF j. IF cantidad >= 5 THEN 1. nroBilletes = cantidad \ 5 2. Imprimir nroBilletes de $5 3. cantidad = cantidad MOD 5 k. ENDIF l. IF cantidad >= 1 THEN 1. nroBilletes = cantidad 2. Imprimir nroBilletes de $1 m. ENDIF n. Fin Mtodo principal Fin Clase Cajero Fin

El cdigo Java se muestra continacin:


Esta obra ha sido licenciada con Creative Commons Ecuador 3.0 de Reconocimiento - No comercial Compartir igual (http://creativecommons.org/licenses/by-nc-sa/3.0/ec/).

EscueladeCienciasdelaComputacinUTPL FundamentosdelaProgramacin Autores:Ing.JorgeLpez,Ing.GreysonAlberca

Ilustracin 19 Clase Cajero

La ejecucin que se obtiene luego de ejecutar el programa de la Ilustracin 23 se muestra a continuacin:

Ilustracin 20 Ejecucin del programa Cajero

Anlisis: Tenga presente que: para el anlisis del cdigo Java todas los nmeros de lneas hacen referencia a la Ilustracin 23. Para este problema la entrada es un nmero entero positivo que representa la cantidad a entregar. El proceso consiste en encontrar la combinacin de billetes que cubra la cantidad ingresada, sin preocuparnos por la disponibilidad de los billetes, asumiremos que siempre estn disponibles. Para el proceso nos ayuda hacernos la pregunta Hay billetes de x
Esta obra ha sido licenciada con Creative Commons Ecuador 3.0 de Reconocimiento - No comercial Compartir igual (http://creativecommons.org/licenses/by-nc-sa/3.0/ec/).

EscueladeCienciasdelaComputacinUTPL FundamentosdelaProgramacin Autores:Ing.JorgeLpez,Ing.GreysonAlberca

denominacin en y cantidad de dinero? Por ejemplo Hay billetes de 50 en $69? Una vez determinada la cantidad de billetes debemos trabajar con el dinero restante, en el ejemplo, la cantidad de billetes sera 1, y el sobrante $19. Volvemos a preguntar Hay billetes de 20 en $19? La respuesta es no, seguimos con otra pregunta Hay billetes de 10 en $19? La respuesta es si, entonces determinados la cantidad de billetes de 10, en este caso 1 y el dinero sobrante $9. Avanzamos con otra pregunta Hay billetes de 5 en $9? Respuesta si, calculalos cuntos billetes, para el caso sera 1 billete, y el dinero restante $4. Volvemos a preguntar Hay billetes de 1 en $4? Si, en este caso el nmero de billetes ser igual a la cantidad de dinero porqu? Por que todo nmero dividido para la unidad es igual a si mismo. La salida se realiza siempre que existan billetes en la cantidad. Tanto el algoritmo como en Java, la pregunta Hay billetes de x denominacin en y cantidad de dinero?, se usaron sentencias IF (desde el punto d. hasta el punto i. del algoritmo en Java lneas desde la 21 hasta la 41). Mientras que para determinar el nmero de billetes se usa la divisin entera de la cantidad de dinero para el valor de los billetes. Finalmente para determinar el dinero restante se usa el operador mdulo (MOD algoritmo y % Java). Vea los puntos 1 de todas las sentencias IF del algoritmo y las lneas 22, 27, 32, 37 y 42 del programa Java. Como siempre la salida se hace con sentencias Imprimir (pseudocdigo) y printf (Java). 3. Elabore un algoritmo y luego un programa en Java que permita calcular el ndice de masa corporal IMC. Para ello debe aplicar la siguiente frmula IMC =

altura en metros. Una vez obetenido el valor de IMC, se debe usar la siguiente tabla 5 de clasificacin: Hombre Hasta 15 15 20 20 25 25 30 Arriba de 30 Mujer Hasta 13 13 18 18 23 23 28 Arriba de 28

Peso , el peso debe estar expresado en kilogramos y la Altura2

Delagadez pronunciada Delgadez Normalidad Gordura Obesidad El algoritmo es el siguiente:

Algoritmo Calcular el ndice de masa corporal Clase IndiceMasaCorporal 1. Mtodo principal a. Declaraciones Variables peso, altura, imc : Real sexo : Carcter b. Solicitar peso, estatura, sexo
5

Tabla elaborada segn la informacin que se encuentra en: http://bulimarexia.com.ar/

Esta obra ha sido licenciada con Creative Commons Ecuador 3.0 de Reconocimiento - No comercial Compartir igual (http://creativecommons.org/licenses/by-nc-sa/3.0/ec/).

EscueladeCienciasdelaComputacinUTPL FundamentosdelaProgramacin Autores:Ing.JorgeLpez,Ing.GreysonAlberca

c. Leer peso, altura, sexo d. Calcular imc = peso / (altura * altura) e. Imprimir Indice masa corporal imc f. IF sexo == H THEN 1. IF imc <= 15 THEN a. Imprimir Delgadez pronunciada 2. ELSE a. IF imc > 15 AND imc < 20 THEN 1. Imprimir Delgadez b. ELSE 1. IF imc > 20 AND imc < 25 THEN a. Imprimir Normalidad 2. ELSE a. IF imc > 25 AND imc < 30 THEN 1. Imprimir Gordura b. ELSE 1. IF imc >= 30 THEN a. Imprimir Obesidad 2. ENDIF c. ENDIF 3. ENDIF c. ENDIF 3. ENDIF g. ELSE 1. IF imc <= 13 THEN a. Imprimir Delgadez pronunciada 2. ELSE a. IF imc > 13 AND imc < 18 THEN 1. Imprimir Delgadez b. ELSE 1. IF imc > 18 AND imc < 23 THEN a. Imprimir Normalidad 2. ELSE a. IF imc > 23 AND imc < 28 THEN 1. Imprimir Gordura b. ELSE 1. IF imc >= 28 THEN a. Imprimir Obesidad 2. ENDIF c. ENDIF 3. ENDIF c. ENDIF 3. ENDIF h. ENDIF 2. Fin Mtodo principal Fin Clase IndiceMasCorporal Fin

Y el cdigo Java es:

Esta obra ha sido licenciada con Creative Commons Ecuador 3.0 de Reconocimiento - No comercial Compartir igual (http://creativecommons.org/licenses/by-nc-sa/3.0/ec/).

EscueladeCienciasdelaComputacinUTPL FundamentosdelaProgramacin Autores:Ing.JorgeLpez,Ing.GreysonAlberca

Esta obra ha sido licenciada con Creative Commons Ecuador 3.0 de Reconocimiento - No comercial Compartir igual (http://creativecommons.org/licenses/by-nc-sa/3.0/ec/).

EscueladeCienciasdelaComputacinUTPL FundamentosdelaProgramacin Autores:Ing.JorgeLpez,Ing.GreysonAlberca

Ilustracin 21 Programa IMC

Anlisis: Recuerde que: para el anlisis del cdigo Java todas los nmeros de lneas hacen referencia a la Ilustracin 25. Para este problema las entradas son el sexo, el peso y la altura. Parte del proceso es calcular el ndice de masa corporal aplicando la frmula que se detalla en el planteamiento del problema. Con el valor del imc y el sexo se debe buscar el rango al que pertenece ese valor, segn el sexo. La salida es la clasificacin segn el imc y el sexo. Probablemente, la tarea ms compleja es determinar el rango al que pertenece el imc, para ello se utiliz una serie de sentencias IF-THENELSE. La primera sentencia IF hace la clasificacin segn el sexo, los siguientes IF evaluan el rango al cual pertenece imc, algunos rangos tienen un lmite mnimo y otro mximo en ellos se usa el operador lgico Y (AND (Algoritmo), && (Java)) para construir la condicin. 4. Elabore un algoritmo y luego un programa en Java que calcule la edad de una persona. La edad debe expresarse en aos, meses y das. El algoritmo es el siguiente:
Algoritmo CALCULAR EDAD Clase Edad 1. Mtodo principal a. Declaraciones Variables aoAc, mesAc, diaAc : Entero

Esta obra ha sido licenciada con Creative Commons Ecuador 3.0 de Reconocimiento - No comercial Compartir igual (http://creativecommons.org/licenses/by-nc-sa/3.0/ec/).

EscueladeCienciasdelaComputacinUTPL FundamentosdelaProgramacin Autores:Ing.JorgeLpez,Ing.GreysonAlberca

aoNa, mesNa, diaNa: Entero aosE, mesesE, diasE: Entero b. Solicitar ao, mes y da actual c. Leer aoAc, mesAc, diaAc d. Solicitar ao, mes y da de nacimiento e. Leer aoNa, mesNa, diaNace f. IF aoNa <= aoAc THEN 1. IF diaAc < diaNa THEN a. Calcular diaAc = diaAc + 30 b. Calcular mesAc = mesAc -1 2. ENDIF 3. IF mesAc < mesNa THEN a. Calcular mesAc = mesAc + 12 b. mesAc = mesAc 1 4. ENDIF g. Calcular aosE = aosAc aoNa; h. Calcular mesesE = mesAc mesNa i. Calcular diasE = diasAc diaNa j. Imprimir aosE, mesesE, diasE 2. ELSE 1. Imprimir Datos incorrectos 3. END FI 4. Fin Clase IMC FIN

El programa en Java que se muestra a continuacin usa algunas sentencias adicionales ya que no lee la fecha actual, sino que la obtiene del computador. Las lneas 8,9, 18 y el grupo 25-27 se usan para obtener la fecha del computador. En Java por alguna razn los meses inician desde 0 por eso en la lnea 26 se agrega una unidad.

Esta obra ha sido licenciada con Creative Commons Ecuador 3.0 de Reconocimiento - No comercial Compartir igual (http://creativecommons.org/licenses/by-nc-sa/3.0/ec/).

EscueladeCienciasdelaComputacinUTPL FundamentosdelaProgramacin Autores:Ing.JorgeLpez,Ing.GreysonAlberca

Ilustracin 22 Programa en Java que calcula la edad de una persona

Anlisis: No olvide que: para el anlisis del cdigo Java todas los nmeros de lneas hacen referencia a la Ilustracin 26. Para este problema las entradas, en el algoritmo, son las fechas de nacimiento y actual, mientras que para el programa en Java, es nicamente la fecha de nacimiento ya que como se explico
Esta obra ha sido licenciada con Creative Commons Ecuador 3.0 de Reconocimiento - No comercial Compartir igual (http://creativecommons.org/licenses/by-nc-sa/3.0/ec/).

EscueladeCienciasdelaComputacinUTPL FundamentosdelaProgramacin Autores:Ing.JorgeLpez,Ing.GreysonAlberca

anteriormente la fecha actual se obtiene del computador. El proceso consiste en restar de la fecha actual la fecha de nacimiento; restando en el siguiente orden: da actual menos da de nacimiento, mes actual menos mes de nacimiento y ao actual menos ao de nacimiento. Las restas se deben hacer siempre que sea posible, es decir cuando el minuendo (valores de fecha actual) es mayor que el sustraendo (valores de fecha de nacimiento). En caso de no ser posible (sustraendo mayor al minuendo) se debe actuar as: - En caso de no ser posible la resta en los das se debe pedir 30 das y sumarlos al da actual, como se pidi 30 das (es decir 1 mes) se debe disminuir en una unidad al mes actual. Vea el punto 1. bajo f. del algoritmo y las lneas 37-40 del cdigo Java . - En el caso de los meses se debe pedir 12 meses al ao actual, sumarlos al mes actual y disminuir en una unidad al ao actual. Vea el punto 3. bajo f. del pseudocdigo y las lneas 41-44 del cdigo Java. Tanto en el algoritmo como en el programa Java, primero se evala la factibilidad de realizar la resta, sino es as se ajustan los valores como indica el prrafo anterior; para luego s realizar las restas puntos del g. al h. (algoritmo) y lneas 45 47 (Java). La salida es la edad de la persona. El algoritmo y programa tambin verifican que ao de nacimiento sea como mximo igual al ao actual (IF del punto f. del algoritmo Lnea 36 del cdigo Java).

5. Elaborar un algoritmo que permita la conversin de un nmero decimal a los diferentes tipos de sistemas numricos binario, octal, hexadecimal.
Algoritmo CONVERSION TIPOS Clase Secuenciaacin1. 1. Mtodo Principal a. Declaraciones Variables i: entera hex,bin,octal: Cadena b. Solicitar numero en Decimal c. Leer i d. Calcular hex= valor hexadecimal de i; e. Calcular bin= valor binario de i; f. Calcular octal= valor octal de i g. Imprimir el valor hex, bin, octal 2. Fin del Mtodo principal Fin de la Clase Cdigo Java:

Esta obra ha sido licenciada con Creative Commons Ecuador 3.0 de Reconocimiento - No comercial Compartir igual (http://creativecommons.org/licenses/by-nc-sa/3.0/ec/).

EscueladeCienciasdelaComputacinUTPL FundamentosdelaProgramacin Autores:Ing.JorgeLpez,Ing.GreysonAlberca

Ilustracin 23 Programa en Java que transforma entre sistemas de numeracin

Anlisis Tenga presente que: para el anlisis del cdigo Java todas los nmeros de lneas hacen referencia a la Ilustracin 27. Para este problema la entrada en el programa es un nmero en el sistema decimal (base 10) y la salida es la representacin de dicho nmero en los sistemas numricos de bases 2, 8 y 16. El proceso es sencillo simplemente definimos tres variables de tipo String (hex, bin y octal) que van a contener los valores luego de la conversin. Observe en las lneas, 15, 16, 17 se utiliza la clase Interger.toHexString Integer.toBinaryString Integer.toOctalString, para convertir un nmero de base decimal a los diferentes sistemas numricos. Es importante observar el parmetro entero i, que es el valor que ingreso el usuario y utilizado para la conversin. Una vez almacenado los valores hex, bin y octal se procede a presentar los resultados de estas cadenas, las mismas que corresponden a el equivalente de i en los diferentes sistemas numricos. En este captulo hemos analizado las estructuras de control conocidas como secuenciacin y seleccin. Aprendimos cmo trabaja la secuenciacin, su utilidad y la necesidad de otras estructuras de control como la seleccin. Tambin examinamos las diferentes formas de estructuras de seleccin, detallando y dando ciertas recomendaciones sobre cada una de ellas. Adems

Esta obra ha sido licenciada con Creative Commons Ecuador 3.0 de Reconocimiento - No comercial Compartir igual (http://creativecommons.org/licenses/by-nc-sa/3.0/ec/).

EscueladeCienciasdelaComputacinUTPL FundamentosdelaProgramacin Autores:Ing.JorgeLpez,Ing.GreysonAlberca

revisamos como se puede formar expresiones complejas a travs de la concatenacin de operadores relacionales y lgicos. Y finalmente desarrollamos algunos ejercicios que ayudan a aclarar los temas expuestos. Con el afn de que incremente sus conocimientos y aclare algunos de los conceptos que se expresaron en este captulo, los invitamos a revisar el siguiente material adicional.

Material adicional: En el CD que se adjunt en la gua didctica, puede revisar (programacin-en-java-i\Contenidos\LecturaObligatoria\) los archivos: 2-estructuradeunprogramaenjava.pdf 3-tiposprimitivosdedato.pdf 4-operadores.pdf A excepcin del punto 4.8 5-sentenciasselectivasocondicionales.pdf

Para determinar el nivel de comprensin de la materia que hasta el momento ha alcanzado, les recomendamos desarrollar la siguiente autoevaluacin. Recuerde que las respuestas a todas las autoevaluaciones las puede encontrar en las secciones finales de la gua didctica.

Esta obra ha sido licenciada con Creative Commons Ecuador 3.0 de Reconocimiento - No comercial Compartir igual (http://creativecommons.org/licenses/by-nc-sa/3.0/ec/).

Das könnte Ihnen auch gefallen