Manual Fundamentos de Programacion - V0510

download Manual Fundamentos de Programacion - V0510

of 220

Transcript of Manual Fundamentos de Programacion - V0510

e

ndicePresentacin . 3 Modulo A Semana 1 .. 4 4 3

Semana 2 .. 24 24 Semana 3 .. 47 47 Semana 4 .. 72 72 Semana 5 .. 85 85 Semana 6 .. 98 98 111 Semana 7 ..111 127 Semana 8 ..127 140 Semana 9 ..140 Modulo B 150 Semana 1 ..150 166 Semana 2 ..166 180 Semana 3 ..180 188 Semana 4 ..188 205 Semana 5 ..205 216 Semana 6 ..216 229 Semana 7 ..229 243 Semana 8 ..243 258 Semana 9 ..258 267 Bibliografa: ...267

FundamentosdeProgramacin

2

e

PRESENTACINEsta gua didctica es un material de ayuda institucional, perteneciente a las especialidades de computacin, Ingeniera de Software e Ingeniera de Redes y Comunicaciones tiene por finalidad proporcionar los conocimientos de fundamentos de programacin orientada a los estudiantes del primer ciclo de estudios. La Organizacin SISE, lder en la enseanza tecnolgica a nivel superior, promueve la elaboracin de materiales educativos, en concordancia a las exigencias de las tecnologas de estos tiempos, que permiten la creacin de nuevas herramientas de aprendizaje con el objetivo de facilitar el acceso de los estudiantes a la educacin en el marco del desarrollo tecnolgico de la informtica u de las telecomunicaciones. Esta gua se divide en 2 mdulos y cada una de ellas en 9 semanas. Permite conocer las herramientas indispensables para la elaboracin de un algoritmo. Se inicia con el reconocimiento de las herramientas bsicas que se necesitaran para dar solucin a una determinada proposicin o problema. En este proceso el alumno aprender instrucciones que le permitirn evaluar expresiones para luego procesar un conjunto de sentencias. Tambin aprender el uso de las estructuras de control (Condicionales y Repetitivas), de la misma forma el manejo del lenguaje de programacin orientada a objetos. La implementacin y uso de mtodos (con retorno y sin retorno), permitirn que el alumno aplique el uso de variables Globales y Locales donde el alumno demostrara el manejo de la programacin orientada a objetos. Todas estas herramientas darn un soporte solido al alumno para aprender a programar en cualquier lenguaje de programacin estructurada o a los lenguajes Orientada a Objetos(JAVA, .NET, Visual C,etc). Este material en su primera edicin, servir para ayudar a nuestros estudiantes SISESINOS a tener una formacin solida para resolver problemas.

FundamentosdeProgramacin

3

e

INTRODUCCIONContenidos- Sistema de Informacin - Concepto de Dato, Informacin, Proceso - Etapas del Procesamiento de Datos (Entrada, Clasificacin, Procesamiento, Almacenamiento, Control, Salida).Razones para automatizar los procesos. - Lenguajes de Programacin: Concepto, Clasificacin (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 (Anlisis, Diseo, Implementacin). - Tipos de Datos: Numricos (Enteros y Reales), Lgicos, Carcter. - Identificadores, Variables y Constantes. ____________________________________________________________________________

Introduccin a la ProgramacinUn lenguaje de programacin es aquel elemento dentro de la informtica que nos permite crear programas mediante un conjunto de instrucciones, operadores y reglas de sintaxis; que pone a disposicin del programador para que este pueda comunicarse con los dispositivos hardware y software existentes. Un lenguaje de programacin es un sistema notacional para describir computaciones de una forma legible tanto para la maquina como para el ser humano El titulo dice definicin de programacin, no definicin de lenguaje de programacin. Programacin es la accin de solucionar un problema, y/o satisfacer una necesidad de carcter informtico. Dicha solucin es generar un programa o software utilizando un determinado lenguaje de programacin. Es por ello que como objetivo de este curso es que el alumno conozca los principios de la programacin y que aprenda aplicar las etapas de procesamiento de datos dentro de un proyecto real.

FundamentosdeProgramacin

4

e

1. Sistema de InformacinIntroduccin:Un sistema de informacin es un conjunto de elementos que interactan entre s con el fin de apoyar las actividades de una empresa o negocio. El equipo computacional: el hardware necesario para que el sistema de informacin pueda operar. El recurso humano que interacta con el Sistema de Informacin, el cual est formado por las personas que utilizan el sistema. Un sistema de informacin realiza cuatro actividades bsicas: entrada, almacenamiento, procesamiento y salida de informacin. Entrada de Informacin: Es el proceso mediante el cual el Sistema de Informacin toma los datos que requiere para procesar la informacin. Las entradas pueden ser manuales o automticas. Las manuales son aquellas que se proporcionan en forma directa por el usuario, mientras que las automticas son datos o informacin que provienen o son tomados de otros sistemas o mdulos. Las unidades tpicas de entrada de datos a las computadoras son las terminales, las cintas magnticas, las unidades de diskette, los cdigos de barras, los escner, la voz, los monitores sensibles al tacto, el teclado y el mouse, entre otras. Almacenamiento de informacin: El almacenamiento es una de las actividades o capacidades ms importantes que tiene una computadora, ya que a travs de esta propiedad el sistema puede recordar la informacin guardada en la seccin o proceso anterior. Esta informacin suele ser almacenada en estructuras de informacin denominadas archivos. La unidad tpica de almacenamiento son los discos magnticos o discos duros, los discos flexibles o diskettes y los discos compactos (CD-ROM). Procesamiento de Informacin: Es la capacidad del Sistema de Informacin para efectuar clculos de acuerdo con una secuencia de operaciones preestablecida. Estos clculos pueden efectuarse con datos introducidos recientemente en el sistema o bien con datos que estn almacenados. Esta caracterstica de los sistemas permite la transformacin de datos fuente en informacin que puede ser utilizada para la toma de decisiones, lo que hace posible, entre otras cosas, que un tomador de decisiones genere una proyeccin financiera a partir de los datos que contiene un estado de resultados o un balance general de un ao base. Salida de Informacin: La salida es la capacidad de un Sistema de Informacin para sacar la informacin procesada o bien datos de entrada al exterior. Las unidades tpicas de salida son las impresoras, terminales, diskettes, cintas magnticas, la voz, los graficadores y los plotters, entre otros.

Actividades que realiza un Sistema de Informacin:Entradas: Datos generales del cliente: nombre, direccin, tipo de cliente, etc. Polticas de crditos: lmite de crdito, plazo de pago, etc. Facturas (interface automtico). Pagos, depuraciones, etc.

FundamentosdeProgramacin

5

e Proceso: Clculo de antigedad de saldos. Clculo de intereses moratorios. Clculo del saldo de un cliente. Almacenamiento: Movimientos del mes (pagos, depuraciones). Catlogo de clientes. Facturas. Salidas: Reporte de pagos. Estados de cuenta. Plizas contables (interface automtica) Consultas de saldos en pantalla de una terminal.

Tipos y Usos de los Sistemas de InformacinDurante los prximos aos, los Sistemas de Informacin cumplirn tres objetivos bsicos dentro de las

organizaciones: 1. 2. Automatizacin de procesos operativos. Proporcionar informacin que sirva de apoyo al proceso de toma de decisiones.

3.

Lograr ventajas competitivas a travs de su implantacin y uso.

FundamentosdeProgramacin

6

e

2. Razones Para Automatizar Los ProcesosSeguridad de la informacin. Fcil y rpido acceso a la informacin. Reduccin de espacio fsico. Estandarizacin. Facilidad en la creacin de copias de respaldo. Reduccin de gastos. Data Ordenada y clasificada. Conservacin de la informacin.

3. Conceptos De ProgramacinDefinicin.- Es un conjunto de instrucciones escritas en algn lenguaje de programacin. El programa debe ser compilado o interpretado para poder ser ejecutado y as cumplir su objetivo Lenguajes de Programacin: Definiciones: a) Es un conjunto de smbolos junto a un conjunto de reglas. Constan de un lxico, una sintaxis y una semntica.

