62605206 manual fundamentos de programacion v0510

220

Upload: luis-hernandez

Post on 30-Jul-2015

282 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: 62605206 Manual Fundamentos de Programacion V0510
Page 2: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   2  

 

Índice

Presentación ………………………………………………………. 3

Modulo A

Semana 1 ……………………………………………………….. 4

Semana 2 ……………………………………………………….. 24

Semana 3 ……………………………………………………….. 47

Semana 4 ……………………………………………………….. 72

Semana 5 ……………………………………………………….. 85

Semana 6 ……………………………………………………….. 98

Semana 7 ………………………………………………………..111

Semana 8 ………………………………………………………..127

Semana 9 ………………………………………………………..140

Modulo B

Semana 1 ………………………………………………………..150

Semana 2 ………………………………………………………..166

Semana 3 ………………………………………………………..180

Semana 4 ………………………………………………………..188

Semana 5 ………………………………………………………..205

Semana 6 ………………………………………………………..216

Semana 7 ………………………………………………………..229

Semana 8 ………………………………………………………..243

Semana 9 ………………………………………………………..258

Bibliografía: ………………………………………………………...267

3

4

24

47

72

85

98

111

127

140

150

166

180

188

205

216

229

243

258

267

Page 3: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   3  

 

PRESENTACIÓN

Esta guía didáctica es un material de ayuda institucional, perteneciente a las especialidades de computación, Ingeniería de Software e Ingeniería de Redes y Comunicaciones tiene por finalidad proporcionar los conocimientos de fundamentos de programación orientada a los estudiantes del primer ciclo de estudios.

La Organización SISE, líder en la enseñanza tecnológica a nivel superior, promueve la elaboración de materiales educativos, en concordancia a las exigencias de las tecnologías de estos tiempos, que permiten la creación de nuevas herramientas de aprendizaje con el objetivo de facilitar el acceso de los estudiantes a la educación en el marco del desarrollo tecnológico de la informática u de las telecomunicaciones.

Esta guía se divide en 2 módulos y cada una de ellas en 9 semanas. Permite conocer las herramientas indispensables para la elaboración de un algoritmo. Se inicia con el reconocimiento de las herramientas básicas que se necesitaran para dar solución a una determinada proposición o problema.

En este proceso el alumno aprenderá instrucciones que le permitirán evaluar expresiones para luego procesar un conjunto de sentencias. También aprenderá el uso de las estructuras de control (Condicionales y Repetitivas), de la misma forma el manejo del lenguaje de programación orientada a objetos.

La implementación y uso de métodos (con retorno y sin retorno), permitirán que el alumno aplique el uso de variables Globales y Locales donde el alumno demostrara el manejo de la programación orientada a objetos.

Todas estas herramientas darán un soporte solido al alumno para aprender a programar en cualquier lenguaje de programación estructurada o a los lenguajes Orientada a Objetos(JAVA, .NET, Visual C,etc).

Este material en su primera edición, servirá para ayudar a nuestros estudiantes SISESINOS a tener una formación solida para resolver problemas.

Page 4: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   4  

 

INTRODUCCION

Contenidos 

- Sistema de Información - Concepto de Dato, Información, Proceso - Etapas del Procesamiento de Datos (Entrada, Clasificación, Procesamiento,

Almacenamiento, Control, Salida).Razones para automatizar los procesos. - Lenguajes de Programación: Concepto, Clasificación (Leng. Maquina, de Bajo Nivel y de

Alto Nivel).Tipos de Leng. Alto Nivel (Estructurados y Orientado a Objetos). - Ciclo de Vida de un Programa (Análisis, Diseño, Implementación). - Tipos de Datos: Numéricos (Enteros y Reales), Lógicos, Carácter. - Identificadores, Variables y Constantes.

____________________________________________________________________________

Introducción a la Programación

Un lenguaje de programación es aquel elemento dentro de la informática que nos permite crear programas mediante un conjunto de instrucciones, operadores y reglas de sintaxis; que pone a disposición del programador para que este pueda comunicarse con los dispositivos hardware y software existentes.

Un lenguaje de programación es un sistema notacional para describir computaciones de una forma legible tanto para la maquina como para el ser humano

El titulo dice definición de programación, no definición de lenguaje de programación. Programación es la acción de solucionar un problema, y/o satisfacer una necesidad de carácter informático. Dicha solución es generar un programa o software utilizando un determinado lenguaje de programación.

Es por ello que como objetivo de este curso es que el alumno conozca los principios de la programación y que aprenda aplicar las etapas de procesamiento de datos dentro de un proyecto real.

Page 5: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   5  

 

1. Sistema de Información

Introducción:

Un sistema de información es un conjunto de elementos que interactúan entre sí con el fin de apoyar las actividades de una empresa o negocio.

El equipo computacional: el hardware necesario para que el sistema de información pueda operar.

El recurso humano que interactúa con el Sistema de Información, el cual está formado por las personas que utilizan el sistema.

Un sistema de información realiza cuatro actividades básicas: entrada, almacenamiento, procesamiento y salida de información.

• Entrada de Información: Es el proceso mediante el cual el Sistema de Información toma los datos que requiere para procesar la información. Las entradas pueden ser manuales o automáticas.

Las manuales son aquellas que se proporcionan en forma directa por el usuario, mientras que las automáticas son datos o información que provienen o son tomados de otros sistemas o módulos.

Las unidades típicas de entrada de datos a las computadoras son las terminales, las cintas magnéticas, las unidades de diskette, los códigos de barras, los escáner, la voz, los monitores sensibles al tacto, el teclado y el mouse, entre otras.

• Almacenamiento de información: El almacenamiento es una de las actividades o capacidades más importantes que tiene una computadora, ya que a través de esta propiedad el sistema puede recordar la información guardada en la sección o proceso anterior. Esta información suele ser almacenada en estructuras de información denominadas archivos. La unidad típica de almacenamiento son los discos magnéticos o discos duros, los discos flexibles o diskettes y los discos compactos (CD-ROM).

• Procesamiento de Información: Es la capacidad del Sistema de Información para efectuar cálculos de acuerdo con una secuencia de operaciones preestablecida. Estos cálculos pueden efectuarse con datos introducidos recientemente en el sistema o bien con datos que están almacenados. Esta característica de los sistemas permite la transformación de datos fuente en información que puede ser utilizada para la toma de decisiones, lo que hace posible, entre otras cosas, que un tomador de decisiones genere una proyección financiera a partir de los datos que contiene un estado de resultados o un balance general de un año base.

• Salida de Información: La salida es la capacidad de un Sistema de Información para sacar la información procesada o bien datos de entrada al exterior. Las unidades típicas de salida son las impresoras, terminales, diskettes, cintas magnéticas, la voz, los graficadores y los plotters, entre otros.

Actividades que realiza un Sistema de Información: Entradas:

• Datos generales del cliente: nombre, dirección, tipo de cliente, etc. • Políticas de créditos: límite de crédito, plazo de pago, etc. • Facturas (interface automático). • Pagos, depuraciones, etc.

Page 6: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   6  

 

Proceso:

• Cálculo de antigüedad de saldos. • Cálculo de intereses moratorios. • Cálculo del saldo de un cliente.

Almacenamiento:

• Movimientos del mes (pagos, depuraciones). • Catálogo de clientes. • Facturas.

Salidas:

• Reporte de pagos. • Estados de cuenta. • Pólizas contables (interface automática) • Consultas de saldos en pantalla de una terminal.

Tipos y Usos de los Sistemas de Información

Durante los próximos años, los Sistemas de Información cumplirán tres objetivos básicos dentro de las organizaciones:

1. Automatización de procesos operativos. 2. Proporcionar información que sirva de apoyo al proceso de toma de decisiones.

3. Lograr ventajas competitivas a través de su implantación y uso.

Page 7: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   7  

 

2. Razones Para Automatizar Los Procesos

Seguridad de la información. Fácil y rápido acceso a la información. Reducción de espacio físico. Estandarización. Facilidad en la creación de copias de respaldo. Reducción de gastos. Data Ordenada y clasificada. Conservación de la información.

3. Conceptos De Programación

Definición.- Es un conjunto de instrucciones escritas en algún lenguaje de programación. El programa debe ser compilado o interpretado para poder ser ejecutado y así cumplir su objetivo

Lenguajes de Programación:

Definiciones:

a) Es un conjunto de símbolos junto a un conjunto de reglas. Constan de un léxico, una sintaxis y una semántica.

b) Sistema de símbolos y reglas que permite la construcción de programas con los que la computadora puede operar así como resolver problemas de manera eficaz.

c) Estos contienen un conjunto de instrucciones que nos permiten realizar operaciones de entrada / salida, calculo, manipulación de textos, lógica / comparación y almacenamiento / recuperación.

Tipos de lenguajes: Atendiendo al número de instrucciones necesarias para

realizar una tarea específica podemos clasificar los lenguajes informáticos en dos grandes bloques:

Máquina. Bajo nivel Alto nivel

Los lenguajes de programación se clasifican

• Lenguaje Máquina: Son aquellos cuyas instrucciones son directamente entendibles por la computadora y no necesitan traducción posterior para que la CPU pueda comprender y ejecutar el programa. Las instrucciones en lenguaje maquina se expresan en términos de la unidad de memoria más pequeña el bit (dígito binario 0 ó 1).

¿Qué conoces tú por léxico, sintaxis y semántica? Léxico: Conjunto de símbolos permitidos o vocabularioSintaxis: Reglas que indican cómo realizar las construcciones del lenguaje. Semántica: Reglas que permiten determinar el significado de cualquier construcción del lenguaje.

Page 8: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   8  

 

• Lenguaje de Bajo Nivel (Ensamblador): En este lenguaje las instrucciones se escriben en códigos alfabéticos conocidos como mnemotécnicos para las operaciones y direcciones simbólicas.

• Lenguaje de Alto Nivel: Los lenguajes de programación de alto nivel (BASIC, pascal, cobol, fortran, etc.) son aquellos en los que las instrucciones o sentencias a la computadora son escritas con palabras similares a los lenguajes humanos (en general en ingles), lo que facilita la escritura y comprensión del programa.

Tipos de Lenguaje Alto Nivel (Estructurados y Orientado a Objetos). • La programación estructurada es una forma de escribir programas de ordenador

(programación de computadora) de forma clara. Para ello utiliza únicamente tres estructuras: secuencia, selección e iteración.

A los finales de los años 1960 surgió una nueva forma de programar que no

solamente daba lugar a programas fiables y eficientes, sino que además estaban escritos de manera que facilitaba su comprensión posterior.

El teorema del programa estructurado, demostrado por Böhm-Jacopini, demuestra que todo programa puede escribirse utilizando únicamente las tres instrucciones de control siguientes:

• Secuencia • Instrucción condicional. • Iteración (bucle de instrucciones) con condición al principio.

Solamente con estas tres estructuras se pueden escribir todos los programas y aplicaciones posibles. Si bien los lenguajes de programación tienen un mayor repertorio de estructuras de control, éstas pueden ser construidas mediante las tres básicas.

Hoy en día las aplicaciones informáticas son mucho más ambiciosas que las

necesidades de programación existentes en los años 1960, principalmente debido a las aplicaciones gráficas, por lo que las técnicas de programación estructurada no son suficientes. Ello ha llevado al desarrollo de nuevas técnicas, tales como la programación orientada a objetos y el desarrollo de entornos de programación que facilitan la programación de grandes aplicaciones.

• La programación orientada a objetos

La orientación a objetos promete mejoras de amplio alcance en la forma de diseño, desarrollo y mantenimiento del software ofreciendo una solución a largo plazo a los problemas y preocupaciones que han existido desde el comienzo en el desarrollo de software: la falta de portabilidad del código y reusabilidad, código que es difícil de modificar, ciclos de desarrollo largos y técnicas de codificación no intuitivas.

Un lenguaje orientado a objetos ataca estos problemas. Tiene tres características básicas: debe estar basado en objetos, basado en clases y capaz de tener herencia de clases. Muchos lenguajes cumplen uno o dos de

Page 9: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   9  

 

estos puntos; muchos menos cumplen los tres. La barrera más difícil de sortear es usualmente la herencia.

Programa Fuente.

• Describe el argumento escrito por el programador que da inicio al desarrollo de su obra de software.

• No se inclina por el software libre o propietario, porque está destinado al programador que lo crea y modifica. Es por eso, que existen luego otras denominaciones, como Código Abierto (Open Source), el cual hace posible que el acceso al "Código Fuente" del programa no esté limitado a su autor.

• Fuente También denominado fuente o texto fuente. Es el texto que contiene las instrucciones del programa, escritas en el lenguaje de programación.

Intérpretes y Compiladores

Los compiladores, los intérpretes y los ensambladores se encargan de traducir lo que haya escrito en lenguaje de alto nivel (código fuente) y lo convierten a código objeto (casi ejecutable).

Compilado Es un programa que traduce un programa escrito en un lenguaje de alto nivel, en un programa en lenguaje de máquina que la computadora es capaz de entender y ejecutar directamente. Un compilador es un tipo especial de programa, en cuanto a que sus entradas o datos son algún programa y su salida es otro programa. Para evitar confusiones, solemos llamar programa fuente o código fuente al programa de entrada, y programa objeto o código objeto a la versión traducida que el compilador produce. Código se usa frecuentemente para referirse a un programa o a una parte de él, sobre todo cuando se habla de programas

El compilador, informa al usuario de la presencia de errores en el programa fuente, pasándose a crear el programa objeto cuando está libre de errores. El código objeto puede ser ejecutado posteriormente. Una vez traducido un programa, su ejecución es independiente de su compilación. Involucra dos pasos en su operación:

1. Convertir código fuente a objeto 2. Ejecutar el código objeto

Las ventajas de los intérpretes son: o Resulta más fácil localizar y corregir errores (depuración de programas)

son más pedagógicos para aprender a programar.

Page 10: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   10  

 

o El programa es más fácil de desarrollar. Traducen programas de alto nivel. No se genera en la mayoría de los ficheros.

Con el intérprete, cada vez que necesitamos ejecutar el programa tenemos que volver a analizarlo porque no hay código objeto. Con el compilador, aunque más lenta la traducción, sólo se realiza una vez.

Ciclo de Vida de un Programa En este paso se determinan la información inicial para la elaboración del programa. Es donde se determina qué es lo que debe resolverse con el computador, de qué presupuestos se debe partir, etc. en definitiva, el planteamiento del problema, por ello se debe de seguir los siguientes pasos:

Análisis del Problema Esta fase requiere una clara definición donde se contemple exactamente lo que debe hacer el programa y el resultado o solución deseada. Dado que se busca una solución se precisan especificaciones de entrada y salida. Para poder definir bien un problema es conveniente responder a las siguientes preguntas:

• ¿Qué entradas se requieren? (cantidad y tipo) • ¿Cuál es la salida deseada? (cantidad y tipo) • ¿Qué método produce la salida deseada?

Diseño Es diseñar cualquier sistema nuevo o las aplicaciones que se requieren para satisfacer las necesidades. Esta actividad se debe dividir en: Operaciones de entrada/salida Cálculos Lógica/comparación Almacenamiento/ consulta En este paso se genera una solución con técnicas de programación como diseño descendente de programas, pseudocódigos, flujo gramas y estructuras lógicas.

Implementación Para implementar un algoritmo en la computadora, se debe ejecutar los siguientes pasos:

a) Codificación b) Compilación y ejecución c) Verificación d) Depuración e) Documentación

a) Codificación: Es la escritura en un lenguaje de programación de la representación de un algoritmo. Dado que el diseño del algoritmo es independiente del lenguaje de programación utilizado en su implementación, el código puede ser escrito con igual facilidad en un lenguaje o en otro.

b) Compilación y ejecución: Una vez que el algoritmo se ha convertido en un programa fuente, es preciso introducirlo en memoria mediante el teclado y

Page 11: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   11  

 

almacenarlo posteriormente en un disco. Esta operación se realiza con un editor de texto, posteriormente el programa fuente se convierte en un archivo de programa que se guarda en un disco.

c) Verificación: Consiste en verificar la funcionalidad del programa a través de varios métodos para detectar errores posibles. Métodos de Prueba: Chequeo de escritorio Prueba manual de datos de muestra Intento de traducción Prueba de datos de muestra en la computadora Prueba por un grupo selecto de usuarios potenciales.

Chequeo de Escritorio: El programador se sienta frente a un escritorio y corrige una impresión del programa. Revisa el listado línea por línea en busca de errores de sintaxis y lógica.

Prueba manual de datos de muestra: Se corre el programa en forma manual aplicando datos tanto correctos como incorrectos para comprobar que funciona correctamente.

Intento de Traducción: El programa corre en una computadora usando un programa traductor para convertirlo a lenguaje de máquina. Para ello debe estar ya libre de errores de sintaxis, de lo contrario serán identificados por el programa de traducción.

Prueba de datos de muestra en la computadora: Después del intento de traducción y corregidos los errores de sintaxis, se procede a buscar errores de lógica utilizando diferentes datos de muestra.

Prueba por un grupo selecto de usuarios potenciales: Esto se conoce como prueba beta. Se trata por lo general del paso final en la prueba de un programa. Usuarios potenciales ponen a prueba el programa y ofrecen retroalimentación.

d) Prueba y depuración del programa Depurar es correr el programa en una computadora y corregir las partes que no funcionan. En esta fase se comprueba el funcionamiento de cada programa y esto se hace con datos reales o ficticios. Cuando los programas están depurados, se prueban. Cuando los programas se depuran, se pueden encontrar los siguientes errores:

Errores de sintaxis o de compilación Errores de ejecución Errores de lógica Errores de especificación.

Errores de sintaxis o de compilación Es una violación de las reglas del lenguaje de programación. Son más fáciles de corregir, ya que son detectados por el compilador (posible error de escritura).

Errores de Ejecución Se deben generalmente a operaciones no permitidas como dividir por cero, leer un dato no numérico en una variable numérica, exceder un rango de valores permitidos, etc. Se detectan porque se produce una parada anormal del programa durante su ejecución.

Errores de Lógica Corresponden a la obtención de resultados que no son correctos y la única manera de detectarlos es realizando suficientes pruebas del programa. Son los más difíciles de corregir, no sólo por la dificultad de detectarlos, sino porque se deben a la propia concepción y diseño del programa.

Page 12: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   12  

 

Errores de Especificación Es el peor tipo de error y el más difícil de corregir. Se deben a mal diseño del programa posiblemente por mala comunicación usuario programador y se detectan cuando ya se ha concluido el diseño e instalación del programa, lo cual puede implicar repetir gran parte del trabajo realizado.

e) Documentación del programa

Consiste en describir por escrito a nivel técnico los procedimientos relacionados con el programa y su modo de uso. También se debe documentar el programa para que sea más entendible.

¿Para quiénes son la documentación? Usuarios (Digitadores) Operadores Programadores Analistas de sistemas

Documentos que se elaboran: Manual de Usuario y Manual del Analista. A los usuarios se les elabora un manual de referencia para que aprendan a utilizar el programa. Esto se hace a través de capacitaciones y revisión de la documentación del manual de usuario. El manual del usuario no está escrito a nivel técnico sino al de los distintos usuarios previstos y explica en detalle cómo usar el programa: descripción de las tareas que realiza el programa, instrucciones necesarias para su instalación puesta en marcha y funcionamiento, recomendaciones de uso, menús de opciones, método de entrada y salida de datos, mensajes de error, recuperación de errores, etc.

A los operadores por si se presentan mensajes de error, sepan cómo responder a ellos. Además que se encargan de darle soporte técnico al programa.

A los programadores a través del manual del analista para que recuerden aspectos de la elaboración del programa o en caso que otras personas puedan actualizarlo o modificarlo (darle mantenimiento) y no son necesariamente las personas que lo diseñaron. Es por ello, que la documentación debe contener algoritmos y flujo gramas de los diferentes módulos que lo constituyen y las relaciones que se establecen entre ellos; listados del programa, corridas, descripción de variables que se emplean en cada módulo, cuáles son comunes a diferentes módulos y cuáles locales; descripción de los ficheros de cada módulo y todo lo que sea de importancia para un programador.

A los analistas de sistemas que son las personas que deberán proporcionar toda la información al programador. Estos se encargan de hacer una investigación previa de cómo realizar el programa y documentar con las herramientas necesarias para que el programador pueda desarrollar el sistema en algún lenguaje de programación adecuado.

Mantenimiento del programa

Es el paso final del desarrollo del software. Alrededor del 75% del costo total del ciclo de vida de un programa se destina al mantenimiento. El propósito del mantenimiento es garantizar que los programas en uso estén libres de errores de operación y sean eficientes y efectivos.

Page 13: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   13  

 

Identificadores

Los Identificadores son palabras que de alguna manera ayudan a identificar a un conjunto de datos.

Los identificadores tienen las siguientes reglas: o No debe tener espacios en blanco

o No comenzar por un carácter especial (·,·,#,%,?¿,etc.).

o Su nombre debe ser corto

o Siempre debe de comenzar por una letra.

Ejemplos:

Identificador que agrupe a: Juan, William, Angie, Sebastián Por lo tanto estamos hablando de Nombres.

Identificador que agrupe a: Pérez, López, Aquino, Ángeles, Florián Por lo tanto estamos hablando de Apellidos

Identificador que agrupe una evaluación final : Evaluación final Recuerda que debe de respetar las reglas por lo tanto puede ser:

Eva_Final o quizás pueda ser Evaluacion_F de acuerdo a tu criterio.

Establecer un identificador corto para los: o Nombres y Apellidos Nom_Ape

o Edades Eds

o Primera Nota Nota_1

o Promedio de Practicas Prom_Pract o Estado Civil Est_Civ

o Sueldo Básico Suel_B

o Sueldo Neto Suel_N

o Cantidad de Horas Cant_H

o Costo por hora Cst_H

Ejercicios Propuestos

a) Definir los identificadores para agrupar:

_________________ Perú, Chile, Ecuador, España, etc.

_________________ 15, 12, 10, 5, 13

_________________ Chorrillos, Villa el Salvador, Comas, Puente Piedra.

Page 14: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   14  

 

Dato. Es la expresión general que describe los objetos con los cuales opera el programa. Por ejemplo, la edad y el domicilio de una persona, forman parte de sus datos. Los datos se sitúan en objetos llamados variables.

Tipos de Datos

Los tipos de datos son:

Enteros Numéricos Decimales

Caracteres 1 sola letra De 2 a más Letras

Verdaderos Lógicos Falso

Ejemplos:

Qué tipo de dato seria para establecer a los:

- Nombres _____________________ - Apellidos ______________________ - Notas ______________________ - Promedio ____________________ - Peso de una persona ____________________ - Edad ____________________

Son aquellos cuyo contenido es una serie de dígitos (0-9) que en conjunto nos proporcionan un valor numérico ya sea entero o real y pueden ser precedidos de un signo + ó -.

Tipos de datos Alfanuméricos son aquellos cuyo contenido son letras del abecedario, números o caracteres especiales o bien una combinación de ellos.

Page 15: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   15  

 

Contenidos 

- Operadores:Aritméticos (+, -, *, /, MOD, ^ ). Jerarquía.Lógicos,Relacionales - Expresiones Aritméticas, Lógicas y Relacionales.Operador de Asignación - Algoritmo: Concepto, Características, Representación (Diagramas de Flujo y

Pseudocódigo). - Estructura de un Pseudocódigo. Resolución de Problemas usando Pseudocódigo. - Estructura Secuencial - Instrucciones: Instrucción de entrada de datos (leer), Instrucciones de Manejo de

Datos, Instrucción de salida de Resultados (escribir). - Ejercicios

____________________________________________________________________________

Introducción a la Programación - Pseudocódigos

El objetivo de esta semana es familiarizar al alumno con el diseño de algoritmos para la resolución de problemas por computadora basándose en el paradigma de la programación estructurada y utilizando un lenguaje de especificación de algoritmos.

Sus objetivos específicos serían:

• Conocer los elementos principales utilizados en el diseño de algoritmos. • Conocer los fundamentos de la programación estructurada. • Utilizar las estructuras de datos fundamentales.

Tipos de Operadores:

Entre los tipos de operadores tenemos: a) Aritméticos (su resultado es un número): potencia, * , / , mod, div, + , - b) Relacionales (su resultado es un valor de verdad): =, <, >, <=, >=, <> c) Lógicos o Booleanos (su resultado es un valor de verdad): not, and, or d) Alfanuméricos : + (concatenación) e) Asociativos. El único operador asociativo es el paréntesis ( ) , el cual permite indicar en

qué orden deben realizarse las operaciones. Cuando una expresión se encuentra entre paréntesis, indica que las operaciones que están dentro de ellos debe realizarse

Page 16: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   16  

 

primero. Si en una expresión se utilizan más de un paréntesis se deberá proceder primero con los que se encuentren más hacia el centro de la expresión.

Ejemplos:

6^(1/2)

6^2

28+29*(14^2)

Jerarquía de Operaciones:

o ( ) o Potencia o Producto y división o Div y Mod o Suma y resta o Concatenación o Relacionales o Negación o And o Or

Datos de tipo entero tienen los operadores +, -, *, /, div, mod, abs, sqr, sqrt, ln, exp, sin, cos, tan, pow, etc. Los datos de tipo real tienen los mismos operadores enteros y además trunc, round, int, y otros. La suma y multiplicación de datos de tipo real cumplen la propiedad conmutativa, pero no siempre la asociativa y la distributiva.

Para resolver una expresión aritmética se deben seguir las siguientes reglas: Primero se resuelven las expresiones que se encuentran entre paréntesis. Se procede aplicando la jerarquía de operadores. Al evaluar una expresión, si hay dos operadores con la misma jerarquía, se procede a

evaluar de izquierda a derecha. Si hay expresiones relacionales, se resuelven primero paréntesis, luego se encuentran

los valores de verdad de las expresiones relacionales y por último se aplica jerarquía de operadores lógicos. En caso de haber iguales, proceder de izquierda a derecha.

EJERCICIOS.

a. Establecer las expresiones matemáticas a expresiones algorítmicas.

Page 17: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   17  

 

b. Hallar el resultado de esta expresión según la jerarquía de operadores.

4 + 1 * 5 ^ 2 - 1

9 / 3 + 4 ^ 2 - 5 * 1 + 9 / -2 + 3

5 / 2 + 3 - 4 * 5 / 2

(4 + 1) * 5 ^ 2 – 1

17 / 2 + 3 ^ 2 ^ 2 - 2 * 2 / 2

c. Mencione los valores que puedan tener:

Donde: N1=5 N2=2 N3=1

U=N3*2

Q=U/2+N1

T=Q^0

¿Cuál es el valor de T?

T=____

Y=N1+N3

Z=Y+N2

¿Cuál es el valor de Z?

Z=___  

Page 18: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   18  

 

Asignación de Datos

1. .- La instrucción de asignación se usa para asignar valores a variables utilizando la

igualdad (=).

La expresión podrá ser un valor fijo o un cálculo.

En el caso de ser un dato de tipo carácter este estará entre comillas “” , solo en este

caso.

Ejemplo:

• A=2

• Edad=33

• Palabra=”SISE”

• Prom=(a+b+c)/3

• Raiz=(5^(1/3))

• Direccion=”Mz B4 - Lt4”

Sección de Declaración de Datos (Variables – Constantes).

Sección de Variable Las variables son zonas de memoria cuyo contenido cambia durante la fase de procesamiento de información. Son objetos cuyo valor puede ser modificado a lo largo de la ejecución de un programa. Ejemplos:

Nombres

Fecha_Nac

Apellidos Direccion Edades Dni Telefonos

Como declarar una Variable

Identificador=Expresión

Tipo de Dato: Identificador

Page 19: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   19  

 

Ejemplos:

o Caracter: Nombres o Caracter: Apellidos o Entero: Edad o Decimal: Promedio o Lógico: Bandera

Sección Constantes (Literales)

Son objetos cuyo valor permanece invariable a lo largo de la ejecución de un programa. Una constante es la denominación de un valor concreto, de tal forma que se utiliza su nombre cada vez que se necesita referenciarlo.

Como declarar una Constante

Ejemplos:

o Instituto=”SISE” o Mes_Aniv=”Noviembre” o Edad=25 o Igv=0.19 o Existe_Codigo=verdadero

b) Defina el tipo de dato que corresponda a cada identificador:

_____________ Promedios

_____________ Edades

_____________ Año de Nacimiento

_____________ Correo electrónico

c) Define tus propios valores para los siguientes Literales:

o Codigo ____________________ o Direccion ____________________ o Telefono ____________________ o Peso ____________________ o Talla ____________________ o Estado_Civil ____________________

d) Otros propuestos

Estos nombres de variable son válidos. • Edad • fechaNacimiento • jugador1 • iva16porCiento • vidasRestantes

Identificador=Valor

Page 20: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   20  

 

Estos otros nombres no son válidos • 2jugadores (No empieza por una letra) • año (Contiene la ñ) • elPatioDeMiCasaEsParticularYCuandoLlueveSeMoja (Muy Largo) • puntuación (Lleva acento)

Algoritmo: Definiciones:

a) Es un Método para resolver un problema mediante una serie de pasos precisos, definidos y finitos. Un algoritmo es una serie de operaciones detalladas, en otras palabras un algoritmo es un conjunto de reglas para resolver una cierta clase de problemas y se puede formular de muchas formas con el cuidado de que no exista ambigüedad.

