La mejor propuesta en Sistemas con visin de Negocios
Unidad I ALGORITMIA I Primer Ciclo Semestre - 1 - 1 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios RED DE CONTENIDOS ndice - 2 - INTRODUCCION A LA ALGORITMIA ALGORITMIA 1 ALGORTIMIA 2 INTRODUCION A LA PROGRAMCION ESTRUCUTRAS DE CONTROL ESTRUCURAS DE CONTROL Estructuras Secuenciales Estructuras Selectivas Algoritmos y seu!oco!igo Estructuras !e Reetici"n SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios Red de Contenidos!!!!!!!"!!!!!!!!!"""""#$ ndice!!!!!!!!!!!!!!!!!!!!!!!"" #% Presentaci&n!!!!!!!!!!!!!!!!!!!"""""#' Unidad I Al(oritmia I Sesiones de A)rendi*a+e Primera Semana Sesi&n 1, Introd-cci&n a la Pro(ramaci&n!""!!!!!"#. Sesi&n $ , Conce)tos de Pro(ramaci&n!!!!!!!!11 Se(-nda Semana Sesi&n 1, Sol-ci&n /e Pro0lemas Por Com)-tador!!" 1. Sesi&n $ , Pse-do C&di(o!!!!!!!!!!!!!! $. Tercera Semana Sesi&n 1 , E1)resiones Al(or2tmicas!!!!!!!!!"%3 Sesi&n $ , Pro(ramaci&n Sec-encial!!!!""""""""""""""""""31 C-arta Semana Sesi&n 1 , Estr-ct-ra Selecti4a Sim)le!!!!!!!"!35 Sesi&n $ , Estr-ct-ra Selecti4a /o0le !!!!!!!!"'3 6-inta Semana E1amen Parcial E1amen Parcial /e La0oratorio Se1ta Semana Sesi&n 1, Estr-ct-ra Selecti4a Anidadas!!!!!!!".# Sesi&n $ , Estr-ct-ra Selecti4a Anidadas I!!!!!!"1#. S7)tima Semana Sesi&n 1 , Estr-ct-ra Selecti4a M8lti)le!!!!!!!""1#5 Sesi&n $ , Estr-ct-ra Selecti4a M8lti)le !!!!!!!"119 Unidad II Al(oritmia II Primera Semana Sesi&n 1 , Introd-cci&n a Se(-nda Unidad!!!!!!! Sesi&n $ , Estr-ct-ra de Re)etici&n!!!!!!!!!! Se(-nda Semana Sesi&n 1 , Estr-ct-ras /e Re)eticion :;ile!!!!!!" - 3 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios Sesi&n $ , Estr-ct-ras /e Re)eticion /o :;ile!!!!" Tercera Semana Sesi&n 1 , Contadores < Ac-m-ladores!!!!!!!""" Sesi&n $ , Series N-m7ricas C-arta Semana Sesi&n 1, Estr-ct-ra de Re)etici&n /esde!!!!!!! Sesi&n $ , Estr-ct-ra de Re)etici&n /esde !!!!!!" 6-inta Semana E1amen Parcial E1amen Parcial /e La0oratorio Se1ta Semana Sesi&n 1 , !!!!!!!!!!!!!!!!!!!!!""1.. Sesi&n $ , =rea> Contin-e En :;ile < /o :;ile!!!!"1?$ S7)tima Semana Sesi&n 1 @ $ , M7todos!!!!!! !!!!!!!!!"""1?9 Ane1os!!!!!!!!!!!!!!!!!!!!!!!"1?? - 4 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios Presentaci&n En Manual ha sido elaborado con la finalidad de dar los alcances para la formacin del alumno de la Especialidad Computacin e nformtica del nstituto Superior Tecnolgico SSE para el l primer ciclo en el curso de Algoritmia. El presente se organiza en dos unidades: La unidad Algoritmia .estar orientado a la introduccin de programacin para poder desarrollar y resolver problemas computacionales mediante el uso de algoritmos (Pseudo cdigo) el cual se utilizara el lenguaje de programacin Orientado a Objetos Java e identificar los elementos de programacin que se emplearn para la solucin del problema. La principal diferencia entre Java y los dems lenguajes de programacin por objetos es que con estos ltimos es posible programar por objetos, mientras que con Java se tiene absolutamente que programar por objetos. Por eso es necesario explicar qu quiere decir programar por objetos. En concreto la programacin se desarrolla de la misma forma que los lenguajes "normales", pero tanto los datos como las funciones que los trabajan se organizan en estructuras llamadas clases. - 5 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios PRIMERA SEMANA SESIAN 1 INTRO/UCCION A LA PROGRAMACIAN A Binali*ar la sesi&n conocerCs acerca de, Sistema de nformacin Concepto de Dato, nformacin, Proceso Etapas del Procesamiento de Datos (Entrada, Clasificacin, Procesamiento, Almacenamiento, Control, Salida) Razones para automatizar el proceso Al Binali*ar la sesi&n lo(raras, Definir Dato, informacin y proceso. Definir instrucciones de entrada, salida y asignacin. Desarrollar las razones por las que se debe automatizar el proceso - 6 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios INTRO/UCCIAN El equipo computacional: el hardware necesario para que el sistema de informacin pueda operar. El recurso humano que interacta con el Sistema de nformacin, el cual est formado por las personas que utilizan el sistema. Un sistema de informacin realiza cuatro actividades bsicas: entrada, almacenamiento, procesamiento y salida de informacin. 1" D6-7 es -n Sistema /e InBormaci&nE Un sistema de informacin es un conjunto de elementos que interactan entre s con el fin de apoyar las actividades de una empresa o negocio. 1"1 Conce)to de /ato"- Un dato es la unidad o cantidad mnima de informacin no elaborada, sin sentido en s misma, pero que convenientemente tratada se puede utilizar en la realizacin de clculos o toma de decisiones. E+em)lo El tipo de dato byte[], es un array de bytes de tamao variable. Esta estructura de datos guarda datos binarios. 6-e es -n )ro@ecto de Sistema Es el Proceso de gestin para la creacin de un Sistema o software, la cual encierra un conjunto de actividades, una de las cuales es la estimacin, estimar es echar un vistazo al futuro y aceptamos resignados cierto grado de incertidumbre. Aunque la estimacin, es mas un arte que una Ciencia, es una actividad importante que no debe llevarse a cabo de forma descuidada. Existen tcnicas tiles para la estimacin de costos de tiempo. Y dado que la estimacin es la base de todas las dems actividades de planificacin del - 7 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios proyecto y sirve como gua para una buena ngeniera Sistemas y Software. Al estimar tomamos en cuenta no solo del procedimiento tcnico a utilizar en el proyecto, sino que se toma en cuenta los recursos, costos y planificacin. El Tamao del proyecto es otro factor importante que puede afectar la precisin de las estimaciones. A medida que el tamao aumenta, crece rpidamente la interdependencia entre varios elementos del Software. La disponibilidad de informacin Histrica es otro elemento que determina el riesgo de la estimacin. O0+eti4os de la PlaniBicaci&n del Sistema de InBormaci&n El objetivo de la Planificacin del Sistema de nformacin es proporcionar un marco de trabajo que permita al gestor hacer estimaciones razonables de recursos costos y planificacin temporal. Estas estimaciones se hacen dentro de un marco de tiempo limitado al comienzo de un proyecto de software, y deberan actualizarse regularmente medida que progresa el proyecto. Adems las estimaciones deberan definir los escenarios del mejor caso, y peor caso, de modo que los resultados del proyecto pueden limitarse ETAPA /E PROCESAMIENTO /E /ATOS La Base de la entrada de datos por ejemplo la informacin relacionada con la compra de los productos se proporciona a la computadora. La Base de )roceso de datos por ejemplo el computador procesa la informacin proporcionada para calcular el valor total por la compra de los productos. La Base de clasiBicaci&n de datos por ejemplo la informacin que se procesa es de tipo matemtico. La Base de almacenamiento de datos por ejemplo la informacin que se registra de guarda en el disco duro de la computadora para una posterior consulta. - 8 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios La Base de salida de datos por ejemplo el resultado del clculo hecho en la fase de proceso se muestra en la pantalla. Ti)os de sistemas de inBormaci&n Conceptualmente, los sistemas de informacin en el mundo real pueden clasificarse en varias formas diferentes. Por ejemplo, varios tipos de sistemas de informacin pueden clasificarse conceptualmente como sistemas de informacin gerencial o de operaciones. Sistemas de a)o@o a las o)eraciones Los sistemas de informacin siempre se han necesitado para procesar datos generados por operaciones comerciales, y han sido utilizados en stas. Estos sistemas de a)o@o a las o)eraciones generan una variedad de productos de informacin para uso interno y externo. Sin embargo, stos no hacen nfasis en la generacin de los productos especficos de informacin que pueden ser utilizados de manera ptima por los gerentes. Sistemas de )rocesamiento de transacciones Los sistema de apoyo a las operaciones incluyen la categora principal de sistemas de )rocesamiento de transacciones (TPS, trasaction processing systems), los cuales registran y procesan datos resultantes de transacciones comerciales. Sistema de control de )rocesos Los sistemas de apon a las operaciones tambin toman decisiones rutinarias que controlan proceso operacionales. Esto incluye una categora de sistemas de informacin denominada sistemas de control de )rocesosF en los cuales las computadoras toman decisiones automticas sobre ajuste de un proceso de produccin fsica. Sistemas de cola0oraci&n em)resarial Son sistemas de informacin que utilizan una variedad de tecnologas de informacin para ayudar a que las personas trabajen en conjunto. Sistemas de a)o@o (erencial Cuando los sistemas de informacin se centran en el suministro de informacin y respaldo para la toma de decisiones efectivas por parte de los gerentes, - 9 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios reciben el nombre de sistemas de a)o@o (erencial" Estos sistemas comenzaron cuando se origin el concepto de sistemas de informacin gerencial (MS, management information systems) en la dcada de los sesenta. MS se convirti en la expresin favorita de casi todos los intentos por relacionar la tecnologa de computador y la teora de sistemas al procesamiento de datos en las organizaciones. Sistemas de inBormaci&n (erencial Los sistemas de inBormaci&n (erencial (Managemente information Systems, MS) son la forma ms comn de sistemas de apoyo gerencial. Suministran a los usuarios finales gerenciales productos de informacin que respaldan gran parte de sus necesidades de toma de decisiones diarias. RAGONES PARA AUTOMATIGAR EL PROCESO Las ra*ones H-e se )-eden considerar )-eden ser las si(-ientes, Nos ayuda a comprender de manera ordenada el flujo de informacin que obtenemos. Podemos distinguir en que etapa se encuentra la informacin que procesamos ayudndonos a mejorar el tipo de resultado que deseamos. Podemos clasificar nuestra informacin por reas o etapas y comprender as mejor la informacin que se nos da. AUTOEIALUACION D6-7 ES SISTEMA /E INFORMACIONE D6UE ES /ATOE E1)rese ' e+em)los de dato DC-Cles son las eta)as de )rocesamiento de datosE - 10 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios PRIMERA SEMANA SESIAN $ CONCEPTOS /E PROGRAMACION TEMAS Conceptos de Programacin Lenguaje de Programacin: Concepto y Clasificacin (Por Generaciones, Por Clases Bajo y Alto Nivel) Cdigo Fuente Programa Objeto ntrpretes y compiladores O=JETIIOS Definir programa Definir y clasificar los lenguajes de programacin Definir Cdigo fuente y programa objeto. Distinguir entre intrpretes y compiladores - 11 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios D6-7 es Pro(ramaci&nE Se llama programacin a la creacin de un programa de computadora (Cdigo mquina compilado e interpretado directamente desde el ncleo del sistema) o desde un script (Cdigo fuente interpretado), un conjunto concreto de instrucciones que una computadora puede ejecutar. D6-7 es -n Len(-a+e /e Pro(ramaci&nE Es un conjunto smbolos caracteres y reglas que le permiten a la persona comunicarse con la computadora los lenguajes de programacin, de sintaxis y reglas semnticas que definen los programas del computador. Los Len(-a+es de Pro(ramaci&n se clasiBican, POR GENERACION Primera (eneraci&n: Los primeros ordenadores se programaban directamente en cdigo binario, que puede representarse mediante secuencias de ceros y unos sistema binario. Cada modelo de ordenador tiene su propio cdigo, por esa razn se llama lenguaje de mquina. Se(-nda (eneraci&n: Los lenguajes simblicos, asimismo propios de la mquina, simplifican la escritura de las instrucciones y las hacen ms legibles. Tercera (eneraci&n: Los lenguajes de alto nivel sustituyen las instrucciones simblicas por cdigos independientes de la mquina, parecidas al lenguaje humano o al de las Matemticas. C-arta (eneraci&n: se ha dado este nombre a ciertas herramientas que permiten construir aplicaciones sencillas combinando piezas prefabricadas. Hoy se piensa que estas herramientas no son, propiamente hablando, lenguajes. Algunos proponen reservar el nombre de cuarta generacin para la programacin orientada a objetos. - 12 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios 6-inta (eneraci&n: se llama as a veces a los lenguajes de la inteligencia artificial, aunque con el fracaso del proyecto japons de la quinta generacin el nombre ha cado en desuso. CLASES Los lenguajes de programacin se determinan segn el nivel de abstraccin, Segn la forma de ejecucin y Segn el paradigma de programacin que poseen cada uno de ellos y esos pueden ser: -Len(-a+es de 0a+o ni4el Los lenguajes de bajo nivel son lenguajes de programacin que se acercan al funcionamiento de una computadora. El lenguaje de ms bajo nivel es, por excelencia, el cdigo mquina. A ste le sigue el lenguaje ensamblador, ya que al programar en ensamblador se trabajan con los registros de memoria de la computadora de forma directa. -Len(-a+es de medio ni4el Hay lenguajes de programacin que son considerados por algunos expertos como lenguajes de medio nivel (como es el caso del lenguaje C) al tener ciertas caractersticas que los acercan a los lenguajes de bajo nivel pero teniendo, al mismo tiempo, ciertas cualidades que lo hacen un lenguaje ms cercano al humano y, por tanto, de alto nivel. -Len(-a+es de alto ni4el Los lenguajes de alto nivel son normalmente fciles de aprender porque estn formados por elementos de lenguajes naturales, como el ingls. En BASC, el lenguaje de alto nivel ms conocido, los comandos como "F CONTADOR = 10 THEN STOP" pueden utilizarse para pedir a la computadora que pare si CONTADOR es igual a 10. Por desgracia para muchas personas esta forma de trabajar es un poco frustrante, dado que a pesar de que las computadoras - 13 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios parecen comprender un lenguaje natural, lo hacen en realidad de una forma rgida y sistemtica. CO/IGO FUENTE El c&di(o B-ente puede definirse como: Un conjunto de lneas que conforman un bloque de texto, escrito segn las reglas sintcticas de algn lenguaje de programacin destinado a ser legible por humanos. Un Programa en su forma original, tal y como fue escrito por el programador, no es ejecutable directamente por el computador, debe convertirse en lenguaje de maquina mediante compiladores, ensambladores o intrpretes. PROGRAMA O=JETO Un objeto es una instancia de una clase, que encapsula estado y procesos. Pueden representar cosas reales o conceptuales. INTERPRETES En informtica, un int7r)rete es un programa capaz de analizar y ejecutar otros programas, escritos en un lenguaje de alto nivel. Los intrpretes suelen contraponerse a los compiladores, ya que mientras que los segundos se encargan de traducir un programa desde su descripcin en un lenguaje de programacin al cdigo mquina del sistema destino, los primeros slo realizan la traduccin a medida que sea necesario y normalmente, no guardan el resultado de dicha traduccin. Por ejemplo, PHP, Javascript, ASP son ejemplos de lenguajes que son normalmente interpretados en vez de compilados. COMPILA/ORES Un com)ilador es un programa que, a su vez, traduce el cdigo fuente un programa escrito en un lenguaje de programacin a otro lenguaje de programacin, generando un programa equivalente. Usualmente el segundo - 14 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios lenguaje es cdigo mquina, pero tambin puede ser simplemente texto. Este proceso de traduccin se conoce como compilacin. La razn principal para querer usar un compilador es querer traducir un programa de un lenguaje de alto nivel, a otro lenguaje de nivel inferior (tpicamente lenguaje mquina). De esta manera un programador puede disear un programa en un lenguaje mucho ms cercano a como piensa un ser humano, para luego compilarlo a un programa ms manejable por una computadora. - 15 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios SEGUN/A SEMANA SESIAN 1 SOLUCION /E PRO=LEMAS POR COMPUTA/OR TEMAS Planteamiento de Soluciones Anlisis del problema. Diseo del algoritmo. Algoritmos mplementacin de soluciones. Variables y Constantes Definicin de una Variable, Tipo de Datos: (Entero, Real, Lgico, Carcter). Ejercicios de Manejo de Variables. O=JETIIOS Aplicar estructuras de secuencia a la solucin de problemas Definir el ciclo de vida de software Definir algoritmo. Definir identificador, palabra reservada, tipo de dato primitivo, variable, literal, sentencia de asignacin. - 16 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios Al(oritmo Un algoritmo es un conjunto ordenado y finito de instrucciones que conducen a la solucin de un problema. En la vida cotidiana ejecutamos constantemente algoritmos. Por ejemplo, al instalar un equipo de sonido ejecutamos las instrucciones contenidas en el manual del equipo, este conjunto de instrucciones constituyen un algoritmo. Para que un algoritmo pueda ser ejecutado por una computadora se necesita expresar el algoritmo en instrucciones comprensibles por la computadora, para esto se requiere de un determinado lenguaje de programacin. Al algoritmo expresado en un determinado lenguaje de programacin, se denomina )ro(rama. Puesto de otra manera, podemos decir que, un programa es la implementacin o expresin de un algoritmo en un determinado lenguaje de programacin siguiendo las reglas establecidas por el lenguaje elegido. En la Figura que sigue se muestra la relacin entre problema, algoritmo y programa. Todo algoritmo debe tener las siguientes caractersticas: Debe ser )reciso, es decir, cada instruccin debe indicar de forma inequvoca que se tiene que hacer. Debe ser Binito, es decir, debe tener un nmero limitado de pasos. Debe ser deBinido, es decir, debe producir los mismos resultados para las mismas condiciones de entrada. Todo algoritmo puede ser descompuesto en tres partes: Entrada de datos. Proceso. Salida de resultados. E+em)lo,- Algoritmo para preparar ceviche de bonito para 6 personas Entradas : - 1 kilo de bonito - 3 camotes sancochados - 3 cebollas cortadas a lo largo - 1 rocoto en rodajas - 3 ramas de apio picado - 2 ramitas de culantro picado - 4 vasos de jugo de limn - 4 cucharadas de ajo molido - 17 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios - 2 cucharadas de aj amarillo molido - sal y pimienta Proceso : - Cortar la carne de pescado en pequeos trozos. - Mezclar la carne con el jugo de limn, el ajo, la pimienta, el culantro, el aj amarillo y el apio. - Dejar reposar 30 minutos. - Agregar sal al gusto y echar las cebollas cortadas. - Servir acompaando el cebiche con el camote sancochado y el rocoto en rodajas Salida : El ceviche Evidentemente este es un algoritmo no computacional, no podr ser ejecutado por una computadora, pero s por una persona. E+em)lo,- Algoritmo para expresar en centmetros y pulgadas una cantidad dada en metros. Entrada: La cantidad M de metros Proceso: Clculo de centmetros: C = M*100 Clculo de pulgadas : P = C/2.54 Salida : La cantidad C de centmetros y la cantidad P de pulgadas Adems debe cumplir estas condiciones: Finitud: el algoritmo debe acabar tras un nmero finito de pasos. Es ms, es casi fundamental que sea en un nmero razonable de pasos. Definibilidad: el algoritmo debe definirse de forma precisa para cada paso, es decir, hay que evitar toda ambigedad al definir cada paso. Puesto que el lenguaje humano es impreciso, los algoritmos se expresan mediante un lenguaje formal, ya sea matemtico o de programacin para un computador. Entrada: el algoritmo tendr cero o ms entradas, es decir, cantidades dadas antes de empezar el algoritmo. Estas cantidades pertenecen adems a conjuntos especificados de objetos. Por ejemplo, pueden ser cadenas de caracteres, enteros, naturales, fraccionarios, etc. Se trata siempre de cantidades representativas del mundo real expresadas de tal forma que sean aptas para su interpretacin por el computador. Salida: el algoritmo tiene una o ms salidas, en relacin con las entradas. Efectividad: se entiende por esto que una persona sea capaz de realizar el algoritmo de modo exacto y sin ayuda de una mquina en un lapso de tiempo - 18 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios finito. A menudo los algoritmos requieren una organizacin bastante compleja de los datos, y es por tanto necesario un estudio previo de las estructuras de datos fundamentales. Dichas estructuras pueden implementarse de diferentes maneras, y es ms, existen algoritmos para implementar dichas estructuras. El uso de estructuras de datos adecuadas pueden hacer trivial el diseo de un algoritmo, o un algoritmo muy complejo puede usar estructuras de datos muy simples. ClasiBicaci&n de Al(oritmos Algoritmo determinista: en cada paso del algoritmo se determina de forma nica el siguiente paso. Algoritmo no determinista: deben decidir en cada paso de la ejecucin entre varias alternativas y agotarlas todas antes de encontrar la solucin. Todo algoritmo tiene una serie de caractersticas, entre otras que requiere una serie de recursos, algo que es fundamental considerar a la hora de implementarlos en una mquina. Estos recursos son principalmente: El tiempo: perodo transcurrido entre el inicio y la finalizacin del algoritmo. La memoria: la cantidad (la medida vara segn la mquina) que necesita el algoritmo para su ejecucin. Obviamente, la capacidad y el diseo de la mquina pueden afectar al diseo del algoritmo. PLANTEAMIENTO /E SOLUCIONES ANALISIS /EL PRO=LEMA La programacin de algoritmos no es ms que el estudio de un problema, su anlisis e implementacin final del mismo. En la programacin de los algoritmos encontramos tres fases fundamentales, las cuales son: identificacin del problema, anlisis y desarrollo del problema e implementacin. La fase de analizar el problema, en esta etapa es conveniente dividir o segregar las tareas necesarias e identificadas que ayudaran a la solucin del problema dado. De esta forma se simplificaran y sern ms comprensibles para su desarrollo, es recomendable siempre ir de las tareas o actividades ms - 19 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios simples a las ms complejas. En esta fase se transforma la informacin de entrada recibida. /ISEKO /EL ALGORITMO Un algoritmo es un conjunto finito de instrucciones o pasos que sirven para ejecutar una tarea o resolver un problema. Por ejemplo, para mirar una pelcula en el cine, usted necesita comprar los ticket y luego mirar la pelcula en el cine. Usted no puede entrar directamente a la sala del cine sin comprar los tickets. Usted notar que el algoritmo sigue ciertos pasos para lograr la tarea. Los pasos se pueden categorizar en las tres fases siguientes: 1. En la fase de la entrada, la informacin relacionada con la compra de los productos se proporciona a la computadora. 2. En la fase de proceso, el computador procesa la informacin proporcionada para calcular el valor total por la compra de los productos. 3. En la fase de salida, el resultado del clculo hecho en la fase de proceso se muestra en la pantalla. Estas tres fases juntas forman el ciclo Entrada Proceso Salida IMPLEMENTACION /E SOLUCIONES En la vida diaria y profesional tambin se ejecuta una secuencia de pasos para lograr una tarea dada, objetivo o solucin. Veremos por ejemplo este algoritmo representa la lgica para la generacin de una factura. Paso 1: nicio Paso 2: Aceptar el nombre del producto Paso 3: Aceptar la cantidad comprada Paso 4: Leer el precio del producto y su descuento desde la base de datos Paso 5: Calcular el precio total como un producto de la cantidad que compr y precio del producto. Paso 6: Calcular el precio de descuento deduciendo el valor del descuento del precio total. Paso 7: Mostrar los clculos obtenidos - 20 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios Paso 8: Fin E+ercicios E+ercicio 1:- Disee un Algoritmo que halle el rea y el permetro de un rectngulo. Considere que: rea = base x altura y permetro = 2 x (base+altura) Al(oritmo INICIO // Declaracin de variables REAL base, altura, area, perimetro // Entrada de datos LEER base, altura // Proceso de clculo area = base*altura perimetro = 2*(base+altura) // Salida de resultados IMPRIMIR area, perimetro FIN E+em)lo $:- Disee un algoritmo para convertir una longitud dada en metros a sus equivalentes en centmetros, pies, pulgadas y yardas. Considere que: 1 metro = 100 centmetros, 1 pulgada = 2.54 centmetros, 1 pie = 12 pulgadas, 1 yarda = 3 pies. Al(oritmo INICIO // Declaracin de variables REAL cmetr,ccent, cpies, cpulg, cyard // Entrada de datos LEER cmetr // Proceso de clculo ccent = cmetr*100 cpulg = ccent/2.54 cpies = cpulg/12 cyard = cpies/3 // Salida de resultados - 21 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios IMPRIMIR cpulg, cpies, cyard FIN E+ercicio %,- Una institucin benfica europea ha recibido tres donaciones en soles, dlares y marcos. La donacin ser repartida en tres rubros: 60% para la implementacin de un centro de salud, 40% para un comedor de nios y el resto para gastos administrativos. Disee un algoritmo que determine el monto en euros que le corresponde a cada rubro. Considere que: 1 dlar = 3.52 soles, 1 dlar = 2.08 marcos, 1 dlar = 1.07 euros. Al(oritmo INICIO // Declaracin de variables REAL c soles, cdolares, c marcos, ceuros, rubro1, rubro2, rubro3 // Entrada de datos LEER csoles, cdolares, cmarcos // Proceso de clculo ceuros = (csoles/3.52 + cdolares + cmarcos/2.08)*1.07 rubro1 = ceuros*0.60 rubro2 = ceuros*0.40 rubro3 = ceuros*0.20 // Salida de resultados IMPRIMIR rubro1, rubro2, rubro3 FIN Entidades Primiti4as )ara el desarrollo de Al(oritmos, IARIA=LES < CONSTANTES IARIA=LE"- En programacin es una estructura que contiene datos y recibe un nombre nico dado por el programador, mantiene los datos asignados a ella hasta que un nuevo valor se le asigne o hasta que el programa termine. TIPO /E /ATOS El nmero de bytes que debe reservarse para las diferentes variables depende del tipo de valor que stas almacenan. Por lo tanto, hay una necesidad de - 22 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios clasificar los tipos de datos que puedan ser almacn en la memoria. Este tipo de valor es denominado tipo de dato. Ejemplo: Ti)o TamaLoMFormato /escri)ci&n (Nmeros enteros) byte 8-bit complemento a 2 Entero de un Byte short 16-bit complemento a 2 Entero corto int 32-bit complemento a 2 Entero long 64-bit complemento a 2 Entero largo (Nmeros reales) float 32-bit EEE 754 Coma flotante de precisin simple double 64-bit EEE 754 Coma flotante de precisin doble (otros tipos) char 16-bit Caracter Un slo carcter boolean true o false Un valor booleano (verdadero o falso) EJERCICIOS /E MANEJO /E IARIA=LES Im)l2cito: no se necesita escribir cdigo para que se lleve a cabo. Ocurre cuando se realiza una conversin ancha (widening casting), es decir, cuando se coloca un valor pequeo en un contenedor grande. E+em)lo 1, E+em)lo $, similar al anterior" En cam0ioF - 23 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios E1)l2cito, s es necesario escribir cdigo. Ocurre cuando se realiza una conversin estrecha (narrowing casting), es decir, cuando se coloca un valor grande en un contenedor pequeo. Son susceptibles de prdida de datos. E+em)lo 1, E+em)lo $, E+em)lo de Castin( de 4aria0les, - 24 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios - 25 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios SEGUN/A SEMANA SESIAN $ PSEU/O CO/IGO TEMAS Concepto de Pseudocdigo Estructura de Pseudocdigo Cabecera Declaracin de Variables. Estilo de escritura, esquema jerrquico. O=JETIIOS Definir Pseudocodigo, variable Declarar variables primitivas y escribir expresiones aritmticas. Aplicar un esquema jerrquico - 26 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios CONCEPTO /E PSEU/OCO/IGO El pseudocdigo representa un algoritmo en el lenguaje ingls. Se usa como alternativa a un diagrama de flujo. Las sentencias usadas en el pseudocdigo son simples y estn escritas de manera secuencial. ESTRUCTURA /E PESEU/OCO/IGO CA=ECERA"-En la seccin de ca0ecera se escribe el nombre del pseudocodigo al(oritmo Sumar 4aria0les entero aF bF c inicio escri0irN Ontroduzca el primer nmero (entero): O P leerN a P escri0irN Ontroduzca el segundo nmero (entero): O P leerN b P c Q a R b escri0irN OLa s-ma es, OF c P Bin /ECLARACION /E IARIA=LES P-eden declararse 4arias 4aria0les a la 4e* Sti)oTdatoU SidentiBicadorU V Se1)rUW Siem)re de0en iniciali*arse int 1F @F *W Se )-eden iniciali*ar al momento de s- declaraci&n 1 V #W int 1V#F @F *V$#W - 27 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios ESTILO /E ESCRITURA Java es sensible a la diferencia entre letras maysculas y minsculas (case-sensitive) Los archivos fuentes deben tener la extensin .java Un archivo fuente puede definir ms de una estructura (no recomendable) ES6UEMA JEAR6UICO El esquema jerrquico del pseudocodigo seria el siguiente: Inicio /eclaraci&n de 4aria0les Entrada de datos Proceso de cClc-lo Salida de res-ltados Fin E+em)los E+ercicio,- En una competencia atltica de velocidad el tiempo se mide en minutos, segundos y centsimas de segundo y, el espacio recorrido se mide en metros. Disee un algoritmo para determinar la velocidad promedio de un atleta en km/hr. Considere que: 1 hora = 60 minutos, 1 minuto = 60 segundos, 1 segundo = 100 centsimas de segundo, 1 kilmetro = 1000 metros. Al(oritmo INICIO // Declaracin de variables ENTERO tmin, tseg, tcen REAL thor, velkmhr, espmt, espkm // Entrada de datos LEER tmin, tseg, tcen, espmt // Clculo del tiempo total empleado en horas thor = tmin/60 + tseg/3600 + tcen/360000 // Clculo del espacio recorrido en kilmetros espkm = espmt/1000 - 28 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios // Clculo de la velocidad en km/hr velkmhr = espkm/thor // Salida de resultados IMPRIMIR velkmhr FIN E+ercicio ,- Disee un algoritmo que determine la cifra de las unidades de un nmero natural. Sol-ci&n 1 AnClisis Puede comprobarse que la cifra de las unidades de un nmero es igual al resto de la divisin del nmero entre 10. Observe para ello las siguientes divisiones: 3245 10 5 324 768 10 8 76 9 10 9 0 Podemos concluir entonces que: Unidades = numero X 10 Siendo X el operador residuo. Este operador permite obtener el residuo de una divisin, as como / permite obtener el cociente. Al(oritmo INICIO // Declaracin de variables ENTERO numero, unidades // Entrada de datos LEER numero // Proceso de clculo unidades = numero % 10 // Salida de resultados - 29 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios IMPRIMIR unidades FIN Sol-ci&n $ AnClisis El residuo de una divisin entera puede obtenerse tambin sin recurrir al operador X, de la siguiente forma: unidades = numero - (numero / 10) * 10 Observe para esto que en la divisin Nn-meroM1#P los operandos son enteros por lo que el cociente ser un entero. As por ejemplo, si n-mero es igual a %$3', la divisin Nn-meroM1#P produce %$3, aunque matemticamente sea %$3"'; es decir, se descarta la parte decimal. Al(oritmo INICIO // Declaracin de variables ENTERO numero, unidades // Entrada de datos LEER numero // Proceso de clculo unidades = numero - (numero/10)*10 // Salida de resultados IMPRIMIR unidades FIN E+ercicio .,- Disee un algoritmo que determine la suma de las cifras de un nmero entero positivo de 4 cifras. Sol-ci&n 1 AnClisis Las cifras pueden ser obtenidas mediante divisiones sucesivas entre 10. Para el efecto, considere el caso de un nmero N igual a 3245: 3245 10 5 324 unidades = N%10 cociente = N/10 - 30 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios 324 10 4 32 decenas = cociente%10 cociente = cociente/10 32 10 2 3 centenas = cociente%10 millares = cociente/10 Al(oritmo INICIO // Declaracin de variables ENTERO N, suma, millares, centenas, decenas, unidades, resto // Entrada de datos LEER N // Proceso de clculo unidades = N%10 cociente = N/10 decenas = cociente%10 cociente = cociente/10 centenas = cociente%10 millares = cociente/10 suma = unidades + decenas + centenas + millares // Salida de resultados IMPRIMIR suma FIN Sol-ci&n $ AnClisis $ Considerando que el nmero tiene 4 cifras, las cifras tambin pueden ser obtenidas mediante divisiones sucesivas entre 1000, 100 y 10. Para el efecto, considere el caso de un nmero N igual a 3245: 3245 1000 245 3 millares = N/1000 resto = N%1000 - 31 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios 245 100 45 2 centenas = resto/100 resto = resto%100 45 10 3 4 decenas = resto/10 unidades = resto%10 Al(oritmo INICIO // Declaracin de variables ENTERO N, suma, millares, centenas, decenas, unidades, resto // Entrada de datos LEER N // Proceso de clculo millares = N/1000 resto = N%1000 centenas = resto/100 resto = resto%100 decenas = resto/10 unidades = resto%10 suma = unidades + decenas + centenas + millares // Salida de resultados IMPRIMIR suma FIN E+ercicio ,- Disee un algoritmo que lea la hora actual del da HH:MM:SS y determine cuantas horas, minutos y segundos restan para culminar el da. Al(oritmo INICIO // Declaracin de variables ENTERO hor1, min1, seg1, hor2, min2, seg2, segres, resto // Entrada de datos LEER hor1, min1, seg1 // Clculo de la cantidad de segundos que restan para culminar el da segres = 86400 - (hor1*3600 + min1*60 + seg1) - 32 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios
// Descomposicin de segres en horas, minutos y segundos hor2 = segres/3600 resto = segres%3600 min2 = resto/60 seg2 = resto%60 // Salida de resultados IMPRIMIR hor2, min2, seg2 FIN - 33 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios TERCERA SEMANA SESIAN 1 EYPRESIONES ALGORITMICAS TEMAS Manejo de Operadores: Expresiones Aritmticas, lgicas y relacionales. Reglas de Jerarqua Ejercicios de aplicacin O=JETIIOS Definir expresiones y operadores. Descripcin de los elementos bsicos en la construccin de un programa, contadores, acumuladores. - 34 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios MANEJO /E OPERA/ORES EYPRESIONES Los operadores determinan el tipo de operacin que se quiere realizar con los elementos de una expresin. En una expresin, el elemento sobre el cual acta un operador se llama operando. Por ejemplo, en la expresin, a + b, a y b son conocidos como operandos. Los operadores pueden ser clasificados en las siguientes categoras: Operadores aritmticos Operadores Relacionales Operadores lgicos OPERA/ORES ARITMETICOS Los operadores aritmticos, como su nombre lo indica, son utilizados para realizar clculos aritmticos. Algunos de los operadores aritmticos ms comunes son los siguientes: O)erador /escri)ci&n E+em)lo S-ma NRP S-ma los o)erandos c V a R 0 Resta NP Resta el o)erando derec;o del o)erando i*H-ierdo c V a - 0 M-lti)licaci&n NZP M-lti)lica los o)erandos c V a Z 0 /i4isi&n NMP /i4ide el o)erando i*H-ierdo )or del o)erando derec;o c V a M 0 Mod-lo NXP Calc-la el resid-o de -na di4isi&n entera c V a X 0 El siguiente pseudocdigo representa una operacin usando el operador modulo: 0e(in n-meric nN-m1F nN-m$F nN-m% nN-m1 V 1' nN-m$ V $ nN-m% V nN-m1 X nN-m$ dis)la@ nN-m% end - 35 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios En este pseudocdigo, a las variable nNum1 y nNum2 se le asigna 15 y 2 respectivamente. La salida del pseudocdigo ser 1, el cual es el residuo de la divisin entera entre nNum1 y nNum2. OPERA/ORES RELACIONALES Se puede comparar dos operandos con el operadores relacional. Cuando dos operandos son comparados usando estos operadores, el resultado es un valor lgico, TRUE o FALSE. - 36 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios OPERA/ORES LOGICOS Los operadores lgicos son usados para combinar los resultados de expresiones que contienen operadores relacinales. A continuacin tenemos una tabla que describe los operadores lgicos: En la siguiente tabla se describe como trabaja el operador AND y el operador OR: REGLAS /E JERAR6UIA EJERCICIOS /E APLICACIAN E+ercicio ,- Disee un algoritmo para sumar dos tiempos dados en horas, minutos y segundos. Al(oritmo INICIO // Declaracin de variables ENTERO hor1, min1, seg1, hor2, min2, seg2, hor3, min3, seg3F totseg, resto
// Entrada de datos LEER hor1, min1, seg1, hor2, min2, seg2 - 37 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios // Determina la cantidad total de segundos entre los dos tiempos totseg = (hor1+hor2)*3600 + (min1+min2)*60 + (seg1+seg2)
// Descompone totseg en horas, minutos y segundos hor3 = totseg/3600 resto = totseg%3600 min3 = resto/60 seg3 = resto%60 // Salida de resultados IMPRIMIR hor3, min3, seg3 FIN E+ercicio ,- El sueldo neto de un vendedor se calcula como la suma de un sueldo bsico de S/.250 ms el 12% del monto total vendido. Disee un algoritmo que determine el sueldo neto de un vendedor sabiendo que hizo tres ventas en el mes. Al(oritmo INICIO // Declaracin de variables REAL venta1, venta2, venta3, ventatot, comision, sueldoneto // Entrada de datos LEER venta1, venta2, venta3 // Proceso de clculo ventatot = venta1 + venta2 + venta3 comision = 0.12*ventatot sueldoneto = 250 + comision // Salida de resultados IMPRIMIR sueldoneto FIN E+ercicio,- Disee un algoritmo que determine el porcentaje de varones y de mujeres que hay en un saln de clases. Al(oritmo INICIO // Declaracin de variables REAL porcvar, porcmuj ENTERO varones, mujeres, total // Entrada de datos LEER varones, mujeres - 38 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios // Proceso de clculo total = varones + mujeres porcvar = varones*100.0/total porcmuj = mujeres*100.0/total // Salida de resultados IMPRIMIR porcvar, porcmuj FIN E+ercicio,- En pases de habla inglesa es comn dar la estatura de una persona como la suma de una cantidad entera de pies ms una cantidad entera de pulgadas. As, la estatura de una persona podra ser 3' 2" ( 3 pies 2 pulgadas ). Disee un algoritmo que determine la estatura de una persona en metros, conociendo su estatura en el formato ingls. Considere que: 1 pie = 12 plg, 1 plg = 2.54 cm, 1 m = 100 cm. Al(oritmo INICIO // Declaracin de variables REAL estmt ENTERO cpies, cplgs // Entrada de datos LEER cpies, cplgs // Proceso de clculo estmt = (cpies*12 + cplgs)*2.54/100 // Salida de resultados IMPRIMIR estmt FIN E+ercicio 1$,- Disee un algoritmo que exprese la capacidad de un disco duro en megabytes, kilobytes y bytes, conociendo la capacidad del disco en gigabytes. Considere que: 1 kilobyte = 1024 bytes, 1 megabyte = 1024 kilobyte, 1 gigabyte = 1024 megabytes. Al(oritmo INICIO // Declaracin de variables REAL cgigabyte, cmegabyte, ckilobyte, cbyte // Entrada de datos LEER cgigabyte - 39 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios // Proceso de clculo cmegabyte = cgigabyte*1024 ckilobyte = cmegabyte*1024 cbyte = ckilobyte*1024 // Salida de resultados IMPRIMIR cmegabyte, ckilobyte, cbyte FIN E+ercicio ,- Disee un algoritmo que intercambie las cifras de las unidades de dos nmeros naturales Al(oritmo INICIO // Declaracin de variables ENTERO numero1, numero2, unidades1, unidades2 // Entrada de datos LEER numero1, numero2 // Determina las cifras de las unidades unidades1 = n1%10 unidades2 = n2%10 // ntercambia las cifras de las unidades numero1 = numero1 - unidades1 + unidades2 numero2 = numero2 - unidades2 + unidades1 // Salida de resultados IMPRIMIR n1, n2 FIN - 40 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios TERCERA SEMANA SESIAN $ PROGRAMACION SECUENCIAL TEMAS Estructuras secunciales Sentencias de entrada y salida de datos Sentencia de Asignacin Funciones Matemticas: cociente, residuo, redondeo. Funciones Trascendentes: potencia, raz, etc O=JETIIOS Desarrollar estructuras secuenciales en la solucin de problemas. Desarrollo de algoritmos que involucren estructuras de secuencia. - 41 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios ESTRUCTURA SECUENCIAL La estructura secuencial es aquella en la que una accin (instruccin) sigue a otra en secuencia. Las tareas se suceden de tal modo que la salida de una es la entrada de la siguiente y as sucesivamente hasta el fin del proceso. SENTENCIA /E ENTRA/A < SALI/A /E /ATOS Entrada de datos La lectura o entrada de datos consiste en recibir desde un dispositivo de entrada (p.ej. el teclado) un valor o dato. Este dato va a ser almacenado en la variable que aparece a continuacin de la instruccin. Esta operacin se representa as: Salida de datos Consiste en mandar por un dispositivo de salida (p.ej. monitor o impresora) un resultado o mensaje. Esta instruccin presenta en pantalla el mensaje escrito entre comillas o el contenido de la variable. Este proceso se representa as como sigue: - 42 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios Las sentencias son los elementos bsicos en los que se divide el cdigo en un lenguaje de programacin. Al fin y al cabo, un programa no es ms que un conjunto de sentencias que se ejecutan para realizar una cierta tarea. Adems, como ya habrs visto, en ascal el signo que las separa es el )-nto @ coma. Asignacin Una vez que una variable ha sido declarada, se le puede asignar un valor con el operador de asignacin (V). Recuerde que en pseudocdigo este operador es = . Ejemplo: int i; i = 5; Es posible declarar e inicializar una variable en el mismo enunciado. Ejemplo: int ao = 2000; boolean aprobado = true; int edad = 20, peso = 80; Se pueden encadenar las instrucciones de asignacin: Ejemplo: Operadores de asignacin aritmtica Continuando con la idea de contraer ciertas operaciones aritmticas, se usan abreviaciones para la asignacin de una variable,cuando est involucrada como operador. Expresin Equivalente a += b; a = a + b; a -= b; a = a - b; a *= b; a = a * b; a /= b; a = a / b; a %= b; a = a * b; Ejemplo : int a = 2, b = 3; /* Se declaran dos variables enteras a = 2, b = 3 */ - 43 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios a += b; /* a = a + b = 2 + 3 = 5 */ *nota : Para mayor orden en el seguimiento de los valores, se escribe la expresin equivalente y a continuacin se evalan los valores. b *= 5; /* b = b * 5 = 3 * 5 = 15 */ a = ++b; /* b = b + 1 = 15 + 1 = 16 ; a = b = 16 */ Como existe una variable que se est pre-incrementando, lo primero que se hace es modificar el valor de esa variable. Despus de haber hecho esto, se evalan los valores. b += --a + 5; /* a = a - 1 = 16 - 1 = 15 ; b = b + a + 5 = 16 + 15 + 5 = 36 */ Despus de incrementar la variable a, se escribe y evala la expresin equivalente. a += b--; /* a = a + b = 15 + 36 = 51 ; b = b - 1 = 36 - 1 = 35 */ Como ahora b, se est post-incrementando, lo primero que se hace es evaluar la expresin equivalente, y despus finalmente incrementar la variable b. Valores finales : a = 51 , b = 35. Ejercicios Determinar los valores finales para los siguientes segmentos de cdigo a) int a = 2, b = 3, c = 5; a++; b += a; c *= b; b -= 3; a %= 2; c /= 5; Los valores finales : a = 1 , b = 3, c = 6 b) int a = 1; int b = 2; b++; b = ++a; a *= 2; b += a; a = ++b + 2; Los valores finales son : a = 9 , b = 7 Operadores Relacionales - 44 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios Los siguientes operadores son fundamentales para implementar las condiciones de las sentencias de control. El resultado de una comparacin es un valor true o false. Operador Descripcin Ejemplo < menor a < b <= menor o igual a++ <= 122 > mayor x > 5 * b++ >= mayor o igual p >= 0.01 == igual a%2 == 0 != distinto t != true Ejemplo : 5 > 1 /* true */ 1 >= 5 /* false */ 2 == 2 /* true */ 2 != 2 /* false */ Ejercicio : determinar si las siguientes relaciones son true o false. a) 7 <= 5 b) 2 > 6 c) 3 != 5 d) a == a + 1 e) b++ != b++ Una instruccin es una expresin que produce un valor.
Ejemplos:
class Geometria { public static void main (String [] args) { int lados = 4; //declaracin e inicializacin System.out.println ("Un cuadrado tiene " + lados + " lados"); lados = 10; //sentencia de asignacin System.out.println ("Un decgono tiene " + lados + "lados"); } }
class Suma - 45 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios { public static void main (String [] args) { System.out.println ("24 y 45 concatenados: "+ 24 + 45); System.out.println ("24 y 45 sumados: " + (24+25)); } }
class AmibasMatematicas { public static void main (String arguments []) { int x = 6; short y = 4; float a = .50f; System.out.println ("\nSe inicia con " + x + " pequeas amibas."); System.out.print ("\t2 contraen nupcias y sus esposos vienen a vivir."); x = x + 2; System.out.println (" Ahora son " + x); System.out.print ("\tOcurre una mitosis, que duplica el nmero de amibas. "); x = x * 2; System.out.println ("Ahora son " + x);
System.out.print ("\tExiste una guerra. Y " + y + " amibasson dadas de baja. "); x = x - y; System.out.println ("Ahora son " + x); System.out.print ("\tParamecia ataca! y una tercera parte de la colonia muere. "); x = x - (x/3); System.out.println ("Ahora son " + x); System.out.println ("\n\nAl final quedan: " + x + " pequeas amibas"); System.out.println ("El costo por da de amiba es de: $" + a); System.out.println ("El costo total diario es de: $" + (a*x)); } } - 46 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios F-nciones MatemCticas en +a4a lon( Mat;"ro-ndNdo-0le n-m0erP redondea un do-0le a un lon(. Hay que usar un cast para redondearlo a un int, o no va a funcionar. Ejemplo: int x = (int) Math.round(5.27); do-0le Mat;"cosNdo-0le an(-loP devuelve el coseno de un ngulo. El ngulo se especifica en radianes. do-0le Mat;"sinNdo-0le an(-loP devuelve el seno de un ngulo. El ngulo se especifica en radianes. do-0le Mat;"PI devuelve la constante (pi). do-0le Mat;"E devuelve la constante e - 47 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios CUARTA SEMANA SESIAN 1 ESTRUCTURA SELECTIIA SIMPLE TEMAS Estructura selectiva simple: if Ejercicios de Aplicacin Ejercicios de conversiones de medidas Encontrar y evaluar el mayor o menor nmero ingresado Ejercicios con la estructura Si.Entonces (sin hacer uso de conectores lgicos) O=JETIIOS Aplicar estructuras de seleccin simple a la solucin de problemas. Desarrollo de algoritmos que involucren estructuras de seleccin simple. - 48 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios Estructura de seleccin simple accin m si <condicin> entonces <accin 1> <accin 2> . . <accin n> fin_si Con frecuencia es necesario que existan ms de dos elecciones posibles. Este problema se podra resolver por estructuras selectivas simples o dobles, anidadas o en cascada, pero si el nmero de alternativas es grande puede plantear serios problemas de escritura y de legibilidad. Usando la estructura de decisin mltiple se evaluar una expresin que podr tomar n valores distintos, 1, 2 , 3, ....,n y segn que elija uno de estos valores en la condicin, se realizar una de las n acciones o lo que es igual, el flujo del algoritmo seguir slo un determinado camino entre los n posibles. Esta estructura se representa por un selector el cual si toma el valor 1 ejecutar la accin 1, si toma el valor 2 ejecutar la accin 2, si toma el valor N realizar la accin N. Ejemplo 1: - 49 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios Disear un algoritmo tal que aos !omo atos os "aria#les e tipo entero$ o#tenga el resultao e la siguiente %un!i&n: - 50 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios Ejemplo 2. Daos !omo atos la !ategor'a ( el suelo e un tra#ajaor$ !al!ule el aumento !orresponiente tenieno en !uenta la siguiente ta#la) *mprimir la !ategor'a el tra#ajaor ( el nue"o suelo) De%ini!i&n e "aria#les: +ate , !ategor'a -ue , suelo .sue , nue"o suelo /0123*452 *ni!io 0eer 6!ate$ sue7 En !aso que !ate sea 1: 8a!er nsue 9-- sue : 1)15 2: 8a!er nsue 9-- sue : 1)10 3: 8a!er nsue 9-- sue : 1)08 4: 8a!er nsue 9-- sue : 1)07 ;in<!aso<que Es!ri#ir 6!ate$ nsue7 ;in ESTRUCTURA SELECTIIA SIMPLE IF" Las estructuras de control en Java son bsicamente las misma que en C, con excepcin del (oto, que no existe (al fin un lenguaje serio! ) iB![else\ La ms comn de todas, permite ejecutar una instruccin (o secuencia de instrucciones) si se da una condicin dada (o, mediante la clusula else, ejecutar otra secuencia en caso contrario). Por e+em)lo, )-0lic Binal Strin( toStrin(NP ] iB N@S#P ret-rn 1RO-iORN-@PW - 51 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios else ret-rn R1RORiOR@W ^ Las bifurcaciones permiten ejecutar una de entre varias acciones en funcin del valor de una expresin lgica o relacional. Se tratan de estructuras muy importantes ya que son las encargadas de controlar el flujo de ejecucin de un programa. Esta estructura permite ejecutar un conjunto de sentencias en funcin del valor que tenga la expresin de comparacin (se ejecuta si la expresin de comparacin tiene valor true). Las llaves {} sirven para agrupar en un bloque las sentencias que se han de ejecutar, y no son necesarias si slo hay una sentencia dentro del if EJERCICIOS /E APLICACIAN EJERCICIO /E CONIERSIONES /E ME/I/AS Considerar el si(-iente ti)o de cam0io -n d&larV%"$% soles F -n d&larV 1"#? e-ros )ri4ate 4oid 0tncalc-larTactionPerBormedNActionE4ent eP ] MMdeclaraci&n de 4aria0les do-0le solesF dolaresW MMin(resa de datos soles V /o-0le")arse/o-0leNt1tSoles"(etTe1tNPPW
MMProceso de calc-lo dolaresV Nsoles Z %"$%PW MM salida de Res-ltados t1tS"setTe1t N OEn dolares OR dolaresPW ^ ^ ENCONTRAR EL MA<OR NUMERO INGRESA/O /E 1# MOSTRAN/O MENSAJE RESPECTIIO im)ort +a4a"-til"ScannerW )-0lic class E+em)lo#1 ] )-0lic static 4oid mainNStrin([\ ar(sP ] Scanner teclado V ne_ ScannerN S@stem"in PW int n-mW n-m V teclado"ne1tIntNPW iB N n-m U 1# P ] S@stem"o-t")rintlnNn-mPW S@stem"o-t")rintlnNOEl n8mero es ma@or H-e 1#OPW ^ ^ - 52 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios ^ EJERCICIO CON LA ESTRUCTURA SI !""ENTONCES El siguiente programa, muestra la lgica para encontrar la suma de dos nmeros y determinar si es par impar. im)ort +a4a"-til"ScannerW )-0lic class E+em)lo#$ ] )-0lic static 4oid mainNStrin([\ ar(sP ] MM Iaria0les del Pro(rama Scanner teclado V ne_ ScannerN S@stem"in PW int n-m1F n-m$F s-maW MM Lect-ra de /atos S@stem"o-t")rintNOIn(rese n8mero 1, OPW n-m1 V teclado"ne1tIntNPW S@stem"o-t")rintNOIn(rese n8mero $, OPW n-m$ V teclado"ne1tIntNPW MM Proceso s-ma V n-m1 R n-m$W MM Re)orte S@stem"o-t")rintlnNOS-ma, O R s-maPW iB Ns-ma X $ VV #P ] S@stem"o-t")rintlnNOLa s-ma es ParOPW ^ else ] S@stem"o-t")rintlnNOLa s-ma es Im)arOPW ^ ^ ^ - 53 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios CUARTA SEMANA SESIAN $ ESTRUCTURA SELECTIIA /O=LE TEMAS Estructura Selectiva Doble: Si ... Sino nstrucciones de Bifurcacin. Ejercicios de Aplicacin. Ejercicios con la estructura Si.Entonces (sin hacer uso de conectores lgicos) O=JETIIOS Aplicar estructuras de seleccin doble a la solucin de problemas. Desarrollo de algoritmos que involucren estructuras de seleccin doble. - 54 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios ESTRUCTURA SELECTIIA /O=LE SI!""SINO La estructura de seleccin doble S - SNO evala una condicin lgica y: Si la condicin es verdadera, ejecuta la accin A. Si la condicin es falsa, ejecuta la accin B. Tanto la accin A como la accin B pueden ser acciones simples (una sola accin) o acciones compuestas (un conjunto de acciones). Nota"- En el caso de acciones compuestas, estas sern encerradas entre llaves. En la estructura if...else, si la condicin especificada es verdadera (true), las sentencias contenidas dentro del bloque if son ejecutadas. Si la condicin es falsa (false), las sentencias contenidas dentro del bloque else son ejecutadas. INSTRUCCIONES /E =IFURCACION iB Ne1)resi&nT0ooleanaP ] instr-ccionesTsiTtr-eW ^ else ] instr-ccionesTsiTBalseW ^ EJERCICIOS /E APLICACIAN E+em)lo" Construir un algoritmo que escriba los nombres de los das de la semana, en funcin del valor de una variable DA introducida por teclado que representa su posicin dentro de la semana. Al(oritmo Nom0reTdias 4ar - 55 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios entero, dia inicio leer NdiaP caso dia ;acer 1, escri0ir N`l-nes`P $, escri0ir N`martes`P " " 9, escri0ir N`domin(o`P sino escri0ir N`Error`P BinTcaso Bin /ia(rama de Fl-+o Se-do c&di(o Nacciones sim)lesP SI(condicin) accinA SINO accin B Se-do c&di(oNacciones com)-estasP SI(condicin)] accin A1 accin A2 . . . accin An ^ SINO] accin B1 accin B2 . . . accin Bn ^ - 56 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios Fi(-ra "$ Estructura de Seleccin Doble Por ejemplo, si se desea saber si una persona es mayor o menor de edad, podemos escribir: SI( edad >= 18 ) IMPRIMIR "Mayor de edad" SINO IMPRIMIR "Menor de edad" Esto imprime "Mayor de edad" si la persona tiene 18 aos ms e imprime "Menor de edad" si la persona tiene menos de 18 aos. En cualquiera de los casos, despus de efectuar la impresin, se ejecutar la primera instruccin que sigue a la estructura SI"""SINO. O)eradores L&(icos @ Relacionales Para expresar condiciones como en el caso de las condiciones de las estructuras selectivas, se requieren de operadores relacionales y operadores lgicos, que se muestran en las tablas 1 y 2, respectivamente! Dichas condiciones solo puede tomar uno de los siguientes valores: verdadero o falso. Ta0la 1 Operadores relacionales O)erador Si(niBicado > mayor >= mayor o igual que < menor <= menor o igual que == igual a =! diferente de Ta0la $ Operadores lgicos O)erador Si(niBicado no negacin y conjuncin o disyuncin E+em)lo "1, En una playa de estacionamiento cobran S/. 2.5 por hora o fraccin. Disee un algoritmo que determine cuanto debe pagar un cliente por el estacionamiento de su vehculo, conociendo el tiempo de estacionamiento en horas y minutos. Al(oritmo INICIO ENTERO horas, minutos REAL pago LEER horas, minutos - 57 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios SI( minutos > 0 ) horas = horas + 1 pago = horas * 2.5 IMPRIMIR pago FIN E+em)lo $, Disee un algoritmo que determine si un nmero es o no, par positivo Algoritmo INICIO REAL n LEER n SI( (n%2==0) y (n>0) ) IMPRIMIR "El nmero es par positivo" SINO IMPRIMIR "El nmero no es par positivo" FIN E+em)lo '"%, Disee un algoritmo que determine el mayor valor de cuatro nmeros a, b, c, d. Al(oritmo INICIO REAL a, b, c, d, mayor LEER a, b, c, d mayor = a SI( b > mayor ) mayor = b SI( c > mayor ) mayor = c SI( d > mayor ) mayor = d IMPRIMIR mayor FIN O0ser4aci&n En caso que los cuatro nmeros sean iguales entre s, el algoritmo da como mayor a cualquiera de los cuatro. E+em)lo "3, Una tienda ha puesto en oferta la venta al por mayor de cierto producto, ofreciendo un descuento del 15% por la compra de ms de 3 docenas y 10% en caso contrario. Adems por la compra de ms de 3 docenas se obsequia una unidad del producto por cada docena en exceso sobre 3. Disee un algoritmo que determine el monto de la compra, el monto del descuento, el monto a pagar y el nmero de unidades de obsequio por la compra de cierta cantidad de docenas del producto. INICIO REAL montopag, montocom, montodes, precio ENTERO docenas, obsequio - 58 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios LEER docenas, precio montocom = docenas*precio SI( docenas > 3 )] montodes = 0.15*montocom obsequio = docenas-3 ^ SINO] montodes = 0.10*montocom obsequio = 0 ^ montopag = montocom - montodes IMPRIMIR montocom, montodes, montopag Bin Selecci&n /o0le en Cascada Se dice que varias estructuras de seleccin doble estn en cascada cuando la instruccin que sigue a un SINO es otro SI a excepcin del ltimo SINO. No hay lmite en cuanto al nmero de estructuras de seleccin doble que pueden ponerse en cascada. F-ncionamiento Las condiciones se evalan en orden descendente pasando de una a otra si la anterior resulta falsa. En el momento que se encuentra una condicin verdadera, se efecta la accin correspondiente a dicha condicin y se corta el resto de la estructura. Si todas las condiciones resultan falsas se efecta la accin correspondiente al ltimo SNO. Nota" En el caso de acciones compuestas, estas sern encerradas entre llaves. SI( condicin C1 ) accin A1 SINO SI( condicin C2 ) accin A2 SINO SI( condicin C3 ) " " SINO accin An Fi(-ra "% Seleccin doble en cascada: Forma 1 SI( condicin C1 ) accin A1 SINO SI( condicin C2 ) accin A2 SINO SI( condicin C3 ) accin A3 . - 59 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios . . SINO accin An Fi(-ra "3 Seleccin doble en cascada: Forma 2 E+em)lo "', Disee un algoritmo que determine si un nmero es negativo, positivo o cero. Algoritmo (Formato 1) INICIO REAL n LEER n SI( n > 0 ) IMPRIMIR "Positivo" SINO SI( n < 0 ) IMPRIMIR "Negativo" SINO IMPRIMIR "Cero" FIN Al(oritmo (Formato 2) INICIO REAL n LEER n SI( n > 0 ) IMPRIMIR "Positivo" SINO SI( n < 0 ) IMPRIMIR "Negativo" SINO IMPRIMIR "Cero" FIN E+em)lo ., Considerando que las estaciones del ao se numeran como 1 para primavera, 2 para verano, 3 para otoo y 4 para invierno; disee un algoritmo que determine el nombre de la estacin del ao conociendo el nmero de la estacin. Al(oritmo INICIO ENTERO numero CA/ENA nombre LEER numero SI( numero == 1 ) nombre = "Primavera" SINO SI( numero == 2 ) nombre = "Verano" SINO SI( numero == 3 ) nombre = "Otoo" - 60 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios SINO nombre = "nvierno" IMPRIMIR nombre FN - 61 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios SEYTA SEMANA SESIAN 1 ESTRUCTURA SELECTIIA ANI/A/AS TEMAS Anidamiento f Ejercicios de Aplicacin O=JETIIOS Aplicar estructuras de seleccin doble encadenada iB a la solucin de problemas. Desarrollo de algoritmos que involucren estructuras de seleccin doble encadenada - 62 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios ANI/AMIENTO IF La estructura if permite tomar decisiones dentro de un programa. El resultado de una decisin determina la secuencia en que el programa puede ejecutar las instrucciones. La decisin se toma en base al resultado de una comparacin. Sinta1is iB N condici&n P 0e(in MM Sentencias end Estr-ct-ras de Selecci&n Anidadas Se dice que una estructura S (o S-SNO) esta anidada cuando esta contenida dentro de otra estructura S o dentro de otra estructura S-SNO. No existe lmite en cuanto al nivel de anidamiento. Por ejemplo, una estructura S con tres niveles de anidamiento tendra el siguiente formato: SI( condicin C1 )] accin A1 SI( condicin C2 )] accin A2 SI( condicin C3 ) accin A3 ^ ^ En general, el anidamiento podra evitarse usando el operador lgico "y". As, la anterior seleccin SI anidada puede descomponerse en tres estructuras de seleccin simple no anidadas consecutivas, como se muestra a continuacin. SI( condicin C1 ) accin A1 SI( condicin C1 @ condicin C2 ) accin A2 SI( condicin C1 @ condicin C2 @ condicin C3 ) accin A3 La estructura de seleccin doble en cascada es un caso especial de la estructura S..SNO anidada. E+em)lo, Disee un algoritmo que lea un nmero de tres cifras y determine si es o no capica. Un nmero es capica si es igual al revs del nmero. - 63 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios Observacin Observe que al ser el nmero de tres cifras, para ser capica es suficiente comprobar que la cifra de las -nidades sea igual a la cifra de las centenas. Al(oritmo INICIO ENTERO numero, unidad, centena LEER numero SI(numero >= 100 && numero <= 999 )] unidad = numero%10 centena = numero/100 SI( unidad == centena ) IMPRIMIR "El nmero es capica" SINO IMPRIMIR "El nmero no es capica" ^ SINO IMPRIMIR "El nmero no tiene tres cifras" FIN EJERCICIO /E APLICACIAN Ejercicio de divisin )-0lic class DivisionSegura { )-0lic static 4oid main(String args[]){ int x = 12; int y = 0; int z = 0; iB( y !=0 ) z = x / y; System.out.println("El resultado es : " + z); } } - 64 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios SEYTA SEMANA SESIAN $ ESTRUCTURA SELECTIIA ANI/A/AS II TEMAS Anidamiento f Else Ejercicios de Aplicacin O=JETIIOS Aplicar estructuras de seleccin doble encadenada iB a la solucin de problemas. Desarrollo de algoritmos que involucren estructuras de seleccin doble encadenada - 65 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios ANI/AMIENTO IF ELSE En algunos casos, se necesita representar una condicin que estn basada en otra condicin. En este caso, se puede usar una estructura if.else dentro de otra estructura if.else. Esta construccin es conocida como if.else anidado. El nmero de estructuras condicionales y el nivel de anidamiento dependen de la complejidad del problema. Por lo tanto, no hay un lmite o regla para especificar el nmero de estructuras condicionales que se pueden anidar. La sentencia if - else La sentencia if"else de Java dota a los programas de la habilidad de ejecutar distintos conjuntos de sentencias segn algn criterio. La sintaxis de la sentencia if"else es: i% 6 !oni!i&n 7 Bloque de cdigo a ejecutar si la condicin es cierta else Bloque de cdigo a ejecutar si la condicin es falsa La parte del else es opcional, y un bloque de cdigo puede ser simplemente la sentencia vaca # para representar que en ese caso no se ha de ejecutar nada. Supongamos que un programa debe realizar diferentes acciones dependiendo de si el usuario oprime el botn aceptar o el botn cancelar en una ventana de dialogo. Nuestro programa puede realizar esto usando la sentencia if " else: // La respuesta es Aceptar o Cancelar if (respuesta == Aceptar) { // cdigo para realizar la accin Aceptar System.out.println( "Su peticin esta siendo atendida" ); } else { // cdigo para realizar la accin Cancelar - 66 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios System.out.println( "Cancelando accion" ); Se pueden anidar expresiones if"else, para poder implementar aquellos casos con mltiples acciones. Esto es lo que se suele denominar como sentencias else if. Por ejemplo, supongamos que se desea escribir un programa que clasifique segn el contenido de una variable valor, asigne una letra a una variable clasificacin: A para un valor del 100-91, B de 90-81, C para 80-71 y F si no es ninguno de los anteriores: int valor; char clasificacion; if (valor > 90) {clasificacion='A';} else if (valor > 80) {clasificacion='B';} else if (valor > 70) {clasificacion='C';} else {clasificacion='F';} Se pueden escribir los if en las mismas lneas que los else, pero Este sistema de programacin (else if) no es demasiado recomendable, y por ello el lenguaje Java incluye la sentencia s$itc%, que veremos a continuacin, para dirigir el flujo de control de variables con mltiples valores. EJERCICIO /E APLICACIAN Por ejemplo, considerar un algoritmo para aceptar la nota de un alumno en dos cursos y calcular su promedio. El algoritmo muestra el promedio obtenido con - 67 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios el mensaje "Aprobado", "Desaprobado", o "Excelente". El criterio para el mensaje esta dado por: Excelente, si el promedio es mayor que 17 Aprobado, si el promedio es mayor que 13 Desaprobado, si el promedio es menor o igual que 13 im)ort +a4a"-til"ScannerW )-0lic class E+em)lo#3 ] )-0lic static 4oid mainNStrin([\ ar(sP ] MM Iaria0les del Pro(rama Scanner teclado V ne_ ScannerN S@stem"in PW do-0le nota1F nota$F )romW MM Lect-ra de /atos nota1 V teclado"ne1t/o-0leNPW nota$ V teclado"ne1t/o-0leNPW MM Proceso )rom V Nnota1 R nota$P M $W MM Re)orte S@stem"o-t")rintlnNOPromedio, O R )romPW iBN)rom U 1%"#P] iBN)rom U 19P] S@stem"o-t")rintlnNOE1celenteOPW ^ else ] S@stem"o-t")rintlnNOA)ro0adoOPW ^ ^else] S@stem"o-t")rintlnNO/esa)ro0adoOPW ^ ^ ^ - 68 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios SEPTIMA SEMANA SESIAN 1 ESTRUCTURA SELECTIIA MULTIPLE TEMAS Estructura selectiva mltiple SEGaN SEA Manejo de rangos numricos Evaluacin de valores carcter. O=JETIIOS Aplicar estructuras de seleccin mltiple SEGaN SEA a la solucin de problemas. Desarrollo de algoritmos que involucren estructuras de seleccin mltiple. - 69 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios ESTRUCTURA SELECTIIA MULTIPLE En el s_itc; la expresin que se evalua no es una expresin booleana como en el if-else, sino una expresin entera. Se ejecuta el bloque case cuyo valor coincida con el resultado de la expresin entera de la clausula s_itc; . Se ejecuta hasta que se encuentra una sentencia 0rea> o se llega al final del s_itc;. Si ningn valor de case coincide con el resultado de la expresin entera se ejecuta el bloque deBa-lt(si est presente). deBa-lt y 0rea> son opcionales. 0e(in case constanteT1, sentenciaNsP 0rea> case constanteT$, sentenciaNsP 0rea> case constanteT%, sentenciaNsP 0rea> " " " " " " deBa-lt, sentenciaNsP end - 70 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios SEPTIMA SEMANA SESIAN $ ESTRUCTURA SELECTIIA MULTIPLE TEMAS Ejercicios con tablas de datos Estructura Selectivas dobles y mltiples anidadas O=JETIIOS Definir controles Swing de tablas de datos JlistBox y JComboBox Aplica controles de opciones List, choice- Desarrollo de algoritmos que involucren estructuras de seleccin mltiple. - 71 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios Estr-ct-ra de Selecci&n M8lti)le SEGUN La estructura de seleccin mltiple SEGUN permite elegir una ruta de entre varias rutas posibles, usando para ello una variable denominada selector. El selector se compara con una lista de constantes enteras o de carcter C1, C2, ..., Cn para cada una de las cuales hay una accin A1, A2, ..., An y: # Si el selector coincide con una constante de la lista, se ejecuta la accin correspondiente a dicha constante. # Si el selector no coincide con ninguna constante de la lista, se ejecuta la accin Df correspondiente al SINO, si es que existe. Las acciones A1, A2, A3, ..., An pueden ser acciones simples( una sola accin) o acciones compuestas (un conjunto de acciones). En la Figura 5.3 se muestra el seudo cdigo de la estructura de seleccin m<iple. Nota"- En el caso de acciones compuestas, estas no necesitan estar encerradas entre llaves. ACA/EMIA /E COMPUTACIAN-ALGORITMIA PROFESOR JAIIER JIMbNEG PACcECO %3 SEGUN ( selector )] CASO C1 : accin A1 CASO C2 : accin A2 CASO C3 : accin A3 " " " CASO Cn : accin An SINO : accin Df ^ Fi(-ra '"% Estructura de seleccin mltiple: seudo cdigo E+em)lo '"5: Resuelva el ejemplo 5.6 usando seleccin mltiple. Algoritmo INICIO ENTERO numero CA/ENA nombre LEER numero SEGUN(numero)] CASO 1 , nombre = "Primavera" CASO 2 : nombre = "Verano" CASO 3 : nombre = "Otoo" SINO , nombre = "nvierno" ^ IMPRIMIR nombre FIN '"5 E+ercicios E+ercicio 1, Disee un algoritmo que califique el puntaje obtenido en el lanzamiento de tres dados en funcin a la cantidad seis obtenidos, de acuerdo a lo siguiente: - Seis en los tres dados, excelente. - Seis en dos dados, muy bien. - Seis en un dado, regular. - Ningn seis, psimo. Al(oritmo INICIO // Declaracin de variables ENTERO d1, d2, d3 // Entrada de datos LEER d1, d2, d3 // Obtencin de la calificacin ACA/EMIA /E COMPUTACIAN-ALGORITMIA - 72 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios PROFESOR JAIIER JIMbNEG PACcECO %' SI( d1 + d2 + d3 == 18 ) IMPRIMIR "Excelente" SINO SI( d1+d2 == 12 & d1+d3 == 12 & d2+d3 == 12 ) IMPRIMIR "Muy bin" SINO SI( d1 == 6 & d2 == 6 & d3 == 6 ) IMPRIMIR "Regular" SINO IMPRIMIR "Psimo" FIN E+ercicio $, Una compaa dedicada al alquiler de automviles cobra $30 hasta un mximo de 300 Km. de distancia recorrida. Para ms de 300 Km. y hasta 1000 Km., cobra $30 ms un monto adicional de $ 0.15 por cada kilmetro en exceso sobre 300. Para ms de 1000 Km. cobra $30 ms un monto adicional de $ 0.10 por cada kilmetro en exceso sobre 1000. Los precios ya incluyen el 18% del impuesto general a las ventas, GV. Disee un algoritmo que determine el monto a pagar por el alquiler de un vehculo y el monto incluido del impuesto. Al(oritmo INICIO // Declaracin de variables REAL kilomrec, montofijo, montoadic, montopag, montoigv REAL GV = 0.18 // Entrada de datos LEER kilomrec // Clculo de montos montofijo = 30*kilomrec SI( kilomrec <= 300 ) montoadic = 0 SINO SI( kilomrec <= 1000 ) montoadic = 0.15*(kilomrec-300) SINO montoadic = 0.15*700 + 0.10*(kilomrec-1000) montopag = montofijo + montoadic montoigv = GV*montopag /(1+GV) // Salida de resultados IMPRIMIR montoPag, montogv FIN E+ercicio %, Disee un algoritmo que determine quienes son contemporneos entre Juan, Mario y Pedro. Al(oritmo INICIO ENTERO juan, mario, pedro LEER juan, mario, pedro SI( juan == mario y mario == pedro ) IMPRIMIR "Los tres son contemporneos" SINO SI( juan == mario ) IMPRIMIR "Juan y Mario son contemporneos" SINO SI( juan == pedro ) IMPRIMIR "Juan y Pedro son contemporneos" ACA/EMIA /E COMPUTACIAN-ALGORITMIA PROFESOR JAIIER JIMbNEG PACcECO %. SINO SI( mario == pedro ) IMPRIMIR "Mario y Pedro son contemporneos" SINO IMPRIMIR "Los tres tienen edades diferentes entre s" FIN E+ercicio 3, El promedio de prcticas de un curso se calcula en base a cuatro prcticas calificadas de las - 73 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios cuales se elimina la nota menor y se promedian las tres notas ms altas. Disee un algoritmo que determine la nota eliminada y el promedio de prcticas de un estudiante. Al(oritmo INICIO REAL pc1, pc2, pc3, pc4, pcmenor, promedio LEER pc1, pc2, pc3, pc4 // Determina la nota menor pcmenor = pc1 SI( pc2 < pcmenor ) pcmenor = pc2 SI( pc3 < pcmenor ) pcmenor = pc3 SI( pc4 < pcmenor ) pcmenor = pc4 // Determina el promedio descontando la nota menor promedio = (pc1 + pc2 + pc3 + pc4 - pcmenor )/3 IMPRIMIR promedio, pcmenor FIN E+ercicio ', Disee un algoritmo que lea tres longitudes y determine si forman o no un tringulo. Si es un tringulo determine de que tipo de tringulo se trata entre: equiltero (si tiene tres lados iguales), issceles (si tiene dos lados iguales) o escaleno (si tiene tres lados desiguales). Considere que para formar un tringulo se requiere que: "el lado mayor sea menor que la suma de los otros dos lados". Al(oritmo INICIO REAL L1, L2, L3, suma LEER L1, L2, L3 // Determina el lado mayor mayor = L1 SI( L2 > mayor ) mayor = L2 SI( L3 > mayor ) mayor = L3 // Determina la suma de los lados a excepcin del lado mayor suma = L1 + L2 + L3 - mayor // Determina de que tipo de tringulo se trata SI( mayor < suma )] SI( ( L1 == L2 ) y ( L2 == L3 ) ) ACA/EMIA /E COMPUTACIAN-ALGORITMIA PROFESOR JAIIER JIMbNEG PACcECO %9 IMPRIMIR "Tringulo equiltero" SINO SI( ( L1 == L2 ) o ( L1 == L3 ) o ( L2 == L3 ) ) IMPRIMIR "Tringulo issceles" SINO IMPRIMIR "Tringulo escaleno" ^ SINO IMPRIMIR "No es un tringulo" FIN E+ercicio ., Disee un algoritmo que lea tres nmeros enteros y determine el menor valor positivo. Si los nmeros positivos son iguales, dar como menor a cualquiera de ellos. Al(oritmo INICIO ENTERO a, b, c LEER a, b, c SI( a > 0 )] // Aqu a, b y c podran ser positivos menor = a SI( b > 0 y b < menor ) menor = b - 74 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios SI( c > 0 y c < menor ) menor = c IMPRIMIR menor ^ SINO SI( b > 0 )] // Aqu slo b y c podran ser positivos menor = b SI( c > 0 y c < menor ) menor = c IMPRIMIR menor ^ SINO SI( c > 0 )] // Aqu slo c podra ser positivo menor = c IMPRIMIR menor ^ SINO IMPRIMIR "No hay nmeros positivos" FIN E+ercicio 9, Disee un algoritmo que lea tres nmeros y los imprima de mayor a menor y de menor a mayor. Al(oritmo INICIO REAL n1, n2, n3, mayor, menor, medio LEER n1, n2, n3 // Determina el menor menor = n1 SI( n2 < menor ) menor = n2 SI( n3 < menor ) ACA/EMIA /E COMPUTACIAN-ALGORITMIA PROFESOR JAIIER JIMbNEG PACcECO %5 menor = n3 // Determina el mayor mayor = n1 SI( n2 > mayor ) mayor = n2 SI( n3 > mayor ) mayor = n3 // Determina el medio medio = n1+n2+n3-mayor-menor // mprime en orden ascendente IMPRIMIR menor, medio, mayor // mprime en orden descendente IMPRIMIR mayor, medio, menor FIN E+ercicio 5, Disee un algoritmo para obtener el grado de eficiencia de un operario de una fbrica de tornillos, de acuerdo a las siguientes condiciones, que se le imponen para un perodo de prueba: - Menos de 200 tornillos defectuosos. - Ms de 10000 tornillos producidos. El grado de eficiencia se determina de la siguiente manera: - Si no cumple ninguna de las condiciones, grado 5. - Si slo cumple la primera condicin, grado 6. - Si slo cumple la segunda condicin, grado 7. - Si cumple las dos condiciones, grado 8. Al(oritmo 1 INICIO ENTERO torpro, tordef, grado LEER torpro, tordef // Determina el grado de eficiencia SI( tordef < 200 )] SI( torpro > 10000 ) - 75 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios grado = 8 SINO grado = 6 ^ SINO] SI( torpro > 10000 ) grado = 7 SINO grado = 5 ^ IMPRIMIR grado FIN Al(oritmo $ ACA/EMIA /E COMPUTACIAN-ALGORITMIA PROFESOR JAIIER JIMbNEG PACcECO %? INICIO ENTERO torpro, tordef, grado LEER torpro, tordef // Determina el grado de eficiencia SI( tordef < 200 y torpro > 10000 ) grado = 8 SINO SI( tordef < 200 ) grado = 6 SINO SI( torpro > 10000 ) grado = 7 SINO grado = 5 IMPRIMIR grado FIN E+ercicio ?, Se cuenta con los votos obtenidos por Juan, Pedro y Maria en una eleccin democrtica a la presidencia de un club. Para ganar la eleccin se debe obtener como mnimo el 50% de los votos ms 1. En caso que no haya un ganador se repite la eleccin en una segunda vuelta. Van a la segunda vuelta los dos que obtengan la ms alta votacin , los tres en caso de producirse un empate doble (entre los dos con menor votacin) o un empate triple. Disee un algoritmo que determine el resultado de la eleccin. Al(oritmo INICIO ENTERO vjuan, vpedro, vmaria LEER vjuan, vpedro, vmaria // Determina la votacin total vtotal = vjuan + vpedro + vmaria // Determina la votacin mxima vmax = vjuan SI( vpedro > vmax ) vmax = vpedro SI( vmaria > vmax ) vmax = vmaria // Determina el resultado de la eleccin SI( vmax > vtotal/2 + 1 )] // Hay ganador SI( vjuan == vmax ) IMPRIMIR "Gan Juan" SINO SI( vpedro == vmax ) IMPRIMIR "Gan Pedro" SINO IMPRIMIR "Gan Mara" ^ SINO] // No hay ganador SI( vjuan < vpedro @ vjuan < vmaria ) - 76 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios IMPRIMIR "Debe haber segunda vuelta entre Pedro y Mara" SINO SI( vpedro < vjuan @ vpedro < vmaria ) IMPRIMIR "Debe haber segunda vuelta entre Juan y Mara" SINO SI( vmaria < vjuan @ vmaria < vpedro ) IMPRIMIR "Debe haber segunda vuelta entre Juan y Pedro" ACA/EMIA /E COMPUTACIAN-ALGORITMIA PROFESOR JAIIER JIMbNEG PACcECO 3# SINO IMPRIMIR "Debe haber segunda vuelta entre los tres" ^ FIN E+ercicio 1#, Disee un algoritmo que lea un nmero entero de 3 cifras, y forme el mayor nmero posible con las cifras del nmero ingresado. El nmero formado debe tener el mismo signo que el nmero ingresado. Al(oritmo INICIO ENTERO num1, num2, numaux, uni, dec, cen, menor, mayor, medio LEER num1 SI( ( num1 >= 100 y num1 <= 999 ) y ( num1 >= -999 y num1 <= -100 ) )] // Guarda el nmero en una variable auxiliar para preservar el signo numaux = num1 // Cambia el signo de num1 en caso de ser negativo SI( num1 < 0 ) num1 = -num1 // Determina las cifras del nmero cen = num1/100 dec = (num1%100)/10 uni = (num1%100)%10 // Determina la cifra menor menor = cen SI( dec < menor ) menor = dec SI( uni < menor ) menor = uni // Determina la cifra mayor mayor = cen SI( dec > mayor ) mayor = dec SI( uni > mayor ) mayor = uni // Determina la cifra del medio medio = cen+dec+uni-mayor-menor // Forma el nuevo nmero SI( numaux > 0 ) num2 = mayor*100 + medio*10 + menor SINO num2 = -1*(menor*100 + medio*10 + mayor*100)< // mprime el nuevo nmero IMPRIMIR num2 ^ SINO IMPRIMIR "El nmero no tiene tres cifras" FIN - 77 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios Unidad II ALGORITMIA II Primer Ciclo Semestre - 1 - 78 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios PRIMERA SEMANA SESIAN 1 Introd-cci&n a Se(-nda -nidad TEMAS Presentacin del curso Forma de evaluacin Repaso de estructuras de seleccin simple y mltiple O=JETIIOS Evaluar los conocimientos previos sobre seleccin simple y mltiple - 79 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios PRIMERA SEMANA SESIAN
$ ESTRUCTURAS /E REPETICION TEMAS Qu son las estructuras de repeticin? Aplicaciones de las estructuras de repeticin Tipos de estructura de repeticin ntroduccin a la estructura de Repeticin :cILE O=JETIIOS Definir las estructuras de repeticin. Definir y aplicar los tipos de estructuras de repeticin. Desarrollo de algoritmos que involucren el uso de estructuras de repeticin. - 80 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios 6UE SON LAS ESTRUCTURAS /E REPETICION Normalmente, las sentencias de un programa son ejecutadas en el orden en el que aparecen. Cada sentencia es ejecutada una y solamente una vez. El lenguaje Java, como la mayora de los lenguajes, proporciona sentencias que permiten realizar una tarea una y otra vez hasta que se cumpla una determinada condicin, dicha tarea viene definida por un conjunto de sentencias agrupadas en un bloque. APLICACIONES /E LAS ESTRUCTURAS /E REPETICION Las aplicaciones de las estructuras de aplicacin se utiliza para realizar un proceso repetidas veces. Se denomina tambin lazo o loop. Se ejecutar mientras se cumpla unas determinadas condiciones. Hay que prestar especial atencin a los bucles infinitos, hecho que ocurre cuando la condicin de finalizar. Las sentencias iterativas son BorF _;ile y do..._;ile TIPOS /E ESTRUCTURA /E REPETICION ESTRUCTURA /EL =UCLE FOR for(inicializacin; condicin; incremento) sentencia; - 81 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios ESTRUCTURA /EL =UCLE :cILE while (condicin) sentencia; ESTRUCTURA /EL =UCL /O :cILE do{ sentencia; }while(condicin); - 82 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios TIPOS /E ESTRUCTURA /E REPTICION Los tipos de estructura de repeticin son las siguientes: sentencia for La sentencia $%ile La sentencia do!!!$%ile La sentencia brea' La sentencia continue INTRO/UCCION A LA ESTRUCTURA /E REPETICION :cILE A la palabra reservada _;ile le sigue una condicin encerrada entre parntesis. El bloque de sentencias que le siguen se ejecuta siempre que la condicin sea verdadera - 83 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios SEGUN/A SEMANA SESIAN 1 ESTRUCTURAS /E REPETICION :cILE TEMAS ntroduccin al manejo de Estructuras Repetitivas Sustento para el manejo de Estructuras Repetitivas Estructura de Repeticin MENTRAS :cILE O=JETIIOS - 84 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios Reconocer las estructura de repeticin y su uso. Desarrollar ejercicios con el uso de la estructura repetitiva :cILE" INTRO/UCCION AL MANEJO /E ESTRUCTURAS REPETITIIAS Este tipo de estructuras marcan como orden de ejecucin la reiteracin de una serie de acciones basndose en un bucle. Un =UCLE (loop, en ingls) es un trozo de algoritmo cuyas instrucciones son repetidas un cierto nmero de veces, mientras se c-m)le una cierta condicin que ha de ser claramente especificada. La condicin podr ser verdadera o falsa, y se comprobar en cada )aso o iteraci&n del bucle. Bsicamente, existen tres tipos de estructuras repetitivas; los bucles Omientras"""O (o "while"), los bucles Ore)etir""" mientras H-eO (o "do... while") y los bucles OdesdeO (o "bucles for"). Vamos a verlas todas dentro de un ejemplo para clarificar los dos prrafos iniciales, que quedan tan bonitos como oscuros para quien nunca ha visto un bucle (ni es verde ni tiene antenas, lo siento %- D ). - 85 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios Slo un poco de teora ms antes de pasar a los ejemplos para cada una de las estructuras repetitivas; hay que hacer notar que todo bucle consta de tres partes bsicas, a saber: /ecisi&n, donde se evala la condicin y, en caso de ser cierta, se ejecuta el... C-er)o del 0-cle, son las instrucciones que queremos ejecutar repetidamente un cierto nmero de veces. Salida del 0-cle, es la condicin que dice cundo saldremos de hacer repeticiones ("mientras protestes, seguirs fregando platos", en cuanto dejas de protestar, se acab fregar ms platos). Una forma de controlar un bucle es mediante una variable llamada CONTA/OR, cuyo valor se incrementa o decrementa en una cantidad constante en cada repeticin que se produzca. Tambin, en los bucles suele haber otro tipo de variables llamadas ACUMULA/OR, cuya misin es almacenar una cantidad variable resultante de operaciones sucesivas y repetidas. Es como un contador, con la diferencia que el incremento/decremento es 4aria0le SUSTENTO PARA EL MANEJO /E ESTRUCTURAS REPETITIIAS ESTRUCTURA /E REPETICION MIENTRAS :cILE En este tipo de estructura, el cuerpo del bucle (ya sabeis, las acciones que deben ejecutarse repetidas veces) se repite MENTRAS se cumple una determinada condicin, que especificamos entre parntesis. Su estructura, genricamente, es esta: mientras(condicin) hacer accin 1 ........ accin N fin mientras - 86 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios SEGUN/A SEMANA SESIAN $ ESTRUCTURAS /E REPETICION /O :cILE TEMAS Estructura de Repeticin /O :cILE Seguimiento de Pseudo cdigo de repeticin. Generacin de Nmeros aleatorios (Mat;"randomNP) O=JETIIOS Definir la estructura de repeticin /O :cILE" - 87 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios Desarrollo de algoritmo con el uso de la estructura repetitiva /O :cILE" ESTRUCTURA DE REPETCON DO WHLE la condicin do"""_;ile est al final del bucle, por lo que el bucle se ejecuta por lo menos una vez tal como se ve en la figura. do marca el comienzo del bucle y _;ile el final del mismo do{ sentencia; }while(condicin); - 88 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios SEGUIMIENTO /E PSEU/OCO/IGO /E REPTICION 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 condicin se cumpla o no). Una vez ejecutados los statements, se evala la condicin: si resulta tre se vuelven a ejecutar las sentencias incluidas en el bucle, mientras que si la condicin se evala a false finaliza el bucle. do { statements } while (booleanExpression); GENERACION /E NUMEROS ALEATORIOS Uso de Math.random() para generar nmeros aleatorios. Ejemplo de rango 0 - limiteSuperior y de rango limitenferior - limiteSuperior. import java.util.Random; class random{ public static void main(String args[]){ for(int i = 1; i <= 5; i++){ System.out.println("Numero aleatorio " + i + " : " + (double)Math.random()); } System.out.println(); for(int i = 1; i <= 5; i++){ System.out.println("Numero aleatorio multiplicado * 1 y aplicando redondeo " + i + " : " + Math.round(Math.random()*1)); } System.out.println(); for(int i = 1; i <= 5; i++){ System.out.println("Numero aleatorio multiplicado * 10 y aplicando redondeo " + i + " : " + Math.round(Math.random()*10)); } System.out.println(); for(int i = 1; i <= 5; i++){ System.out.println("Numero aleatorio multiplicado * 100 y aplicando redondeo " + i + " : " + Math.round(Math.random()*100)); } System.out.println(); for(int i = 1; i <= 5; i++){ - 89 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios System.out.println("Numero aleatorio multiplicado * 1000 y aplicando redondeo " + i + " : " + Math.round(Math.random()*1000)); } //FORMULA PARA SOLO DELMTAR RANGO SUPEROR Math.floor(result * range) + 1 // System.out.println(); for(int i = 1; i <= 5; i++){ int iSuperior = 8; double dResult = Math.random(); dResult = Math.floor(dResult * (iSuperior + 1)); System.out.println("Entre 0 y " + iSuperior + " aleatorio " + i + " : " + dResult); if(dResult > iSuperior) System.out.println("Rango erroneo"); } //DELMTAR RANGOS NFEROR Y SUPEROR // System.out.println(); for(int i = 1; i <= 5; i++){ int inferior = 5; int superior = 8; int numPosibilidades = (superior + 1) - inferior; double aleat = Math.random() * numPosibilidades; aleat = Math.floor(aleat); aleat = (inferior + aleat); System.out.println("Entre " + inferior + " y " + superior + " aleatorio " + i + " : " + aleat); if((aleat < inferior) || (aleat > superior)) System.out.println("Rango erroneo"); } } ^ - 90 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios TERCERA SEMANA SESIAN 1 CONTA/ORES < ACUMULA/ORES TEMAS Operaciones de ncremento y Decremento. Variables Locales y Globales, definicin y aplicacin O=JETIIOS Definir la estructura de repeticin /O :cILE" Desarrollo de algoritmo con el uso de la estructura repetitiva /O :cILE" OPERACIONES /E INCREMENTO < /ECREMENTO Los operadores ++ (incremento) y -- (decremento) se utilizan para aumentar o disminuir en 1 el valor de la variable entera. Es posible utilizar: i++ Da el valor de i y luego le suma 1 ++i Suma 1 a i y luego da el valor de i i-- Da ek valor de i y luego le resta 1 --i Resta 1 a i y luego da el valor de i El uso de los operadores de incremento y decremento pueden dificultar la lectura del cdigo. IARIA=LES LOCALES < GLO=ALES /EFINICION < APLICACION IARIA=LE LOCAL En el lenguaje Java, las variables locales se declaran en el momento en el que son necesarias. Es una buena costumbre inicializar las variables en el momento en el que son declaradas. Veamos algunos ejemplos de declaracin de algunas variables - 91 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios int x=0; String nombre="Angel"; double a=3.5, b=0.0, c=-2.4; boolean bNuevo=true; int[] datos; IARIA=LE GLO=AL Todas las funciones incluyendo main(), o init()(pero dento de la clase global) etc, a este tipo de variables se les llama variables globales y podran ser usadas por cualquier funcin o procedimiento del programa. Ejemplo: Por ejemplo: static int a = 3; static void metodoGlobal() { // implementacin del mtodo } TERCERA SEMANA SESIAN $ SERIES NUMERICAS TEMAS Contadores y Acumuladores Series Numricas O=JETIIOS Definir Contador, acumulador. Desarrollar Ejercicios de Aplicacin de Contadores y Acumuladores Crear Series Numricas - 92 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios CONTA/ORES < ACUMLA/ORES Ac-m-lador, Es una variable, que , como su nombre lo indica se encarga de acumular valores. Esto se vuelve muy til, por ejemplo, cuando queremos encontrar la suma de los nmeros del 0 al 9, en el acumulador, vamos guardando los valores de dichas cifras. Puede ser tanto real como entera. Su valor inicial, en la mayora de los casos es cero. Contador, Es una variable de tipo entero, que nos ayuda, en el programa a contabilizar el nmero de ejecuciones de una misma accin, de un grupo de alumnos etc. Un acumulador tiene tres valores distintos: Valor nicial: es el valor con el cual iniciamos nuestro contador. Generalmente es cero. Esta asignacin puede hacerse cuando se declara la variable. Valor Final: despus de la ejecucin del ciclo, el valor del contador, ser distinto a su valor inicial, este puede ser mayo o menor que el mismo, todo depende si fue una cuenta creciente o decreciente. Valor de Cambio: Es el valor ConstanteF en el cual se ir incrementando nuestro contador, este puede ser positivo o negativo; es decir, si la cuanta se realiza de manera ascendente o descendente. SERIES NUMERICAS - 93 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios CUARTA SEMANA SESIAN 1 ESTRUCTURA /E REPETICION /ES/E TEMAS Estructuras de Repeticin (FOR) Aplicacin de la Estructura NFOR) O=JETIIOS Definir la estructura de control FOR y su parmetros Aplicar estructuras de repeticin FOR a la solucin de problemas. - 94 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios ESTRUCTURA FOR Esta sentencia se encuentra en la mayora de los lenguajes de programacin. El bucle Bor se emplear cuando conocemos el nmero de veces que se ejecutar una sentencia o un bloque de sentencias, tal como se indica en la figura. La forma general que adopta la sentencia Bor es for(inicializacin; condicin; incremento) sentencia; El primer trmino iniciali(acin, se usa para inicializar una variable ndice, que controla el nmero de veces que se ejecutar el bucle. La condicin representa la condicin que ha de ser satisfecha para que el bucle contine su ejecucin. El incremento representa la cantidad que se incrementa la variable ndice en cada repeticin APLICACIAN /E LA ESTRUCTURA FOR - 95 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios Desarrollar un programa para encontrar la suma de los nmeros pares e impares comprendidos entre 1 y num. El valor de num es el dato de entrada. import java.util.Scanner; public class Ejemplo4 { public static void main(String[] args) { // Variables del Programa Scanner teclado = new Scanner(System.in); int num, sumaPares, sumampares; // Lectura de num System.out.println("ngrese el valor de num: "); num = teclado.nextnt(); // nicializacin de variables sumaPares = 0; sumampares = 0; // Proceso for( int k = 1; k <= num; k++ ){ if( (k%2) == 0 ) sumaPares += k; else sumampares += k; } // Reporte System.out.println("Suma de Pares: " + sumaPares); System.out.println("Suma de mpares: " + sumampares); } } - 96 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios CUARTA SEMANA SESIAN $ ESTRUCTURA /E REPETICION /ES/E TEMAS Estructura de Repeticin (FORP Seguimiento de Pseudo cdigo de repeticin NFOR) O=JETIIOS Usar seguimiento de Pseudo-cdigo en las estructuras repetitivas FOR - 97 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios ESTRUCTURA /E REPETICION NFORP SEGUIMIENTO /E PSEU/OCO/IGO /E REPETICION El bucle Bor se utiliza cuando el nmero de iteraciones del bucle se conoce de manera anticipada. El bucle for tiene la siguiente sintaxis: for( expr_inicializacin; expr_evaluacin; expt_incremento/decremento ) begin // nstrucciones end Se compone de las siguientes tres partes separadas por punto y coma: Expresin de inicializacin: La variable numrica se inicializa con un valor. Expresin de evaluacin: La condicin se comprueba al comienzo de la repeticin del bucle. Cuando la expresin es falsa, el bucle finaliza. Expresin de incremento/decremento: El valor de la variable se incrementa decrementa. - 98 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios SEYTA SEMANA SESIAN 1 SALTOS /E ESTRUCTURA /E REPETICION d =REAe CONTINUE TEMAS Salto de ciclos repetitivos usando 0rea> @ contin-e Diferencias entre el 0rea> y el contin-e. O=JETIIOS Definir los saltos de estructuras de repeticin 0rea> @ contin-e. Distinguir entre el 0rea> y el contin-e" Desarrollar Ejercicios de Aplicacin de los saltos de ciclos repetitivos - 99 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios SALTO /E CICLOS REPETITIIOS USAN/O =REAe SENTENCIA =REAe La sentencia de 'break' es de tipo de control de bucles. Dentro de la iteracion en un bucle, de cualquiera de los tipos (while, do-while, for), el uso de esta sentencia rompe la iteracion de dicho bucle. for(int j = 0; j<10; j++){ sentencia 1; sentencia 2; sentencia 3; break; }; Este bucle deberia ejecutarse 10 veces, desde j = 0 hasta j = 9, sin embargo la utilizacin de la sentencia break, rompe la iteracion del bucle, de tal manera que tras la primera ejecucin el bucle acaba habiendose ejecutado una sola vez. SENTENCIA CONTINUE Del mismo modo que en un bucle se puede desear romper la iteracin, tambin se puede desear continuar con el bucle, pero dejando pasar una determinada iteracin. Se puede usar la sentencia continue dentro de los bucles para saltar a otra sentencia, aunque no puede ser llamada fuera de un bucle. Tras la invocacin a una sentencia continue se transfiere el control a la condicin de terminacin del bucle, que vuelve a ser evaluada en ese momento, y el bucle contina o no dependiendo del resultado de la evaluacin. En los bucles for adems en ese momento se ejecuta la clusula de incremento - 100 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios (antes de la evaluacin). Por ejemplo el siguiente fragmento de cdigo imprime los nmeros del 0 al 9 no divisibles por 3: for ( int i = 0 ; i < 10 ; i++ ) { if ( ( i % 3 ) == 0 ) continue; System.out.print( " " + i ); } /IFERENCIA ENTRE EL =REAe < CONTINUE La sentencia break nos permite salirnos del bloque de sentencias (encerrado entre llaves) o el bucle que estamos ejecutando, sin ejecutar las sentencias que resten para el final o las restantes iteraciones del bucle. La sentencia Continue solo es vlida para bucles, sirve para no ejecutar las sentencias que restan para la finalizacin de una iteracin de ese bucle, continuando despus con las siguientes iteraciones del bucle. - 101 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios SEYTA SEMANA SESIAN $ =REAe CONTINUE EN :cILE < /O :cILE TEMAS Uso del 0rea> y el contin-e en estructuras condicionales y estructuras repetitivas MIENTRAS" Ejercicios de Aplicacin con las estructuras condicinale y repetitivas. O=JETIIOS Aplicar 0rea> y el contin-e en estructuras condicionales y estructuras repetitivas mientras. USO /EL =REAe < EL CONTINUE EN ESRUCTURAS ON/ICIONALES < ESTRUCTURAS REPETITIIAS MIENTRAS USO /EL =REAe El enunciado 0rea> slo causa la salida de la estructura _;ile, doM_;ile o Bor que lo encierra directamente. - 102 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios Para salirnos de una serie de estructuras anidadas se usa el enunciado 0rea> etiquetado: La ejecucin del programa contina con el primer enunciado despus del enunciado compuesto , el cual consiste en una serie de enunciados encerrados en llaves y precedidos por una etiqueta. !! Enncia"o compesto rotla"o o eti#eta"o sto), Bor Nint Bila V 1W Bila SV 1#W BilaRRP ] Bor Nint col-mna V 1W col-mna SV 'W col-mnaRRP ] iB NBila VV 'P 0rea> sto)W S@stem"o-t")rintlnNfFila es menor H-e 'gPW ^ ^ S@stem"o-t")rintlnNfLa Bila es 'gPW USO /EL CONTINUE El enunciado continue contina con la siguiente iteracin de la estructura while, do/whileo for que lo encierra directamente. El enunciado continue etiquetado se salta el resto de los enunciados del cuerpo de la estructura de iteracin que lo contiene y cualquier cantidad de estructuras de iteracin que la encierren y contina con la siguiente iteracin de la estructura de repeticin etiquetada. !! Enncia"o compesto rotla"o o eti#eta"o sto), Bor Nint Bila V 1W Bila SV 1#W BilaRRP ] Bor Nint col-mna V 1W col-mna SV 'W col-mnaRRP ] iB NBila VV 'P contin-e sto)W S@stem"o-t")rintlnNfFila es distinta H-e 'gPW ^ ^ S@stem"o-t")rintlnNfLa Bila es 1#gPW ESTRUCTURAS REPETITIIAS MIENTRAS Permite al programador especificar que una accin se repita en tanto se cumpla una condicin. _;ile NcondicionP sentenciaW _;ile NcondicionP] sentenciaT1W - 103 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios !!! sentenciaTnW ^ E+em)lo, Encontrar la primera potencia de 2 mayor que 1000. int )rod-cto V $W _;ile N)rod-cto SV 1###P )rod-cto V $ Z )rod-ctoW EJERCICIOS CON/ICIONLES /E LAS ESTRUCTURAS CON/ICIONALES < REPEITIIAS SEPTIMA SEMANA SESIAN 1 METO/OS - 104 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios TEMAS Qu es un Mtodo? Aplicaciones Sintaxis de un Mtodo Manejo de Parmetros dentro de un Mtodo Paso de Parmetros por Valor y por Referencia Ejercicios de Aplicacin O=JETIIOS Definir que es un mtodo, Distinguir entre los parmetros dentro de un mtodo, por valor y por referencia. Desarrollo de programas mediante descomposicin modular. D6UE ES UN METO/OE Los mtodos son funciones que pueden ser llamadas dentro de la clase o por otras clases. El constructor es un tipo especfico de mtodo que siempre tiene el mismo nombre que la clase. APLICACIONES SINTAYIS /EL METO/O Similarmente a la implementacin de una clase, la implementacin de un mtodo consiste en dos partes, la declaracin y el cuerpo del mtodo. - 105 - SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios declaraci&ndeM7todo { c-er)odeM7todo } MANEJO /E PARAMETROS /ENTRO /E UN METO/O La clase Graphics tiene un mtodo definido drawString, que es lo suficientemente flexible para dibujar cualquier cadena de caracteres en determinada posicin x, y, dependiendo del valor de los )arCmetros enviados al mtodo en ese momento. Entonces, el nombre del mtodo es drawString o drawRect o drawOval, etc. Y lo que est entre parntesis son los )arCmetros. Los )arCmetros son los datos de entrada que son necesarios para que el mtodo funcione y pueda procesar la informacin. PASO /E PRAMETROS POR IALOR < REFERENCIA PASO /E PARAMETROS POR IALOR los valores de los parmetros son copias de los valores que especifica el que lo invoca tipos primitivos no cambian los objetos pueden cambiar su estado se )asa )or 4alor la reBerencia PASO /E PARAMETROS POR REFERENCIA En Java, todos los argumentos de tipos primitivos deben pasarse por valor, mientras que los objetos deben pasarse por referencia. Cuando se pasa un - 106 - Datos de entrada (parmetros) Dato de salida (valor de retorno) Mtodo SISTEMAS E INFORMTICA La mejor propuesta en Sistemas con visin de Negocios objeto por referencia, se est pasando la direccin de memoria en la que se encuentra almacenado el objeto. Si se modifica una variable que haya sido pasada por valor, no se modificar la variable original que se haya utilizado para invocar al mtodo, mientras que si se modifica una variable pasada por referencia, la variable original del mtodo de llamada se ver afectada de los cambios que se produzcan en el mtodo al que se le ha pasado como argumento. EJERCICIOS /E APLICACION - 107 -