Qu conoces t por lxico, sintaxis y semntica? Lxico: Conjunto de smbolos permitidos o vocabulario Sintaxis: Reglas que indican cmo realizar las construcciones del lenguaje. Semntica: Reglas que permiten determinar el significado de cualquier construccin del lenguaje.

b) Sistema de smbolos y reglas que permite la construccin 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, manipulacin de textos, lgica / comparacin y almacenamiento / recuperacin. Tipos de lenguajes: Atendiendo al nmero de instrucciones necesarias para realizar una tarea especfica podemos clasificar los lenguajes informticos en dos grandes bloques: Mquina. Bajo nivel Alto nivel Los lenguajes de programacin se clasifican Lenguaje Mquina: Son aquellos cuyas instrucciones son directamente entendibles por la computadora y no necesitan traduccin posterior para que la CPU pueda comprender y ejecutar el programa. Las instrucciones en lenguaje maquina se expresan en trminos de la unidad de memoria ms pequea el bit (dgito binario 0 1).

FundamentosdeProgramacin

7

e Lenguaje de Bajo Nivel (Ensamblador): En este lenguaje las instrucciones se escriben en cdigos alfabticos conocidos como mnemotcnicos para las operaciones y direcciones simblicas.

Lenguaje de Alto Nivel: Los lenguajes de programacin 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 comprensin del programa.

Tipos de Lenguaje Alto Nivel (Estructurados y Orientado a Objetos). La programacin estructurada es una forma de escribir programas de ordenador (programacin de computadora) de forma clara. Para ello utiliza nicamente tres estructuras: secuencia, seleccin e iteracin. A los finales de los aos 1960 surgi una nueva forma de programar que no solamente daba lugar a programas fiables y eficientes, sino que adems estaban escritos de manera que facilitaba su comprensin posterior. El teorema del programa estructurado, demostrado por Bhm-Jacopini, demuestra que todo programa puede escribirse utilizando nicamente las tres instrucciones de control siguientes: Secuencia Instruccin condicional. Iteracin (bucle de instrucciones) con condicin al principio. Solamente con estas tres estructuras se pueden escribir todos los programas y aplicaciones posibles. Si bien los lenguajes de programacin tienen un mayor repertorio de estructuras de control, stas pueden ser construidas mediante las tres bsicas. Hoy en da las aplicaciones informticas son mucho ms ambiciosas que las necesidades de programacin existentes en los aos 1960, principalmente debido a las aplicaciones grficas, por lo que las tcnicas de programacin estructurada no son suficientes. Ello ha llevado al desarrollo de nuevas tcnicas, tales como la programacin orientada a objetos y el desarrollo de entornos de programacin que facilitan la programacin de grandes aplicaciones. La programacin orientada a objetos La orientacin a objetos promete mejoras de amplio alcance en la forma de diseo, desarrollo y mantenimiento del software ofreciendo una solucin a largo plazo a los problemas y preocupaciones que han existido desde el comienzo en el desarrollo de software: la falta de portabilidad del cdigo y reusabilidad, cdigo que es difcil de modificar, ciclos de desarrollo largos y tcnicas de codificacin no intuitivas. Un lenguaje orientado a objetos ataca estos problemas. Tiene tres caractersticas bsicas: debe estar basado en objetos, basado en clases y capaz de tener herencia de clases. Muchos lenguajes cumplen uno o dos de

FundamentosdeProgramacin

8

e estos puntos; muchos menos cumplen los tres. La barrera ms difcil 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 Cdigo Abierto (Open Source), el cual hace posible que el acceso al "Cdigo Fuente" del programa no est limitado a su autor. Fuente Tambin denominado fuente o texto fuente. Es el texto que contiene las instrucciones del programa, escritas en el lenguaje de programacin.

Intrpretes y CompiladoresLos compiladores, los intrpretes y los ensambladores se encargan de traducir lo que haya escrito en lenguaje de alto nivel (cdigo fuente) y lo convierten a cdigo objeto (casi ejecutable).