b) Los algoritmos son modos de resolución de problemas, cabe aclarar que no sólo son aplicables a la actividad intelectual, sino también a todo tipo de problemas relacionados con actividades cotidianas.

c) El algoritmo podría confundirse con lo comúnmente conocido como "receta de cocina", sin embargo la diferencia estriba en que el alumno o los alumnos, al elaborar un algoritmo tienen que pensar en las instrucciones a seguir lo que en una receta serían pasos ya establecidos.

Características

Preciso (debe indicar el orden de realización en cada paso y no puede tener ambigüedad).

Definido (si se sigue dos veces, obtiene el mismo resultado cada vez) Finito (tiene fin; un número determinado de pasos). Debe ser Sencillo, Legible. Modular. Eficiente y Efectivo. Se ha de desarrollar en el menor tiempo posible. Correcto. Todo Algoritmo debe tener cero ó más entradas. Debe tener al menos una salida y ésta debe ser tangible.

Ejemplos:

1) PROBLEMA: Un estudiante se encuentra en su casa (durmiendo) y debe ir a la universidad (a tomar la clase de programación!!), ¿qué debe haga el estudiante?

ALGORITMO:

Inicio Dormir haga 1 hasta que suene el despertador (o lo llame la mamá). Mirar la hora. ¿Hay tiempo suficiente? Si hay, entonces Bañarse. Vestirse. Desayunar. Sino, Vestirse.

Page 21: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   21  

 

Cepillarse los dientes. Despedirse de la mamá y el papá. ¿Hay tiempo suficiente? Si, Caminar al paradero. Sino, Correr al paradero. Hasta que pase un bus para la universidad haga: Esperar el bus Ver a las demás personas que esperan un bus. Tomar el bus. Mientras no llegue a la universidad haga: Seguir en el bus. Pelear mentalmente con el conductor. Timbrar. Bajarse. Entrar a la universidad. Fin

2) PROBLEMA: Cambiar la rueda pinchada de un automóvil teniendo un gato mecánico en buen estado, una rueda de reemplazo y una llave inglesa.

ALGORITMO:

Inicio PASO 1. Aflojar los tornillos de la rueda pinchada con la llave inglesa. PASO 2. Ubicar el gato mecánico en su sitio. PASO 3. Levantar el gato hasta que la rueda pinchada pueda girar libremente. PASO 4. Quitar los tornillos y la rueda pinchada. PASO 5. Poner rueda de repuesto y los tornillos. PASO 6. Bajar el gato hasta que se pueda liberar. PASO 7. Sacar el gato de su sitio. PASO 8. Apretar los tornillos con la llave inglesa. Fin

3) PROBLEMA: Realizar la suma de los números 2448 y 5746.

ALGORITMO:

Inicio PASO 1. Colocar los números el primero encima del segundo, de tal manera que las unidades, decenas, centenas, etc., de los números queden alineadas. Trazar una línea debajo del segundo número. PASO 2. Empezar por la columna más a la derecha. PASO 3. Sumar los dígitos de dicha columna. PASO 4. Si la suma es mayor a 9 anotar un 1 encima de la siguiente columna a la izquierda y anotar debajo de la línea las unidades de la suma. Si no es mayor anotar la suma debajo de la línea. PASO 5. Si hay más columnas a la izquierda, pasar a la siguiente columna a la izquierda y volver a 3. PASO 6. El número debajo de la línea es la solución. Fin

Page 22: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   22  

 

Representación de Algoritmos

Para representar nuestros algoritmos podemos usar:

A. Diagramas de Flujos B. Diagramas N-S C. Pseudocódigos, Otros

A. Diagramas de Flujos

Es la representación gráfica de flujo de un algoritmo o de secuencia rutinaria. Se basan en la utilización de diversos símbolos para representar operaciones específicas. Se les llama diagramas de flujo porque los símbolos utilizados se conectan por medio de flechas para indicar la secuencia de la operación.

Símbolo Descripción

Inicio / Terminación. Este símbolo se utiliza para señalar el comienzo así como el final de un diagrama. Tradicionalmente se colocan las palabras “INICIO” ó “FIN” dentro de la figura para hacerlo más explícito.

Entrada de datos. En este símbolo se indican los valores iníciales que deberá recibir el proceso. Esto se hace asignándoles letras o nombres de variables para cada uno de los valores y anotando estas letras en el interior de la figura.

Este símbolo siempre deberá tener al menos una conexión entrante (generalmente del inicio) y una de salida.

Proceso de datos. Este símbolo lo utilizaremos para señalar operaciones matemáticas, aritméticas o procesos específicos que se realicen con nuestros datos.

La manera de anotar dichos procesos, puede ser mediante una descripción breve de la operación o mediante una asignación de dicha operación hacia una variable como por ejemplo: R = A + B

Decisión. Este símbolo nos representa una disyuntiva lógica o decisión. En su interior se anota una instrucción o pregunta que pueda ser evaluada como cierta o falsa y que determine el flujo del programa.

Page 23: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   23  

 

Desplegado de información. Este símbolo se utiliza para mostrar un resultado, el cual puede representar la solución al problema que se pretende resolver y que fue conseguida a través del resto del diagrama. Dentro de su interior se anotará la variable con el resultado final o el mensaje que represente el resultado del algoritmo. Generalmente veremos este símbolo muy cerca del final del proceso y precedido por el símbolo de terminación.

Este símbolo siempre deberá tener al menos una conexión de entrada y una de salida.

Flechas: Indica el sentido del flujo del proceso, conectando al proceso

En la diagramación, también contamos con una serie de símbolos auxiliares que no intervienen en el proceso del algoritmo, pero que pueden ser útiles para ayudarnos a dar claridad a nuestros diagramas, algunos de ellos son los siguientes:

Símbolo Descripción

Conector. Este símbolo se utiliza para indicar un salto dentro del diagrama. Se utiliza con el propósito de facilitar la disposición plana de un diagrama y evitar el cruce excesivo de líneas a través del mismo.

Este conector va asociado a un conector “gemelo” y junto con él, representa una puerta de entrada y de salida para el flujo del diagrama, es decir que cuando una flecha termina en un conector marcado con la letra “A”, se continuará el diagrama a partir de otro conector marcado con la misma letra tal como si se tratara de una línea continua in interrumpida.

Conector de página. Este conector es idéntico en funcionamiento que el anterior, pero su forma pentagonal lo distingue y nos indica que debemos buscar el “gemelo” en una página distinta de la actual. Este conector lleva asociado una especie de salto entre páginas.

Ejemplo:

Page 24: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   24  

 

B. Diagramas N-S (I. Nassi y B. Scheneiderman)

También conocido como diagrama de Chapin es una técnica de especificación de algoritmos que

combina la descripción textual, propia del pseudocódigo, con la representación gráfica del

diagrama de flujo.

El diagrama N-S cuenta con un conjunto limitado de símbolos para representar los pasos del

algoritmo, por ello se apoya en expresiones del lenguaje natural; sin embargo, dado que el

lenguaje natural es muy extenso y se presta para la ambigüedad, solo se utiliza un conjunto de

palabras, a las que se denomina palabras reservadas

C. Pseudocódigo

Un pseudocódigo (falso lenguaje), es una serie de palabras léxicas y gramaticales referidos a los lenguajes de programación, pero sin llegar a la rigidez de la sintaxis de estos ni a la fluidez del lenguaje coloquial. Esto permite codificar un programa con mayor agilidad que en cualquier lenguaje de programación, con la misma validez semántica, normalmente se utiliza en las fases de análisis o diseño de Software, o en el estudio de un algoritmo. Forma parte de las distintas herramientas de la ingeniería de software. Es, netamente, lenguaje de tipo informático.

Mezcla de lenguaje de programación y español (o ingles o cualquier otro idioma) que se emplea, dentro de la programación estructurada, para realizar el diseño de un programa. En esencial, el Pseudocódigo se puede definir como un lenguaje de especificaciones de algoritmos. Es la representación narrativa de los pasos que debe seguir un algoritmo para dar solución a un problema determinado. El Pseudocódigo utiliza palabras que indican el proceso a realizar.

Ventajas de utilizar un Pseudocódigo a un Diagrama de Flujo

• Ocupa menos espacio en una hoja de papel

• Permite representar en forma fácil operaciones repetitivas complejas

• Es muy fácil pasar de Pseudocódigo a un programa en algún lenguaje de programación.

• Si se siguen las reglas se puede observar claramente los niveles que tiene cada

operación.

Estructura de un Pseudocódigo

a) Encabezado de programa.- Se establece un nombre para el programa *

b) Sección de Declaración- Permite establecer las Variables y la Constantes

c) Cuerpo del Programa.- se establece con la palabra Inicio

Inicio ………….. ………….. ………….. ………….. ……………… Fin

Page 25: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   25  

 

d) Instrucciones.- son acciones o tareas que se establecen como una expresión o

una asignación de datos.

e) Termino del programa.- se establece con la palabra Fin

Tipos de Instrucciones:

1. Instrucciones de inicio/fin.

2. Instrucciones de asignación.

3. Instrucciones de lectura (entrada).

4. Instrucciones de escritura (salir).

1. Instrucciones de inicio/fin Se refiere a que se debe de establecer un Inicio y un final

Inicio ……………… ……………….. ………………. ………………. Fin

2. Instrucciones de Asignación.- se le establecer un tipo de dato o una expresión.

3. Instrucciones de Lectura.- se refiere al ingreso de datos que se tendrá que establecer para cada identificador. Se realizara con la palabra Leer

algoritmo <nombre_del_algoritmo>

//Secciones de declaraciones