C o m p i l a d o Es un programa que traduce un programa escrito en un lenguaje de alto nivel, en un programa en lenguaje de mquina 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 algn programa y su salida es otro programa. Para evitar confusiones, solemos llamar programa fuente o cdigo fuente al programa de entrada, y programa objeto o cdigo objeto a la versin traducida que el compilador produce. Cdigo 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, pasndose a crear el programa objeto cuando est libre de errores. El cdigo objeto puede ser ejecutado posteriormente. Una vez traducido un programa, su ejecucin es independiente de su compilacin. Involucra dos pasos en su operacin: 1. Convertir cdigo fuente a objeto 2. Ejecutar el cdigo objeto

Las ventajas de los intrpretes son: o Resulta ms fcil localizar y corregir errores (depuracin de programas) son ms pedaggicos para aprender a programar.

FundamentosdeProgramacin

9

e El programa es ms fcil de desarrollar. Traducen programas de alto nivel. No se genera en la mayora de los ficheros. Con el intrprete, cada vez que necesitamos ejecutar el programa tenemos que volver a analizarlo porque no hay cdigo objeto. Con el compilador, aunque ms lenta la traduccin, slo se realiza una vez. o

Ciclo de Vida de un ProgramaEn este paso se determinan la informacin inicial para la elaboracin 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: Anlisis del Problema Esta fase requiere una clara definicin donde se contemple exactamente lo que debe hacer el programa y el resultado o solucin deseada. Dado que se busca una solucin se precisan especificaciones de entrada y salida. Para poder definir bien un problema es conveniente responder a las siguientes preguntas: Diseo Es disear cualquier sistema nuevo o las aplicaciones que se requieren para satisfacer las necesidades. Esta actividad se debe dividir en: Operaciones de entrada/salida Clculos Lgica/comparacin Almacenamiento/ consulta En este paso se genera una solucin con tcnicas de programacin como diseo descendente de programas, pseudocdigos, flujo gramas y estructuras lgicas. Implementacin Para implementar un algoritmo en la computadora, se debe ejecutar los siguientes pasos: a) b) c) d) e) Codificacin Compilacin y ejecucin Verificacin Depuracin Documentacin Qu entradas se requieren? (cantidad y tipo) Cul es la salida deseada? (cantidad y tipo) Qu mtodo produce la salida deseada?

a) Codificacin: Es la escritura en un lenguaje de programacin de la representacin de un algoritmo. Dado que el diseo del algoritmo es independiente del lenguaje de programacin utilizado en su implementacin, el cdigo puede ser escrito con igual facilidad en un lenguaje o en otro. b) Compilacin y ejecucin: Una vez que el algoritmo se ha convertido en un programa fuente, es preciso introducirlo en memoria mediante el teclado y

FundamentosdeProgramacin

10

e almacenarlo posteriormente en un disco. Esta operacin 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) Verificacin: Consiste en verificar la funcionalidad del programa a travs de varios mtodos para detectar errores posibles. Mtodos de Prueba: Chequeo de escritorio Prueba manual de datos de muestra Intento de traduccin 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 impresin del programa. Revisa el listado lnea por lnea en busca de errores de sintaxis y lgica. 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 Traduccin: El programa corre en una computadora usando un programa traductor para convertirlo a lenguaje de mquina. Para ello debe estar ya libre de errores de sintaxis, de lo contrario sern identificados por el programa de traduccin. Prueba de datos de muestra en la computadora: Despus del intento de traduccin y corregidos los errores de sintaxis, se procede a buscar errores de lgica 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 retroalimentacin. d) Prueba y depuracin 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 estn depurados, se prueban. Cuando los programas se depuran, se pueden encontrar los siguientes errores: Errores de sintaxis o de compilacin Errores de ejecucin Errores de lgica Errores de especificacin. Errores de sintaxis o de compilacin Es una violacin de las reglas del lenguaje de programacin. Son ms fciles de corregir, ya que son detectados por el compilador (posible error de escritura). Errores de Ejecucin Se deben generalmente a operaciones no permitidas como dividir por cero, leer un dato no numrico en una variable numrica, exceder un rango de valores permitidos, etc. Se detectan porque se produce una parada anormal del programa durante su ejecucin. Errores de Lgica Corresponden a la obtencin de resultados que no son correctos y la nica manera de detectarlos es realizando suficientes pruebas del programa. Son los ms difciles de corregir, no slo por la dificultad de detectarlos, sino porque se deben a la propia concepcin y diseo del programa.

FundamentosdeProgramacin

11

e Errores de Especificacin Es el peor tipo de error y el ms difcil de corregir. Se deben a mal diseo del programa posiblemente por mala comunicacin usuario programador y se detectan cuando ya se ha concluido el diseo e instalacin del programa, lo cual puede implicar repetir gran parte del trabajo realizado. e) Documentacin del programa Consiste en describir por escrito a nivel tcnico los procedimientos relacionados con el programa y su modo de uso. Tambin se debe documentar el programa para que sea ms entendible. Para quines son la documentacin? 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 travs de capacitaciones y revisin de la documentacin del manual de usuario. El manual del usuario no est escrito a nivel tcnico sino al de los distintos usuarios previstos y explica en detalle cmo usar el programa: descripcin de las tareas que realiza el programa, instrucciones necesarias para su instalacin puesta en marcha y funcionamiento, recomendaciones de uso, mens de opciones, mtodo de entrada y salida de datos, mensajes de error, recuperacin de errores, etc. A los operadores por si se presentan mensajes de error, sepan cmo responder a ellos. Adems que se encargan de darle soporte tcnico al programa. A los programadores a travs del manual del analista para que recuerden aspectos de la elaboracin del programa o en caso que otras personas puedan actualizarlo o modificarlo (darle mantenimiento) y no son necesariamente las personas que lo disearon. Es por ello, que la documentacin debe contener algoritmos y flujo gramas de los diferentes mdulos que lo constituyen y las relaciones que se establecen entre ellos; listados del programa, corridas, descripcin de variables que se emplean en cada mdulo, cules son comunes a diferentes mdulos y cules locales; descripcin de los ficheros de cada mdulo y todo lo que sea de importancia para un programador. A los analistas de sistemas que son las personas que debern proporcionar toda la informacin al programador. Estos se encargan de hacer una investigacin previa de cmo realizar el programa y documentar con las herramientas necesarias para que el programador pueda desarrollar el sistema en algn lenguaje de programacin 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 propsito del mantenimiento es garantizar que los programas en uso estn libres de errores de operacin y sean eficientes y efectivos.

FundamentosdeProgramacin

12

e

IdentificadoresLos 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 o o No comenzar por un carcter especial (,,#,%,?,etc.). Su nombre debe ser corto Siempre debe de comenzar por una letra.

Ejemplos: Identificador que agrupe a: Juan, William, Angie, Sebastin Por lo tanto estamos hablando de Nombres. Identificador que agrupe a: Prez, Lpez, Aquino, ngeles, Florin Por lo tanto estamos hablando de Apellidos Identificador que agrupe una evaluacin final : Evaluacin final Recuerda que debe de respetar las reglas por lo tanto puede ser: Eva_Final o quizs pueda ser Evaluacion_F de acuerdo a tu criterio. Establecer un identificador corto para los: o Nombres y Apellidos Nom_Ape o o o o o o o o Edades Primera Nota Estado Civil Sueldo Bsico Sueldo Neto Cantidad de Horas Costo por hora Eds Nota_1 Est_Civ Suel_B Suel_N Cant_H Cst_H

Promedio de Practicas Prom_Pract

Ejercicios Propuestosa) Definir los identificadores para agrupar: _________________ Per, Chile, Ecuador, Espaa, etc. _________________ 15, 12, 10, 5, 13 _________________ Chorrillos, Villa el Salvador, Comas, Puente Piedra.

FundamentosdeProgramacin

13

e

Dato. Es la expresin 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 sitan en objetos llamados variables. Tipos de DatosLos tipos de datos son:

Enteros Numricos Decimales

Son aquellos cuyo contenido es una serie de dgitos (0-9) que en conjunto nos proporcionan un valor numrico ya sea entero o real y pueden ser precedidos de un signo + -.

Caracteres

1 sola letra De 2 a ms Letras

Tipos de datos Alfanumricos son aquellos cuyo contenido son letras del abecedario, nmeros o caracteres especiales o bien una combinacin de ellos.

Verdaderos Lgicos Falso

Ejemplos: Qu tipo de dato seria para establecer a los: Nombres _____________________ Apellidos ______________________ Notas ______________________ Promedio ____________________ Peso de una persona ____________________ Edad ____________________

FundamentosdeProgramacin

14

e

ContenidosOperadores:Aritmticos (+, -, *, /, MOD, ^ ). Jerarqua.Lgicos,Relacionales Expresiones Aritmticas, Lgicas y Relacionales.Operador de Asignacin Algoritmo: Concepto, Caractersticas, Representacin (Diagramas de Flujo y Pseudocdigo). Estructura de un Pseudocdigo. Resolucin de Problemas usando Pseudocdigo. Estructura Secuencial Instrucciones: Instruccin de entrada de datos (leer), Instrucciones de Manejo de Datos, Instruccin de salida de Resultados (escribir). Ejercicios

____________________________________________________________________________

Introduccin a la Programacin - PseudocdigosEl objetivo de esta semana es familiarizar al alumno con el diseo de algoritmos para la resolucin de problemas por computadora basndose en el paradigma de la programacin estructurada y utilizando un lenguaje de especificacin de algoritmos. Sus objetivos especficos seran:

Conocer los elementos principales utilizados en el diseo de algoritmos. Conocer los fundamentos de la programacin estructurada. Utilizar las estructuras de datos fundamentales.

Tipos de Operadores:a) b) c) d) e) Entre los tipos de operadores tenemos: Aritmticos (su resultado es un nmero): potencia, * , / , mod, div, + , Relacionales (su resultado es un valor de verdad): =, , =, Lgicos o Booleanos (su resultado es un valor de verdad): not, and, or Alfanumricos : + (concatenacin) Asociativos. El nico operador asociativo es el parntesis ( ) , el cual permite indicar en qu orden deben realizarse las operaciones. Cuando una expresin se encuentra entre parntesis, indica que las operaciones que estn dentro de ellos debe realizarse

FundamentosdeProgramacin

15

e primero. Si en una expresin se utilizan ms de un parntesis se deber proceder primero con los que se encuentren ms hacia el centro de la expresin.

Ejemplos:

6^(1/2)

6^2 28+29*(14^2)

Jerarqua de Operaciones:o o o o o o o o o o () Potencia Producto y divisin Div y Mod Suma y resta Concatenacin Relacionales Negacin And 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 adems trunc, round, int, y otros. La suma y multiplicacin de datos de tipo real cumplen la propiedad conmutativa, pero no siempre la asociativa y la distributiva. Para resolver una expresin aritmtica se deben seguir las siguientes reglas: Primero se resuelven las expresiones que se encuentran entre parntesis. Se procede aplicando la jerarqua de operadores. Al evaluar una expresin, si hay dos operadores con la misma jerarqua, se procede a evaluar de izquierda a derecha. Si hay expresiones relacionales, se resuelven primero parntesis, luego se encuentran los valores de verdad de las expresiones relacionales y por ltimo se aplica jerarqua de operadores lgicos. En caso de haber iguales, proceder de izquierda a derecha.

EJERCICIOS. a. Establecer las expresiones matemticas a expresiones algortmicas.

FundamentosdeProgramacin

16

e

b. Hallar el resultado de esta expresin segn la jerarqua 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: Y=N1+N3 Z=Y+N2 Cul es el valor de Z? Z=___ N1=5 N2=2 N3=1 U=N3*2 Q=U/2+N1 T=Q^0 Cul es el valor de T?

T=____

FundamentosdeProgramacin

17

e Asignacin de Datos 1. .- La instruccin de asignacin se usa para asignar valores a variables utilizando la igualdad (=). Identificador=Expresin

La expresin podr ser un valor fijo o un clculo. En el caso de ser un dato de tipo carcter 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

Seccin de Declaracin de Datos (Variables Constantes).

Seccin de VariableLas variables son zonas de memoria cuyo contenido cambia durante la fase de procesamiento de informacin. Son objetos cuyo valor puede ser modificado a lo largo de la ejecucin de un programa. Ejemplos:

Nombres Fecha_Nac Apellidos Direccion Edades Dni TelefonosComo declarar una Variable

Tipo de Dato: Identificador

FundamentosdeProgramacin

18

e Ejemplos: o o o o o Caracter: Nombres Caracter: Apellidos Entero: Edad Decimal: Promedio Lgico: Bandera