[constantes

//declaraciones de constantes]

[variables

//declaraciones de variables]

//Cuerpo del programa

Inicio

<Acciones>

fin

<variable> = <expresión>

Page 26: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   26  

 

Formas:

leer (ident_1) o leer (ident1,ident2, ident3,….) leer (ident_2) leer (ident_3)

La lectura en un Pseudocódigo puede ser uno por uno o separados por comas

4. Instrucciones de Escritura.- Una instrucción de salida (o simplemente salida) consiste en llevar hacia el exterior los valores (datos) obtenidos de la evaluación de una lista de expresiones. Normalmente, los datos son enviados a la salida estándar (la pantalla), pero, también existen otros dispositivos de salida (la impresora, el plotter,...). Se realiza con la palabra Escribir

Formas:

escribir (expresión1) o escribir (expresión1, expresión1, expresión3) escribir (expresión2) escribir (expresión3)

Ejemplo de Pseudocódigo:

Ejemplo 1: Mostrar los datos asignados de la siguiente manera-

algoritmo Entrada_Salida Constante nombre = "Timoteo" edad = 27, hijos = 2 Inicio escribir (nombre, " tiene ", edad, " años") escribir (nombre, " tiene ", hijos, " hijos") Fin_Programa Por pantalla aparecerá:

escribir(<variable>,<expresión_literal>) 

leer(<Variable>)

Page 27: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   27  

 

Ejemplo 2:

Realizar el pseudocódigo de un programa que permita calcular el área de un

rectángulo. Se debe introducir la base y la altura para poder realizar el cálculo.

algoritmo área Variables Entero: BASE, ALTURA, AREA Inicio

Leer (BASE, ALTURA)

AREA = BASE * ALTURA

Escribir( “El área del rectángulo es “, AREA)

Fin_Programa

Ejemplo 3:

Realizar el pseudocódigo que permita al usuario introducir por teclado dos notas,

calculando la suma y el producto de las notas.

algoritmo Suma_Producto

Variables

Entero: NOTA1, NOTA2, SUMA, PRODUCTO

Inicio

Leer (NOTA1, NOTA2)

SUMA = NOTA1 + NOTA2

PRODUCTO = NOTA1 * NOTA2

Escribir “La suma de las dos notas es:” SUMA

Escribir “El producto de las dos notas es:”, PRODUCTO

Fin_programa

Page 28: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   28  

 

Contenidos 

- Estructuras Secuenciales con uso de casos comerciales - Uso de cálculos matemáticos (use el operador +,-,*,/,raíz, exponente, etc) - Elaboración Caso Práctico. Explicación de uso de porcentajes, uso de promedios

aritméticos, armónicos, etc. - Propuesta de los trabajos grupales (elaborar en papelotes los pseudocódigos

propuestos)

____________________________________________________________________________________

Estructuras Secuenciales La estructura secuencial es aquella en la que una acción (instrucción) 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.

Page 29: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   29  

 

Ejemplos:

1. Hallar la suma de tres números

Ejemplo:

Variables

entero: Num1, Num2, Suma

INICIO leer (Num1,Num2,Num3)

Suma=Num1+Num2+Num3 escribir (Suma)

FIN

2. Mostrar el promedio de 5 notas

Ejemplo:

Variables

entero: n_1, n_2, n_3, n_4, n_5

real: promedio

INICIO leer (n_1, n_2, n_3, n_4, n_5)

promedio=( n_1+ n_2+ n_3+ n_4+ n_5)/5 escribir (promedio)

FIN

3. Mostrar la quinta parte de la suma de 3 números

Variables

entero: numA, numB, numC,suma

real: quinta

INICIO leer (numA, numB, numC)

suma=( numA+ numB+ numC)

quinta=suma/5 escribir (suma,quinta)

FIN

Page 30: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   30  

 

4. Mostrar la edad de una persona de acuerdo al año que nació.

Constante

a_Actual=2009

Variables

entero: a_Nac,edad

INICIO leer (a_Nac)

edad=(a_Actual – a_Nac)

escribir (edad)

FIN

5. Dada las horas trabajadas de una persona y el valor por hora.

Calcular su salario e imprimirlo Ejemplo:

Variables

decimal: HorasT,CostoH,salario

INICIO leer (HorasT,CostoH)

salario=HorasT * CostoH

escribir (salario)

FIN

6. Leer el sueldo de tres empleados y aplicarles un aumento del 10, 12 y 15% respectivamente. Desplegar el resultado.

Variables

decimal: Suel_1, Suel_2, Suel_3,Aum_1,Aum_2,Aum_3,Nsuel_1, Nsuel_2, Nsuel_3

INICIO leer (Suel_1, Suel_2, Suel_3)

Aum_1= Suel_1 * 0.10

Aum_2= Suel_2 * 0.12

Aum_3= Suel_3 * 0.15

Nsuel_1=Suel_1+Aum_1

Nsuel_2=Suel_2+Aum_2

Nsuel_3=Suel_3+Aum_3

escribir (Aum_1,Aum_2,Aum_3,Nsuel_1, Nsuel_2, Nsuel_3)

FIN

Page 31: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   31  

 

7. Programa que pida el precio de un artículo y calcule su valor aplicándole un 19% de IGV.

Variables

decimal: PrecioA, igv,Nprecio

INICIO leer (PrecioA)

igv=PrecioA * 0.19

Nprecip=PrecioA+igv

escribir (Nprecip)

FIN

8. Realiza un programa que pida el valor de 3 artículos y muestre el total y la media Aritmética.

Variables

decimal: Art_1, Art_2, Art_3,Prom_a

INICIO leer (Art_1, Art_2, Art_3)

Prom_a= (Art_1 + Art_2 + Art_3)/3

escribir (Prom_a)

FIN

9. Escriba un programa que calcule el área de un triángulo rectángulo, dada la altura y la base.

A=(b*c)/2

Variables

entero: b,c

decimal: A

INICIO leer (b,c)

A= (b*c)/2

escribir (A)

FIN

Page 32: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   32  

 

10. Convertir de grados Celsius a grados Fahrenheit.

 

Variables

entero: c

decimal: f

INICIO leer (C)

F= 1.8 * C + 32

escribir (F)

FIN  

11. Se tiene un monto en soles, deberá de mostrarlo en dólares.

Variables

decimal: Mont_Soles, Mont_Dolares

decimal: f

Constante

Tc=2.87

INICIO leer (Mont_Soles)

Mont_Dolares= Mont_Soles * Tc

escribir (Mont_Dolares)

FIN

12. Convertir una cantidad de metros a centímetros

Variables

decimal: Cant_Metros,Cant_Centimetros

Constante

centi=100

INICIO leer (Cant_Metros)

Cant_Centimetros= Canti_Metros * centi

escribir (Mont_Dolares)

FIN

Page 33: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   33  

 

EJERCICIOS DE APLICACIÓN

1. Escribir un programa que calcule el salario de un trabajador de la

manera siguiente. El trabajador cobra un precio fijo por hora y se le descuento el 10% en concepto de impuesto sobre la renta. El programa debe pedir el nombre del trabajador, las horas trabajadas y el precio que cobra por hora. Como salida debe imprimir el sueldo bruto, el descuento de renta y el salario a pagar.

2. Dada una medida de tiempo expresada en horas, minutos y segundos con valores arbitrarios, elabore un programa que transforme dicha medida en una expresión correcta. Por ejemplo, dada la medida 3h 118m 195s, el programa deberá obtener como resultado 5h 1m 15s.

3. Elabore un programa que realice la conversión de cm. a pulgadas.

Donde 1cm = 0.39737 pulgadas. Por lo tanto, el usuario proporcionara el dato de N cm. y el programa dirá a cuantas pulgadas es equivalente.

4. Elabore un programa que realice la conversión de pulgadas a cm.

Donde 1 cm. = 0.39737 pulgadas. Por lo tanto, el usuario proporcionara el dato de N pulgadas y el programa dirá a cuantos centímetros equivale.

5. Elabore un programa que realice la conversión de metros a pies Donde

1 m = 3.2808 pies. Por lo tanto, el usuario proporcionara el dato de N m y el programa dirá a cuantos pies equivale.

6. Elabore un programa que realice la conversión de pies a metros

Donde 1 m = 3.2808 pies. Por lo tanto, el usuario proporcionara el dato de N pies y el programa dirá a cuantos metros equivale.

7. Elabore un programa que realice la conversión de kilogramos a libras

Donde 1 Kg. = 2.2046 libras. Por lo tanto, el usuario proporcionara el dato de N Kg. y el programa dirá a cuantas libras equivale.

8. Elabore un programa que realice la conversión de libras a kilogramos

Donde 1 Kg. = 2.2046 libras. Por lo tanto, el usuario proporcionara el dato de N libras y el programa dirá a cuantos kilogramos equivale.

9. Se desea encontrar la longitud y el área de un círculo de radio 5.

Modificar el problema anterior para que sea capaz de calcular el área y la longitud de un círculo de cualquier radio requerido.

10. Escribe un programa que calcule el área de un círculo de cualquier radio.

L = 2 * pi * R (asignación del valor de la longitud)

Page 34: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   34  

 

11. Escribe un programa que lea una cantidad depositada en un banco y que calcule la cantidad final después de aplicarle un 20% de interés.

12. Un maestro desea saber qué porcentaje de hombres y que porcentaje de

mujeres hay en un grupo de estudiantes.

13. Un alumno desea saber cuál será su calificación final en la materia de Lógica Computacional. Dicha calificación se compone de tres exámenes parciales cuya ponderación es de 30%, 30% y 40%.

14. Una farmacia aplica al precio de los remedios el 10% de descuento.

Hacer un programa que ingresado el costo de los medicamentos calcule el descuento y el precio final.

15. Diseñar un algoritmo que lea cuatro variables y calcule e imprima su

producto, suma y media aritmética.

16. Realiza un programa que dados el voltaje en voltios y la resistencia en ohmios, nos calcule la intensidad, mediante la aplicación de esta fórmula:

intensidad = Voltaje / Resistencia

17. Suponga que un individuo desea invertir su capital en un banco y desea saber cuánto dinero ganará después de un mes si el banco paga a razón de 2% mensual. Realiza un programa que calcule dicha ganancia teniendo como entrada el capital invertido.

18. Un vendedor recibe mensualmente un sueldo base más un 10% extra

por comisión de sus ventas. El vendedor desea saber cuánto dinero obtendrá por concepto de comisiones por las tres ventas que realiza en el mes y el total que recibirá en el mes tomando en cuenta su sueldo base y comisiones.

19. PC:Se lee un número correspondiente al radio de la circunferencia, visualizando la longitud de la misma y el área del círculo correspondiente. Se recuerda: AREA = PI * RADIO2 y LONGITUD = 2 * PI * RADIO

20. Se tiene que calcular el área de un cuadrado, teniendo en cuenta que: AREA= lado * lado = l2

21. Se tiene que calcular el área de un rombo, teniendo en cuenta que:

Page 35: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   35  

 

22. Haga tabla de seguimiento para encontrar los resultados de las variables dadas en el siguiente algoritmo:

Algoritmo Verifica Entero: x, y, z Inicio

X <- 40 Y <- 25 Z <- x – y Y <- X Escribir ( y, x) Escribir (z)

Fin.

Page 36: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   36  

 

Temass 

- Historia acerca del origen del Lenguaje JAVA. Características. - Entornos de Desarrollo Integrado (IDE):JDeveloper, JCreator, NetBeans, Eclipse, etc. - Diferencias entre los entornos.JVM: Java Virtual Machine - Creación de Aplicaciones usando la IDE de JDeveloper. Descripción del Entorno de

Trabajo. - Comentarios, Separadores e Identificadores (Palabras Clave y Reservadas). Tipos de

Datos. - Variables Primitivas y Literales (Constantes) - Operadores Aritméticos, de Asignación, Lógicos y Relacionales, de Concatenación. - Crear una Aplicación usando el contenedor JFrame. Propiedades. - Controles Básicos de JAVA - SWING (JLabel, JTextField, JButton). - Estandarización de prefijos (lbl, txt, btn) - Ingreso y Salida de Datos (getText, setText).

____________________________________________________________________________________

Introducción al Lenguaje O.O. Java es un lenguaje de programación orientado a objetos desarrollado por Sun Microsystems a principio de los años 90´s. En Diciembre de 1950 Patrick Naughton, ingeniero de Sun Microsystems, reclutó a varios colegas entre ellos James Gosling y Mike Sheridan para trabajar sobre un nuevo proyecto conocido como "El proyecto verde".

Con la ayuda de otros ingenieros, empezaron a trabajar en una pequeña oficina en Sand Hill Road en Menlo Park, California. Y así interrumpió todas las comunicaciones regulares con Sun y trabajó sin descanso durante 18 meses. Intentaban desarrollar una nueva tecnología para programar la siguiente generación de dispositivos inteligentes, en los que Sun veía un campo nuevo a explorar. Crear un lenguaje de programación fácil de aprender y de usar. En un principio se consideraba C++ como lenguaje a utilizar, pero tanto Gosling como Bill Joy lo encontraron inadecuado. Gosling intentó primero extender y modificar C++ resultando el lenguaje C++ ++ - (++ - porque se añadían y eliminaban características a C++), pero lo

Page 37: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   37  

 

abandonó para crear un nuevo lenguaje desde cero al que llamo Oak (roble en inglés, según la versión más aceptada, por el roble que veía a través de la ventana de su despacho). El resultado fue un lenguaje que tenía similitudes con C, C++ y Objetive C y que no estaba ligado a un tipo de CPU concreta. Mas tarde, se cambiaría el nombre de Oak a Java, por cuestiones de propiedad intelectual, al existir ya un lenguaje con el nombre de Oak. Se supone que le pusieron ese nombre mientras tomaban café (Java es nombre de un tipo de café, originario de Asia), aunque otros afirman que el nombre deriva de las siglas de James Gosling, Arthur Van Hoff, y Andy Bechtolsheim. En Agosto de 1991 Oak ya corría sus primeros programas. Para 1992, el equipo ya había desarrollado un sistema en un prototipo llamado Star7 (*7), dispositivo parecido a una PDA, cuyo nombre venía de la combinación de teclas del teléfono de la oficina del Proyecto Green que permitía a los usuarios responder al teléfono desde cualquier lugar. Por su parte, el presidente de la compañía Sun, Scott McNealy, se dio cuenta de forma oportuna y estableció el Proyecto Verde como una subsidiaria de Sun. Después de mostrar a Scott McNealy y Bill Joy los prototipos de bajo nivel del sistema, continúan con el desarrollo, incluyendo sistema operativo, Green OS; el lenguaje Oak, las librerías, alguna aplicación básica y el hardware, hasta que el 3 de septiembre de 1992 se termina el desarrollo y con ello el Proyecto Verde. De 1993 a 1994, el equipo de Naughton se lanzó en busca de nuevas oportunidades en el mercado, mismas que se fueron dando mediante el sistema operativo base. La incipiente subsidiaria fracasó en sus intentos de ganar una oferta con Time-Warner, sin embargo el equipo concluyó que el mercado para consumidores electrónicos smart y las cajas Set-Up en particular, no eran del todo eficaces. La subsidiaria Proyecto verde fue amortizada por la compañía Sun a mediados de 1994. Afortunadamente, el cese del Proyecto Verde coincidió con el nacimiento del fenómeno mundial WEB. Al examinar las dinámicas de Internet, lo realizado por el ex equipo verde se adecuaba a este nuevo ambiente. Patrick Naughton procedió a la construcción del lenguaje de programación Java que se accionaba con un browser prototipo. El 29 de septiembre de 1994 se termina el desarrollo del prototipo de HotJava. Cuando se hace la demostración a los ejecutivos de Sun, esta vez, se reconoce el potencial de Java y se acepta el proyecto. Con el paso del tiempo HotJava se convirtió en un concepto práctico dentro del lenguaje Java y demostró que podría proporcionar multiplataforma para que el código pueda ser bajado y corrido del Host del World Wide Web y que de otra forma no son seguros. Una de las características de HotJava fue su soporte para los "applets", que son las partes de Java que pueden ser cargadas mediante una red de trabajo para después ejecutarlo localmente y así lograr soluciones dinámicas en computación acordes al rápido crecimiento del ambiente WEB. El 23 de mayo de 1995, en la conferencia SunWorld `95, John Gage, de Sun Microsystems, y Marc Andreessen, cofundador y vicepresidente de Netscape, anunciaban la versión alpha de Java, que en ese momento solo corría en Solaris, y el hecho de que Java iba a ser incorporado en Netscape Navigator, el navegador más utilizado de Internet. Con la segunda alpha de Java en Julio, se añade el soporte para Windows NT y en la tercera, en Agosto, para Windows 95. En enero de 1995 Sun forma la empresa Java Soft para dedicarse al desarrollo de productos basados en la tecnologías Java, y así trabajar con terceras partes para crear aplicaciones, herramientas, sistemas de plataforma y servicios para aumentar las capacidades del lenguaje. Ese mismo mes aparece la versión 1.0 del JDK. Netscape Communications decide apoyar a Java applets en Netscape Navigator 2.0. Ese fue el factor clave que lanzó a Java a ser conocido y famoso.

Page 38: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   38  

 

Y como parte de su estrategia de crecimiento mundial y para favorecer la promoción de la nueva tecnología, Java Soft otorgó permisos para otras compañías para que pudieran tener acceso al código fuente y al mismo tiempo mejorar sus navegadores. También les permitía crear herramientas de desarrollo para programación Java y los facultaba para acondicionar máquinas virtuales Java (JVM), a varios sistemas operativos. Muy pronto las licencias o permisos contemplaban prestigiosas firmas como: IBM, Microsoft, Symantec, Silicon Graphics, Oracle, Toshiba y Novell. Los apples Java (basados en JDK 1.02) son apoyados por los dos más populares navegadores web (Nestcape Navigator 3.0 y Microsoft Internet Explorer 3.0. I.B.M./Lotus, Computer Asociates, Symantec, Informix, Oracle, Sybase y otras poderosas empresas de software están construyendo Software 100% puro JAVA, por ejemplo el Corel Office que actualmente está en versión Beta. Los nuevos proyectos de Java son co-patrocinados por cientos de millones de dólares en capital disponible de recursos tales como la Fundación Java, un fondo común de capital formado el verano pasado por 11 compañías, incluyendo Cisco Systems, IBM, Netscape y Oracle. Hoy en día, puede encontrar la tecnología Java en redes y dispositivos que comprenden desde Internet y superordenadores científicos hasta portátiles y teléfonos móviles; desde simuladores de mercado en Wall Street hasta juegos de uso doméstico y tarjetas de crédito: Java está en todas partes.

Características de Java

Las características principales que nos ofrece Java respecto a cualquier otro lenguaje de programación, son:

• Simple

Java ofrece toda la funcionalidad de un lenguaje potente, pero sin las características menos usadas y más confusas de éstos. C++ es un lenguaje que adolece de falta de seguridad, pero C y C++ son lenguajes más difundidos, por ello Java se diseñó para ser parecido a C++ y así facilitar un rápido y fácil aprendizaje.

• Orientado a objetos Java implementa la tecnología básica de C++ con algunas mejoras y elimina algunas cosas para mantener el objetivo de la simplicidad del lenguaje. Soporta las tres características propias del paradigma de la orientación a objetos: encapsulación, herencia y polimorfismo. Las plantillas de objetos son llamadas, clases y sus copias, instancias.

• Distribuido Java se ha construido con extensas capacidades de interconexión TCP/IP. Existen librerías de rutinas para acceder e interactuar con protocolos como http y ftp. Esto permite a los programadores acceder a la información a través de la red con tanta facilidad como a los ficheros locales.

• Robusto Java realiza verificaciones en busca de problemas tanto en tiempo de compilación como en tiempo de ejecución. La comprobación de tipos en Java ayuda a detectar errores, lo antes posible, en el ciclo de desarrollo. Java obliga a la declaración explícita de métodos, reduciendo así las posibilidades de error.

Page 39: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   39  

 

• Seguro

La seguridad en Java tiene dos facetas. En el lenguaje, características como los punteros o el casting implícito que hacen los compiladores de C y C++ se eliminan para prevenir el acceso ilegal a la memoria. Cuando se usa Java para crear un navegador, se combinan las características del lenguaje con protecciones de sentido común aplicadas al propio navegador.

• Portable

Más allá de la portabilidad básica por ser de arquitectura independiente, Java implementa otros estándares de portabilidad para facilitar el desarrollo. Los enteros son siempre enteros y además, enteros de 32 bits en complemento a 2. Además, Java construye sus interfaces de usuario a través de un sistema abstracto de ventanas de forma que las ventanas puedan ser implantadas en entornos Unix, Pc o Mac.

• Interpretado

El intérprete Java (sistema run-time) puede ejecutar directamente el código objeto. Enlazar (linkar) un programa, normalmente, consume menos recursos que compilarlo, por lo que los desarrolladores con Java pasarán más tiempo desarrollando y menos esperando por el ordenador.

• Multithreaded Al ser multithreaded (multihilvanado, en mala traducción), Java permite muchas actividades simultáneas en un programa.

• Dinámico

Java se beneficia todo lo posible de la tecnología orientada a objetos. Java no intenta conectar todos los módulos que comprenden una aplicación hasta el tiempo de ejecución.

Entornos de Desarrollo Integrado

BlueJ: desarrollado como un proyecto de investigación universitaria, es libre.

Eclipse: desarrollado por la Fundación Eclipse, es libre y de código abierto,

IntelliJ IDEA: desarrollado por JetBrains, es comercial.

Jbuilder: desarrollado por Borland, es comercial pero también existe la versión

gratuita.

JCreator: desarrollado por Xinox, , es comercial pero también existe la versión

gratuita.

JDeveloper: desarrollado por Oracle Corporation, es gratuito.

NetBeans – gratuito y de código abierto.

Sun Java Studio Enterprise: desarrollado por Sun, es comercial.

Page 40: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   40  

 

Java Virtual Machine Es una aplicación necesaria para poder visualizar ciertas páginas web que requieren la JVM. La JVM (máquina virtual de Java) es únicamente un aspecto del software de Java, específicamente utilizado para la interacción en la web. Podrás visualizar páginas web que requieran el uso de la JVM. Puede que tu Windows XP no posea la Java Virtual Machine, así que no dudes en descargar la JVM. Programas como el Azureus requieren tener instalada la Java Virtual Machine.

Comentarios

Formato Uso

/*comentario*/ Se ignoran todos los caracteres entre /* */.

//comentario Se ignoran todos los caracteres detrás de // hasta el fin de línea.

/**comentario*/ Lo mismo que /* */ pero se podrán utilizar para documentación automática.

Los dos primeros tipos de comentarios son los que todo programador conoce y se utilizan del mismo modo. Los comentarios de documentación, colocados inmediatamente antes de una declaración (de variable o función), indican que ese comentario ha de ser colocado en la documentación que se genera automáticamente cuando se utiliza la herramienta de Java, javadoc. Dichos comentarios sirven como descripción del elemento declarado permitiendo generar una documentación de nuestras clases escrita al mismo tiempo que se genera el código.

En este tipo de comentario para documentación, se permite la introducción de algunos tokens o palabras clave, que harán que la información que les sigue aparezca de forma diferente al resto en la documentación.

Separadores

Sólo hay un par de secuencias con otros caracteres que pueden aparecer en el código Java; son los separadores simples, que van a definir la forma y función del código. Los separadores admitidos en Java son:

() - paréntesis. Para contener listas de parámetros en la definición y llamada a métodos. También se utiliza para definir precedencia en expresiones, contener expresiones para control de flujo y rodear las conversiones de tipo.

{} - llaves. Para contener los valores de matrices inicializadas automáticamente. También se utiliza para definir un bloque de código, para clases, métodos y ámbitos locales.

[] - corchetes. Para declarar tipos matriz. También se utiliza cuando se referencian valores de matriz.

; - punto y coma. Separa sentencias.

, - coma. Separa identificadores consecutivos en una declaración de variables. También se utiliza para encadenar sentencias dentro de una sentencia for.

. - punto. Para separar nombres de paquete de subpaquetes y clases. También se utiliza para separar una variable o método de una variable de referencia.

Page 41: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   41  

 

Identificadores

Los identificadores nombran variables, funciones, clases y objetos; cualquier cosa que el programador necesite identificar o usar.

En Java, un identificador comienza con una letra, un subrayado (_) o un símbolo de dólar ($). Los siguientes caracteres pueden ser letras o dígitos. Se distinguen las mayúsculas de las minúsculas y no hay longitud máxima.

Serían identificadores válidos:

identificador nombre_usuario Nombre_Usuario _variable_del_sistema $transaccion

y su uso sería, por ejemplo:

int contador_principal; char _lista_de_ficheros; float $cantidad_en_Ptas;

Operadores

Conocidos también como operandos, indican una evaluación o computación para ser realizada en objetos o datos, y en definitiva sobre identificadores o constantes. Los operadores admitidos por Java son:

+ ^ <= ++ %=

>>>= - ~ >= -

&= . * && <<

== <<= [ / ||

>> += ^= ] %

! >>> = != (

& < *= ) |

> ?!! /= >>

Tipos de Datos

Enteros: Estos tipos son byte, short, int y long, que guardan el signo valor, estos

representan un número y no pueden representar elementos fraccionarios. Esto puede ser un buen ejemplo de declaración de tipos de datos enteros: byte midato1 = 1; short midato2 = 100; int midato3 = 10000; long midato4 = 100000000;

Page 42: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   42  

 

Decimales: Estos son float y double y pueden almacenar números en coma flotante y

con signo, esto quiere decir que nos permiten representar números decimales. Todos los literales de coma flotante son del tipo double salvo que se especifique lo contrario, por eso si se intenta asignar un literal en coma flotante a una variable de tipo float el compilador nos dará un error (tipos incompatibles):

double peso;

doublé talla;

float tamaño;

El tipo Caracter: Estos son de tipo char, String, que almacena la representación de los caracteres (letras o números), un carácter está almacenado en 16 bits, y siguen un estándar que es el Unicoide.

Char letra=’A’;

String Nombre =”Angie Aquino”

String Direccion=”Mz3 Lt5 Villa de Jesús”

El tipo Lógico: Etos son los boolean, este solo guarda dos valores: verdadero (true) o falso(false), y no como ocurre en otros lenguajes que toman los valores 0 y 1.

boolean valor1, valor2 ; valor1 = true; valor2 = false;

Tabla tipos de datos:

Tipos de datos Rango de valores Descripción

Números 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

Números reales

float 32-bit IEEE 754 Coma flotante de precisión simple double 64-bit IEEE 754 Coma flotante de precisión doble

otros tipos

char 16-bit Caracter Un sólo carácter

Page 43: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   43  

 

boolean true o false Un valor booleano (verdadero o falso)

Constantes

En Java, se utiliza la palabra clave final para indicar que una variable debe comportarse como si fuese constante, significando con esto que no se permite su modificación una vez que haya sido declarada e inicializada.

final float PI = 3.14159;

Variables

En Java, se utiliza anteponiendo el tipo de dato que corresponda

int edad,a_Actual; double peso,tallar; Tambien se le pude inicializar con un valor por ejemplo int c=0, edad=23; String nom=””,Ape=””;

//inicializando a las variables con “” comillas doble por ser String.

Operadores Aritméticos

Java soporta varios operadores aritméticos que actúan sobre números enteros y números en coma flotante. Los operadores binarios soportados por Java son:

+ suma los operandos- resta el operando de la derecha al de la izquierda * multiplica los operandos/ divide el operando de la izquierda entre el de la derecha

% resto de la división del operando izquierdo entre el derecho

Como se ha indicado anteriormente, el operador más (+), se puede utilizar para concatenar cadenas, como se observa en el ejemplo siguiente:

Operadores Relacionales y Condicionales

Aunque Java y C++ soportan los mismos operadores relacionales, devuelven valores diferentes. Los operadores relacionales en Java devuelven un tipo booleano, true o false; mientras que en C++ devuelven un valor entero, en donde se puede considerar al valor cero como false y a un valor no-cero como true.

> Mayor que >= Mayor o Igual que < Menor que

<= Menor o Igual que == Igualdad solo con números

Page 44: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   44  

 

!= Diferencia entre un valor numérico y otro valor numérico

Los operadores relacionales combinados con los operadores condicionales (o lógicos en C++), se utilizan para obtener expresiones más complejas. Los operadores condicionales que soporta Java son:

&& Conector Y || Conector O ! Niega la expresión (No)

Page 45: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   45  

 

Creación de Aplicaciones usando la IDE de JDeveloper

Descripción del Entorno de Trabajo Para ingresar al Java Developer se deberá de buscar este icono luego presionar doble click y comenzara a cargar el programa; luego click en cerrar y presentara el entorno.

Entorno del JDeveloper

Ventana de Aplicaciones

Ventana de Componente

Ventana Structure

Ventana de Propiedades

Ventana de Mensajes

Objeto Frame

Page 46: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   46  

 

Entorno de trabajo Tiene las siguientes venta:

Applications Navigator (Ventana de Aplicacion) Permite crear y visualizar a las aplicaciones en forma gerarquica; toda aplicación deberá de empezar con App_Nombre, el proyecto con prj_Nombre, la clase con Class_Nombre y Frame con Frm_Nombre.

Component Palette (Ventana de Componentes) Aquí se mostraran todos los objetos(JLabel, JButton, JCheckBox, JComboBox, JList, etc) que se estableceran dentro del Frame. Donde cada una de ellas tienen sus propias caracteristicas.

Property Inspector(Ventana de Propiedades y Eventos) En Propiedades Se mostraran todas las caracteristicas que podra adoptar un objeto(nombre, titulo, color, borde,etc ). Ademas se podran crear nuevos Eventos(actionPerformed, KeyRealesed, FocusLost,tec) para tener una mayor eficacia en nuestros proyetos.

Structure(ventana de Structura) Aquí se mostraran todos los objetos que se insertaron dentro del Frame(se visualizaran con el nombre establecido).Ademas se visualizaran los menus que se crean, y otros modales quese puedan insertar dentro de la aplicación.

Page 47: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   47  

 

Messages – Log(Vetana de Mensajes y Depuracion)

• Aquí mostraran los errores que ubiecen dentro del código

• En el caso que no ubiese errores mostrara esto

Run Manager(Vetana)

Aquí se Mostraran todas las aplicaciones que están ejecutadas

Page 48: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   48  

 

Para abrir cada ventana Podrá ir al menú ver y podrá seleccionar aquella ventana que desea activar.

Pasos para crear una Aplicación. Pasos para crear la aplicación:

1) Crear la Aplicación: a) Dar click en New Application (ventana de aplicaciones) .

b) Al decir new saldrá esta ventana donde se establecerá el nombre de la aplicación (empezara con App_Nombre) y la ruta a guardarse.

c) Deberá estar en la opción Java Aplication (JAVA. Swing). d) Luego aceptar

Page 49: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   49  

 

Nombre de la Aplicación 

La ruta donde se guardará la Aplicación 

Opcional 

En el caso de crear una carpeta elegir aquí y escribir el nombre de tu carpeta y luego Select En el caso

de abrir la unidad o tu carpeta elegir aquí y buscar.

Page 50: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   50  

 

2) Crear el proyecto: por defecto Java nos da el Client pero nosotros aprenderemos a

crear nuestro proyecto de la siguiente manera:

a) Entonces dale click derecho en AppDemo1 y elige New Project(empezara con Prj_Nombre)

b) Deberá estar en

General seleccionado

la opción Projects y

en Items seleccionado

la opción Java Application Project

c) Al dar aceptar pedirá los pasos para la localización del proyecto; entonces dar siguiente en la primera

ventana.

d) La segunda ventana nos pedirá el nombre del Proyecto (asegúrate que el proyecto

este en la misma carpeta que tu aplicación).

e) Luego finalizar.

Hagamos el ejemplo de crear la Aplicación con los pasos que te indique:

1) Ponle el nombre a tu aplicación AppDemo1 2) En la ruta de tu USB en una carpeta nueva llamada Trabajos 3) No olvides que por este ciclo deberá de esta en la opción de Java

Aplication (JAVA. Swing). 4) Aceptar, por lo tanto en tu ventana de aplicaciones quedara así.

 

1

2

3

Page 51: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   51  

 

3) Crear la Clase aquí se pondrá el nombre de la clase (empezara con Class_Nombre), luego

aceptar.

4) Crear el Frame.- presentara una ventana donde pondrá el nombre del Frame (empezando

con Frm_Nombre).

Page 52: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   52  

 

Si queremos borrar algo de la aplicación solo deberás de seleccionarlo y elegir

Haz este ejemplo (Elimina el Client que no lo usaremos)

Ejercicio: Realiza la creación de las dos Aplicaciones en la misma unidad y la misma carpeta de Trabajo

Hagamos el ejemplo de crear el proyecto con los pasos que te indique:

1) Ponle el nombre a tu Proyecto PrjCaso01(Sigue los demás pasos y finalizar) 2) Luego a tu clase que se ejecutara se llamara Class_Caso01 3) Luego al Frame ponle Frm_Caso1. 4) Y al darle aceptar quedara así.

 

Hay una interrogante ¿cómo haría para solo tener una 

aplicación y varios proyectos? 

Page 53: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   53  

 

Como Guardar una aplicación creada

solo tiene que darle click al disco(si solo quieres guardar la aplicación activa) y si deseas guardar todas las aplicaciones deberas de elegir a o ir al menu File (Save / Save All).

Como abrir una aplicación creada

Ir al menú File y elegir Open o dar click en el icono luego seleccionar la unidad donde se encuentre el archivo y deberá de seleccionar aquel archivo que tenga la extensión JWS (donde esta todo el contenido de la aplicación).

.

Lo único que harías es: 1) Crea una aplicación con los pasos indicados 

anteriormente. 2) Selecciona la aplicación y Crea el proyecto con su Clase 

y Frame  Repita esta secuencia las veces que desea crear su aplicación. 

Page 54: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   54  

 

Conociendo algunas propiedades del Jframe

Title.- Permite establecer el titulo a la ventana.

• Por ejemplo si pones en el Title: Caso 01 aparecera así

Name.- nos da el nombre de identificacion del Frame en este caso será por defecto this

Resizable.- devuelve True (en el caso que se quiera modificar la dimension de la ventana en plena ejecucion) o False(no permite la modificacion de la dimension en plena ejecucion)

Controles Básicos de JAVA - SWING (JLabel, JTextField, JButton)

Las etiquetas, junto con los botones y las cajas de selección, son uno de los componentes más básicos de todo interfaz de usuario, independientemente de que se hayan visto otros hasta ahora, o el lector difiera de esta clasificación.

El más simple de todos ellos es la etiqueta, que se limita a presentar textos e imágenes en pantalla.

Propiedades esto afectara solo si esta seleccionado el objeto

a. Border.- permite establecer un tipo de borde y un color.

Su nomenclatura es lbl_Nombre

Page 55: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   55  

 

b. Font .- permitirá cambiar el tipo de letra, tamaño y estilo(negrita y cursiva).

c. Foreground.-permite establecer color de texto. d. Name.- permitirá establecer el nombre de objeto. Recuerda que deberás de usar su

nomenclatura ejemplo (lblEtiqueta).

Presiona click derecho sobre el objeto y selecciona refactor y luego rename.

e. Text.- permitirá establecer el titulo que se visualizará por defecto. Ejemplo

f. Tooltiptext.- muestra un mensaje emergente cuando el puntero esta encima del objeto

Me permite el ingreso de datos.

Propiedades

a. Background.- permite poner color de fondo

b. Border.- permite establecer un tipo de borde (bevelBorde,LineBorde,

titleBorde,etc). Por defecto tiene su borde simple.

Su nomenclatura es txt_Nombre

Page 56: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   56  

 

c. Enabled.-devuelve True (en el caso que se desee escribir) o false(para

desactiviarlo y dejar de escribir).

d. Font .- permitirá cambiar el tipo de letra, tamaño y estilo(negrita y cursiva).

e. Foreground.-permite establecer color de texto.

f. Name.- permitirá establecer el nombre de objeto. Recuerda que deberás

de usar su nomenclatura ejemplo (txtNombre).

g. Text.- esta propiedad deberá estar en blanco para poner nuevos valores desde la

ejecución de programa. Ejemplo

h. Tooltiptext.- muestra un mensaje emergente cuando el puntero esta encima del objeto

se utiliza en el caso que se desee dar un resultado presionando un Click.

Propiedades

Son similares a los del Jlabel y a los del JtextField. Lo que si debemos de especificar es que cada una tiene su propio Name(que es la nomenclatura del objeto que lo identificara ).

a. Name.-nombre del objeto btn_Calcular b. Text.- titulo que se reflejara en pantalla c. Tooltiptext.- muestra un mensaje emergente cuando el puntero esta encima del

objeto. Ejemplo

Ingreso y Salida de Datos (getText, setText).

getText() metodo que permitira obtener el contenido del objeto.

seText() metodo que permitira visualizar el contenido del obejto.

Todos los objetos JtextField por defecto devuelve un dato de tipo carácter es por ello que cuando se lee a un texfield se debera de emplear la conversion del dato tales como:

Integer.parseInt (para datos numericos enteros) Double.parseDouble(para datos numericos decimales) Boolean.parseBoolean(para datos lógicos)

Su nomenclatura es btn_Nombre

Es una Etiqueta 

Es un texto 

Page 57: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   57  

 

Es por ello que cada objeto de entrada y salida necesita de tener su Name(con sus respectivas nomenclatura).

Ejemplos

1. Crear un pseudocodigo para ingresar nombres, apellidos, edad y estatura entonces seria asi:

Paso 1: realizar el analisis y establecerlo en un psedocodigo Variables

Entero: edad

Decimal: estatura

Carácter: nombre y apellido

inicio Leer(nombre,apellido,edad,estatura)

Fin_Programa

Paso 2:Ahora pensemos en el diseño. Sabemos que cada lectura sera un JtextField entonces ingresa a JAVA y crea tu aplicación con su respectivo proyecto(Class y Frame). Y con los controles swing comienza a diseñar quedando de la siguiente manera tu pantalla

Paso 3.- ejecuta el programa tan solo ubicate en la ventana de aplicaciones y dale click a la class y presiona F5 o click en el icono

Page 58: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   58  

 

2. Crear un pseudocodigo que permita calcular la suma y el producto de 2 notas

Programa Suma_Producto

Variables Entero: NOTA1, NOTA2, SUMA, PRODUCTO

Inicio Leer (NOTA1, NOTA2)

SUMA = NOTA1 + NOTA2

PRODUCTO = NOTA1 * NOTA2

Escribir “La suma de las dos notas es:” SUMA

Escribir “El producto de las dos notas es:”, PRODUCTO

Fin_programa

LUEGO tendrá que programar en el boton calcular.(ud. Dara doble click y aparecera la ventana de codigo donde podra escribir). private void btnCalcular_actionPerformed(ActionEvent e) { int NOTA1, NOTA2, SUMA, PRODUCTO ; NOTA1=Integer.parseInt(txtn1.getText()); NOTA2=Integer.parseInt(txtn2.getText()); SUMA = NOTA1 + NOTA2; PRODUCTO = NOTA1 * NOTA2; lblSuma.setText(""+SUMA); lblProducto.setText(""+PRODUCTO); }

Tendríamos 2 textos para leer las notas y 2 etiquetas para ver los resultados y las demás etiquetas solo reflejaran los títulos que se muestran. 

Además un botón para que nos de los resultados al darle Click. 

txtN1

txtN2

lblSu

lblPr

btnCalcular

Page 59: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   59  

 

Contenidos 

- Definir que es una Condición. - Ejemplos de condiciones. - Estructuras Selectivas Simples: SI... ENTONCES…. - Ejemplos de Aplicación - Estructura Selectivas Dobles - Si...ENTONCES…SINO… - Estructuras Condicionales: Simples: IF, Dobles: IF… ELSE … - Resolución de Aplicaciones.

____________________________________________________________________________________

Estructuras Condicionales Las estructuras condicionales comparan una variable contra otro(s) valor (es), para que en base al resultado de esta comparación, se siga un curso de acción dentro del programa. Cabe mencionar que la comparación se puede hacer contra otra variable o contra una constante, según se necesite. Existen tres tipos básicos, las simples, las dobles y las múltiples.

Tipos de estructuras condicionales

Simples:

Las estructuras condicionales simples se les conoce como “Tomas de decisión”. Estas

tomas de decisión tienen la siguiente forma:

PseudoCodigo

Page 60: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   60  

 

JAVA:

if(Condición)

<Accion>;

if(Condición) { <Accion 1>;

<Accion 2>;

……

}

Dobles:

Las estructuras condicionales dobles permiten elegir entre dos opciones o alternativas

posibles en función del cumplimiento o no de una determinada condición. Se

representa de la siguiente forma:

PseudoCodigo

Cuando en java la condicional tenga una sola acción es opcional las llaves, pero cuando la condición va a realizar más de 1 se tendrá que poner llave abierta { y llave cerrada }. 

si (<expresión_lógica>) entonces

<acciones>

fin_si

si (<expresión_lógica>) entonces

<acciones>

sino

<acciones>

fin_si

Page 61: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   61  

 

JAVA: Formato 1:

If (Condición)

<Accion>;

else

<Accion>;

Formato 2:

if(Condición) { <Accion 1>;

<Accion 2>;

……

} else{ <Accion 1>;

<Accion 2>;

……

}

Donde:

• Si: Indica el comando de comparación

• Condición: Indica la condición a evaluar

• Entonces : Precede a las acciones a realizar cuando se cumple la condición

• Instrucción(es):Son las acciones a realizar cuando se cumple o no la condición

• si no :Precede a las acciones a realizar cuando no se cumple la condición

• Dependiendo de si la comparación es cierta o falsa, se pueden realizar una o más

acciones.

Page 62: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   62  

 

Veamos algunos ejemplos donde se aplique todo lo anterior:

1. Realizar un algoritmo en donde se pide la edad del usuario; si es mayor de edad debe

aparecer un mensaje indicándolo. Expresarlo en Pseudocódigo.

variables entero: edad

inicio leer(edad)

si(edad>=18)

escribir(“es mayor de edad”)

sino escribir(“no es mayor de edad”)

fin_si fin_programa

2. Se pide leer tres notas del alumno, calcular su promedio aritmético y enviar un mensaje

donde diga si el alumno aprobó o reprobó el curso. Exprese el algoritmo usando

Pseudocódigo:

variables

decimal: not1, not2, not 3,prom

inicio leer(nota1, nota2, nota3)

prom= (not1 + not2 + not3) /3

si (prom<=10.4) entonces

escriba “reprobó el curso”

sino escriba “aprobó el curso”

fin-si fin_progama

3. Se desea escribir un algoritmo que pida la altura de una persona, si la altura es menor o

igual a 150 cm envíe el mensaje: “Persona de altura baja”; si la altura está entre 151 y 170

escriba el mensaje: “Persona de altura media” y si la altura es mayor al 171 escriba el

mensaje: “Persona alta”. Exprese el algoritmo usando Pseudocódigo.

¡Es importante ser ordenado en el código que se escribe!

Page 63: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   63  

 

variables

entero: altura

inicio

leer(altura)

si (altura <=150) entonces

escribir( “persona de altura baja”)

sino

si altura <=170 entonces

escribir(“persona de altura media”)

sino

si altura>170 entonces

escribir( “persona alta”)

fin_si fin_si fin_si

fin_prorama

DESARROLLEMOS ALGUNOS CASOS PROPUESTO USANDO JAVA

1. Elabore un programa que lea 3 números enteros positivos y que muestre la

suma, la resta y la multiplicación de todos.

variables entero: num1,num2,num3,suma,resta,multip

inicio

leer(num1,num2,num3)

si (num1>0 y num2>0 y num3>0 ) entonces

suma=num1+num2+num3

resta=num1-num2-num3

multip=num1*num2*num3

escribir(suma,resta,multip)

sino escribir(“Los números no son positivos)

fin-si fin_programa

¡Es importante ser ordenado en el código que se escribe!

¡Es importante ser ordenado en el código que se escribe!

Page 64: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   64  

 

private void Generar_actionPerformed(ActionEvent e) { int num1,num2,num3,suma,resta,multip;

num1=Integer.parseInt(txtn1.getText()); num2=Integer.parseInt(txtn2.getText()); num3=Integer.parseInt(txtn3.getText());

if (num1>0 & num2>0 & num3>0 ){ suma=num1+num2+num3;

resta=num1-num2-num3;

multip=num1*num2*num3;

lblSum.setText(""+suma);

lblRes.setText(""+resta);

lblMul.setText(""+multip);

} else lblSum.setText("Los números no son positivos");

}

2. Se ingresa el nombre de una persona. Si el nombre ingresado fuese ANA,

JUANA ó NANCY, se pide su edad y muestre como resultado su edad

incrementado en 30%; de lo contrario la edad incrementara en 90%.

Page 65: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   65  

 

variables caracter: nombre

entero: edad

real: increm

inicio

leer(nombre,edad)

si (nombre=”Ana” o nombre=”Nancy” o nombre=”Juana” ) entonces

increm=edad*0.30

sino increm=edad*0.90 fin-si escribir(“El incremento en la edad es:”,increm)

fin_programa private void btnCalcular_actionPerformed(ActionEvent e) { String nombre,m; int edad; double increm,porc; nombre=txtNom.getText(); edad=Integer.parseInt(txtEdad.getText()); if(nombre.equalsIgnoreCase("Ana") | nombre.equalsIgnoreCase("Nancy") | nombre.equalsIgnoreCase("Juana") ) { m="30 %"; porc=edad*0.30; } else { m="90 %"; porc=edad*0.90; } increm=edad+porc; lblin.setText("El porcentaje es el "+m+" teniendo un incremento sobre la edad: "+increm); }

Recordemos que cuando se realiza una comparación de cadena se realiza con equalsIgnoreCase 

Page 66: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   66  

 

3. En un hospital existen 3 áreas: Urgencias, Pediatría y Traumatología. El

presupuesto anual del hospital se reparte de la siguiente manera:

Área Presupuesto

Urgencias 37%

Pediatría 42%

Traumatología 21%

Obtener la cantidad de dinero que recibirá cada área para cualquier monto

presupuestal.

variables caracter: area

real: Monto_Gen, p,increm

inicio

leer(area,Monto_Gen)

si(area=”Urgencia”)entonces

p=Monto_Gen*0.37

sino

si(area=”Pediatria”)entonces

p=Monto_Gen*0.42

sino

si(area=“Traumatologia”) entonces

p=Monto_Gen*0.21

fin_si

fin_si

fin_si

escribir(“presupuesto por :”,area,” es:”, p) fin_programa

Page 67: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   67  

 

private void btnCalcular_actionPerformed(ActionEvent e) { String area;

double Monto_Gen, p=0;

area=txtar.getText();

Monto_Gen=Double.parseDouble(txtMg.getText());

if(area.equalsIgnoreCase("Urgencias"))

p=Monto_Gen*0.37;

else

if(area.equalsIgnoreCase("Pediatria"))

p=Monto_Gen*0.42;

else

if(area.equalsIgnoreCase("Traumatologia"))

p=Monto_Gen*0.21;

lblr.setText("presupuesto por "+area+" es "+ p);

}

4. Ingrese un numero de solo 2 cifras y muestre si el numero es capicúa

variables

entero: num,c1,c2

inicio

leer(num)

si(num>=10 y num<=99) entonces c1=num div 10

Page 68: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   68  

 

c2=num mod 10

si(c1=c2)entonces escribir(“El numero es Capicua”)

sino escribir(“El numero No es Capicua”)

fin_si fin_si fin_programa

private void btnCalcular_actionPerformed(ActionEvent e) { int num,c1,c2;

num=Integer.parseInt(txtnum.getText()); if(num>=10 & num<=99) { c1=num / 10;

c2=num % 10;

if(c1==c2)

lblr1.setText("El numero es Capicua");

else lblr1.setText("El numero No es Capicua");

} }

5. Determine el tiempo de servicio de acuerdo al año de ingreso. Si el trabajador

tiene más de 10 años el tendrá un aumento del 25%, si tiene entre 5 y 10

tendrá el 15%, menos de 5 el 8% está sujeto a su sueldo básico. Muestre el

incremento y el Monto a Cobrar.

Page 69: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   69  

 

variables entero: ts,ai,sb

real: inc,mc

constante ac=2009

inicio

leer(ai,sb)

ts=ac-ai

si(ts>10) entonces inc=0.25*sb

sino si(ts>=5 y ts<=10)entonces

inc =0.15*sb

sino inc =0.08*sb

fin_si mc=sb-inc

escribir(“El incremento es:”,inc)

escribir(“El monto a cobrar es:”,mc)

fin_programa

Page 70: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   70  

 

private void btnCalcular5_actionPerformed(ActionEvent e) {

int ts,ai,sb;

double inc,mc;

//constante

final int ac=2009;

ai=Integer.parseInt(txtai.getText());

sb=Integer.parseInt(txtsuel.getText());

ts=ac-ai;

if(ts>10)

inc=0.25*sb;

else

if(ts>=5 & ts<=10)

inc=0.15*sb;

else

inc=0.08*sb;

mc=sb+inc;

lblts.setText("Tiempo de Servicio es:"+ts);

lblinc.setText("Incremento es:"+inc);

lblmonto.setText("El monto a cobrar es:"+mc);

}

Page 71: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   71  

 

EJERCICIOS DE APLICACIÓN 1. Se evalúa dos números. Visualiza como resultado el mayor de los números.

2. Se evalúa cuatro números. Muestre por pantalla el menor de los números.

3. Elabore un programa que lea 2 números enteros positivos y que muestre la suma y la

multiplicación de estos.

4. Elabore un programa que lea 3 números enteros positivos y que muestre la suma, la

resta y la multiplicación de todos. El resultado debe ser siempre positivo.

5. Un alumno desea saber cuál será su calificación final en la materia de Algoritmos.

Dicha calificación se compone de tres exámenes.

6. Elabore un programa que calcule la edad exacta de una persona, considere día, mes y

año.

7. Calcular el promedio de 3 notas, si el promedio mayor que 10.5 mostrar aprobado,

caso contrario desaprobado. Pero si la nota es mayor que 18 Saldrá también la

palabra “Excelente”.

8. Se tiene que evaluar cuatro notas de un alumno, como resultado se visualiza el

promedio del alumno junto con su condición de APROBADO o DESAPROBADO, si

esta aprobado y con 13 o más, saldrá el siguiente mensaje “Certificado en MS-OFFICE”.

9. Igual que el ejercicio anterior, con la diferencia que el promedio que se obtiene es

considerando las tres mejores notas y además muestre la nota que no se tomo en

cuenta para el resultado.

10. Se debe de ingresa tres números. Muestre los tres números ordenados en forma

ascendente.

11. Se evalúa el precio de un producto, si el precio es superior a S/.30.00, se realizará un

incremento de 40% al precio y luego mostrar por pantalla el nuevo precio.

12. Se tiene un número que está en el rango de 4 a 10. Si el número ingresado es par,

muestre como resultado el cubo del número, de lo contrario muestre el 16% del

número.

13. Se tiene un número. Evalúa si es que está en el rango de -18 a 29 ó de 90 a 105 ó en

el rango de 140 a 250. Si el número es positivo, mostrara el doble del número; De no

ser positivo el número, mostrara la mitad del número.

14. Se tiene un número. Evalúa si el número está en el rango de -54 a -20 y si el segundo

digito es par. Muestre como resultado el doble del número y si no la tercera parte.

15. Se ingresa 4 números. Evalúa si el primero es mayor al segundo número y si la suma

del tercero con el cuarto es mayor a 167, de ser así muestre como resultado los

números ingresados ordenados en forma descendente.

16. Se ingresa 3 números. De ser todos impares, muestre como primer resultado la suma

de los tres números y como último resultado muestre el último dígito del valor impreso

anteriormente.

Page 72: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   72  

 

17. Escriba un algoritmo que dado el número de horas trabajadas por un empleado y el

sueldo por hora, calcule el sueldo total de ese empleado.

18. Un maestro desea saber qué porcentaje de hombres y que porcentaje de mujeres hay

en un grupo de 30 estudiantes, para ello deberá de ingresar la cantidad de sexo

femenino y la cantidad de sexo masculino, ambas cantidades no debe de superar a la

cantidad de estudiantes.

19. Se ingresa el nombre y edad de la persona. Si el nombre ingresado fuese ANA, JUANA

ó NANCY, incrementar en 30% a la edad; de lo contrario la edad incrementara en

90%.

20. Se tiene 428 soles (Considere como valor entero). Mostrar cuantos Billetes y monedas se necesitan como mínimo para pagar dicho valor,

tomando en cuenta que tenemos las siguientes denominaciones de billete y monedas: Billetes de 200, de 100, de 50, de 20 y de 10 nuevos soles.

Monedas de 5, de 2 y un nuevo sol.

21. Se ingresa tres números. Si el tercer número es mayor a los demás, se debe de

mostrar el promedio de los números ingresados; de lo contrario evaluar si los tres

números son impares, si es así, muestre cada uno de los números con un incremento

del 89%.

22. Se ingresa un número entero. Si el número es de tres dígitos positivo muestre dicho

número en romanos.

23. Determinar la cantidad de dinero que recibirá un trabajador por concepto de las horas

extras trabajadas en una empresa, sabiendo que cuando las horas de trabajo exceden

de 40, el resto se consideran horas extras y que éstas se pagan al doble de una hora

normal cuando no exceden de 8; si las horas extras exceden de 8 se pagan las

primeras 8 al doble de lo que se paga por una hora normal y el resto al triple.

24. Se desea agregar una letra para representar la calificación de los alumnos, las

calificaciones son notas entre 1 y 20; use los siguientes parámetros: A para

calificaciones mayores o iguales a 17-20, B para calificaciones mayores o iguales a 14-

16, C para calificaciones mayores o iguales a 11-13, D para calificaciones menores o

iguales a 10-7, F para todas las calificaciones menores a 7.

25. En un hospital existen 3 áreas: Urgencias, Pediatría y Traumatología. El presupuesto

anual del hospital se reparte de la siguiente manera:

Obtener la cantidad de dinero que recibirá cada área para cualquier monto

presupuestal. Deberá de ingresar los montos por cada Área.

Área Presupuesto

Urgencias 37%

Pediatría 42%

Traumatología 21%

Page 73: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   73  

 

26. En base al valor de dos números enteros, determine si estos son: Iguales. No iguales. El primero es mayor que el segundo. El segundo es mayor que el primero. El primero es mayor o igual que el segundo. El segundo es mayor o igual que el primero.

27. Determinar si el número ingresado es Par o impar, si es positivo, negativo o Nulo.

28. Determine el tiempo de servicio de acuerdo al año de ingreso. Si el trabajador tiene

menos de 4 años el tendrá un aumento del 15% de su sueldo básico, en caso contrario

tendrá un aumento del 12% por cada año. Muestre el Monto a Cobrar.

29. Determinar el Neto de acuerdo a un monto, este tendrá un descuento de 18% en el

caso que este supere a los 300 soles.

30. Determine el monto a pagar por una multa. En el caso que la velocidad sea de 80 a

120 su multa será de 180 soles caso contrario no tendrá multa.

31. Determine una Bonificación de 14% de un sueldo si su tiempo de servicio es más de 3

años.

32. Determine el monto a cobrar de una Madre. La madre recibirá 20 soles si tiene hijos,

deberá de ingresar la cantidad de hijos; 70 soles si su estado civil es viuda; 50 soles si

su estado de trabajador es “planilla”.

33. Ingrese un número de 2 cifras y muestre si es capicúa.

34. Ingrese un número de 2 cifras y muéstrelo en forma invertida.

35. Determine la suma de las cifras de un número que se encuentra entre 10 – 99 y

además muestre la tercera parte de la segunda cifra en el caso que este sea 6, en el

caso que la segunda cifra sea impar la quinta parte de la cifra.

36. una madre de familia recibirá un bono de acuerdo a su estado civil. Casada recibe S/.

40, soltera S/. 35, viuda S/. 55. Muestre el bono a recibir.

37. Nuestra empresa calcula las comisiones a sus vendedores en función de la categoría a

la que pertenece.

Los porcentajes según la categoría a la que pertenece son:

Categoría A 2%

B 8%

C 12%

Realiza un primer programa que, en función de la categoría del trabajador, muestre el

porcentaje asociado según a la cantidad vendida.

Page 74: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   74  

 

38. La misma empresa anterior nos propone una ampliación para, en función de la

categoría y las unidades vendidas, calcule las comisiones a sus vendedores. Estos

cálculos los realiza utilizando la siguiente tabla

Ventas Comisión Menos de 100 n_ventas * 100$ * Porcentaje categoría * 2

Entre 100 y 199 n_ventas * 100$ * Porcentaje categoría * 3

Más de 199 n_ventas * 100$ * Porcentaje categoría * 4

39. Supongamos que tras un año de uso del anterior programa la empresa decide que el

programa necesita modificar su funcionamiento en base a si el trabajador a superado la

media de ventas de los demás trabajadores. Supongamos que el número de

trabajadores es 4 y que su comisión se verá reducida a la mitad si no ha llegado a la

media aritmética de ventas de todos los trabajadores y se multiplicará por 2 si ha

llegado o ha superado la media.

40. El director general de la empresa que nos ha contratado el desarrollo, nos pide que

modifiquemos el funcionamiento del programa para que si el usuario pertenece a la

categoría C y no supera un mínimo de ventas de 100 se muestre un mensaje avisando

que este vendedor ya no pertenecerá la categoría C pasando a pertenecer a la

categoría B.

Realizar esta modificación para que, sin perder las opciones de los puntos anteriores,

al final del cálculo de la comisión, avise si el trabajador cambia o no de categoría.

Page 75: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   75  

 

Contenidos 

- Estructuras Selectivas Anidadas. - Control de Decisión: JcheckBox - Método isSelected(). - Control de Decision JRadioButton(Custon ButtonGroup). Método add. Método isSelected

____________________________________________________________________________________

Estructuras Condicionales en JAVA JcheckBox

Dicho control permite establecer una lista de opciones dentro de la cuales se puede elegir algunas de ellas o todas dando cada una su propia acción. Por ejemplo un trabajador puede tener todos estos descuentos

Nomenclatura del obejto es chk_nombre Metodos:

Page 76: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   76  

 

isSelected.- devuelve si el objeto ah sido selecccionado True si lo esta y false si esta

apagado setEnabled.- permite poner o quitar la activacion.

Realicemos este ejemplo: usando Check : En el caso del seguro es el 7% del sueldo y

en los casos de faltas y tardanzas se da un valor fijo de 50 y 30 soles al activar el

check.

Entonces haz lo siguiente 1er Paso (Realiza el Diseño y establece lo nombres y formatos)

Inserta un JtextFiel y establece : Name: txtS

Border: title y será Sueldo Inserta 3 checkBox y usa

El primero: Text = Seguro Name = chkS

El segundo: Text = Faltas

Name = chkF

El tercero: Text = Tardanzas Name = chkT

Insertar 4 Jlabel

El primero: Text = Borde = Title Descuentos

El segundo: Text =

Name = lblS

El tercero: Text = Name = lblF

El cuarto: Text =

Name = lblT 2do Paso (codificar dentro de cada check)

Page 77: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   77  

 

private void chkS_actionPerformed(ActionEvent e) {

double seguro;

int su=Integer.parseInt(txtS.getText());

if(chkS.isSelected()==true)

seguro=0.07*su;

else

seguro=0;

lblS.setText(""+seguro);

}

private void ChkF_actionPerformed(ActionEvent e) { double falta;

if(ChkF.isSelected()==true)

falta=50;

else falta=0;

lblF.setText(""+falta);

} private void ChkT_actionPerformed(ActionEvent e) { double tardanza;

if(ChkT.isSelected()==true)

tardanza=30;

else tardanza=0;

lblT.setText(""+tardanza);

} 3er Paso

Guarda tu archivo

Y elige la clase y ejecuta(puedes presionar F11).

Page 78: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   78  

 

JRadioButton

Los Botones de Radio son grupos de botones en los que, por convención, sólo uno de ellos puede estar seleccionado. Por lo tanto se tendrá que usar la clase ButtonGroup para poder crear grupos y tener radios independientes y poder activar solo uno de ellos como por ejemplo. Entonces hagamoslo: 1er Paso (Realiza el Diseño y establece lo nombres y formatos)

Inserta un JLabel y establece : Text =

Border: title y será Sexo Inserta dentro del JLabel 2 radios

El primer Radio: Text =Mujer Name = rbtM

El segundo Radio: Text =Varon Name = rbtV

GrpSexo  GrpEstCiv

Para crear Grupos con la Clase ButtonGroup tendremos que realizar lo siguiente: Ir al source del Frame. Ubicarse en el

public class Nombre extends JFrame{

ButtonGroup GrpSexo=new ButtonGroup();

}

Page 79: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   79  

 

Seguimos en el 1er Paso Realiza lo mismo el mismo procedimiento para los del estado Civil Recuerda que los nombres de los radios seran : rbtC, rbtS, rbtVi el grupo será GrpEstCiv

2do Paso (debemos de realizar esto para que solo se pueda seleccionar uno de cada grupo). Entonces vuelve al diseño elige Source y ubicate en private void jbInit() throws Exception { …………………………………. …………………………………. …………………………………. …………………………………. …………………………………. …………………………………. …………………………………. //Grupo de Sexo GrpSexo.add(rbtM); GrpSexo.add(rbtV); //Grupo de Estado Civil GrpEstCiv.add(rbtC); GrpEstCiv.add(rbtS); GrpEstCiv.add(rbtVi); } 3er Paso

Guarda tu archivo Y elige la clase y ejecuta(puedes presionar F11).

Ahora si podras elegir uno de cada grupo.

Y antes que termine la llave del jbInit escribe

Page 80: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   80  

 

Radios dando Resultado cuando se presionan

Realicemos este ejemplo: usando radios: al elegir la carrera saldrá el monto por carrera Lo primero que debes de realizar es:

1. Diseñar esta ventana 2. Establecer los nombres correspondientes a cada radio (rbtCom,rbtGes,rbtGas) 3. Luego establece el custom ButtonGrup llamado GrpCarreras 4. Recuerda que el jbInit debes de añadir cada radio al grupo así

//Grupo de Carreras GrpCarreras.add(rbtCom); GrpCarreras.add(rbtGes); GrpCarreras.add(rbtGas);

5. Ahora si biene lo interesante debemos de codificar y por ello usaremos el método isSelected que devuelve true si esta activado o false (se explico en la pagina 66) cuando esta inactivo.así que haremos esto por cada radio.

private void rbtCom_actionPerformed(ActionEvent e) { if(rbtCom.isSelected()) int mon=295; lblMon.setText(""+mon); } private void rbtGes_actionPerformed(ActionEvent e) { if(rbtGes.isSelected()) int mon=250; lblMon.setText(""+mon); } private void rbtGas_actionPerformed(ActionEvent e) { if(rbtGas.isSelected()) int mon=320; lblMon.setText(""+mon); }

6. Ahora ejecuta y tendra que salir como el ejemplo anterio y por cada radio que elijas saldra un monto diferente

Observación:

Al diseño que tienes puedes agregarle un Botón y dar el resultado cada vez que presionemos en el.

Para ello selecciona el botón y dale nombre en la propiedad name (btnCalcularMonto), luego en el text ponle Calcular.

Presione doble click y codifique lo siguiente:

Page 81: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   81  

 

private void btnCalcularMonto _actionPerformed(ActionEvent e) { int mon;

if(rbtCom.isSelected()) mon=295; if(rbtGes.isSelected()) mon=250; if(rbtGas.isSelected()) mon=320;

lblMon.setText(""+mon); }

Page 82: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   82  

 

Contenidos

- Estructuras Selectivas Múltiples - Cuando <expresión> sea … - Evaluación de valores carácter y numéricos - Condicionales Múltiples: SWITCH - Controles de Opciones: JComboBox - Use de métodos: addItem(), - getSelectedIndex(), getSelectedItem().toString()

_________________________________________________________________________________

Múltiples (En caso de)

Las estructuras de comparación múltiples, es una toma de decisión especializada que

permiten evaluar una variable con distintos posibles resultados, ejecutando para cada

caso una serie de instrucciones especificas. La forma es la siguiente:

cuando (<expresión>) sea

<lista_de_valores> : <acciones>

[sino

<acciones>]

fin_cuando

Page 83: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   83  

 

Descripción:

<expresión> puede ser cualquier expresión validad. <lista_de_valores> será uno o más valores separados por comas de mismo tipo

que la <expresión>.

La estructura verifica si el valor de la expresión coincide con alguno de los valores de la primera lista de valores>; si esto ocurre realiza las acciones correspondientes y el flujo de control sale de la estructura, en caso contrario evalúa la siguiente lista. Las acciones de la cláusula sino se ejecutará si ningún valor coincide con la <expresión>.

EJEMPLOS: 1. Dado un numero entre 1 y 7 escriba su correspondiente día de la semana así:

1- Lunes 2- Martes 3- Miércoles 4- Jueves 5- Viernes 6- Sábado 7- Domingo

Exprese el algoritmo usando Pseudocódigo.

variables

entero: dia

inicio

leer(dia)

cuando(dia) sea

caso 1: escribir(“lunes”)

caso 2: escribir(“martes”)

caso 3: escribir(“miércoles”)

caso 4: escribir(“jueves”)

caso 5: escribir(“viernes”)

caso 6: escribir(“sábado”)

caso 7: escribir(“domingo”)

sino: escribir(“escribió un numero fuera del rango 1-7”)

fin_cuando

fin_programa

2. Que calcule el monto de una multa por exceso de velocidad. El conductor será multado si la velocidad del auto es mayor a 60 Km/h. Las multas se aplicaran de acuerdo a los siguientes rangos:

VELOCIDAD MULTA

[60, 100] 120 [101, 130] 150 [más de 130] 220

Page 84: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   84  

 

Si además el conductor no utilizara el cinturón de seguridad la multa se incrementara en un 50%. Mostrar el neto a pagar del conductor infractor.

variables

entero: velocidad,multa

real: incremento,neto_Pag

inicio

leer(velocidad,cinturon)

cuando(velocidad) sea

caso 60 a 100: multa=120

caso 101 a 1300: multa=150

caso >130: multa=220

fin_cuando

if(cinturón=”no”)entonces

incremento=multa*0.50

fin_si

if(cinturón=”si”)entonces

incremento=0

fin_si

neto_pag=multa+incremento

escribir(multa,incremento,neto_Pag)

fin_programa

Practiquemos:

Realiza el diseño para cada uno de estos caso.

Page 85: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   85  

 

Usando controles Swing

JComboBox Este componente nos permite definir en primera instancia un conjunto de datos o valores.

Cada valor tiene estas asociados a una caja de edición cualesquiera, así ahora el usuario

tendrá la oportunidad de seleccionar un dato del conjunto de datos o respuestas ya

predefinido.

Metodos addItem.- permite agregar datos hacia el combo getSelectedIndex().- que devuelve el orden del elemento seleccionado en un tipo de

dato entero.

getSelectedItem().- que devuelve el contenido seleccinado del combo; y algo

importante como debemos de sacar el contenido debemos de realizar un casting

utilizando el .toString(), como por ejemplo así : String ver=cboTipo.getSelectedItem().toString();

removeAllItems().- permite eliminar todos los elementos del combo.

Como Usarlo:

cbotipo.addItem("Darle el Valor"); Int orden=nombreCombo.getSelectedIndex(); String Dato= nombreCombo.getSelectedItem().toString; nombreCombo.removeAllItems;

Nomenclatura

cboNombre

3 Pasos Importantes:

1er paso Establecer el objeto dentro del Frame

2do paso poner el nombre del Combo busca la propiedad Name= cboNombre

3er paso dar click en Source y ubicarse antes de terminar el metodos jbInit y

escribir

Page 86: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   86  

 

EJEMPLOS DE APLICACIÓN EN JAVA

Caso 1: Establecer una Lista de Nombres de los Tipo de Letras. Debe de quedar como se muestra en el Ejemplo. 1er paso Establecer el objeto dentro del Frame 2do paso poner el nombre del Combo busca la propiedad Name= cboTipo 3er paso dar click en Source y ubicarse antes de terminar el metodos jbInit y escribir

cbotipo.addItem("Arial"); cbotipo.addItem("Comis Sans"); cbotipo.addItem("Book Antigua"); cbotipo.addItem("Calibri");

4to paso ejecutar la aplicación y despliega el combo.

Caso 2: Establecer una Lista de Estado Civil y de Areas. Debe de quedar como se muestra en el Ejemplo. Asi que debes de realizar los 3 pasos que ya realizamos anteriormente. Ah todo debe de ir en el jbInit // Llenar Estado Civil

cboEst.addItem("Casado"); cboEst.addItem("Viudo"); cboEst.addItem("Soltero");

// Llenar Areas cboArea.addItem("Logistica"); cboArea.addItem("Ventas"); cboArea.addItem("Laboratorio"); cboArea.addItem("Contabilidad");

Page 87: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   87  

 

Caso 3: Tomando en cuenta el ejemplo anterior de acuerdo al area debemos de establecer el sueldo. Procedimiento: 1. Realicemos los 3 primeros pasos. 2. Y ahora tambien agregue un Jlabel donde se llamara lblSueldo 3. Con una estructura condicional multiple preguntaremos por el orden que se selecciono y de

acuerdo al orden estableceremos el sueldo. Así:

4. Entonces despues de los primeros 3 pasos lo que haremos es ahora dar doble click en el combo y codificamos.

private void cboArea_actionPerformed(ActionEvent e) {

int sueldo=0,orden;

orden =cboArea.getSelectedIndex();

switch(orden){

case 0: sueldo=980;

break;

case 1: sueldo=1000;

break;

case 2: sueldo=1080;

break;

case 3: sueldo=1100;

break;

}

lblSueldo.setText(""+sueldo);

}

Page 88: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   88  

 

Contenidos

- Uso de la Clase Math (max,min)

- Implementación de Aplicaciones usando sintaxis del Lenguaje.

- Ejercicios con estructuras condicionales

____________________________________________________________________________________

La Clase Math

La clase Math representa la librería matemática de Java. Las funciones que contiene son las de todos los lenguajes, parece que se han metido en una clase solamente a propósito de agrupación, por eso se encapsulan en Math, y lo mismo sucede con las demás clases que corresponden a objetos que tienen un tipo equivalente (Character, Float, etc.). El constructor de la clase es privado, por los que no se pueden crear instancias de la clase. Sin embargo, Math es public para que se pueda llamar desde cualquier sitio y static para que no haya que inicializarla.

Math.max( a,b ) para int, long, float y double

Math.min( a,b ) para int, long, float y double

Math.E para la base exponencial

Math.PI para PI

float max; z = Math.pow( 2,4 ); // eleva el número 2 a la cuarta.

max = Math.max(45,80 ); // devuelve el numero mayor entre los 2 números

System.out.println("El 2 al exponente de 4 es :"+ z );

System.out.println("El numero mayor entre 45 y 80 es: "+ max );

Page 89: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   89  

 

Estructuras Condicionales y Anidadas 1. Determinar el importe a pagar por un alumno de un Instituto cuya cuota tiene un porcentaje

de descuento que se establece en la siguiente tabla y está en función al instituto de procedencia del alumno y su categoría.

CATEGORIA

Instituto A B C Nacional 50% 40% 30% Particular 25% 20% 15%

variables

Carácter: cat,ins

real: porcI, Importe

inicio

leer(cat,inst,cuota)

cuando(cat) sea

caso “A”:

cuando(ins) sea

caso “Nacional”: porcI=0.50 * cuota

caso “Particular”: porcI=0.25 * cuota

fin_cuando

caso “B”:

cuando(ins) sea

caso “Nacional”: porcI=0.40 * cuota

caso “Particular”: porcI=0.20 * cuota

fin_cuando

caso “C”:

cuando(ins) sea

caso “Nacional”: porcI=0.30 * cuota

caso “Particular”: porcI=0.15 * cuota

fin_cuando

fin_cuando

importe=cuota+porcI

escribir(porcI,importe)

fin_programa

Page 90: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   90  

 

2. La empresa “Clarito” esta realizando ofertas aquellas personas donde sus montos sean: Montos menos de 50 : descuento 0 Montos entre 50 y 120 : descuento 15% Montos más de 120 y menos de 450 : descuento 23% Mas o igual a 450 : descuento 45%

variables

real: monto,des,total

inicio

leer(monto)

si(monto<50)entonces

des=0

sino

si(monto>=50 y monto <=120)entonces

des=0.15*monto

sino

si(monto>120 y monto <=450)entonces

des=0.23*monto

sino

des=0.45*monto

fin_si

fin_si

fin_si

total=monto-des

escribir(“Total a pagar es: ”+total)

fin_programa

3. Ingrese un numero donde deberá de ser positivo y tener 2 o hasta 4 dígitos, por lo tanto

muestre la quinta parte de dicho numero solo si el numero es par, en caso contrario

muestre la raíz cuadrada, si el numero no tuviera el rango de dígitos solo deberá mostrar el

mismo número.

variables

entero: numero

inicio

leer(numero)

si(numero>0))entonces

si(numero >=10 y numero <=9999)entonces

si(numero mod 2=0)

r=numero/5

Page 91: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   91  

 

sino

r=numero^(1/2)

fin_si

escribir(r)

sino

escribir(numero)

fin_si

fin_si

fin_programa

4. Cuantos billetes de 200 , 100 y 50 se entregaran de acuerdo al monto ingresado, el monto

como mínimo debe ser 50 y como máximo 2500.

Ejemplo: Monto =356

Billetes de 200 1

Billetes de 100 1

Billetes de 50 1

variables entero: Monto

inicio

leer(Monto)

si(Monto>50 y Monto <=2500)entonces

b200=Monto div 200

b100=(Monto mod 200) div 100

b50=((Monto mod 200) mod 100) div 50

si(b200>0)entonces

escribir(“La cantidad de Billetes de 200 es : ”+b200)

sino

escribir(“No hay de Billetes de 200 ”)

fin_si

si(b100>0)entonces

escribir(“La cantidad de Billetes de 100 es : ”+b100)

sino

escribir(“No hay de Billetes de 100 ”)

Page 92: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   92  

 

fin_si

si(b50>0)entonces

escribir(“La cantidad de Billetes de 200 es : ”+b50)

sino

escribir(“No hay de Billetes de 50 ”)

fin_si

sino

escribir(“No tiene el monto requerido”)

fin_si

fin_programa

Page 93: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   93  

 

Contenidos 

- Resolución de Aplicaciones. - Uso de la Clase Math (abs,sqrt,log,etc) - Casos resueltos en Java

- Describir los siguientes métodos: equalsIgnoreCase(), equals(), Ejemplos ____________________________________________________________________________________

Desarrollo de Casos Apliquemos estos casos en coodigo de Java. 1. Determinar el importe a pagar por un alumno de un Instituto cuya cuota tiene un porcentaje

de descuento que se establece en la siguiente tabla y está en función al instituto de procedencia del alumno y su categoría.

CATEGORIA

Instituto A B C Nacional 50% 40% 30% Particular 25% 20% 15%

private void btnCalcular_actionPerformed(ActionEvent e) {

int cat,ins;

double porcI=0, importe,cuota;

cat=cboCat.getSelectedIndex(); ins=cboCole.getSelectedIndex(); cuota=Double.parseDouble(txtP.getText());

Page 94: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   94  

 

switch(cat) { case 0:

switch(ins){ case 0: porcI=0.50 * cuota;

break;

case 1: porcI=0.25 * cuota;

break;

} break;

case 1 :

switch(ins){ case 0: porcI=0.40 * cuota;

break;

case 1: porcI=0.20 * cuota;

break;

} break;

case 2:

switch(ins){ case 0: porcI=0.30 * cuota;

break;

case 1: porcI=0.15 * cuota;

break;

} break;

} importe=cuota-porcI;

lblDsct.setText(""+porcI);

lblNeto.setText(""+importe);

}

Recordemos que en el lenguaje Java al utilizar ComboBox  y al trabajar con el switch debemos de trabajar con el orden de los seleccionad. En el caso de la categoría solo hay 3 entonces será el orden 0,1 y 2. En el caso instituto por ser 2 trabajemos como el orden 0 y 1 (particular y nacional). 

Una estructura dentro de otra será Anidada,  no olvidemos del break (salto de línea) y esto se establecer por cada uno de los casos. 

Page 95: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   95  

 

La Clase Math

La clase Math representa la librería matemática de Java. Si se importa la clase, se tiene acceso al conjunto de funciones matemáticas estándar:

Math.abs( x ) para int, long, float y double

Math.sin( double )

Math.cos( double )

Math.tan( double )

Math.asin( double )

Math.acos( double )

Math.atan( double )

Math.atan2( double,double )

Math.exp( double )

Math.log( double )

Math.sqrt( double )

Math.ceil( double )

Math.floor( double )

Math.rint( double )

Math.pow( a,b )

Math.round( x ) para double y float

Math.random() devuelve un double

Ejemplo 01: Inserte un botón y escriba este código, donde estamos empleado métodos de la clase Math. //Variables int x; double rand,y; // Inicio rand = Math.random()*100+1; //Genera un numero aleatorio desde 1 hasta 100.

x = Math.abs( -123 ); //convierte a un número absoluto.

y = Math.round( 123.567 ); // redondea el numero

//Permite mostrar en Consola System.out.println("Numero Aleatorio: " +rand );

System.out.println("El Valor Absoluto de -123 es : "+ x );

Page 96: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   96  

 

System.out.println("Redondeo de 123.567 es: "+y );

Funciones trigonométrica

En las funciones trigonométricas los argumentos se expresan en radianes. Por ejemplo, El ángulo 45º se convierte en radianes y luego se halla el seno, el coseno y la tangente

double angulo = 45.0 * Math.PI/180.0;

System.out.println("cos(" + angulo + ") es " + Math.cos(angulo));

System.out.println("sin(" + angulo + ") es " + Math.sin(angulo));

System.out.println("tan(" + angulo + ") es " + Math.tan(angulo));

/*Para pasar de coordenadas rectangulares a polares es útil la función atan2, que

admite dos argumentos, la ordenada y la abscisa del punto. Devuelve el ángulo en

radianes.*/

double y=-6.2; //ordenada

double x=1.2; //abscisa

System.out.println("atan2(" + y+" , "+x + ") es " + Math.atan2(y, x));

Page 97: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   97  

 

Funciones exponencial y logarítmica

La función exponencial exp devuelve el número e elevado a una potencia

System.out.println("exp(1.0) es " + Math.exp(1.0));

System.out.println("exp(10.0) es " + Math.exp(10.0));

System.out.println("exp(0.0) es " + Math.exp(0.0));

La función log calcula el logaritmo natural (de base e) de un número

System.out.println("log(1.0) es " + Math.log(1.0));

System.out.println("log(10.0) es " + Math.log(10.0));

System.out.println("log(Math.E) es " + Math.log(Math.E));

Función potencia y raíz cuadrada Para elevar un número x a la potencia y, se emplea pow(x, y) System.out.println("5 al cubo 3 es: " + Math.pow(5,3));

// Para hallar la raíz cuadrada de un número, se emplea la función sqrt

int n=15;

System.out.println("La raíz cuadrada de " + n + " es " +

Math.sqrt(n));

Page 98: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   98  

 

Aproximación de un número decimal

Para expresar un número real con un número especificado de números decimales empleamos la función round. Por ejemplo, para expresar los números x e y con dos cifras decimales escribimos

double x = 72.3543;

double y = 0.3498;

System.out.println(x + " es aprox. " + (double)Math.round(x*100)/100);

System.out.println(y + " es aprox. " + (double)Math.round(y*100)/100);

/*Se obtiene 72.35 y 0.35 como cabría esperar.

Fijarse que round devuelve un número entero int que es necesario promocionar

a double para efectuar la división entre 100.

Si empleamos la función floor en vez de round obtendríamos*/

System.out.println(x + " es aprox. " + Math.floor(x*100)/100);

System.out.println(y + " es aprox. " + Math.floor(y*100)/100);

Ejemplo: de 72.35 y 0.34 se obtiene. La aproximación del primero es correcta ya que la tercera cifra decimal es 4 inferior a 5. La aproximación del segundo es incorrecta ya que la tercera cifra decimal es 9 mayor que 5. En la mayor parte de los cálculos se cometen errores, por lo que la diferencia entre floor y round no es significativa.

Page 99: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   99  

 

El mayor y el menor de dos números

Para hallar el mayor y el menor de dos números se emplean las funciones min y max que comparan números del mismo tipo.

int i = 7;

int j = -9;

double x = 72.3543;

double y = 0.3498;

// para hallar el menor de dos número

System.out.println("min(" + i + "," + j + ") es " +

Math.min(i,j));

System.out.println("min(" + x + "," + y + ") es " +

Math.min(x,y));

// Para hallar el mayor de dos números

System.out.println("max(" + i + "," + j + ") es " +

Math.max(i,j));

System.out.println("max(" + x + "," + y + ") es " +

Math.max(x,y));

Page 100: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   100  

 

Números aleatorios, absolutos, max, min

int i = 7;

int j = -9;

double x = 72.3543;

double y = 0.3498;

System.out.println("el 1er valor es : " + i);

System.out.println("el 2do valor es : " + j);

System.out.println("el 3er valor es :" + x);

System.out.println("el 4to valor es :" + y);

// Valor absoluto de un número

System.out.println("Valor absoluto de |" + i + "| es " + Math.abs(i));

System.out.println("Valor absoluto de |" + j + "| es " + Math.abs(j));

System.out.println("Valor absoluto de |" + x + "| es " + Math.abs(x));

System.out.println("Valor absoluto de |" + y + "| es " + Math.abs(y));

// para hallar el menor de dos número

System.out.println("min(" + i + "," + j + ") es " + Math.min(i,j));

System.out.println("min(" + x + "," + y + ") es " + Math.min(x,y));

// Para hallar el mayor de dos números

System.out.println("max(" + i + "," + j + ") es " +

Math.max(i,j));

System.out.println("max(" + x + "," + y + ") es " +

Math.max(x,y));

// las constantes PI y E

System.out.println("Pi es " + Math.PI);

System.out.println("e es " + Math.E);

System.out.println("La raíz cuadrada de " + i + " es " + Math.sqrt(i));

// Programación en el lenguaje Java 9

// Devuelve un número pseudo-aleatorio comprendido entre 0.0 y 1.0

System.out.println("Número aleatorio: " + Math.random());

System.out.println("Otro número aleatorio: " + Math.random());

Page 101: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   101  

 

Ingresar 4 numeros y mostrar el numero mayor. private void b3_actionPerformed(ActionEvent e) { int a,b,c,d,m1; a=Integer.parseInt(txta.getText()); b=Integer.parseInt(txtb.getText()); c=Integer.parseInt(txtc.getText()); d=Integer.parseInt(txtd.getText()); m1=Math.max(a,b); m1=Math.max(m1,c); m1=Math.max(m1,d); lblm.setText(""+m1); }

Mostrar la raiz cubica de un numero ingresado intentalo

Page 102: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   102  

 

CASOS RESUELTOS

Caso 01: De acuerdo a la velocidad excesiva del conductor se le multara de acuerdo a: Velocidad entre 60 a 100 multa es 120. Velocidad mas de 100 a 130 multa es 150. Velocidad mas de 130 multa es 220. Ademas otro incremento si no utiliza cinturon de seguridad. Pseudocodigo

Variables

entero: veloc,multa

decimal: inc,mp

lógico: rbtC, rbtNC

INICIO leer (veloc,estado)

si(veloc>60 y veloc<=100)entonces multa=120 fin_si

si(veloc>100 y veloc<=130)entonces multa=150 fin_si

si(veloc>130)entonces multa=220 fin_si

si(rbtC=verdadero)entonces inc=0 fin_si

si(rbtNC=verdadero)entonces inc=0.5*multa fin_si mp=multa+inc;

escribir (veloc,multa,inc)

FIN

Page 103: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   103  

 

Java private void jbInit() throws Exception { …………………………….. …………………………….. GrupoVelocidades.add(rbtC); GrupoVelocidades.add(rbtNC); } private void btncalcular_actionPerformed(ActionEvent e) { int veloc,multa=0; double inc=0,mp; veloc=Integer.parseInt(txtveloc.getText()); if(veloc>60&veloc<=100) multa=120; if(veloc>100&veloc<=130) multa=150; if(veloc>130) multa=220; if(rbtC.isSelected()==true) inc=0; if(rbtNC.isSelected()==true) inc=0.5*multa; mp=multa+inc; lblmulta.setText(""+multa); lblinc.setText(""+inc); lblmp.setText(""+mp); } private void btnrestablecer_actionPerformed(ActionEvent e) { txtveloc.setText(""); lblmulta.setText(""); lblinc.setText(""); lblmp.setText(""); rbtC.setSelected(true); }

Page 104: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   104  

 

Caso 02:De acuerdo al consumo del cliente se le realizara el siguiente descuento pero ademas el consumo tendrá un pago adicional que sera el igv. Consumos hasta S/. 60 se le descuenta el 7.5% Consumos mas de S/. 60 se le descuenta 12%. Mostrar los datos calculados y el pago neto. Pseudocodigo

Variables

entero: con

decimal: des,igv,mc

INICIO leer (con)

si(con>0&con<=60)entonces des=0.075*con fin_si si(con>60)entonces des=0.12*con fin_si igv=0.19*con mc=con-des+igv escribir (veloc,multa,inc)

FIN JAVA private void btncalcular_actionPerformed(ActionEvent e) { int con; double des=0,igv=0,mc; con=Integer.parseInt(txtcon.getText()); if(con>0&con<=60) des=0.075*con; if(con>60) des=0.12*con; igv=0.19*con; mc=con-des+igv; lbldes.setText(""+des); lbligv.setText(""+igv); lblmc.setText(""+mc); } private void btnlimpiar_actionPerformed(ActionEvent e) { txtcon.setText(""); lbldes.setText(""); lbligv.setText(""); lblmc.setText(""); }

Page 105: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   105  

 

Caso 03: Que muestre un mensaje indicando si un usuario es o no mayor de edad, según al año de nacimiento Pseudocodigo

Variables

caracter: m

entero: nac,eea

INICIO leer (nac)

eea=2010-nac

si(eea>=18)entonces

m=", Usted es mayor de edad"

sino

si(eea>0 y eea<18)entonces

m=", Usted aún es menor de edad"

fin_si

fin_si

FIN

Page 106: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   106  

 

JAVA private void btncalcular_actionPerformed(ActionEvent e) { String m="";

int nac,eea;

nac=Integer.parseInt(txtnac.getText());

eea=2010-nac;

if(eea>=18)

m=", Usted es mayor de edad";

else

if(eea>0&eea<18)

m=", Usted aún es menor de edad";

lbleea.setText("Tiene "+eea+" años y "+m);

} private void btnLimpiar_actionPerformed(ActionEvent e) { txtnac.setText("");

lbleea.setText("");

}

Page 107: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   107  

 

Caso 4 Que admita el ingreso de dos números y muestre cual es menor, mayor o si estos fueren iguales.

Ejemplo:

Ingresa 100 92 Muestra: El primero es mayor que el segundo

Pseudocodigo

Variables

caracter: r

entero: n1,n2

INICIO leer (n1,n2)

eea=2010-nac

si(n1>n2)

r="en primero es mayor que el segundo"

sino

si(n1=n2)

r="Ambos numeros son iguales";

sino

si(n1<n2)

r="el segundo es mayor que el primero";

fin_si

fin_si

fin_si

escribit(r)

FIN

Usando estructura condicionales anidadas 

Page 108: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   108  

 

private void btncalcular_actionPerformed(ActionEvent e) { int n1,n2;

String r="";

n1=Integer.parseInt(txtn1.getText());

n2=Integer.parseInt(txtn2.getText());

if(n1>n2)

r="en primero es mayor que el segundo";

if(n1==n2)

r="Ambos numeros son iguales";

if(n1<n2)

r="el segundo es mayor que el primero";

lblresultado.setText(""+r);

} private void btnrefrescar_actionPerformed(ActionEvent e) { txtn1.setText("");

txtn2.setText("");

lblresultado.setText("");

}

Page 109: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   109  

 

Caso 05: La tienda FERSA presenta la siguiente escala de descuentos de acuerdo a los montos de compra:

Total (S/.) Dcto (%) Mayor a 120 12 Mayor a 180 15 Mayor a 250 21

Que considere el neto a pagar por un usuario sabiendo que adicionalmente se cobrara el IGV.

Pseudocodigo

Variables entero: mca decimal: descuento=0,igv=0,neto

INICIO leer (mca)

si(mca>0 y mca<=120)entonces

descuento=0

sino

si(mca>120 y mca<=180)entonces

descuento=0.12*mca

sino

si(mca>180&mca<=250)entonces

descuento=0.15*mca

sino

si(mca>250)entonces

descuento=0.21*mca

fin_si

fin_si

fin_si

igv=0.19*mca;

neto=mca-descuento+igv;

escribit(descuento,igv,neto)

FIN

Page 110: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   110  

 

JAVA private void btnprocesar_actionPerformed(ActionEvent e) { int mca;

double descuento=0,igv=0,neto;

mca=Integer.parseInt(txtmca.getText());

if(mca>0&mca<=120)

descuento=0;

if(mca>120&mca<=180)

descuento=0.12*mca;

if(mca>180&mca<=250)

descuento=0.15*mca;

if(mca>250)

descuento=0.21*mca;

igv=0.19*mca;

neto=mca-descuento+igv;

lbldescuento.setText(""+descuento);

lbligv.setText(""+igv);

lblneto.setText(""+neto);

} private void btndeshacer_actionPerformed(ActionEvent e) { txtmca.setText("");

lbldescuento.setText("");

lbligv.setText("");

lblneto.setText("");

}

Page 111: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   111  

 

Caso 06: La empresa SODIMAC ha implementado como parte de su programa social un subsidio familiar, que será otorgado por vez única a las madres de familia trabajadoras bajo la siguiente reglamentación: Las familias que tienen hasta 3 hijos reciben S/. 60, las que tienen 4 y 6 hijos reciben S/. 85 de escolaridad estos montos es por cada hijo y las que tienen más hijos reciben S/. 285 por escolaridad. Si la madre de familia fuese:

Viuda recibirá adicionalmente S/. 55 Casada recibirá adicionalmente S/. 25

PC: Que determine el monto por subsidio que recibirá una trabajadora bajo las condiciones ya indicadas.

private void btnprocesar_actionPerformed(ActionEvent e) { int hijos,mh=0,mm=0;

hijos=Integer.parseInt(txthijos.getText());

if(hijos==0)

mh=0;

if(hijos>0&hijos<=3)

mh=60*hijos;

if(hijos>=4&hijos<=6)

mh=85*hijos;

if(hijos>6)

mh=185*hijos;

if(rbtV.isSelected()==true)

mm=(mh+55);

if(rbtC.isSelected()==true)

mm=(mh+25);

if(rbtS.isSelected()==true)

mm=(mh+10);

lblmh.setText(""+mh);

lblmm.setText(""+mm);

}

Page 112: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   112  

 

private void btnactualizar_actionPerformed(ActionEvent e) { txthijos.setText("");

lblmh.setText("");

lblmm.setText("");

}

Page 113: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   113  

 

Caso 07: La Empresa CLARITO cobra por el servicio de minutos de llamadas locales de acuerdo a la siguiente escala: Si el número de minutos no excede a los 80, la tarifa por minuto es de S/. 0.45 y si fuera mayor la tarifa por minuto adicional será de S/. 0.52. PC: Que muestre el total a pagar por el servicio local considerando IGV.

private void lblprocesar_actionPerformed(ActionEvent e) { int cm;

double n=0,a=0,mpi=0,mpa=0,igv=0,mtp=0,total;

cm=Integer.parseInt(txtcm.getText());

if(cm>0&cm<=80){

n=0.45;

mpi=cm*n;

/*igv=0.19*mpi;

mtp=mpi+igv;*/

}

if(cm>80){

n=0.45;

a=0.52;

mpi=80*0.45;

mpa=(cm-80)*0.52;

/* igv=0.19*(mpi+mpa);

mtp=mpi+mpa+igv;*/

}

total=mpi+mpa;

igv=0.19*total;

mtp=mpi+mpa+igv;

lbln.setText(""+n);

lbla.setText(""+a);

lbltp.setText(""+total);

lblmpi.setText(""+mpi);

lblmpa.setText(""+mpa);

lbligv.setText(""+igv);

lblmtp.setText(""+mtp); }

Page 114: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   114  

 

private void lblactualizar_actionPerformed(ActionEvent e) { txtcm.setText("");

lbln.setText("");

lbla.setText("");

lblmpi.setText("");

lblmpa.setText("");

lbligv.setText("");

lblmtp.setText("");

}

Page 115: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   115  

 

Caso 08: Un usuario desea adquirir un televisor de 21” por lo tanto le ofrecen los descuentos de acuerdo a la marca. Que muestre el neto a pagar por el usuario en soles sabiendo que se tiene las siguientes ofertas:

MARCA PRECIO $ CON DCTO SAMSUNG 370* PHILIPS 365 AIWA 320 LG 299*

PANASONIC 280 Los artículos indicados con *, adicionalmente tendrán un descuento de 12.5%. Considerar IGV del 19%.

private void lblrestablecer_actionPerformed(ActionEvent e) { lblprecio.setText("");

lbldescuento.setText("");

lbligv.setText("");

lblmp.setText("");

cbomarcas.setSelectedIndex(0);

} private void cbomarcas_actionPerformed(ActionEvent e) { int orden,precio=0; double descuento=0,igv=0,mp=0; orden=cbomarcas.getSelectedIndex(); switch(orden){ case 0:precio=0; descuento=0; break; case 1:precio=370; descuento=0.125*precio; break; case 2:precio=365; break; case 3:precio=320; break; case 4:precio=299; descuento=0.125*precio; break; case 5:precio=280; break; } igv=0.19*precio; mp=precio+igv; lblprecio.setText(""+precio); lbldescuento.setText(""+descuento); lbligv.setText(""+igv); lblmp.setText(""+mp); }

Page 116: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   116  

 

Caso 09:La universidad recibe a alumnos postulantes dentro de la cual el monto a pagar sera de acuerdo a la procedencia del colegiio(Nacional o Particular) y dependiedo a la categoria A , B y C A B C Nacional 50% 40% 30% Particular 25% 20% 15% private void btncalcular_actionPerformed(ActionEvent e) { int orden;

double cuota,descuento=0,tp=0;

cuota=Double.parseDouble(txtcuota.getText());

orden=cbocategoria.getSelectedIndex();

switch(orden){

case 0:

if(rbtN.isSelected()==true)

lbldescuento.setText("");

lbltp.setText("");

if(rbtP.isSelected()==true)

lbldescuento.setText("");

lbltp.setText("");

break;

case 1:

if(rbtN.isSelected()==true)

descuento=0.5*cuota;

if(rbtP.isSelected()==true)

descuento=0.25*cuota;

break;

Page 117: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   117  

 

case 2:

if(rbtN.isSelected()==true)

descuento=0.4*cuota;

if(rbtP.isSelected()==true)

descuento=0.2*cuota;

break;

case 3:

if(rbtN.isSelected()==true)

descuento=0.3*cuota;

if(rbtP.isSelected()==true)

descuento=0.15*cuota;

break;

}

tp=cuota-descuento;

lbldescuento.setText(""+descuento);

lbltp.setText(""+tp);

} private void btnactualizar_actionPerformed(ActionEvent e) { txtcuota.setText("");

lbldescuento.setText("");

lbltp.setText("");

cbocategoria.setSelectedIndex(0);

rbtN.setSelected(true);

}

Page 118: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   118  

 

Caso 10: Calcule el sueldo de un empleado a partir de su sueldo bruto. Sobre este sueldo se harán los siguientes descuentos: Descuentos fijos:

Jubilación 13%, Seguro 11%.

Descuentos variables:

Cooperativa 3% (descuento máximo S/.15.00), Sindicato a 6%. Estos descuentos se harán si el empleado pertenece a la cooperativa o al sindicato.

Dependiendo de los años de servicio el empleado recibirá una bonificación especial no afecta a descuento, de acuerdo al siguiente cuadro:

AÑOS DE SERVICIO BONIFICACION (%)

0 – 5 15.0 6 – 10 18.0 11 - 15 20.0

Más de 15 25.0 Estos porcentajes se aplicaran sobre el sueldo bruto y en ningún caso sobrepasaran los S/. 500.00. Los empleados pueden ser de 3 categorías (A, B, C). Los de categoría A recibirán la bonificación calculada, los de la categoría B recibirán la mitad y los de la categoría C recibirán la cuarta parte.

Al final se presentara lo siguiente:

SUELDO BRUTO : S/. TOTAL DESCUENTOS : S/. BONIFICACION : S/. SUELDO NETO : S/.

Page 119: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   119  

 

private void jbInit() throws Exception { ……………………. …………………….. GrpDescVaria.add(rbtCoo);

GrpDescVaria.add(rbtSin);

GrpCategoria.add(rbtA);

GrpCategoria.add(rbtB);

GrpCategoria.add(rbtC);

cboAs.addItem("Seleccionar Tiempo");

cboAs.addItem("0 - 5");

cboAs.addItem("6 - 10");

cboAs.addItem("11 - 15");

cboAs.addItem("16 a mas");

} private void btnCalcular_actionPerformed(ActionEvent e) { int sb,as=0;

double b1=0,b2=0,sn,j,td,s,tb,dv=0;

sb=Integer.parseInt(txtSb.getText());

//Descuentos Fijos

if(chkJ.isSelected()==true)

j=0.13*sb;

else

j=0;

if(chkS.isSelected()==true)

s=0.11*sb;

else

s=0;

//Descuentos Variables

if(rbtCoo.isSelected()==true){

dv=0.03*sb;

if(dv>15)

dv=15;

}

if(rbtSin.isSelected()==true)

dv=0.06*sb;

Page 120: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   120  

 

//Tiempo de Servicio y se halla la bonificacion

as=cboAs.getSelectedIndex();

switch(as){

case 1:b1=0.15*sb; break;

case 2:b1=0.18*sb; break;

case 3:b1=0.20*sb; break;

case 4:b1=0.25*sb; break;

}

if(b1>500)

b1=500;

// Categorias y segunda bonificacion

if(rbtA.isSelected())

b2=b1;

if(rbtB.isSelected())

b2=b1/2;

if(rbtC.isSelected())

b2=b1/4;

//Calculos finales

td=j+s+dv;

tb=b1+b2;

sn=sb+tb-td;

//Salida de Datos

lblJ.setText(""+j);

lblS.setText(""+s);

lblV.setText(""+dv);

lblB.setText(""+b1);

lblB2.setText(""+b2);

lblDes.setText(""+td);

lblBoni.setText(""+tb);

lblSn.setText(""+sn);

}

Page 121: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   121  

 

private void btnNuevo_actionPerformed(ActionEvent e) { txtSb.setText("");

lblJ.setText("");

lblS.setText("");

lblV.setText("");

lblB.setText("");

lblB2.setText("");

lblDes.setText("");

lblBoni.setText("");

lblSn.setText("");

cboAs.setSelectedIndex(0);

chkJ.setSelected(false);

chkS.setSelected(false);

}

Page 122: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   122  

 

Caso 11: Ingresar 5 numeros y mostrar el mayor, menor y promedio de estos. Realice el diseño

// variables locales double A,B,C,D,E,mayor,menor,promedio;

//Leer 5 numeros A = Double.parseDouble(txtN1.getText());

B = Double.parseDouble(txtN2.getText());

C = Double.parseDouble(txtN3.getText());

D = Double.parseDouble(txtN4.getText());

E = Double.parseDouble(txtN5.getText());

//encontrar el mayor mayor = A; // asume que es el primero

// compara con los restantes, quedandose con el mayor if(B > mayor) mayor = B;

if(C > mayor) mayor = C;

if(D > mayor) mayor = D;

if(E > mayor) mayor = E;

// imprimir el mayor lblSalida1.setText("El número mayor es: " + mayor + "\n");

//encontrar el menor menor = A; // asume que es el primero

// compara con los restantes, quedandose con el mayor if(B < menor) menor = B;

if(C < menor) menor = C;

if(D < menor) menor = D;

if(E < menor) menor = E;

// imprimir el menor lblSalida2. setText ("El número menor es: " + menor + "\n");

// encontrar el promedio promedio = (A + B + C + D + E) / 5; // imprimir el promedio lblSalida3. setText ("El promedio es\t: " + promedio + "\n");

Page 123: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   123  

 

caso 12: Establezca el subsidio familiar de acuerdo a la cantidad de hijos, hijos en escolaridad y al estado civil.

Si tine hasta 2 hijos recibe 100 Si tiene hasta 5 hijos recibe 190 Mas hijos 210. Por cada hijo en edad escolar recibe el S/.10 por cada hijo Si es viuda recibe S/.20 Muestre el neto a cobrar. Realice el diseño // variables locales int nhijos,hijosEsc;

double sub1, sub2, sub3, subsidio;

// leer numero de hijos y numero de hijos escolares nhijos = Integer.parseInt(txtHijos.getText());

hijosEsc = Integer.parseInt(txtEscolares.getText());

// calcular subsidio por numero de hijos if(nhijos <= 2)

sub1 = 100;

else if(nhijos <= 5)

sub1 =190;

else

sub1 = 210;

// calcular subsidio por hijos en edad escolar sub2 = hijosEsc * 10;

// calcular subsidio por viudez sub3 = 0;

if(chkViuda.isSelected() )

sub3 = 20;

// calcular subsidio total subsidio = sub1+sub2+sub3;

//imprimir subsidios lblSalida1.setText("Subsidio por:\n\n");

lblSalida2.setText ("Total de hijos\t:"+ sub1 + "\n");

lblSalida3.setText ("Hijos escolares\t:"+ sub2 + "\n");

lblSalida4.setText ("Viudez\t:"+ sub3 + "\n\n");

lblSalida5.setText ("Subsidio total\t: "+ subsidio + "\n");

Page 124: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   124  

 

EJERCICIOS DE APLICACIÓN 1. Que admita el ingreso de 3 números, e imprima cuál de ellos son los 2 primeros mayores.

2. Que admita el ingreso de 3 números, e imprima cuál de ellos es mayor así como el promedio de los dos mayores.

3. Que admita el ingreso de 3 números, e imprima el promedio del primer mayor y el menor, en el caso que el promedio sea mayor a 90 entonces mostrara el promedio de los 3 números.

4. PC: Que admita el ingreso de un registro de fecha, en el formato día, mes, año, e imprima

si este es o no correcto. Considere años bisiestos. Ejemplo

32 04 2008 Errado 28 12 1975 Correcto 5. PC: Que admita el ingreso de un numero entero comprendido entre 0 y 6, estos números

corresponden a días de la semana según: 0 Domingo, 1 Lunes, 2 Martes… Su programa deberá mostrar literalmente el nombre del día de la semana al que corresponde el número ingresado.

6. PC: Que acepte una fecha bajo el formato que se indica, imprimiendo esta en forma numérica totalmente. Ejemplo

Ingresa 28 Diciembre 1975 Muestra 28 / 12 / 1975 7. PC: Que determine el neto a cobrar por un trabajador sabiendo que tiene derecho a una

bonificación dependiendo de su estado civil y del número de hijos, según: ESTADO CIVIL PORCENTAJE

Casado 15 Viudo 17 Soltero 8

Adicionalmente se le abonara el 1.5% por cada hijo con un máximo de 6%.

8. PC: Que admita el ingreso de un numero entero positivo menor a 1000 e imprima si este es par o impar.

9. PC: Que permita ingresar las 3 notas de un alumno del I.S.T. en el curso Fundamentos de Programación. Imprimir el promedio si se anula la nota más baja.

10. PC: Que permita ingresar los nombres y precios de 3 productos diferentes de una farmacia. Imprimir el nombre del producto más barato y el promedio de los tres.

Page 125: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   125  

 

11. PC: Que muestre le neto a pagar por un DVD sabiendo que la tienda se encuentra en realización ofreciendo los siguientes descuentos:

MARCA 19” 21”

SAMSUNG 12 13 PANASONIC 14 12 LG 12 14 SONY 13 15

Tome usted en cuenta las siguientes consideraciones: El precio de lista a ingresar esta en dólares, debiendo mostrar el neto en dólares y soles donde dicho monto en soles se le aplicara el IGV.

12. PC: Que permita a un alumno de SISE, actualmente de tercer ciclo, calcular el promedio correspondiente al curso de Taller de Software 3, sabiendo que este se obtiene según: Adicionalmente se deberá mostrar junto al promedio la observación aprobada en el caso que el promedio final sea mayor a 10 o desaprobado en caso contrario:

PF= 2PP + 2.5EP + 3EF

7.5

13. Modificar el ejemplo anterior considerando que, si el alumno no aprobara el curso tendrá derecho a un examen de recuperación, si vuelve a desaprobar el curso debe de dar un examen a cargo, en el caso que el primer promedio sea desaprobado, dicho promedio debe ser mayor a 07 donde dicha nota será su promedio final automático.

14. PC: Que muestre el neto a imprimirse en la boleta de pagos de un alumno sabiendo que el monto depende de la carrera en la cual se encuentra matriculado según:

CARRERA MONTO CACI 275 GESTION 260 EDUCACION 260 EOS 240

15. Desarrollar un programa que nos permita ingresar los votos de N ciudadanos para los siguientes candidatos a ocupar un cargo muy importante en la OMS:

CANDIDATO PARTIDO

Ángeles Carlos UCGV: Unidos Conseguiremos Grandes Victorias

Florián Jesús PALA: Patronato de Amigas de Lima Antigua

Escobar María ASU: Asociación de Santos Unidos

López Gino MOMIA: Movimiento de Mimos Austeros

García Manuel CUERO: Central Unitaria de Estudiantes de La Romana

Mostrar el candidato triunfador y con cuantos votos.

Page 126: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   126  

 

16. PC: Que permita ingresar el precio de un artefacto, considere descuentos del 20%. En el caso que el precio a pagar supera los S/. 500 aparecerá un mensaje que diga “Se lleva una Lavadora LG” caso contrario dirá “Se lleva una lavadora Samsung”.

17. PC: Que imprima la bonificación de un empleado del Banco Las Ameritas de acuerdo a las tablas siguientes, si se sabe que:

Tiempo Servicio

Porcentaje de(años) bonificación

1-3 17% 4-6 21% 7-15 29%

15 a más 52%

CATEGORIA Porcentaje De bonificación

A-B 11% C-D 22%

OTROS 33%

Muestre el nuevo pago que recibirá.

18. PC: Que calcule el costo de mudanza de acuerdo a la distancia entre el punto de partida y el de llegada, el tipo de carga y el número de viajes de ida y vuelta. Para el costo final se tomara en cuenta: Si la distancia por cada viaje es mayor o igual a 5Km. Se cobrara S/. 5.00 por kilómetro, de lo contrario se cobrara el monto básico que es igual a S/. 25.00

La carga puede ser frágil o no frágil. Solo si la carga es frágil al monto calculado anteriormente se le incrementara el 25%

El monto resultante de acuerdo a la distancia y tipo de carga se le multiplicara por el número de viajes.

En ningún caso el monto total a cobrar será menor a S/. 40.00.

19. PC: Que calcule el promedio de un alumno, el alumno podrá tener 2, 3 o 4 notas, dicha cantidad de notas se tendrá que ingresar no se puede ingresar una sola nota, deber ser de 2 a 4 notas. Si tiene 2 notas se deberán promediar ambas, si tuviera 3 se promediaran las dos mejores y si tuviera 4 se promediara de la siguiente manera: Si la suma de notas es mayor a 70 se eliminara la más baja.

Si la suma es menor o igual a 70 pero mayor a 44 se eliminara la primera nota desaprobatoria que el programa encuentre.

Si la suma es 44 o menos, se promediaran las cuatro notas.

20. PC: Que determine el mayor y el menor de cuatro números cualquiera. Considere que los cuatro valores son diferentes.

21. Desarrollar un programa que nos permita ingresar la edad del Fast presidente del CAEMS y muestre a que etapa de la vida pertenece (Niñez, Infancia, Adolescencia,…)

22. PC: Que calcule el monto que debe pagar el socio de un club por derecho de pertenencia. Si es socio EXCLUSIVO, pagara S/. 500.00, si es socio EJECUTIVO pagara S/. 300.00 y si

Page 127: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   127  

 

es socio REGULAR pagara S/. 150.00. Si el socio tiene deuda tendrá un recargo del 15% sobre el total de su deuda. En ningún caso el recargo será mayor de S/. 120.00 ni menor de S/. 30.00.

23. Determine el monto a pagar en el recibo de Agua. Esto depende del consumo de agua por litros donde dicho valor depende de:

LITROS PRECIO * LITRO 0 a 20 0.894

21 a 30 1.244 31 a 50 1.737 51 a 80 2.685

81 a más 3.362

Una pensión básica de S/. 8.30, donde se incluye el IGV.

24. PC: Que calcule el sueldo mensual de un obrero que gana a destajo de acuerdo a las

prendas que confecciona. La tarifa para el pago depende de la prenda que termina de acuerdo al siguiente cuadro:

TIPO DE PRENDA TARIFA POLO 0.50

CAMISA 1.00 PANTALON 1.50

Los obreros durante el mes pueden confeccionar solo un tipo de prenda. Si el obrero confecciona más de 700 unidades recibirá una bonificación de acuerdo a su categoría, como se indica en el cuadro siguiente:

CATEGORIA BONIFICACION A 250.00 B 150.00 C 100.00 D 50.00

Del total de ingresos se descontara 9% por concepto de impuestos, 2% por seguro y 1% por solidaridad. En ningún caso el descuento por seguro será mayor a S/. 20.00. Al final presentar el sueldo neto, cada uno de los descuentos y la bonificación. Los resultados se mostraran con dos decimales.

25. PC: Que calcule el monto mensual a pagar por un servicio de atención medica. El policlínico brinda atención de salud solo a sus asegurados, los cuales se dividen en cuatro categorías, cada una con una tarifa básica que se paga mensualmente: CATEGORÍA TARIFA (S/.) POLICLÍNICO DOMICILIO

A 100 10 3 B 80 7 2 C 60 5 1 D 40 3 -

Si el asegurado asiste a más consultas que las indicadas en el cuadro anterior deberá pagar por consulta adicional: S/. 15.00 por consulta en el policlínico y S/. 20.00 por consulta a domicilio. Si el asegurado es mayor a 75 años, recibirá el siguiente descuento respecto al total según su categoría:

Page 128: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   128  

 

CATEGORÍA DESCUENTO

A, B 30 % C, D 25 %

Se deberá mostrar el monto total a pagar.

26. PC: Que calcule el monto a pagar por una licencia municipal. El monto de la licencia dependerá de la zona donde se encuentra el negocio, el área que ocupa y el giro de este. De acuerdo a la ubicación el monto de la licencia por metro cuadrado será el que se indica en el siguiente cuadro:

ZONA UBICACIÓN COMERCIAL PRINCIPAL LATERAL

($/M2) ($/M2) ($/M2) Miraflores (M) 15 13 10 San Isidro (S) 12 10 8 Lince (L) 10 9 6 Jesús Maria (J) 14 12 10

De acuerdo al giro del negocio se incrementara el monto en los siguientes porcentajes:

GIRO INCREMENTO (%)

Abarrotes (A) --- Vestido y Calzado (V) 15 Electrodomésticos (E) 20 Alimentos y Bebidas (B) 5

27. PC: Que calcule el monto por impuesto predial. El impuesto dependerá del área que ocupa la casa (Ingresado por teclado), de los años de construcción y del material de construcción. Para calcular el impuesto debe considerarse el siguiente cuadro:

AÑOS DE CONSTRUCCIÓN IMPUESTO ($/M2)

0 - 5 2.00 6 – 10 1.20 11 – 15 0.85 16 a más 0.25

De acuerdo al material de construcción el impuesto resultante aumentara en los porcentajes indicados:

MATERIAL DE CONSTRUCCIÓN AUMENTO (%)

Concreto 25 Ladrillo 12 Adobe 3 28. PC: Que calcule el pago que se debe realizar por transporte de carga interprovincial. La

empresa que brinda este servicio solo tiene 4 destinos y de acuerdo a ellos tiene tarifas básicas, las cuales se indican en el siguiente cuadro:

DESTINO TARIFA ($)

Ica 100.00 Arequipa 450.00 Chimbote 300.00 Trujillo 350.00

Page 129: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   129  

 

El servicio se realiza por vía terrestre. El servicio se brinda a personas naturales o empresas

Las tarifas pueden variar de acuerdo a la modalidad del servicio incrementándose la tarifa básica de acuerdo al siguiente cuadro:

MODALIDAD INCREMENTO (%)

Servicio DESTINO

Natural Ica 0 Arequipa 9 Chimbote 10

Trujillo 13 Empresa Ica 3 Chimbote 7

Si el cliente es una persona natural las tarifas básicas tendrán otro incremento adicional de 5% por seguro. Los montos por el servicio se mostraran en soles y dólares.

Page 130: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   130  

 

Contenidos

- Estructuras de Repetición - Concepto de Bucle: bucle finito - Elementos de un Bucle: Contadores, Acumuladores, Banderas - Tipos de estructura de repetición - Estructura de Repetición – Mientras

____________________________________________________________________________________

Estructura de Repetición

Concepto de Bucle En programación, un bucle es un tipo de estructura de control que permite repetir una o más sentencias múltiples veces. Todos los bucles se ejecutan mientras se cumpla una determinada condición, mientras esa condición sea verdadera, el bucle seguirá ejecutándose. En la mayoría de los lenguajes de programación, los bucles también pueden "escaparse" o "romperse", a pesar de que la condición siga siendo verdadera. Es otra forma de salir de la ejecución de un bucle. El uso de este tipo de funciones de escape, es considerado impropia e innecesaria por los programadores más puristas, pues siempre se puede salir de un bucle utilizando la condición. En el caso de que salir sea complicado o imposible, significa que se eligió mal el tipo de bucle. Desde un punto de vista práctico, muchas veces es más fácil emplear alguna función de escape del bucle. Si hay algún error en el código, el bucle podría ejecutarse una y otra vez, entrando en un bucle infinito.

Page 131: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   131  

 

Bucle infinito se considera un error de programación, a menos que ese sea el resultado esperado por el programador (generalmente usado en programas malignos/molestos, para que se repita una acción una y otra vez).

Elementos de un Bucle a) Contadores.- Un elemento cuyo valor puede incrementar o disminuir en un valor

constante en cada iteración de un bucle, y se utiliza para controlar la condición del bucle. Las formas de poder usar a los contadores pueden ser:

Para contabilizar el número de veces que es necesario repetir una acción (variable

de control de un bucle). Para contar un suceso particular solicitado por el enunciado del problema

(asociado a un bucle o independientemente).

b) Acumuladores.- Es un campo de memoria cuyo valor se incrementa sucesivas veces en cantidades variables. Se utiliza en aquellos casos en que se desea obtener el total acumulado de un conjunto de cantidades, siendo preciso inicializarlo con el valor 0.

También en las situaciones en que hay que obtener un total como producto de distintas cantidades se utiliza un acumulador, debiéndose inicializar con el valor 1.

En programación, un bucle es una sentencia que se repite varias veces bajo unas condiciones. Se utiliza para repetir sin tener que repetir el mismo código. Esto permite ahorro de tiempo, menor tamaño de programa, mayor claridad y facilita las modificaciones. 

C= C + Valor C= C * Valor C= C - Valor

C= C / Valor C= C ^ Valor

Acu= Acu + Contador Acu= Acu * Contador

Acu= Acu + Valor Ingresado

Page 132: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   132  

 

c) Banderas (Interruptor flag).- Es una variable que sirve como indicador de una determinada información y que solo puede tomar uno de dos valores (0 -1 / verdadero - falso).

·

Recordar en un determinado punto de un programa la ocurrencia o no de un suceso anterior, para salir de un bucle o para decidir en una instrucción alternativa qué acción realizar.

Para hacer que dos acciones diferentes se ejecuten alternativamente dentro de un bucle.

1. Tipos de estructura de Control de Repetición Entre ellas tenemos:

Estructura de Repetición Mientras

En esta estructura, de entrada se evalúa una condición. En caso de que el resultado de tal evaluación sea true, se ejecuta un bloque de instrucciones, en el cual debe existir una instrucción que modifique la condición. De no existir esa instrucción, se ejecutará un ciclo infinito. Si el resultado de la evaluación es false, el bloque de instrucciones no se ejecuta y finaliza la ejecución de la estructura.

Nota: Para que por primera vez cumpla la condicion se debera de usar a un contador con un valor inicial y hacer que la condicion sea verdadera tomando encuenta al contador(esto debera esta inicializado antes de la estructura Mientras).

Sw=0 / Sw=1

Sw=true / Sw=false

mientras (Condicion)

<Acciones>

fin_mientras

Page 133: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   133  

 

• Casos: Los ejemplos mas usuales en donde podemos aplicar estructuras de repeticion tal como la estructura Mientras es talvez en el uso de series, veamos:

Caso 1: Muestre la Serie 3,6,9,12,….,50

variables entero: c

inicio

c=3 mientras(c<=30) escribir(c)

c=c+3

fin_mientras fin_programa

Caso 2: Muestre la serie 50,47,44,41,….,3

variables

entero: c

inicio

c=50

mientras(c>=3) escribir(c)

c=c-3

fin_mientras fin_programa

Es  la  variación  del  contador para  poder  cumplir  con  la condición del bucle. 

Es  la  variación  del  contador para  poder  cumplir  con  la condición del bucle. 

Page 134: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   134  

 

Caso 3: Muestre la Serie 4,8,16,32,….,450

variables

entero: c

inicio

c=4 mientras(c<=450) escribir(c)

c=c*2

fin_mientras fin_programa

Caso 5: Mostrar 50 Veces la palabra “Programacion”

variables entero: c inicio c=1

mientras(c<=50) escribir(c,”.- Programación”)

c=c+1 fin_mientras

fin_programa

Caso 4: Muestre la serie : 2,22,222,2222,22222

variables entero: c

inicio c=2

mientras(c<=22222) escribir(c)

c=c*10+2 fin_mientras

fin_programa  

Es  la  variación  del  contador para  poder  cumplir  con  la condición del bucle. 

Es  la  variación  del  contador para  poder  cumplir  con  la condición del bucle. 

Es  la  variación  del  contador para  poder  cumplir  con  la condición del bucle. 

Page 135: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   135  

 

Caso 7: Muestre la Serie: 9,10,12,15,19,24,…,650

variables entero: c,x inicio c=9 : x=1

mientras(c<=650) escribir(c)

c=c+x x=x+1

fin_mientras fin_programa

Caso 6: Muestre la Serie : 80,70,60,50,…,0

variables entero: c

inicio c=80

mientras(c>=0) escribir(c)

c=c-10 fin_mientras

fin_programa  

Es  la  variación  del  contador para  poder  cumplir  con  la condición del bucle. 

 

Es  la  variación  del  contador para  poder  cumplir  con  la condición  del  bucle.  Puede haber N Contadores. 

Page 136: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   136  

 

Uso de la Estructura while en Java. El programa se ejecuta siguiendo estos pasos:

(1) Se evalúa la expresión lógica. (2) Si la expresión es verdadera ejecuta las sentencias, sino el programa abandona la sentencia while . (3) Tras ejecutar las sentencias, volvemos al paso 1 Cuando se utiliza una estructura while se debe tomar en cuenta que llevara { } cuando quieres que repitas más de una Acción.

while (Condicion) {

<Acciones>

}

int c=9,x=1;

while(c<=650){

modlista.addElement(c);

c=c+x;

x=x+1;

Page 137: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   137  

 

Usando otros Controles Swing en JAVA (JScrollPane, JTextArea y del JList)

JScrollPane.- permite que los objetos (JTextArea, JList) tengan barra de desplazamiento en forma vertical u horizontal.

JTextArea .- Es un área de texto, es una zona de múltiples líneas que permite la

presentación de texto, que puede ser editable o de sólo lectura. Los métodos que podemos ir usando son:

setText.- cuando solo se desea imprimir una línea o limpiar todo el texto.

append.- cuando se quiera agregar múltiples líneas dentro del texto.

Cuando se use un JTextArea no es necesario utilizar un Custom debido a que su método append permite reflejar los datos introducidos, ahora lo que se puede realizar es manipular salto de línea y dar espacio entre un carácter y otro.

“\n” permite dar un salto de línea “\t” permite establecer un espacio entre uno y otro

Como por Ejemplo:

JList .- Este control permite agregar datos en forma lineal, es un poco más difícil de manejar pero nos permite hacer cosas más interesantes que el JComboBox. También veremos cómo utilizar algunas otras clases que nos van a permitir manejar un JList de una manera más eficiente por ejemplo para permitir que crezca de manera dinámica.

Page 138: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   138  

 

Manejo de Enlace con el modal

Debemos de crear una enlace llamado DefaultListModel que me permitirá manipular los datos de la lista.

Nomenclatura : ModLstNombre

Para crearlo simplemente dar click al Source de Frame y escribir:

DefaultListModel nombre=new DefaultListModel();

Luego para poderlo enlazar con el Jlist deberemos de seleccionar a la lista y dar click en propiedades y seleccionar Model y en esa lista buscar el modal que hemos creado.

Procedimiento para Crear una Lista con el JScrollPane

1er paso: Crear Tu aplicación.(Clase y Frame)

2do paso: en el Frame insertar un JScrollPane que se encuentra en

el Swing Containers.

Quedando de esta forma

Page 139: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   139  

 

3er paso: regrese componentes Swing y elija un JList y dar click dentro del JScrollPane quedando de la siguiente manera.

4to paso: dar click en el Source del Frame y escribir.

5to paso y ultimo: ahora tendrá que seleccionar al jList que se encuentra en la ventana Structure y luego elegir la propiedad model y seleccionar el modal que habíamos creado.

DefaultListModel nombre=new DefaultListModel();

Page 140: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   140  

 

Métodos que se pueden utilizar para manipular a las Listas

addElement().- Permite agregar datos a la lista. getSelectedIndex().- Devuelve el orden del dato seleccionado dentro de la

lista. remove(ind).- Quita el dato según el orden clear.- Borrar todo los datos de la lista. setElementAt(objeto,orden).- asigna un dato a una posición en

establecida getElementAt(orden).- permite obtener el dato de acuerdo a la posición.

Modal o Custom Creado. 

No te olvides de haber seleccionado al jList. 

Page 141: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   141  

 

Contenidos

- Ejemplos de Ingreso de Datos con estructura Mientras - Control de Bucle por Bandera - Contadores y Acumuladores - Uso del JOptionPane (showInputDialog) - Uso de la Estructura while con Ingreso de Datos.

____________________________________________________________________________________

Usando el código Java En la clase anterior aprendimos a realizar series utilizando el pseudocódigo y ahora esos ejemplos los pasaremos a JAVA. Qué te parece si abres el programa y creas una aplicación y realizas esta ventana.

JList  JTextArea

Page 142: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   142  

 

Diseña lo siguiente:

1. Inserta un botón y ponle el nombre: btnSerie1

2. Inserta dos JScrollPane dibújelo según la dimensión

3. Seleccione el 1er JScrollPane, inserte un JList .

4. Seleccione el 2do JScrollPane, inserte un JTextArea.

5. Inserte un Custom para el Jlist recuerde que se llama DefaultListModel,

establezca el nombre del custom que se llamara ModLstN.

6. Vuelva a la lista y elija la propiedad Model y busque el modal que ah creado.

7. Luego dar 2 click al botón y codifiquemos esto.

private void btnS_actionPerformed(ActionEvent e) { int c=3;

while(c<=30){ ModLstN.addElement(c); // Escribe dentro de la lista

txt1.append(c+"\n"); // Escribe dentro del area.

c=c+3;

}

}

Esto es solo una demostración, tú solo puedes utilizar a cualquiera de los dos para poder mostrar.  

Page 143: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   143  

 

Caso 2: 50,47,44,41,….,3

private void btnS_actionPerformed(ActionEvent e) { int c=50;

while(c>=3){

ModLstN.addElement(c); // Escribe dentro de la lista

c=c-3;

}

}

Caso 5: Mostrar 50 Veces la palabra “SISE…ver”

private void btnS_actionPerformed(ActionEvent e) {

int c=1;

while(c<=50){

ModLstN.addElement(c+".- SISE...ver");

c=c+1;

}

}

Page 144: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   144  

 

Caso 7: 9,10,12,15,19,24,…,650

private void btnS_actionPerformed(ActionEvent e) {

int c=9 , x=1;

while(c<=650){

ModLstN.addElement(c);

c=c+x;

x=x+1;

}

}

Page 145: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   145  

 

Mientras con ingreso de datos Significa que el bucle permitirá controlar el total de datos que deseemos ingresar. Además podremos controlarlo mediante un estado de Bandera o el ingreso de una respuesta.

• Casos: Caso 01: Ingresar 10 notas y mostrar el promedio

variables

entero: nota,c,acu

decimal: p

inicio

c=1

mientras(c<=10)

leer(nota)

escribir(nota)

acu=acu+nota

c=c+1

fin_mientras

p=acu/10

escribir(p)

fin_programa

Caso 02 : Ingresar N Sueldo y terminara cuando se ingrese un Sueldo 0, mostrar el

total de Sueldos ingresados sin incluir al cero.

variables

entero: sueldo,c,sw

inicio

c=0

sw=0

mientras(sw=0)

leer(sueldo)

escribir(sueldo)

si(sueldo=0)

Page 146: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   146  

 

sw=1

sino

c=c+1

fin_si

fin_mientras

escribir(“Cantidad de Sueldos: ”,c)

fin_programa

Caso 03 : Ingresar una lista de 15 Distritos y mencionar cuantos distritos de Lince,

Breña o San Miguel se ingresaron a la lista.

variables

caracter: distrito

entero: cl,cb,cs,cd

inicio

cd=1

mientras(cd<=15)

leer(distrito)

escribir(distrito)

si(distrito=”Lince”)entonces

cl=cl+1

fin_si

si(distrito=”Breña”)entonces

cb=cb+1

fin_si

si(distrito=”San Miguel”)entonces

cs=cs+1

fin_si

cd=cd+1

fin_mientras

escribir(“Cantidad de Distritos de Lince son : ”,cl)

escribir(“Cantidad de Distritos de Breña son : ”,cb)

escribir(“Cantidad de Distritos de San Miguel son : ”,cs)

fin_programa

Recuerda: Cuando necesites saber cantidades de datos deberás de usar un contador y a una condición. El contador será

C=C+1 

Page 147: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   147  

 

Caso 04 : Ingresar una lista de 10 Datos (Nombres,Apellidos,Sexo,Edad ) deberá de mostra cuantos son del sexo “Mujer” o “Varon”, cuantos son mayores o menores de edad. Al final deberá de mosrtrar el promedio de las edades por sexo y en general.

variables

caracter: nom,ape,sexo

entero: edad

decimal: psm,psv

inicio

cd=1

mientras(cd<=10)

leer(nom,ape,sexo,edad)

escribir(nom,ape,sexo,edad)

si(sexo=”Mujer”)entonces

acuEm=acuEm+edad

csm=csm+1

fin_si

si(sexo=”Varon”)entonces

acuEv=acuEv+edad

csv=csv+1

fin_si

cd=cd+1

fin_mientras

psm=acuEm/csm

psv= acuEv/csv

escribir(“La cantidad de Mujeres en la lista son: ”,csm)

escribir(“La cantidad de Varones en la lista son: ”,csv)

escribir(“El promedio de Edades de Mujeres en la lista son: ”,psm)

escribir(“El promedio de Edades de Varones en la lista son: ”,psv)

fin_programa

Page 148: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   148  

 

Caso 05 : Resuelve este caso: Ingresar una lista de 10 Datos (Empleado, Area, Estado ) deberá de establcer el sueldo de acuerdo al area que se muestra en la siguiente tabla

Area Sueldo Contabilidad 1520 Administracion 1630 Logistica 1450 Almacen 1230 Otros 1020

El estado sera Honorarios o Planilla. Todos aquellos que sean del estado de planilla tendra descuentos de Seguro el 7%, fonavai el 12%, ademas cuenta con bonos de acuerdo al mes si estamos en Julio o Diciembre seran gratificaciones del 50% y si estamos en el mes de Mayo o Noviembre seran aumentos por CTS que sera el 27.34%. Todos aquellos que sean del estado de Honorarios tendran un descuento del 10% por ser de la 4ta categoria.

- La primera parte mostrar los datos generados(aumentos y descuentos), ademas el neto a cobrar por el trabajado.

- La segunda parte tendra que mostrar cuantos empleados son del estado de planilla y cuantos de honorarios, cuantos corresponden a cada area y cuanto es el monto que desenbolso la empresa en las gratificaciones y CTS.

Page 149: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   149  

 

La clase JOptionPane (parte I)

Es simplemente un contenedor que puede crear automáticamente un JDialog y se añade a sí mismo al panel de contenido de JDialog, permitiendo que se puedan crear muchos diálogos. Como por ejemplo: Un dialogo que me permita el ingreso de datos.

• Por ejemplo si se tiene que ingresar un dato de tipo:

String se usara de la siguiente manera Nombre=JOptionPane.showInputDialog(“Ingresar el Nombre”);

apellido=JOptionPane.showInputDialog(“Ingresar el Apellido”);

int se usara de la siguiente manera

int ts=Integer.parseInt(JOptionPane.showInputDialog("Ingresar Tiempo de Servicio"));

Variable=JOptionPane.showInputDialog(“Mensaje”);  

Cuando aparezca este emergente deberá de presionar Alt enter

Page 150: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   150  

 

double se usara de la siguiente manera

Sueldo=Double.parseDouble(JOptionPane.showInputDialog(“Ingresar el Sueldo”));

Ejemplos usando el código Java: En la clase anterior aprendimos a realizar series e ingreso de datos utilizando el pseudocódigo. Ahora aprenderemos a ingresar datos en el lenguaje JAVA. Qué te parece si abres el programa y creas una aplicación y realizas esta ventana.

Aquí utilizaremos la clase JOptionPane para realizar el ingreso de datos con showInputDialog

Page 151: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   151  

 

private void btnIngreso_actionPerformed(ActionEvent e) { int nota,c,acu=0;

double p;

c=1;

ModLstN.clear(); //permite limpiar toda la lista

while(c<=10){

nota=Integer.parseInt(JOptionPane.showInputDialog("Ingresar Nota"+c));

ModLstN.addElement(nota);

acu=acu+nota;

c=c+1;

}

p=acu/10;

lblp.setText(""+p);

}

Caso 04 a Java : Ingresar una lista de 10 Datos (Nombres,Apellidos,Sexo,Edad ) deberá de mostrar cuantos son del sexo “Mujer” o “Varon”, cuantos son mayores o menores de edad. Al final deberá de mosrtrar el promedio de las edades por sexo.

Page 152: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   152  

 

private void btnGenerar_actionPerformed(ActionEvent e) { String nom,ape,sexo;

int edad,cd=1,csm=0,csv=0;

double psm,psv,acuEm=0,acuEv=0;

while(cd<=6){

nom=JOptionPane.showInputDialog("Ingresar Nombre");

ape=JOptionPane.showInputDialog("Ingresar Apellidos");

sexo=JOptionPane.showInputDialog("Ingresar Sexo");

edad=Integer.parseInt(JOptionPane.showInputDialog("Ingresar Edad"));

ModLstNom.addElement(nom);

ModLstApe.addElement(ape);

ModLstSexo.addElement(sexo);

ModLstEdades.addElement(edad);

if(sexo.equalsIgnoreCase("Mujer")){

acuEm=acuEm+edad;

csm=csm+1;

}

if(sexo.equalsIgnoreCase("Varon")){

acuEv=acuEv+edad;

csv=csv+1;

}

cd=cd+1;

}

psm=acuEm/csm;

psv= acuEv/csv;

lblCm.setText(""+csm);

lblCv.setText(""+csv);

lblPm.setText(""+psm);

lblPv.setText(""+psv);

}

Page 153: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   153  

 

Caso 02 : Ingresar una lista de 10 Numeros en forma Aleatoria y mostrar el promedio de los numeros Los numeros deberan no ser mas de 100. Para ello Diseñemos esta ventana y ademas utilizaremos la Clase MAth para generar los numeros aleatorios.

private void btnIngreso_actionPerformed(ActionEvent e) { int c;

double p,nota,acu=0;

c=1;

ModLstN.clear();

while(c<=10){

nota=Math.random()*100+1;

ModLstN.addElement(c+".- "+ nota);

acu=acu+nota;

c=c+1;

}

p=acu/10;

lblp.setText(“”+p);

}

Page 154: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   154  

 

Contenidos 

- Elaboración del plan de Prueba Estructura de Repetición – Repetir - Uso de interruptores para el control de bucle. - Laboratorio 2 - Uso del JOptionPane (showConfirmationDialog).

__________________________________________________________________________________________________

Estructura Repetir – Hacer Mientras Se ejecuta hasta que se cumpla una condición determinada que se comprueba al final del bucle, esto permite que la iteración se ejecute al menos una vez antes de que la condición sea evaluada.

Estructura Repetir

repetir

<acciones>

hasta_que (<expresión_lógica>)

do{

<acciones>

}while (<expresión_lógica>)

Page 155: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   155  

 

Caso 01: Escriba un algoritmo que lea del teclado un número entero y que compruebe si es menor que 5. Si no lo es, debe volver a leer un número, repitiendo la operación hasta que el usuario escriba un valor correcto. Finalmente debe escribir por pantalla el valor leído.

variables

entero: num

inicio

escribir(“Teclee un número menor que 5”)

repetir

leer num

hasta_que(num >= 5)

escribir(“El número leído es: “, num)

fin

private void btnIngresar_actionPerformed(ActionEvent e) {

int num;

do{

num=Integer.parseInt(JOptionPane.showInputDialog("Ingresar Numero"));

}while(num>5) ;

lblp.setText(""+num);

}

Page 156: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   156  

 

Caso 02: Modifique el algoritmo del caso 1 para que, en vez de comprobar que el número es menor que 5, compruebe que se encuentre en el rango (5,15).

variables entero: num

inicio escribir(“Teclee un número entre 5 y 15 (no incluidos))”

repetir leer num

hasta_que(num <= 5 O num >= 15)

escribir(“El número leído es: “, num)

fin

private void btnIngresar_actionPerformed(ActionEvent e) { int num;

do{

num=Integer.parseInt(JOptionPane.showInputDialog("Ingresar Numero"));

}while (num <= 5 | num >= 15) ;

lblp.setText(""+num);

}

Page 157: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   157  

 

Caso 03: Modifique el algoritmo del caso 2 para que cuente las veces que ha leído un número que no está incluido en el rango y escriba el resultado por pantalla.

variables

entero: num, veces

inicio

escribir(“Teclee un número entre 5 y 15 )”

veces ← 1

repetir

leer num

veces = veces + 1

hasta_que(num <= 5 O num >= 15)

escribir(“El número leído es: “, num)

escribir(“La Cantidad de Numeros ingresados fueron : “,veces)

fin

Page 158: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   158  

 

private void btnIngresar_actionPerformed(ActionEvent e) {

int num;

do{

num=Integer.parseInt(JOptionPane.showInputDialog("Ingresar Numero"));

}while (num <= 5 | num >= 15) ;

lblp.setText(""+num);

lblp1.setText("Intento "+veces+" Veces");

}

Caso 04: Escriba un algoritmo en pseudocódigo que calcule e imprima la suma de los n primeros números enteros positivos. El valor de n debe leerse del teclado.

variables

entero: i

real: s

inicio

leer(n)

s= 0

i=1

repetir

s= s+i

i = i+1

hasta_que(i<n)

escribir(“La suma hasta el numero “, n,)

escribir (“numeros es: “, s)

fin

Page 159: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   159  

 

private void btnIngresar_actionPerformed(ActionEvent e) { int i=0,n;

double acu;

txtSalida.setText("");

n=Integer.parseInt(JOptionPane.showInputDialog("Ingresar Numero"));

s= 0;

do{

acu= acu+i;

i = i+1;

} while(i<n);

txtSalida.append("La suma hasta el numero "+ n+"\n");

txtSalida.append("es: "+ s+"\n");

}

Usaremos un JTextArea para mostrar Varios resultados en el mismo objeto.

Page 160: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   160  

 

La clase JOptionPane (parte II) También se podrá usar para establecer mensajes de confirmación de datos.

Como por ejemplo:

int rc = JOptionPane.showConfirmDialog(this,"Producto SISE", "Solicitud de

confirmacion",JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);

if(rc==0)

JOptionPane.showMessageDialog(null,"SI soy de SISE");

else

JOptionPane.showMessageDialog(null,"Quiero ser de SISE");

Para terminar el programa según la respuesta dada por el usuario int ver = JOptionPane.showConfirmDialog(null,

"¿Deseas Salir del Programa...?", "Salida",

0,JOptionPane.QUESTION_MESSAGE);

if(ver==0)

System.exit(0);

JOptionPane. showConfirmDialog( (“Mensaje”);  

Cuando aparezca este emergente deberá de presionar Alt enter

Page 161: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   161  

 

Contenidos 

- Estructura de Repetición – Desde. - Sustento para el manejo de la Estructura Desde - Uso del JOptionPane (showMessageDialog) - Uso de la Estructura for..

____________________________________________________________________________________

Estructura Desde

La estructura Desde sirve para repetir un código dependiendo de un contador, establecer el valor inicial y el valor final.

Definición:

<variable> .- Puede ser cualquier variable en la que se pueda incrementar su valor, es decir todas las numéricas.

<valor_inicial> Es una expresión con el primer valor que toma la variable del bucle. Debe ser del mismo tipo que la variable del bucle.

<valor_final> Es una expresión con el último valor que toma la variable del bucle. Debe ser del mismo tipo que la variable del bucle. El bucle finaliza cuando la variable toma un valor mayor que este valor inicial.

[Incremento] en pseudolenguaje se toma por defecto el valor 1, aunque puede explicitarse por medio de la sentencia PASO(léase bien entero, o sea que técnicamente podemos decrementar).

desde(<variable> = <valor_inicial> hasta <valor_final> , [incremento ])

<acciones>

fin_desde

Page 162: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   162  

 

Porqué usarlo? La principal diferencia de un bucle DESDE con respecto a los bucles MIENTRAS Y REPETIR,

es que puede determinarse al comienzo del bucle cuántas veces se iterará el mismo, lo cual

muchas veces puede redundar en una optimización del código por parte de los compiladores.

Las condicionales constituyen junto con los bucles los pilares de la programación estructurada,

y su uso es una evolución de una sentencia de lenguaje ensamblador que ejecutaba la

siguiente línea o no en función del valor de una condición.

El bucle DESDE se ha convertido en el bucle más ampliamente utilizado en la programación,

ya que con la evolución de los lenguajes la mayoría de las condiciones de fin puede

determinarse con una función. Un ejemplo claro es el reemplazo del código de recorrido de una

tabla

Caso 01: Calcular la suma de los cuadrados de los primeros 50 enteros y escribir el resultado. Se desea resolver el problema usando estructura Desde, Mientras y luego Repetir.

variables

entero: suma,I

inicio

desde(I=1 hasta 50)

suma=suma+I*I

fin_desde

escribir(“La suma de los cuadros de los primeros 100 números son:”,suma)

fin_programa

En JAVA

for(expresión inicial; expresión condicional; variacion){

<Acciones>

}

Page 163: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   163  

 

private void btnAceptar_actionPerformed(ActionEvent e) {

int suma=0,I,cua;

for(I=1;I<=50;++I){

cua=I*I;

suma=suma+cua;

ModLstNum.addElement(I+"^"+I+"= "+cua);

}

lbl1.setText("La suma de los cuadrados de los primeros 50 números es :"+suma);

}

Caso 02: Imprimir la suma de los primeros 1250 números enteros

Page 164: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   164  

 

private void btnAceptar_actionPerformed(ActionEvent e) { int suma=0;

for(int x=1;x<=1250;++x){

suma=suma+x;

ModLstNum.addElement(x);

}

lbl1.setText("La suma de los primero 1250 números entero es :"+suma);

} Caso 03: Mostrar la tabla de multiplicar de acuerdo a un numero ingresado. variables entero: x,num,r

inicio desde(x=1 hasta 12){ r= num*x

escribir( num,"*",x , "=", r)

fin_programa

Page 165: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   165  

 

private void btnAceptar_actionPerformed(ActionEvent e) { int r;

int num=Integer.parseInt(txtn.getText());

for(int x=1;x<=12;++x){

r=num*x;

ModLstNum.addElement(num+"*"+x+"="+r);

} } Caso 04: Leer 20 números enteros y producir:

• La suma de los números leídos • El promedio de los números • El mayor y el menor número

variables entero: x,num,suma

decimal: pn,Aux_mayor , Aux_menor

inicio

leer(num)

Aux_menor=num

escribir(num)

desde(x=1 hasta 19){

suma= suma+num

si(num>Aux_mayor)entonces

Aux_Mayor=num

fin_si

si(num<Aux_menor)entonces

Aux_Menor=num

fin_si

leer(num)

escribir(num)

fin_desde

prom_num=suma/20

Page 166: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   166  

 

escribir ("La suma de los números: ",suma)

escribir(“Promedio de los números: ”,prom_num)

escribir(“EL numero Mayor es: ",Aux_mayor)

escribir("EL numero Menor es: ",Aux_menor)

fin_programa private void btnAceptar_actionPerformed(ActionEvent e) { int x,num,suma=0;

double prom_num,Aux_mayor=0,Aux_menor;

num=Integer.parseInt(JOptionPane.showInputDialog("Ingresar Numero : Orden: 1"));

ModLstNum.addElement(num);

Aux_menor=num;

for(x=2;x<=20;++x){ suma= suma+num;

if(num>Aux_mayor)

Aux_mayor=num;

if(num<Aux_menor)

Aux_menor=num;

num=Integer.parseInt(JOptionPane.showInputDialog("Ingresar Numero : Orden: "+x));

ModLstNum.addElement(num);

} prom_num=suma/20;

lblsuma.setText("La suma de los números: "+suma);

lblprom.setText("Promedio de los números: "+prom_num);

lblpMa.setText("EL numero Mayor es: "+Aux_mayor);

lblpme.setText("EL numero Menor es: "+Aux_menor);

}

Page 167: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   167  

 

La clase JOptionPane (parte III) También se podrá usar para establecer mensajes de salidas o avisos para el usuario.

Como por ejemplo:

Sintaxis: JOptionPane.showMessageDialog(un_componente_padre,mensaje,titulo,iconos) Usos: //título e icono por defecto JOptionPane.showMessageDialog(null,"Texto del mensaje."); //título personalizado, icono de pregunta JOptionPane.showMessageDialog(null,"Texto del mensaje.","Título del marco o ventana", JOptionPane.QUESTION_MESSAGE); //título personalizado, icono de información JOptionPane.showMessageDialog(null,"Texto del mensaje.","Título del marco o ventana", JOptionPane.INFORMATION_MESSAGE); //título personalizado, icono de aviso JOptionPane.showMessageDialog(null,"Texto del mensaje.","Título del marco o ventana", JOptionPane.WARNING_MESSAGE); //título personalizado, icono de error JOptionPane.showMessageDialog(null,"Texto del mensaje.","Título del marco o ventana", JOptionPane.ERROR_MESSAGE); //título personalizado, sin icono JOptionPane.showMessageDialog(null,"Texto del mensaje.","Título del marco o ventana ", JOptionPane.PLAIN_MESSAGE);

JOptionPane.showMessageDialog(“Mensaje”);  

Cuando aparezca este emergente deberá de presionar Alt enter

Saca el mensaje centrado en “un componente padre”. Si ponemos this te centra en la barra de título.

Page 168: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   168  

 

Ejemplos de Mensajes: JOptionPane.showMessageDialog(this,"Estamos en la Version 11g de JDeveloper...."); JOptionPane.showMessageDialog( null, "El promedio de la clase es " + promedio,"Promedio de la clase", JOptionPane.ERROR_MESSAGE); String salida;

int ca=Integer.parseInt(txtca.getText());

int cd=Integer.parseInt(txtcd.getText());

salida = "Aprobados: " + ca + "\nReprobados: " +cd;

JOptionPane.showMessageDialog( null, salida,"Análisis de resultados del

examen",JOptionPane.INFORMATION_MESSAGE );

Page 169: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   169  

 

Caso 01: Modifique el algoritmo del caso 3 para que se realicen 10 lecturas del teclado como máximo.

variables entero: num, veces

inicio escribir(“Teclee un número entre 5 y 15 )”

veces ← 1

repetir

leer num

veces = veces + 1

hasta_que(!(num>=5 & num<=15) & !(veces==10))

escribir(“El número leído es: “, num)

si (veces=10) entonces

escribir(“Completo con los intentos”)

fin_si

fin_programa

Page 170: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   170  

 

private void btnIngresar_actionPerformed(ActionEvent e) { int num, veces=0;

do{

num=Integer.parseInt(JOptionPane.showInputDialog("Ingresar Numero"));

veces=veces+1;

}while(!(num>=5 & num<=15) & !(veces==10)) ; //si no es estan en el rango y no llego a ser 10

lblp.setText(""+num);

if (veces==10){

JOptionPane.showMessageDialog(null,"sus Intentos Termino");

lblp.setText(""+"");

}

lblp1.setText("Intento "+veces+" Veces");

}

Page 171: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   171  

 

Contenidos 

- Estructuras Anidadas. - Ejemplos con Iterativas. - Ejercicios de Aplicación.

____________________________________________________________________________________

Estructura Anidadas Puede anidar una estructura dentro de otra estructura, y por tanto guardar juntos elementos asociados.

Las estructuras de control básicas pueden anidarse, es decir pueden ponerse una dentro de otra.

En los ciclos anidados, al entrar a una estructura de repetición, dentro de ella se encuentra otra. La más interna se termina de realizar y se continúa con la externa hasta que la condición se cumple.

En los bucles cruzados, los cuales no son convenientes de utilizar, se tiene que iniciamos un bucle y no se ha terminado cuando empezamos otro, luego utilizamos estructuras break (saltos) para pasar al bucle externo y se quedan entrelazados.

Bucle A

Fin A

Page 172: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   172  

 

Bucle A

Bucle B

Fin B

Fin A

Bucle A

Bucle B

Fin B

Fin A

Bucle C

Fin C

Page 173: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   173  

 

EJEMPLOS

1. Mostrar las combinaciones de siguiente Serie: 00,01,02,03,….0n,10,11,12,13…1n,20,21,….n

private void btnSeries_actionPerformed(ActionEvent e) {

txtSalida.setText("");

int n=Integer.parseInt(txtn.getText());

for(int i=0;i<=n;++i){

for(int j=0;j<=n;++j){

txtSalida.append(""+i+j+"-");

}

txtSalida.append("\n");

}

Utilice un JTextArea para visualizar la serie.

Page 174: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   174  

 

2. Mostrar la Serie de acuerdo al número ingresado siempre bajara de 2 en 2.

private void btnSeries_actionPerformed(ActionEvent e) {

txtSalida.setText("");

int n=Integer.parseInt(txtn.getText());

for(int i=1;i<=n;++i){

txtSalida.append(i+".-");

for(int k=n;k>=1;k-=2){

txtSalida.append(k+" ");

}

txtSalida.append("\n");

}

}

Page 175: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   175  

 

3. Mostrar la Serie de acuerdo al número ingresado siempre bajara de 2 en 2.

private void btnSeries_actionPerformed(ActionEvent e) {

txtSalida.setText("");

int n=Integer.parseInt(txtn.getText());

for(int i=1;i<=n;++i){

for(int k=1;k<=i;++k){

txtSalida.append("V");

}

txtSalida.append("\n");

}

}

Page 176: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   176  

 

EJERCICIOS DE APLICACIÓN

1. Escriba un programa que muestre los números del 15 al 1 2. Escriba un programa que pida N números y nos diga cuál es el mayor y cuál es el

menor y la posición en que fueron leídos cada uno. 3.

Escriba un programa que pida las notas y nombres de cinco alumnos y calcule el promedio general.

4. Escriba un programa que presente en pantalla la tabla de multiplicar entre 1 y 10, requerida por el usuario.

5. Escribir un programa que visualice un triángulo isósceles de 10 filas, como se muestra a continuación:

* ** *** **** ***** ****** ******* ******** *********

6. Ingresar un número par y mostrar sus divisores; el número par debe ser positivo.

7. Dado dos números enteros a y b, imprimir su Máximo Común Divisor. El MCD es el

mayor valor que divide exactamente a ambos números.

8. Contar cuantos números múltiplos de 3, 7 y 9 existen entre 7 y 1000. (**)

9. Realice un programa que lea N números de 6 dígitos y calcule el promedio de sólo aquellos números que sean capicúas (números palíndromas).

10. Tome en consideración la siguiente definición: Un palíndromo es una palabra, número o frase que se lee igual hacia adelante que hacia atrás. Si se trata de un número, se llama capicúa.

11. Realice un programa que calcule el valor de la siguiente expresión:

12. Donde N es un valor entero cualquiera dado por el usuario. Considere que su programa debe funcionar aunque N ≤ 0

13. Se tiene un conjunto de N tarjetas, cada una contiene la información del censo para

una persona: a) Número de censo b) Sexo c) Edad d) Estado civil (a. Soltero, b. Casado c. Viudo d. Divorciado)

Page 177: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   177  

 

14. Elabore un programa que lea secuencias de datos de personas censadas e indique el número de personas que son mujeres solteras entre 16 y 21 años.

15. Escriba un programa para calcular el factorial de cada valor entero positivo entre 1 … n,

donde N será suministrado por el usuario.

16. Construya un programa que reciba como entrada una secuencia de valores de temperaturas y genere como salida el total de veces que se registro una temperatura menor que 0°, el total de veces que fue 0° y el total de veces que fue mayor que 0°. Considere que una temperatura con valor -9999° o (- 9999°) es una temperatura no valida e indica el fin de la secuencia de datos a procesar. La temperatura no válida puede suministrarse incluso como primer valor leído.

17. Desarrolle cada una de las siguientes series: a) 3,4,5,6,7….65 b) 65,64,63,62,61,……..,5,4,3

c) 12,15,18,21,24….78

d) 97,92,87,82,77,72,67….2

e) 3,9,15,21,27….(45 términos)

f) 56,53,50,47…(25 términos)

g) 1,2,3,4,5, 1,2,3,4,5, 1,2,3…(60 términos)

h) 1,2,3,4,5, 1,2,3,4,5, 1,2,3…(47 términos)

i) 1,2,3,4,5,6,7,8, 1,2,3,4,5,6,7, 1,2,3,4,5,6, 1,2,3,4,5, 1… 1,2

j) 5,6,8,11,15,20,26,33….(22 términos)

k) 1,1,2,3,5,8,13,21,34….(31 términos)

l) S=5+9+13+17+….45

m) OP=167-(3+6+9+….+27)

n) P=4*6*8*….*18

o) 6,16,26,…,646,656,666(todos los números que tengan por lo menos un 6)

p) S= 2+ 5+ 7+ 10+ 12+ 15+ 17+ .... +1800.

18. Consistencia el ingreso de 4 números. Que el primer número sea mayor al segundo,

que el segundo mayor al tercero y el tercero sea mayor al doble del cuarto número.

19. Consistencia el ingreso de 3 números. Que el primer número sea mayor al doble del

segundo número; que el segundo número sea menor al tercer número y que el tercer

número sea positivo mayor a 300.

Page 178: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   178  

 

20. Consistencia el ingreso del nombre de un distrito, tomando en cuenta que los distritos

válidos son: LINCE, MIRAFLORES Y SANTIAGO DE SURCO. Si el distrito es LINCE ó

MIRAFLORES, se debe de ingresar la cantidad de habitantes que hay en los dos

distrito juntos y muestre como resultado el promedio de habitantes de los dos distritos;

De son ser ninguno de los dos distritos, se debe de ingresar como dato, el promedio de

salario de los habitantes del otro distrito y muestre como resultado el promedio de

salario incrementado en 28.9%.

21. Consistencia el ingreso del nombre de una persona, tomando en cuenta que los

nombres válidos son: ANA, CARLOS, JUANA, MANUEL, NANCY. Si el nombre

ingresado fuese ANA, JUANA ó NANCY, se debe de pedir una edad y muestre como

resultado la edad incrementada en un 25%; de lo contrario se debe de pedir un sueldo

y muestre como resultado el sueldo disminuido en 15%.

22. PC: Que muestre cada elemento, además de la suma de estos en la siguiente serie:

3 5 7 9

S = + + + + ……

4 7 10 13

Considere que se sumaran 35 elementos únicamente.

23. Para encontrar el máximo común divisor de dos números, se emplea el algoritmo de Euclides, que se puede describir así: “Dados los enteros A y B, obteniendo un cociente C y un residuo R, si el residuo fuese diferente a cero, el nuevo dividendo será ahora B y el nuevo divisor será R, el proceso deberá repetirse hasta que resulte R=0”.

El MCD de ambos números será el último divisor obtenido.

24. PC: Que permita obtener a un alumno su promedio final en el curso de algorítmica, este se calcula según:

PP + 2 EP + 3 EF

PF=

6

Donde: PP : Promedio de las 7 practicas obtenidas eliminando la menor nota. EP : Examen Parcial. EF : Examen Final.

Page 179: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   179  

 

25. PC: Que muestre la estadística de las notas de los alumnos de un aula sabiendo que el promedio mínimo aprobatorio es 13 y que enlista se encuentran registrados 37 alumnos, los cuales no necesariamente completaros el curso.

El reporte deberá mostrar: Total de Desaprobados por Inasistencias (Su promedio es cero) % de Desaprobados por Inasistencias. Total de Aprobados % de Aprobados Total de Desaprobados % de Desaprobados Nota promedio de los Aprobados Nota promedio de los desaprobados Nota promedio del aula.

26. PC: Que imprima los 50 primeros números capicúas mayores que 100.

27. PC: Que ingrese un número y muestre un mensaje indicando si es primo o no.

28. PC: Que muestre por lo menos 5 números perfectos. Los primeros números perfectos son: 6, 28, 496, 8128, 33550336, 8589869056.

Así, 6 es un número perfecto, porque sus divisores propios son 1, 2 y 3; y 6

1 + 2 + 3=6 .sin incluir a el mismo

29. PC: Que ingrese 2 números e imprima un mensaje indicando si son amigos.

Un ejemplo es el par (220, 284), ya que los divisores propios de 220 son 1, 2, 4, 5, 10, 11, 20, 22, 44, 55 y 110, que suman 284 los divisores propios de 284 son 1, 2, 4, 71 y 142, que suman 220

30. PC: Que imprima los 50 primeros términos de la serie de Fibonacci.

31. PC: Que calcule el factorial de un número n: n ! =1 * 2 * 3 * 4 * …. n

32. PC: Que evalúe:

ex = 1 + x0 + x1 + x2 + x3 + x4 + ……… xn

2 3 4 5 n

Considere que x y n serán ingresados por el usuario, donde n es positiva y entera.

33. PC: Que muestre los elementos del siguiente triangulo para N Líneas:

Page 180: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   180  

 

1 2 2 3 2 3 4

…. 1 2 3 4 5 …… N

34. PC: Que muestre los elementos del siguiente triangulo para n Líneas:

1

1 2 1

1 2 3 2 1

1 2 3 4 3 2 1

35. PC: Que desarrolle la nómina para una compañía que tiene 16 empleados, algunos de los cuales son hombres y otras mujeres. Para cada empleado se debe leer el nombre, el sexo, las horas de trabajo y el sueldo por hora. La primera parte de la impresión debe dar el nombre y el pago de cada empleado. La segunda parte, el total de pagos para cada sexo, así como el promedio de los pagos a los hombres y el promedio de los pagos a las mujeres.

36. PC: Que permita ingresar varios sueldos como valor numérico, verificando si cada uno de ellos supera los US$ 750.00. El programa termina cuando ingresemos un valor negativo.

37. Se ingresa la estatura de 20 alumnos. Como primer resultado muestre cuántos

alumnos tienen estaturas menores a 1.55 metros; como segundo resultado

indique cuántos tiene estaturas entre 1.65 y 1.80 metros.

38. Se ingresa un número entero. Si el número es mayor a uno se debe de dividir

el número con todo los valores enteros existentes desde la unidad hasta el

mismo valor ingresado; cada vez que divida, verifique si el MOD resultante es 0

(CERO); Si es así, cuente cuántas veces resulto 0 (CERO) dicha operación y

muestre como resultado final este valor.

39. PC: Que permita ingresar el monto comprado en una ferretería e imprima el

número mínimo de billetes y monedas en actual circulación necesarios para la

cancelación.

40. PC: Que muestre el reporte de pagos que realizara un usuario a una prestamista sabiendo que los préstamos se realizan bajo las siguientes condiciones:

El monto mínimo que se otorga en préstamo es US$2500. Los pagos se realizaran en forma mensual, amortizando por cada vez un 20% del saldo. Se cancelara además un 5% mensual por concepto de interés, respecto al saldo.

Page 181: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   181  

 

Cuando el saldo sea menor a US$ 250, se deberá cancelar el integro del saldo.

El modelo del reporte a generar es el siguiente:

PRESTAMO: US$ 12,000.00

MES AMORTIZACION INTERES TOTAL SALDO

1 2400.00 600.00 3000.00 9600.00 2 1920.00 480.00 2400.00 7680.00 3 1536.00 384.00 1920.00 6144.00 4 1228.00 307.20 1536.00 4915.20 5 983.04 245.76 1228.80 3932.16 6 786.43 196.61 983.04 3145.73 …… ….. 18 54.04 13.51 67.55 216.17 19 216.00 10.81 226.81

41. Se ingresa el nombre de un futbolista, su país de nacimiento, edad, estado civil, la cantidad de goles anotados en su carrera y su peso. Este proceso se realiza 100 veces.

Muestre como resultados:

• Cuántos son de PERÚ con edades mayores a 22 años, con un peso mayor a 70 y menor a 91.

• Cuántos son de COLOMBIA con más de 30 goles anotados y con pesos menores a 68 kilos.

• Cuántos son casados, que hallan anotado menos de 15 goles y que sean de PERÚ, COLOMBIA ó BRASIL.

• Cuántos son de PERÚ ó COLOMBIA, con pesos en el rango de 65Kg. a 75Kg. ó en el rango de 79.5Kg. a 85Kg. y con edad menor a 32.

42. Se ingresa 100 números. Cada vez que se ingrese un nuevo número muestre la suma de sus dígitos y al término de los ingresos muestre los siguientes resultados: • Cuántos números tuvieron 6 ó 9 dígitos. • Cuántos números fueron pares de 4 ó 5 dígitos y su último dígito fue mayor

a 5. • Cuántos números fueron mayores a 100 pero menores a 200 y a su vez

impar. • Cuántos números fueron mayor a 5 y a su vez fueron números primos. • Cuántos números fueron pares negativos en el rango de -200 a -8.

43. Imprimir por pantalla los números desde el 40 hasta el 687, solo aquellos que sean divisibles de 6 y de 9 a la vez.

Page 182: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   182  

 

Contenidos 

- ¿Qué es un Método? - Ventajas en usar Métodos - Definir los tipos de Métodos (Procedimientos – Funciones) - Procedimiento: Definición, Sintaxis, Parámetros - void - Ámbito de Variables Globales y Locales. - Invocación de Procedimientos. - Ejercicios de Aplicación

____________________________________________________________________________________

Programación modular La programación modular es un modelo de programación que consiste en dividir un programa en módulos o subprogramas con el fin de hacerlo más legible y manejable. Se presenta históricamente como una evolución de la programación estructurada para solucionar problemas de programación más grandes y complejos de lo que ésta puede resolver. Al aplicar la programación modular, un problema complejo debe ser dividido en varios subproblemas más simples, y estos a su vez en otros subproblemas más simples. Esto debe hacerse hasta obtener subproblemas lo suficientemente simples como para poder ser resueltos fácilmente con algún lenguaje de programación. Ésta técnica se llama refinamiento sucesivo, divide y vencerás ó análisis descendente (Top-Down). Un módulo es cada una de las partes de un programa que resuelve uno de los subproblemas en que se divide el problema complejo original. Cada uno de estos módulos tiene una tarea bien definida y algunos necesitan de otros para poder operar. En caso de que un módulo necesite de otro, puede comunicarse con éste mediante una interfaz de comunicación que también debe estar bien definida. Si bien un modulo puede entenderse como una parte de un programa en cualquiera de sus formas y variados contextos, en la práctica es común representarlos con procedimientos y funciones. Adicionalmente, también pueden considerarse módulos las librerías que pueden incluirse en un programa o, en programación orientada a objetos, la implementación de un tipo de dato abstracto.

Page 183: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   183  

 

Ventajas de la Programación Modular:

• Como los módulos son independientes, el desarrollo de un programa se puede efectuar

con mayor facilidad, ya que cada módulo se puede crear aisladamente y varios

programadores podrán trabajar simultáneamente en la confección de un algoritmo,

repartiéndose las distintas partes del mismo.

• Se podrá modificar un módulo sin afectar a los demás Las tareas, subalgoritmos, sólo

se escribirán una vez, aunque se necesiten en distintas ocasiones a lo largo del

algoritmo.

• El uso de módulos facilita la proyección y la comprensión de la lógica subyacente para

el programador y el usuario.

• Aumenta la facilidad de depuración y búsqueda de errores en un programa ya que

éstos se pueden aislar fácilmente.

• El mantenimiento y la modificación de la programación se facilitan. Los módulos

reciben diferentes nombres:

- Funciones en C, C++ - Subrutinas en Basic - Procedimientos y funciones en Pascal - Subrutinas en Fortran - Secciones en Cobol y - Métodos en Java

Cuestiones generales

Tiempo de vida de los datos Según el lugar donde son declaradas puede haber dos tipos de variables.

Globales: las variables permanecen activas durante todo el programa. Se crean al

iniciarse éste y se destruyen de la memoria al finalizar. Pueden ser utilizadas en

cualquier procedimiento o función. Conocidas también como variables publicas en java.

Locales: las variables son creadas cuando el programa llega a la función o

procedimiento en la que están definidas. Al finalizar la función o el procedimiento,

desaparecen de la memoria. Si dos variables, una global y una local, tienen el mismo

nombre, la local prevalecerá sobre la global dentro del módulo en que ha sido

declarada.

Dos variables locales pueden tener el mismo nombre siempre que estén declaradas en

funciones o procedimientos diferentes.

Page 184: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   184  

 

Procedimientos

Son subprogramas, es decir, módulos que forman parte de un programa y realizan una tarea específica. Un procedimiento puede tener sus propias variables que se declaran en la sección variable del propio procedimiento. Estas se llaman variables locales. La casilla de memoria para estas variables se crea cada vez que el procedimiento es llamado y se borran al salir del mismo. Así, las variables locales para un procedimiento sólo se pueden usar en el cuerpo del procedimiento y no en el cuerpo principal del programa.

Declaración

procedimiento <nombre_procedimiento>([<lista_parámetros >])

[Variables locales]

inicio

fin_procedimiento

Variables Globales (variables publicas) 

   Entero: prom,suma,nreg 

Modulo 1 Variables Locales Entero:  n1,n2 

Modulo 2 Variables Locales Entero:  n1,n2 

Modulo 3 Variables Locales Entero:  n3,n3 

Page 185: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   185  

 

Definición

• <nombre_procedimiento> Debe ser un identificador válido. • <lista_parámetros_formales> Son uno o más grupos de parámetros

separados por punto y coma. Cada grupo de argumentos se define de la siguiente forma:

{E | E/S} <tipo_de_dato> : <lista_de_parámetros>

E indica que el paso de parámetros se realiza por valor. E/S indica que el paso de parámetros se realiza por referencia. <tipo_de_dato> es un tipo de dato estándar o definido previamente por el

usuario. <lista_de_parámetros> es uno o más identificadores válidos separados por comas.

La lista de parámetros actuales es una o varias variables o expresiones separadas por comas que deben coincidir en número, orden y tipo con la lista de parámetros formales de la declaración.

Crear los siguientes módulos:

1) Que muestre le sueldo de un empleado de acuerdo a la cantidad y costo por hora.

Procedimiento sueldo

variables

entero: ch,cost

inicio

leer(ch,cost)

suel=ch*cost;

escribir(suel);

fin_procedimiento

se podrá llamar a este modulo mediante un objeto (botones, textos, combos, radios, check) tan solo poner el nombre del procedimiento.

Sueldo

Llamada a procedimientos

<nombre_procedimiento>([<lista_parámetros>])

Page 186: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   186  

 

2) Un modulo que me permita mostrar el promedio de 5 notas y su condición de aprobado o desaprobado.

Procedimiento Calculo

variables entero: n1,n2,n3,n4,n5

carácter: condición

inicio leer(n1,n2,n3,n4,n5)

prom=(n1+n2+n3+n4+n5)/5;

si(prom>=10.5)

condición=”Aprobado”

else

condición=”Desaprobado”

fin_si

escribir(condición,prom);

fin_procedimiento

3) Crear un modulo que permita mostrar la siguiente serie.

3,33,333,3333,….(15 términos)

Procedimiento Serie

variables entero: c

inicio c=3 desde(x=1 hasta 15) escribir(c); c=c*10+3 fin_desde

fin_procedimiento

Page 187: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   187  

 

Procedimientos en Java

Ejemplos:

Caso 01:Hallar el Promedio de 5 Notas

void promedio(){

double nota,acu=0,Prom;

for(int g=0;g<5;++g){

nota=Integer.parseInt(JOptionPane.showInputDialog("Ingresar Nota: "+(g+1)));

ModLstn.addElement(nota);

acu=acu+nota;

}

Prom=(acu/5);

Lblprom.setText(“”+Prom)

}

void <nombre_procedimiento>([<lista_parámetros >]){

[Variables locales];

…<Accione>;

}

Presionar 2 click en el botón 

escribir promedio(); 

Compila tu programa ingrésale las notas y aparecerá el promedio de dichas notas‐ 

Page 188: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   188  

 

Caso 02:Mostrar el Sueldo de acuerdo a la cantidad y costo por hora.

void sueldo(){

int ch,cost,suel;

ch=Integer.parseInt(txtch.getText());

cost=Integer.parseInt(txtcst.getText());

suel=ch*cost;

lbls.setText(""+suel);

}

private void txtch_actionPerformed(ActionEvent e) { sueldo(); } private void txtcst_actionPerformed(ActionEvent e) { sueldo(); }

Page 189: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   189  

 

Contenidos 

- Uso de Métodos con retorno- Funciones. - Semejanzas entre los procedimientos y funciones - Casos prácticos. - Uso del return.

____________________________________________________________________________________

Funciones

La función es una estructura autónoma similar a los módulos. La diferencia radica en que la función se usa para devolver un solo valor de un tipo de dato simple a su punto de referencia. La función se relaciona especificando su nombre en una expresión, como si fuera una variable ordinaria de tipo simple. Las funciones se dividen en estándares y definidas por el usuario.

• Estándar: Son funciones proporcionadas por cualquier lenguaje de programación de alto nivel, y se dividen en aritméticas y alfabéticas.

• Definidas por el usuario: son funciones que puede definirlas el programador con el propósito de ejecutar alguna función específica, y que por lo general se usan cuando se trata de hacer algún cálculo que será requerido en varias ocasiones en la parte principal del algoritmo.

• Declaración

funcion <nombre_función>([<lista_parámetros_formales>]):tipo_Dato

[declaraciones locales]

inicio

fin_funcion

Page 190: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   190  

 

Definición

<tipo_de_dato> es un tipo de dato estándar o definido previamente por el usuario. Se trata del tipo del dato que devuelve la función.

<nombre_función> debe ser un identificador válido. <lista_parámetros_formales> son uno o más grupos de parámetros

separados por punto y coma. Cada grupo de argumentos se define de la siguiente forma:

{E | E/S} <tipo_de_dato> : <lista_de_parámetros>

E indica que el paso de parámetros se realiza por valor. E/S indica que el paso de parámetros se realiza por referencia. <tipo_de_dato> es un tipo de dato estándar o definido previamente por el

usuario. <lista_de_parámetros> es uno o más identificadores válidos separados

por comas. <expresión> es el valor de retorno de la función. Debe coincidir con el tipo de dato

de la declaración.

Llamada a funciones

Se puede realizar en dos formas:

1era forma: utilizando una variable local o global.

2da forma: llamándolo desde un objeto de visualización

Ejemplo

• X= <nombre_función>([<lista_parámetros_actuales>])

• Escribir (x)

La lista de parámetros actuales es una o varias variables o expresiones separadas por comas que deben coincidir en número, orden y tipo con la lista de parámetros formales de la declaración.

Page 191: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   191  

 

Semejanzas entre Procedimientos y Funciones.

- La definición de ambos aparece en la sección de subprogramas de la parte de declaraciones de un programa y en ambos casos consiste en una cabecera, una parte de declaraciones una parte de instrucciones.

- Ambos son unidades de programa independientes. Los parámetros, constantes y variables declarados en una función o procedimiento son locales a la función o al procedimiento, solamente son accesibles dentro del subprograma.

- Cuando se llama a una función o a un procedimiento, el número de los parámetros reales debe ser el mismo que el número de los parámetros formales y los tipos de los parámetros reales deben coincidir con los tipos de los correspondientes parámetros formales, con una excepción: se puede asociar un parámetro real de tipo entero con un parámetro formal por valor de tipo real.

Diferencias entre Procedimientos y Funciones.

- Mientras que a un procedimiento se le llama mediante una instrucción de llamada a procedimiento, a una función se la llama usando su nombre en una expresión.

- Puesto que se debe asociar un valor al número de una función, también se le debe asociar un tipo. Por tanto, la cabecera de una función debe incluir un identificador de tipo que especifique el tipo del resultado. Sin embargo, no se asocia ningún valor con el nombre de un procedimiento y, por tanto, tampoco ningún tipo.

- Las funciones normalmente devuelven un único valor a la unidad de programa que la llama. Los procedimientos suelen devolver más de un valor, o pueden no devolver ninguno si solamente realizan alguna tarea, como una operación de salida.

- En los procedimientos, los valores se devuelven a través de parámetros por variable, pero el valor de una función se devuelve mediante la asignación al nombre de la función de dicho valor en la parte de instrucciones de la definición de la función.

Page 192: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   192  

 

Ejemplos:

Caso 01: Crear una función que me devuelva el factorial de un número. Función factorial (n:entero):entero variables

i,factorial:entero inicio si(n <=1) entonces factorial <-- 1 sino factorial <-- 1 desde(i = 1 hasta n ) factorial <-- factorial * 1 fin_desde fin_si fin_funcion

Caso 02: Crear una función que me devuelva la sumatoria de los 20 primeros números pares.

Función suma ():entero variables i,acu,n:entero inicio n=2 desde(i = 1 hasta 20 )

serie=serie+n+"-"; acu=acu+n; n=n+2; fin_desde

suma=acu fin_funcion

Caso 03: Crear una función que devuelva el promedio de 5 notas.

Función suma ():entero variables i,suma:entero inicio desde(i = 1 hasta 20 ) leer(nota) acu=acu+nota fin_desde suma=acu fin_funcion

Page 193: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   193  

 

Usando Métodos(Funciones) en Java

Caso 01:Factorial.

int factorial(){

int i,fact=1,n;

n=Integer.parseInt(txtn1.getText());

if(n <=1)

fact=1;

for(i = 1;i<=n;++i )

fact=fact * i;

return(fact);

}

Tipo_Dato <nombre_función>([<lista_parámetros_formales>]){

[declaraciones locales]

<Acciones>;

}

Page 194: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   194  

 

private void txtn1_actionPerformed(ActionEvent e) { lblf.setText(""+factorial()); //mostrándolo directamente en el objeto } Caso 01:Sumatoria.

String serie=""; //variable publica o Global int suma(){

int i,acu=0,n=2;

for(i=1;i<=10;++i){

serie=serie+n+"-";

acu=acu+n;

n=n+2;

}

return(acu);

}

private void btnSeries_actionPerformed(ActionEvent e) {

lblf.setText("Total es: "+suma()+" y Los numero sumados son:"+serie);

}

Page 195: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   195  

 

Caso 03: Promedio de 5 Notas

int a,b,c,d,e1; double promedio(){

return((a+b+c+d+e1)/5);

}

void leer(){

a=Integer.parseInt(txtn1.getText());

b=Integer.parseInt(txtn2.getText());

c=Integer.parseInt(txtn3.getText());

d=Integer.parseInt(txtn4.getText());

e1=Integer.parseInt(txtn5.getText());

}

private void txtn1_actionPerformed(ActionEvent e) {

leer();

lbls.setText(""+promedio());

}

private void txtn5_actionPerformed(ActionEvent e) {

leer();

lbls.setText(""+promedio());

}

Variables Globales

Función promedio

Procedimiento Leer 

Se puede invocar varias veces

Page 196: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   196  

 

EJERCICIOS DE APLICACIÓN

1. Diseñar una función que calcule el promedio de N números introducidos por el teclado.

2. Escribir una función que intercambie el valor de dos variables, es decir si X=5 e Y=7

tras aplicar la función, por ejemplo haciendo "intercambiar(X,Y)" se tiene que X=7 e

Y=5.

3. Diseñar una función que calcule la potencia enésima de un número, es decir que

calcule X n para X, real y n entero

4. Diseñar una función "Invertir()" que invierta un numero introducido.

5. Diseñar dos funciones "EurosAPesetas()" y "PesetasAEuros()" que realicen las

conversiones de monedas de forma que se puedan utilizar directamente dentro de una

expresión del tipo: "Imprimir valEuros son EurosAPts(valEuros)"

6. Diseñar una función "EsBisiesto()" que decida si un año es bisiesto o no

7. Escribir una función "EsMultiplo" que sirva para determinar si un número es múltiplo de

otra. Utilizarla en un programa que pida la antigüedad de un trabajador y calcule

cuantos trienios de antigüedad tiene.

8. Modularizar el programa nomina1.c utilizando tres funciones. Una para la entrada, una

para los cálculos y una para la salida de resultados

9. Hacer un programa salarios que utilice las funciones anteriores dentro de un bucle para

calcular las nominas de un número indeterminado de trabajadores

10. Escribir dos funciones Entrada () y Salida () que incluyan todas las operaciones de

entrada de datos y salida de resultados para el programa registro y notas de alumnos.

Page 197: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   197  

 

Usando Métodos

Realiza el siguiente caso utilizando métodos.

La empresa “ICL”, necesita crear una planilla de sueldos donde cada empleado pertenece a una AREA, y recibirá un descuento de acuerdo al área que corresponda según como se muestra en el cuadro.

Área Descuento

Logistica

Administracion

Seguridad

Otros

6%

9%

3%

1.5

Sueldo se hallara de acuerdo a la cantidad de horas, costo por hora.

Aumento de acuerdo al mes Mayo o Noviembre tendrá CTS (50%), Julio o Diciembre tendrá Gratificación(25%).

Page 198: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   198  

 

public class FrmCaso01 extends JFrame { int suel,ch,costo,c=100,ordenM; double des,aum,neto; String nom,area; private void jbInit() throws Exception { ……………. …………… cboArea.addItem("Seleccionar");

cboArea.addItem("Logistica");

cboArea.addItem("Administracion");

cboArea.addItem("Seguridad");

cboArea.addItem("Otros");

GrpAumentos.add(rbtCts);

GrpAumentos.add(rbtGrati);

} void sueldo(int ch,int cost){ suel=ch*cost;

lblS.setText(""+suel);

} void descuento(String area){ if (area.equalsIgnoreCase("Logistica"))

des=0.06*suel;

if (area.equalsIgnoreCase("Administracion"))

des=0.09*suel;

if (area.equalsIgnoreCase("Seguridad"))

des=0.03*suel;

if (area.equalsIgnoreCase("Otros"))

des=0.015*suel;

lblD.setText(""+des);

} void aumento(String mes){ if(mes.equalsIgnoreCase("Mayo") | mes.equalsIgnoreCase("Noviembre")){

aum=0.50*suel;

rbtCts.setSelected(true);

}

if(mes.equalsIgnoreCase("Julio") | mes.equalsIgnoreCase("Diciembre")){

aum=0.25*suel;

rbtGrati.setSelected(true);

Page 199: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   199  

 

}

lblAum.setText(""+aum);

} void netos(){ neto=suel+aum-des;

lblSn.setText(""+neto);

} void agregar(){ ModLstR.addElement(c);

ModLstA.addElement(area);

ModLstAum.addElement(aum);

ModLstCh.addElement(ch);

modLstCosto.addElement(costo);

ModLstDes.addElement(des);

ModLstNeto.addElement(neto);

ModLstS.addElement(suel);

++c;

} void renovar () { ModLstR.clear();

int c3=100;

while(c3<c){

ModLstR.addElement(c3);

c3=c3+1;

} } void leer(){ ch=Integer.parseInt(txtCh.getText());

costo=Integer.parseInt(txtCst.getText());

area=cboArea.getSelectedItem().toString();

} private void btnAgregar_actionPerformed(ActionEvent e) { leer();

sueldo(ch,costo);

descuento(area);

aumento(nom);

netos();

Page 200: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   200  

 

agregar();

} private void rbtCts_actionPerformed(ActionEvent e) { nom=JOptionPane.showInputDialog("Ingresar Mes");

aumento(nom);

} private void rbtGrati_actionPerformed(ActionEvent e) { nom=JOptionPane.showInputDialog("Ingresar Mes");

aumento(nom);

} void Eliminar(){ int orden=Lstr.getSelectedIndex(); //índice del Jlist

ModLstR.remove(orden);

ModLstA.remove(orden);

ModLstAum.remove(orden);

ModLstCh.remove(orden);

modLstCosto.remove(orden);

ModLstDes.remove(orden);

ModLstNeto.remove(orden);

ModLstS.remove(orden);

c=c-1;

renovar ();

} private void btnEliminar_actionPerformed(ActionEvent e) { Eliminar();

} private void btnModifica_actionPerformed(ActionEvent e) { ordenM=Lstr.getSelectedIndex();

txtCh.setText(""+ModLstCh.getElementAt(ordenM));

txtCst.setText(""+modLstCosto.getElementAt(ordenM));

cboArea.setSelectedItem(""+ModLstA.getElementAt(ordenM));

lblS.setText(""+ModLstS.getElementAt(ordenM));

lblD.setText(""+ModLstDes.getElementAt(ordenM));

lblSn.setText(""+ModLstNeto.getElementAt(ordenM));

lblAum.setText(""+ModLstAum.getElementAt(ordenM));

btnActualizar.setEnabled(true);

Page 201: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   201  

 

btnAgregar.setEnabled(false);

btnEliminar.setEnabled(false);

} private void btnActualizar_actionPerformed(ActionEvent e) { sueldo(ch,costo);

descuento(area);

aumento(nom);

netos();

ModLstCh.setElementAt(txtCh.getText(),ordenM);

modLstCosto.setElementAt(txtCst.getText(),ordenM);

ModLstAum.setElementAt(lblAum.getText(),ordenM);

btnAgregar.setEnabled(true);

btnEliminar.setEnabled(true);

btnModifica.setEnabled(true);

btnActualizar.setEnabled(false);

} private void txtCst_actionPerformed(ActionEvent e) { leer();

sueldo(ch,costo);

} private void txtCh_actionPerformed(ActionEvent e) { leer();

sueldo(ch,costo);

} }

Page 202: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   202  

 

Contenidos 

- Definición de Recursividad - Recursividad frente a las Estructuras Repetitivas - Elementos de Recursividad - Recursividad Directa / Indirecta.

____________________________________________________________________________________

Recursividad La recursividad es una técnica de programación importante. Se utiliza para realizar una llamada a una función desde la misma función.

La recursividad y la iteración (ejecución en bucle) están muy relacionadas, cualquier acción que pueda realizarse con la recursividad puede realizarse con iteración y viceversa. Normalmente, un cálculo determinado se prestará a una técnica u otra, sólo necesita elegir el enfoque más natural o con el que se sienta más cómodo.

Claramente, esta técnica puede constituir un modo de meterse en problemas. Es fácil crear una función recursiva que no llegue a devolver nunca un resultado definitivo y no pueda llegar a un punto de finalización. Este tipo de recursividad hace que el sistema ejecute lo que se conoce como bucle "infinito".

Propiedades de las definiciones o algoritmos recursivos:

Un requisito importante para que sea correcto un algoritmo recursivo es que no genere una secuencia infinita de llamadas así mismo. Claro que cualquier algoritmo que genere tal secuencia no termina nunca. Una función recursiva f debe definirse en términos que no impliquen a f al menos en un argumento o grupo de argumentos. Debe existir una "salida" de la secuencia de llamadas recursivas.

Si en esta salida no puede calcularse ninguna función recursiva. Cualquier caso de definición recursiva o invocación de un algoritmo recursivo tiene que reducirse a la larga a alguna manipulación de uno o casos más simples no recursivos.

Page 203: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   203  

 

Tipos de métodos Recursivos

Recursividad directa (simple). Es cuando un subprograma A se llama a sí mismo una o más veces directamente

Recursividad indirecta Cuando en una subrutina hay llamadas a ella misma se habla de recursividad directa, en contraposición, cuando se tienen varias subrutinas y éstas se llaman unas a otras formando ciclos se dice que la recursión es indirecta. Subrutina_A → Subrutina_B → Subrutina_A Subrutina_A → Subrutina_B → Subrutina_C → Subrutina_D → Subrutina_A

Ejemplos de Recursividad

public int potencia(int x, int n){ int p; if ( n == 0 ) return 1; else{ p = x * potencia(x, n - 1); return p; }

}

public int potencia(int x, int n){ if ( n == 0 ) return 1; else return (x * potencia(x, n - 1));

}

public int factorial(int n){ if ( n == 0 ) return 1; else return (n * factorial(n - 1));

}

Page 204: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   204  

 

public int fibonacci(int n){ if ( n == 0 ) return 0; else if ( n == 1) return 1; else return fibonacci(n - 1) + fibonacci(n - 2);

}

Page 205: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   205  

 

Contenidos 

- Uso de las Estructuras de Control. - Ejemplos de Estructuras de Control en entorno JAVA

Aplicaciones JAVA

El lenguaje JAVA es un lenguaje que contiene muchos API’s las cuales nos permite mejorar la presentación del FRAME de Java. Además todas las aplicaciones que hemos creado son a a nivel de escritorio lo que nos permite manejar mejor el entorno JDEVELOPER.

Por ello vamos a mejorar la presentación de nuestro Frame, pudiendo ponerle imágenes y pudiendo controlarlos mediante objetos.

JLabel 

Ponle el nombre lblImagen 

Page 206: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   206  

 

Realicemos este ejemplo:

Empecemos:

1) Realice todo el diseño y para la parte de la imagen inserte un JLabel.

2) Ingrese al source del Frame(FrmAcceso) y ubíquese en el jbInit y escriba esto lblImagen.setImageIcon(new ImageIcon("sise.jpg"));

3) Crear los siguientes métodos del FrmAcceso que contenga esto:

Declare una variable pública llamada Usuario de tipo String.

Luego crear este método:

String nombre(){

If(rbtProfesor.isSelected())

Usuario=”Profesor”;

If(rbtAlumno.isSelected())

Usuario=”Alumno”;

Return(Usuario);

}

Void contraseña(){

FrmDatos llama=new FrmDatos();

llama.setLocationRelativeTo(null);

llama.setVisible(true);

llama.setTitle("Usuario: "+nombre());

}

4) Quizás el FrmDatos saldrá con línea roja es porque no existe, así que haz lo

siguiente, ubícate en el proyecto que tienes y presiona clic derecho y elige

Client Tier y selecciona Frame (lo que te permitirá es insertar un nuevo Frame)

y a este Frame ponle el nombre de FrmDatos.

5) Compila el programa veras que te permitirá mostrar la nueva ventana y así que

de aquí en adelante podrás seguir con todo lo que has aprendido.

Page 207: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   207  

 

USANDO CÓDIGOS JAVA I

CASO 01: Cambiar el color de fondo de texto según las combinaciones de los combos.

private void jbInit() throws Exception { …………… …………………… ………………. for (int i=0; i<256; i++)

choVerde.addItem(""+i);

for (int i=0; i<256; i++)

choAzul.addItem(""+i);

for (int i=0; i<256; i++)

choRojo.addItem(""+i);

} void btnCombinar_actionPerformed(ActionEvent e) { int r = choRojo.getSelectedIndex();

int g = choVerde.getSelectedIndex();

int b = choAzul.getSelectedIndex();

// Establece color de fondo personalizado a la caja de texto

this.txts.setBackground(new Color(r,g,b));

}

Esta inicialización permitirá que los combos contengan números desde 0 hasta 255. 

Page 208: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   208  

 

CASO 02: Cambiar la apariencia del texto, poniendo estilos de letras, tamaño y tipo. private void jbInit() throws Exception { ………………………………….. …………………………………… …………………………………. choFuente.addItem("Monospaced");

choFuente.addItem("Arial");

choFuente.addItem("Arial Black");

choFuente.addItem("Garamond");

choFuente.addItem("Comic sans MS");

choFuente.addItem("Times New Roman");

choEstilo.addItem("Normal");

choEstilo.addItem("Negrita");

choEstilo.addItem("Italic");

choEstilo.addItem("Negrita Italic");

for (int i=10; i<=120; i+=10)

choTamaño.addItem(""+i);

} private void btnAplicar_actionPerformed(ActionEvent e) { String fuente = leeFuente();

int estilo = leeEstilo();

int tamaño = leeTamaño();

// crear fuente según atributos leidos

Font miFuente = new Font(fuente,estilo,tamaño);

// aplicar nueva fuente al JTextArea

txtS.setFont(miFuente);

} //--------------

Page 209: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   209  

 

String leeFuente() { return choFuente.getSelectedItem().toString();

} //-------------- int leeEstilo() { int estilo = choEstilo.getSelectedIndex();

switch(estilo) {

case 1: return Font.PLAIN;

case 2: return Font.BOLD;

case 3: return Font.ITALIC;

case 4: return Font.BOLD + Font.ITALIC;

default: return 0;

}

} //------------- int leeTamaño() { return Integer.parseInt(choTamaño.getSelectedItem().toString());

}

Page 210: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   210  

 

CASO 03: Cambiar el color de fondo del Frame. private void jbInit() throws Exception { …………………………………..

……………………………………

………………………………….

cboColorFondo.addItem("Color de Fondo");

cboColorFondo.addItem("Fondo Gris");

cboColorFondo.addItem("Fondo Azul");

cboColorFondo.addItem("Fondo Rojo");

cboColorFondo.addItem("Fondo Naranja");

} void fondo(){ int color = cboColorFondo.getSelectedIndex();

// establece color de fondo segun eleccion del choice

switch(color)

{

case 1: this.getContentPane().setBackground(Color.lightGray);

break;

case 2: this.getContentPane().setBackground(Color.blue);

break;

case 3: this.getContentPane().setBackground(Color.red);

break;

case 4: this.getContentPane().setBackground(Color.orange);

break;

} }

Page 211: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   211  

 

private void cboColorFondo_actionPerformed(ActionEvent e) { fondo();

} private void btnRestablecer_actionPerformed(ActionEvent e) { this.getContentPane().setBackground(new Color(198,198,198));

cboColorFondo.setSelectedIndex(0);

}

Usando otros métodos //Activar controles txtNumero.setEnabled(true); bnSiguiente.setEnabled(True); //Desactivar controles txtNumero.setEnabled(false); btnAnterior.setEnabled(false); //Establecer el curso en el objeto Esto solo se podrá establecer dentro de un Jtexfield, jbutton,etc excepto en un jLabel. Txtnombre.requestFocus(); //Terminar el programa presionando click System.exit(0);

Page 212: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   212  

 

USANDO CÓDIGOS JAVA II

CasoVER 01: PC: Que calcule el promedio de un alumno, el alumno podrá tener 2, 3 o 4 notas, dicha cantidad de notas se tendrá que ingresar no se puede ingresar una sola nota, deber ser de 2 a 4 notas. Si tiene 2 notas se deberán promediar ambas, si tuviera 3 se promediaran las dos mejores y si tuviera 4 se promediara de la siguiente manera:

Si la suma de notas es mayor a 70 se eliminara la más baja. Si la suma es menor o igual a 70 pero mayor a 44 se eliminara la primera nota

desaprobatoria que el programa encuentre. Si la suma es 44 o menos, se promediaran las cuatro notas.

private void btnCalcular_actionPerformed(ActionEvent e) {

int cantNotas;

double n1,n2,n3,n4,prom,menor,suma,desap;

String m="";

menor=0;

desap=0;

prom=0;

cantNotas= cboNroNotas.getSelectedIndex();

if (cantNotas>=0 && cantNotas<=2){

if(cantNotas==0){

n1= Double.parseDouble(txtN1.getText());

n2= Double.parseDouble(txtN2.getText());

prom = (n1+n2)/2;

lblme.setVisible(false);

m="Promedio de 2 Notas: ";

}

Page 213: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   213  

 

if(cantNotas==1){

n1= Double.parseDouble(txtN1.getText());

n2= Double.parseDouble(txtN2.getText());

n3= Double.parseDouble(txtN3.getText());

if(n1<n2 && n1<n3){

menor=n1;

}

if(n2<n1 && n2<n3){

menor=n2;

}

if(n3<n1 && n3<n2){

menor=n3;

}

prom= (n1+n2+n3-menor)/2;

lblme.setVisible(true);

lblme.setText(""+menor);

m="Promedio de 3 Notas quitando la menor nota: ";

}

if(cantNotas==2){

n1= Double.parseDouble(txtN1.getText());

n2= Double.parseDouble(txtN2.getText());

n3= Double.parseDouble(txtN3.getText());

n4= Double.parseDouble(txtN4.getText());

suma=n1+n2+n3+n4;

if(suma>70){

if(n1<n2 && n1<n3 && n1<n4){

menor=n1;

}

if(n2<n1 && n2<n3 && n2<n4){

menor=n2;

}

if(n3<n1 && n3<n2 && n3<n4){

menor=n3;

Page 214: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   214  

 

}

if(n4<n1 && n4<n2 && n4<n3){

menor=n4;

}

prom=(n1+n2+n3+n4-menor)/3;

m="promedio de 4 notas suman más de 70 es : ";

}

if(suma<=70 && suma>44){

if(n1<=10)

desap=n1;

if(n2<=10)

desap=n2;

if(n3<=10)

desap=n3;

if(n4<=10)

desap=n4;

}

if(desap>0)

prom= (n1+n2+n3+n4-desap)/3;

else

prom= (n1+n2+n3+n4)/4;

m="la suma está entre 70 y 44 se quita la 1era desaprobatoria: ";

if(suma<=44){

prom=(n1+n2+n3+n4)/4;

m="suma menos que 44 y promedio las 4 : ";

}

lblme.setVisible(false);

}

lblR.setText(m+prom);

}

}

Page 215: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   215  

 

void mejora(){

lblme.setVisible(false);

lblR.setText("");

txtN1.setText("");

txtN2.setText("");

txtN3.setText("");

txtN4.setText("");

}

private void cboNroNotas_actionPerformed(ActionEvent e) {

mejora();

int indice=cboNroNotas.getSelectedIndex();

switch (indice){

case 0: txtN3.setText("");

txtN4.setText("");

txtN3.setEnabled(false);

txtN4.setEnabled(false);

break;

case 1:

txtN4.setText("");

txtN3.setEnabled(true);

txtN4.setEnabled(false);

break;

case 2:

txtN3.setEnabled(true);

txtN4.setEnabled(true);

break;

}

}

Page 216: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   216  

 

CasoVER 02: Que calcule el sueldo mensual de un obrero que gana a destajo de acuerdo a las prendas que confecciona. La tarifa para el pago depende de la prenda que termina de acuerdo al siguiente cuadro:

TIPO DE PRENDA TARIFA POLO 0.50

CAMISA 1.00 PANTALON 1.50

Los obreros durante el mes pueden confeccionar solo un tipo de prenda. Si el obrero confecciona más de 700 unidades recibirá una bonificación de acuerdo a su categoría, como se indica en el cuadro siguiente:

CATEGORIA BONIFICACION A 250.00 B 150.00 C 100.00 D 50.00

Del total de ingresos se descontara 9% por concepto de impuestos, 2% por seguro y 1% por solidaridad. En ningún caso el descuento por seguro será mayor a S/. 20.00. Al final presentar el sueldo neto, cada uno de los descuentos y la bonificación. Los resultados se mostraran con dos decimales.

Page 217: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   217  

 

void tipo(){

tp=cboTipoPrenda.getSelectedIndex();

switch(tp){

case 0:

tari=0.50;

break;

case 1:

tari=1.00;

break;

case 2:

tari=1.50;

break;

}

salida_datos();

}

void calcular(){

cate=cboCategoria.getSelectedIndex();

unidades= Integer.parseInt( txtNroUnidades.getText());

switch(cate){

case 0:

boni=250.00;

break;

case 1:

boni=150.00;

break;

case 2:

boni=100.00;

break;

case 3:

boni=50.00;

break;

}

if(unidades>700){

sb=(unidades*tari)+boni;

Page 218: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   218  

 

}else{

sb=unidades*tari;

boni=0;

}

imp=0.09*sb;

seg=0.02*sb;

soli=0.01*sb;

if(seg>20)

seg=20;

sn=sb-imp-seg-soli;

salida_datos();

}

void salida_datos(){

lblt.setText(""+tari);

lblsb.setText(""+sb);

lblR.setText(""+sn);

lblImp.setText(""+imp);

lblSegu.setText(""+seg);

lblSoli.setText(""+soli);

}

private void cboTipoPrenda_actionPerformed(ActionEvent e) {

tipo();

}

private void txtNroUnidades_actionPerformed(ActionEvent e) {

calcular();

}

private void txtNroUnidades_keyPressed(KeyEvent e) {

calcular();

}

Page 219: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   219  

 

CasoVER 03: Ingresar 3 números y mostrar el número menor

void buscar_Mayor(){ int a, b, c; a= Integer.parseInt(txtn1.getText()); b= Integer.parseInt(txtn2.getText()); c= Integer.parseInt(txtn3.getText()); int re = Math.max (a,b); int r = Math.max (re,c); lblr.setText(""+r); } private void txtn3_actionPerformed(ActionEvent e) { buscar_Mayor(); } private void txtn2_actionPerformed(ActionEvent e) { buscar_Mayor(); } private void txtn1_actionPerformed(ActionEvent e) { buscar_Mayor(); } private void txtn1_keyPressed(KeyEvent e) { buscar_Mayor(); } private void txtn2_keyReleased(KeyEvent e) { buscar_Mayor(); } private void txtn3_keyReleased(KeyEvent e) { buscar_Mayor(); }

Page 220: 62605206 Manual Fundamentos de Programacion V0510

Fundamentos de Programación   220  

 

BIBLIOGRAFIA.

• JOYANES AGUILAR, Luis. Fundamentos de Programación,

Estructura de Datos y Programación Orienta Objetos. 3era Edición McGraw-Hill/Interamericana de España

• S.A. Victor Balta – Julio Vásquez. Súper JAVA 2. Guía de Desarrollo en Java para aplicaciones Windows. Segunda Edición – 2006

• Java 2 SE. Editorial MegaByte