Seccin Constantes (Literales)Son objetos cuyo valor permanece invariable a lo largo de la ejecucin de un programa. Una constante es la denominacin de un valor concreto, de tal forma que se utiliza su nombre cada vez que se necesita referenciarlo. Como declarar una Constante Identificador=Valor Ejemplos: o o o o o Instituto=SISE Mes_Aniv=Noviembre Edad=25 Igv=0.19 Existe_Codigo=verdadero

b)

Defina el tipo de dato que corresponda a cada identificador:

_____________ Promedios _____________ Edades _____________ Ao de Nacimiento _____________ Correo electrnico c) Define tus propios valores para los siguientes Literales: o o o o o o Codigo Direccion Telefono Peso Talla Estado_Civil ____________________ ____________________ ____________________ ____________________ ____________________ ____________________

d)

Otros propuestos Estos nombres de variable son vlidos. Edad fechaNacimiento jugador1 iva16porCiento vidasRestantes

FundamentosdeProgramacin

19

e Estos otros nombres no son vlidos 2jugadores (No empieza por una letra) ao (Contiene la ) elPatioDeMiCasaEsParticularYCuandoLlueveSeMoja (Muy Largo) puntuacin (Lleva acento)

Algoritmo:Definiciones:a) Es un Mtodo 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 ambigedad. Los algoritmos son modos de resolucin de problemas, cabe aclarar que no slo son aplicables a la actividad intelectual, sino tambin a todo tipo de problemas relacionados con actividades cotidianas. El algoritmo podra confundirse con lo comnmente 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 seran pasos ya establecidos.

b) c)

Caractersticas Preciso (debe indicar el orden de realizacin en cada paso y no puede tener ambigedad). Definido (si se sigue dos veces, obtiene el mismo resultado cada vez) Finito (tiene fin; un nmero 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 ms 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 programacin!!), 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 Baarse. Vestirse. Desayunar. Sino, Vestirse.

FundamentosdeProgramacin

20

e 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 dems 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 automvil teniendo un gato mecnico 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 mecnico 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 nmeros 2448 y 5746. ALGORITMO: Inicio PASO 1. Colocar los nmeros el primero encima del segundo, de tal manera que las unidades, decenas, centenas, etc., de los nmeros queden alineadas. Trazar una lnea debajo del segundo nmero. PASO 2. Empezar por la columna ms a la derecha. PASO 3. Sumar los dgitos 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 lnea las unidades de la suma. Si no es mayor anotar la suma debajo de la lnea. PASO 5. Si hay ms columnas a la izquierda, pasar a la siguiente columna a la izquierda y volver a 3. PASO 6. El nmero debajo de la lnea es la solucin. Fin

FundamentosdeProgramacin

21

e Representacin de Algoritmos Para representar nuestros algoritmos podemos usar: A. Diagramas de Flujos B. Diagramas N-S C. Pseudocdigos, Otros

A. Diagramas de FlujosEs la representacin grfica de flujo de un algoritmo o de secuencia rutinaria. Se basan en la utilizacin de diversos smbolos para representar operaciones especficas. Se les llama diagramas de flujo porque los smbolos utilizados se conectan por medio de flechas para indicar la secuencia de la operacin.Smbolo Descripcin

Inicio / Terminacin. Este smbolo se utiliza para sealar el comienzo as como el final de un diagrama. Tradicionalmente se colocan las palabras INICIO FIN dentro de la figura para hacerlo ms explcito.

Entrada de datos. En este smbolo se indican los valores inciales que deber recibir el proceso. Esto se hace asignndoles letras o nombres de variables para cada uno de los valores y anotando estas letras en el interior de la figura. Este smbolo siempre deber tener al menos una conexin entrante (generalmente del inicio) y una de salida.

Proceso de datos. Este smbolo lo utilizaremos para sealar operaciones matemticas, aritmticas o procesos especficos que se realicen con nuestros datos. La manera de anotar dichos procesos, puede ser mediante una descripcin breve de la operacin o mediante una asignacin de dicha operacin hacia una variable como por ejemplo: R = A + B

Decisin. Este smbolo nos representa una disyuntiva lgica o decisin. En su interior se anota una instruccin o pregunta que pueda ser evaluada como cierta o falsa y que determine el flujo del programa.

FundamentosdeProgramacin

22

e Desplegado de informacin. Este smbolo se utiliza para mostrar un resultado, el cual puede representar la solucin al problema que se pretende resolver y que fue conseguida a travs 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 smbolo muy cerca del final del proceso y precedido por el smbolo de terminacin. Este smbolo siempre deber tener al menos una conexin de entrada y una de salida.

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

En la diagramacin, tambin contamos con una serie de smbolos 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:Smbolo Descripcin

Conector. Este smbolo se utiliza para indicar un salto dentro del diagrama. Se utiliza con el propsito de facilitar la disposicin plana de un diagrama y evitar el cruce excesivo de lneas a travs 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 lnea continua in interrumpida.

Conector de pgina. Este conector es idntico en funcionamiento que el anterior, pero su forma pentagonal lo distingue y nos indica que debemos buscar el gemelo en una pgina distinta de la actual. Este conector lleva asociado una especie de salto entre pginas.

Ejemplo:

FundamentosdeProgramacin

23

e B. Diagramas N-S (I. Nassi y B. Scheneiderman)Tambin conocido como diagrama de Chapin es una tcnica de especificacin de algoritmos que combina la descripcin textual, propia del pseudocdigo, con la representacin grfica del diagrama de flujo. El diagrama N-S cuenta con un conjunto limitado de smbolos 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 ambigedad, solo se utiliza un conjunto de palabras, a las que se denomina palabras reservadas

Inicio .. .. .. .. Fin

C. PseudocdigoUn pseudocdigo (falso lenguaje), es una serie de palabras lxicas y gramaticales referidos a los lenguajes de programacin, 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 programacin, con la misma validez semntica, normalmente se utiliza en las fases de anlisis o diseo de Software, o en el estudio de un algoritmo. Forma parte de las distintas herramientas de la ingeniera de software. Es, netamente, lenguaje de tipo informtico. Mezcla de lenguaje de programacin y espaol (o ingles o cualquier otro idioma) que se emplea, dentro de la programacin estructurada, para realizar el diseo de un programa. En esencial, el Pseudocdigo se puede definir como un lenguaje de especificaciones de algoritmos. Es la representacin narrativa de los pasos que debe seguir un algoritmo para dar solucin a un problema determinado. El Pseudocdigo utiliza palabras que indican el proceso a realizar. Ventajas de utilizar un Pseudocdigo a un Diagrama de Flujo

Ocupa menos espacio en una hoja de papel Permite representar en forma fcil operaciones repetitivas complejas Es muy fcil pasar de Pseudocdigo a un programa en algn lenguaje de programacin. Si se siguen las reglas se puede observar claramente los niveles que tiene cada operacin.

Estructura de un Pseudocdigo a) Encabezado de programa.- Se establece un nombre para el programa * b) Seccin de Declaracin- Permite establecer las Variables y la Constantes c) Cuerpo del Programa.- se establece con la palabra Inicio

FundamentosdeProgramacin

24

e d) Instrucciones.- son acciones o tareas que se establecen como una expresin o una asignacin de datos.

e) Termino del programa.- se establece con la palabra Fin algoritmo //Secciones de declaraciones [constantes //declaraciones de constantes] [variables //declaraciones de variables] //Cuerpo del programa Inicio fin

Tipos de Instrucciones: 1. Instrucciones de inicio/fin. 2. Instrucciones de asignacin. 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 Asignacin.- se le establecer un tipo de dato o una expresin. =

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

FundamentosdeProgramacin

25

e leer()

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

La lectura en un Pseudocdigo puede ser uno por uno o separados por comas4.

Instrucciones de Escritura.- Una instruccin de salida (o simplemente salida) consiste en llevar hacia el exterior los valores (datos) obtenidos de la evaluacin de una lista de expresiones. Normalmente, los datos son enviados a la salida estndar (la pantalla), pero, tambin existen otros dispositivos de salida (la impresora, el plotter,...). Se realiza con la palabra Escribir

escribir(,)

Formas: escribir (expresin1) escribir (expresin2) escribir (expresin3)Ejemplo de Pseudocdigo:

o

escribir (expresin1, expresin1, expresin3)

Ejemplo 1: Mostrar los datos asignados de la siguiente maneraalgoritmo Entrada_Salida Constante nombre = "Timoteo" edad = 27, hijos = 2 Inicio escribir (nombre, " tiene ", edad, " aos") escribir (nombre, " tiene ", hijos, " hijos") Fin_Programa Por pantalla aparecer:

FundamentosdeProgramacin

26

e Ejemplo 2: Realizar el pseudocdigo de un programa que permita calcular el rea de un rectngulo. Se debe introducir la base y la altura para poder realizar el clculo. algoritmo rea Variables Entero: BASE, ALTURA, AREA Inicio Leer (BASE, ALTURA) AREA = BASE * ALTURA Escribir( El rea del rectngulo es , AREA) Fin_Programa

Ejemplo 3: Realizar el pseudocdigo 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

FundamentosdeProgramacin

27

e

ContenidosEstructuras Secuenciales con uso de casos comerciales Uso de clculos matemticos (use el operador +,-,*,/,raz, exponente, etc) Elaboracin Caso Prctico. Explicacin de uso de porcentajes, uso de promedios aritmticos, armnicos, etc. Propuesta de los trabajos grupales (elaborar en papelotes los pseudocdigos propuestos)

____________________________________________________________________________________

Estructuras SecuencialesLa estructura secuencial es aquella en la que una accin (instruccin) sigue a otra en secuencia. Las tareas se suceden de tal modo que la salida de una es la entrada de la siguiente y as sucesivamente hasta el fin del proceso.

FundamentosdeProgramacin

28

e

Ejemplos:1. Hallar la suma de tres nmeros 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 nmeros Variables entero: numA, numB, numC,suma real: quinta INICIO leer (numA, numB, numC) suma=( numA+ numB+ numC) quinta=suma/5 escribir (suma,quinta) FIN

FundamentosdeProgramacin

29

e 4. Mostrar la edad de una persona de acuerdo al ao 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

FundamentosdeProgramacin

30

e

7. Programa que pida el precio de un artculo y calcule su valor aplicndole 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 artculos y muestre el total y la media Aritmtica.

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 tringulo rectngulo, dada la altura y la base. A=(b*c)/2Variables entero: b,c decimal: A INICIO leer (b,c) A= (b*c)/2 escribir (A) FIN

FundamentosdeProgramacin

31

e 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 dlares.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 centmetros

Variables decimal: Cant_Metros,Cant_Centimetros Constante centi=100 INICIO leer (Cant_Metros) Cant_Centimetros= Canti_Metros * centi escribir (Mont_Dolares) FIN

FundamentosdeProgramacin

32

e

EJERCICIOS DE APLICACIN

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 expresin 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 conversin 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 conversin 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 centmetros equivale. 5. Elabore un programa que realice la conversin 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 conversin 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 conversin 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 conversin 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 crculo de radio 5. Modificar el problema anterior para que sea capaz de calcular el rea y la longitud de un crculo de cualquier radio requerido. 10. Escribe un programa que calcule el rea de un crculo de cualquier radio.L = 2 * pi * R (asignacin del valor de la longitud)

FundamentosdeProgramacin

33

e

11. Escribe un programa que lea una cantidad depositada en un banco y que calcule la cantidad final despus de aplicarle un 20% de inters. 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 cul ser su calificacin final en la materia de Lgica Computacional. Dicha calificacin se compone de tres exmenes parciales cuya ponderacin 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. Disear un algoritmo que lea cuatro variables y calcule e imprima su producto, suma y media aritmtica. 16. Realiza un programa que dados el voltaje en voltios y la resistencia en ohmios, nos calcule la intensidad, mediante la aplicacin de esta frmula: intensidad = Voltaje / Resistencia 17. Suponga que un individuo desea invertir su capital en un banco y desea saber cunto dinero ganar despus de un mes si el banco paga a razn de 2% mensual. Realiza un programa que calcule dicha ganancia teniendo como entrada el capital invertido. 18. Un vendedor recibe mensualmente un sueldo base ms un 10% extra por comisin de sus ventas. El vendedor desea saber cunto 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 nmero correspondiente al radio de la circunferencia, visualizando la longitud de la misma y el rea del crculo 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:

FundamentosdeProgramacin

34

e

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 > ! & > ^ . > < ?!! = && / ] != ) >> %= >= < =18) escribir(es mayor de edad) sino escribir(no es mayor de edad) fin_si fin_programa Es importante ser ordenado en el cdigo que se escribe!

2. Se pide leer tres notas del alumno, calcular su promedio aritmtico y enviar un mensaje donde diga si el alumno aprob o reprob el curso. Exprese el algoritmo usando Pseudocdigo:

variables decimal: not1, not2, not 3,prom inicio leer(nota1, nota2, nota3) prom= (not1 + not2 + not3) /3 si (prom0 y num3>0 ) entonces suma=num1+num2+num3 resta=num1-num2-num3 multip=num1*num2*num3 escribir(suma,resta,multip) sino escribir(Los nmeros no son positivos) fin-si fin_programa Es importante ser ordenado en el cdigo que se escribe!

FundamentosdeProgramacin

63

e

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 nmeros 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%.

FundamentosdeProgramacin

64

e 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; Recordemos que cuando se } realiza una comparacin de else { cadena se realiza con m="90 %"; equalsIgnoreCase porc=edad*0.90; } increm=edad+porc; lblin.setText("El porcentaje es el "+m+" teniendo un incremento sobre la edad: "+increm); }

FundamentosdeProgramacin

65

e 3. En un hospital existen 3 reas: Urgencias, Pediatra y Traumatologa. El

presupuesto anual del hospital se reparte de la siguiente manera: rea Urgencias Pediatra Traumatologa Presupuesto 37% 42% 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

FundamentosdeProgramacin

66

e

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 capica variables entero: num,c1,c2 inicio leer(num) si(num>=10 y num=10 & num10) entonces inc=0.25*sb sino si(ts>=5 y ts10) inc=0.25*sb; else if(ts>=5 & ts; si esto ocurre realiza las acciones correspondientes y el flujo de control sale de la estructura, en caso contrario evala la siguiente lista. Las acciones de la clusula sino se ejecutar si ningn valor coincide con la .

EJEMPLOS:1. Dado un numero entre 1 y 7 escriba su correspondiente da de la semana as: 1- Lunes 2- Martes 3- Mircoles 4- Jueves 5- Viernes 6- Sbado 7- Domingo Exprese el algoritmo usando Pseudocdigo.

variables entero: dia inicio leer(dia) cuando(dia) sea caso 1: escribir(lunes) caso 2: escribir(martes) caso 3: escribir(mircoles) caso 4: escribir(jueves) caso 5: escribir(viernes) caso 6: escribir(sbado) 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] [101, 130] [ms de 130] 120 150 220

FundamentosdeProgramacin

83

e Si adems el conductor no utilizara el cinturn 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(cinturn=no)entonces incremento=multa*0.50 fin_si if(cinturn=si)entonces incremento=0 fin_si neto_pag=multa+incremento escribir(multa,incremento,neto_Pag) fin_programa

Practiquemos:Realiza el diseo para cada uno de estos caso.

FundamentosdeProgramacin

84

e

Usando controles SwingJComboBoxEste componente nos permite definir en primera instancia un conjunto de datos o valores. Cada valor tiene estas asociados a una caja de edicin cualesquiera, as ahora el usuario tendr la oportunidad de seleccionar un dato del conjunto de datos o respuestas ya predefinido. Nomenclatura

cboNombreMetodosaddItem.- 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;

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

FundamentosdeProgramacin

85

e

EJEMPLOS DE APLICACIN 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 aplicacin 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");

FundamentosdeProgramacin

86

e

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); }

FundamentosdeProgramacin

87

e

Contenidos- Uso de la Clase Math (max,min) - Implementacin de Aplicaciones usando sintaxis del Lenguaje. - Ejercicios con estructuras condicionales____________________________________________________________________________________

La Clase MathLa clase Math representa la librera matemtica de Java. Las funciones que contiene son las de todos los lenguajes, parece que se han metido en una clase solamente a propsito de agrupacin, por eso se encapsulan en Math, y lo mismo sucede con las dems 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 ) Math.min( a,b ) Math.E Math.PI

para int, long, float y double para int, long, float y double para la base exponencial para PI

float max; z = Math.pow( 2,4 ); // eleva el nmero 2 a la cuarta. max = Math.max(45,80 ); // devuelve el numero mayor entre los 2 nmeros System.out.println("El 2 al exponente de 4 es :"+ z ); System.out.println("El numero mayor entre 45 y 80 es: "+ max );

FundamentosdeProgramacin

88

e

Estructuras Condicionales y Anidadas1. 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 funcin al instituto de procedencia del alumno y su categora. CATEGORIA Instituto Nacional Particular A 50% 25% B 40% 20% C 30% 15%

variables Carcter: 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

FundamentosdeProgramacin

89

e 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 ms 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 y monto 120 y monto 0))entonces si(numero >=10 y numero 50 y Monto 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 )

FundamentosdeProgramacin

91

e 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

FundamentosdeProgramacin

92

e

ContenidosResolucin de Aplicaciones. Uso de la Clase Math (abs,sqrt,log,etc) Casos resueltos en Java Describir los siguientes mtodos: equalsIgnoreCase(), equals(), Ejemplos

____________________________________________________________________________________

Desarrollo de CasosApliquemos 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 funcin al instituto de procedencia del alumno y su categora. CATEGORIA Instituto Nacional Particular A 50% 25% B 40% 20% C 30% 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());

FundamentosdeProgramacin

93

e

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); }

RecordemosqueenellenguajeJavaalutilizar ComboBoxyaltrabajarconelswitch debemosdetrabajarconelordendelos seleccionad.Enelcasodelacategorasolohay 3entoncesserelorden0,1y2.Enelcaso institutoporser2trabajemoscomoelorden0 y1(particularynacional). UnaestructuradentrodeotraserAnidada, noolvidemosdelbreak(saltodelnea)yesto seestablecerporcadaunodeloscasos.

FundamentosdeProgramacin

94

e

La Clase MathLa clase Math representa la librera matemtica de Java. Si se importa la clase, se tiene acceso al conjunto de funciones matemticas estndar: Math.abs( x ) 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 ) Math.random() para double y float devuelve un double para int, long, float y double

Ejemplo 01: Inserte un botn y escriba este cdigo, donde estamos empleado mtodos 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 nmero 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 );

FundamentosdeProgramacin

95

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

Funciones trigonomtrica En las funciones trigonomtricas 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 funcin 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));

FundamentosdeProgramacin

96

e Funciones exponencial y logartmica La funcin exponencial exp devuelve el nmero 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 funcin log calcula el logaritmo natural (de base e) de un nmero 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));

Funcin potencia y raz cuadrada Para elevar un nmero 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 raz cuadrada de un nmero, se emplea la funcin sqrt int n=15; System.out.println("La raz cuadrada de " + n + " es " + Math.sqrt(n));

FundamentosdeProgramacin

97

e Aproximacin de un nmero decimal Para expresar un nmero real con un nmero especificado de nmeros decimales empleamos la funcin round. Por ejemplo, para expresar los nmeros x e y con dos 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 cabra esperar. Fijarse que round devuelve un nmero entero int que es necesario promocionar a double para efectuar la divisin entre 100. Si empleamos la funcin floor en vez de round obtendramos*/ System.out.println(x + " es aprox. " + Math.floor(x*100)/100); System.out.println(y + " es aprox. " + Math.floor(y*100)/100);

cifras

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

FundamentosdeProgramacin

98

e El mayor y el menor de dos nmeros Para hallar el mayor y el menor de dos nmeros se emplean las funciones min y max que comparan nmeros del mismo tipo. int i = 7; int j = -9; double x = 72.3543; double y = 0.3498; // para hallar el menor de dos nmero 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 nmeros System.out.println("max(" + i + "," + j + ") es " + Math.max(i,j)); System.out.println("max(" + x + "," + y + ") es " + Math.max(x,y));

FundamentosdeProgramacin

99

e Nmeros 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 nmero 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 nmero 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 nmeros 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 raz cuadrada de " + i + " es " + Math.sqrt(i)); // Programacin en el lenguaje Java 9 // Devuelve un nmero pseudo-aleatorio comprendido entre 0.0 y 1.0 System.out.println("Nmero aleatorio: " + Math.random()); System.out.println("Otro nmero aleatorio: " + Math.random());

FundamentosdeProgramacin

100

e

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

FundamentosdeProgramacin

101

e

CASOS RESUELTOSCaso 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 lgico: rbtC, rbtNC INICIO leer (veloc,estado) si(veloc>60 y veloc100 y veloc130)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

FundamentosdeProgramacin

102

e 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&veloc100&veloc130) 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); }

FundamentosdeProgramacin

103

e 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&con60)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&con60) 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(""); }

FundamentosdeProgramacin

104

e

Caso 03: Que muestre un mensaje indicando si un usuario es o no mayor de edad, segn al ao 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) m=", Usted es mayor de edad"; else if(eea>0&eean2) r="en primero es mayor que el segundo" sino si(n1=n2) r="Ambos numeros son iguales"; sino si(n1n2) r="en primero es mayor que el segundo"; if(n1==n2) r="Ambos numeros son iguales"; if(n10 y mca120 y mca180&mca250)entonces descuento=0.21*mca fin_si fin_si fin_si igv=0.19*mca; neto=mca-descuento+igv; escribit(descuento,igv,neto) FIN

FundamentosdeProgramacin

109

e JAVA private void btnprocesar_actionPerformed(ActionEvent e) { int mca; double descuento=0,igv=0,neto; mca=Integer.parseInt(txtmca.getText()); if(mca>0&mca120&mca180&mca250) 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(""); }

FundamentosdeProgramacin

110

e 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 reglamentacin: 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 ms 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=4&hijos6) 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); }

FundamentosdeProgramacin

111

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

FundamentosdeProgramacin

112

e Caso 07: La Empresa CLARITO cobra por el servicio de minutos de llamadas locales de acuerdo a la siguiente escala: Si el nmero 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&cm80){ 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); }

FundamentosdeProgramacin

113

e private void lblactualizar_actionPerformed(ActionEvent e) { txtcm.setText(""); lbln.setText(""); lbla.setText(""); lblmpi.setText(""); lblmpa.setText(""); lbligv.setText(""); lblmtp.setText(""); }

FundamentosdeProgramacin

114

e 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 artculos indicados con *, adicionalmente tendrn 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); }

FundamentosdeProgramacin

115

e

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;

FundamentosdeProgramacin

116

e 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); }

FundamentosdeProgramacin

117

e

Caso 10: Calcule el sueldo de un empleado a partir de su sueldo bruto. Sobre este sueldo se harn los siguientes descuentos: Descuentos fijos: Jubilacin 13%, Seguro 11%. Descuentos variables: Cooperativa 3% (descuento mximo S/.15.00), Sindicato a 6%. Estos descuentos se harn si el empleado pertenece a la cooperativa o al sindicato. Dependiendo de los aos de servicio el empleado recibir una bonificacin especial no afecta a descuento, de acuerdo al siguiente cuadro: AOS DE SERVICIO BONIFICACION (%)

05 15.0 6 10 18.0 11 - 15 20.0 Ms de 15 25.0 Estos porcentajes se aplicaran sobre el sueldo bruto y en ningn caso sobrepasaran los S/. 500.00. Los empleados pueden ser de 3 categoras (A, B, C). Los de categora A recibirn la bonificacin calculada, los de la categora B recibirn la mitad y los de la categora C recibirn la cuarta parte. Al final se presentara lo siguiente: SUELDO BRUTO TOTAL DESCUENTOS : BONIFICACION SUELDO NETO : S/. : : S/. S/. S/.

FundamentosdeProgramacin

118

e 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;

FundamentosdeProgramacin

119

e //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); }

FundamentosdeProgramacin

120

e 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); }

FundamentosdeProgramacin

121

e Caso 11: Ingresar 5 numeros y mostrar el mayor, menor y promedio de estos. Realice el diseo // 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 nmero 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 nmero 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");

FundamentosdeProgramacin

122

e 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 diseo // 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