Documente Academic
Documente Profesional
Documente Cultură
Introduccin a la Programacin
El objetivo de esta semana es que el alumno conozca los principios de la programacin y que
aprenda aplicar las etapas de procesamiento de datos.
FundamentosdeProgramacin 2
1. Sistema de Informacin
Introduccin:
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 recurso humano que interacta con el Sistema de Informacin, el cual est formado por las
personas que utilizan el sistema.
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.
FundamentosdeProgramacin 3
Proceso:
Almacenamiento:
Salidas:
Reporte de pagos.
Estados de cuenta.
Plizas contables (interface automtica)
Consultas de saldos en pantalla de una terminal.
FundamentosdeProgramacin 4
9 Seguridad de la informacin.
9 Fcil y rpido acceso a la informacin.
9 Reduccin de espacio fsico.
9 Estandarizacin.
9 Facilidad en la creacin de copias de respaldo.
9 Reduccin de gastos.
9 Data Ordenada y clasificada.
9 Conservacin de la informacin.
3. Conceptos De Programacin
Definicin.- 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:
FundamentosdeProgramacin 5
9 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.
9 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.
9 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.
FundamentosdeProgramacin 6
estos puntos; muchos menos cumplen los tres. La barrera ms difcil de sortear
es usualmente la herencia.
Programa Fuente.
Intrpretes y Compiladores
9 C
o
m
p
i
l
a
d
o
FundamentosdeProgramacin 7
9 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.
9 Implementacin
Para implementar un algoritmo en la computadora, se debe ejecutar los siguientes
pasos:
a) Codificacin
b) Compilacin y ejecucin
c) Verificacin
d) Depuracin
e) Documentacin
FundamentosdeProgramacin 8
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.
FundamentosdeProgramacin 9
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 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.
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 10
Identificadores
Los Identificadores son palabras que de alguna manera ayudan a identificar a un conjunto de
datos.
Ejemplos:
Ejercicios Propuestos
FundamentosdeProgramacin 11
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.
9 Tipos de Datos
Los tipos de datos son:
Son aquellos cuyo contenido es una serie de dgitos
Enteros (0-9) que en conjunto nos proporcionan un valor
numrico ya sea entero o real y pueden ser
precedidos de un signo + -. Tipos de datos
Numricos Alfanumricos son aquellos cuyo contenido son letras
Decimales del abecedario, nmeros o caracteres especiales o
bien una combinacin de ellos.
Verdaderos
Lgicos
Falso
Ejemplos:
- Nombres _____________________
- Apellidos ______________________
- Notas ______________________
- Promedio ____________________
- Peso de una persona ____________________
- Edad ____________________
FundamentosdeProgramacin 12
Tipos de Operadores:
FundamentosdeProgramacin 13
Ejemplos:
6^(1/2)
6^2
28+29*(14^2)
Jerarqua de Operaciones:
o ()
o Potencia
o Producto y divisin
o Div y Mod
o Suma y resta
o Concatenacin
o Relacionales
o Negacin
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
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.
FundamentosdeProgramacin 14
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
FundamentosdeProgramacin 15
Asignacin de Datos
Identificador=Expresin
9 Seccin de Variable
Las 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
Telefonos
FundamentosdeProgramacin 16
Ejemplos:
o Caracter: Nombres
o Caracter: Apellidos
o Entero: Edad
o Decimal: Promedio
o Lgico: Bandera
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.
Identificador=Valor
Ejemplos:
o Instituto=SISE
o Mes_Aniv=Noviembre
o Edad=25
o Igv=0.19
o Existe_Codigo=verdadero
_____________ Promedios
_____________ Edades
_____________ Ao de Nacimiento
o Codigo ____________________
o Direccion ____________________
o Telefono ____________________
o Peso ____________________
o Talla ____________________
o Estado_Civil ____________________
d) Otros propuestos
FundamentosdeProgramacin 17
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.
b) 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.
c) 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.
Caractersticas
Ejemplos:
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 18
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
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 19
Representacin de Algoritmos
A. Diagramas de Flujos
B. Diagramas N-S
C. Pseudocdigos, Otros
A. Diagramas de Flujos
Smbolo Descripcin
FundamentosdeProgramacin 20
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.
Ejemplo:
FundamentosdeProgramacin 21
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. Pseudocdigo
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.
Estructura de un Pseudocdigo
FundamentosdeProgramacin 22
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 <nombre_del_algoritmo>
//Secciones de declaraciones
[constantes
//declaraciones de constantes]
[variables
//declaraciones de variables]
Inicio
<Acciones>
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
<variable> = <expresin>
FundamentosdeProgramacin 23
leer(<Variable>)
Formas:
leer (ident_1) o leer (ident1,ident2, ident3,.)
leer (ident_2)
leer (ident_3)
La lectura en un Pseudocdigo puede ser uno por uno o separados por comas
escribir(<variable>,<expresin_literal>)
Formas:
escribir (expresin1) o escribir (expresin1, expresin1, expresin3)
escribir (expresin2)
escribir (expresin3)
Ejemplo de Pseudocdigo:
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, " aos")
FundamentosdeProgramacin 24
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
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
Inicio
Fin_programa
FundamentosdeProgramacin 25
Estructuras Secuenciales
La estructura secuencial es aquella en la que una accin (instruccin) sigue a otra en
secuencia. Las tareas se suceden de tal modo que la salida de una es la entrada de la
siguiente y as sucesivamente hasta el fin del proceso.
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
FundamentosdeProgramacin 26
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
Variables
entero: numA, numB, numC,suma
real: quinta
INICIO
leer (numA, numB, numC)
suma=( numA+ numB+ numC)
quinta=suma/5
escribir (suma,quinta)
FIN
Constante
a_Actual=2009
Variables
entero: a_Nac,edad
INICIO
leer (a_Nac)
edad=(a_Actual a_Nac)
escribir (edad)
FIN
FundamentosdeProgramacin 27
Variables
decimal: PrecioA, igv,Nprecio
INICIO
leer (PrecioA)
igv=PrecioA * 0.19
Nprecip=PrecioA+igv
escribir (salario)
FIN
FundamentosdeProgramacin 28
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
A=(b*c)/2
Variables
entero: b,c
decimal: A
INICIO
leer (b,c)
A= (b*c)/2
escribir (A)
FIN
Variables
entero: c
decimal: f
INICIO
leer (C)
F= 1.8 * C + 32
escribir (F)
FIN
FundamentosdeProgramacin 29
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
Variables
decimal: Cant_Metros,Cant_Centimetros
Constante
centi=100
INICIO
leer (Cant_Metros)
Cant_Centimetros= Canti_Metros * centi
escribir (Mont_Dolares)
FIN
FundamentosdeProgramacin 30
EJERCICIOS DE APLICACIN
FundamentosdeProgramacin 31
FundamentosdeProgramacin 32
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.
FundamentosdeProgramacin 33
Con la ayuda de otros ingenieros, empezaron a trabajar en una pequea 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 tecnologa para programar la siguiente generacin de
dispositivos inteligentes, en los que Sun vea un campo nuevo a explorar. Crear un lenguaje de
programacin fcil 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 aadan y eliminaban caractersticas a C++), pero lo
abandon para crear un nuevo lenguaje desde cero al que llamo Oak (roble en ingls, segn la
versin ms aceptada, por el roble que vea a travs de la ventana de su despacho).
El resultado fue un lenguaje que tena similitudes con C, C++ y Objetive C y que no estaba
ligado a un tipo de CPU concreta.
Mas tarde, se cambiara 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 corra sus primeros programas.
Para 1992, el equipo ya haba desarrollado un sistema en un prototipo llamado Star7 (*7),
dispositivo parecido a una PDA, cuyo nombre vena de la combinacin de teclas del telfono de
la oficina del Proyecto Green que permita a los usuarios responder al telfono desde cualquier
lugar.
FundamentosdeProgramacin 34
Por su parte, el presidente de la compaa Sun, Scott McNealy, se dio cuenta de forma
oportuna y estableci el Proyecto Verde como una subsidiaria de Sun.
Despus de mostrar a Scott McNealy y Bill Joy los prototipos de bajo nivel del sistema,
continan con el desarrollo, incluyendo sistema operativo, Green OS; el lenguaje Oak, las
libreras, alguna aplicacin bsica 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 electrnicos smart y las cajas
Set-Up en particular, no eran del todo eficaces. La subsidiaria Proyecto verde fue amortizada
por la compaa Sun a mediados de 1994.
Afortunadamente, el cese del Proyecto Verde coincidi con el nacimiento del fenmeno
mundial WEB. Al examinar las dinmicas de Internet, lo realizado por el ex equipo verde se
adecuaba a este nuevo ambiente.
Patrick Naughton procedi a la construccin del lenguaje de programacin 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 demostracin 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 prctico dentro del lenguaje Java y
demostr que podra proporcionar multiplataforma para que el cdigo pueda ser bajado y
corrido del Host del World Wide Web y que de otra forma no son seguros.
Una de las caractersticas de HotJava fue su soporte para los "applets", que son las partes de
Java que pueden ser cargadas mediante una red de trabajo para despus ejecutarlo
localmente y as lograr soluciones dinmicas en computacin acordes al rpido 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 versin alpha de
Java, que en ese momento solo corra en Solaris, y el hecho de que Java iba a ser incorporado
en Netscape Navigator, el navegador ms utilizado de Internet.
Con la segunda alpha de Java en Julio, se aade 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 tecnologas 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 versin 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.
FundamentosdeProgramacin 35
formado el verano pasado por 11 compaas, incluyendo Cisco Systems, IBM, Netscape y
Oracle.
Hoy en da, puede encontrar la tecnologa Java en redes y dispositivos que comprenden desde
Internet y superordenadores cientficos hasta porttiles y telfonos mviles; desde simuladores
de mercado en Wall Street hasta juegos de uso domstico y tarjetas de crdito: Java est en
todas partes.
Caractersticas de Java
Las caractersticas principales que nos ofrece Java respecto a cualquier otro lenguaje de programacin,
son:
Simple
Java ofrece toda la funcionalidad de un lenguaje potente, pero sin las caractersticas menos
usadas y ms confusas de stos. C++ es un lenguaje que adolece de falta de seguridad, pero
C y C++ son lenguajes ms difundidos, por ello Java se dise para ser parecido a C++ y as
facilitar un rpido y fcil aprendizaje.
Orientado a objetos
Java implementa la tecnologa bsica de C++ con algunas mejoras y elimina algunas cosas
para mantener el objetivo de la simplicidad del lenguaje. Soporta las tres caractersticas propias
del paradigma de la orientacin a objetos: encapsulacin, herencia y polimorfismo. Las
plantillas de objetos son llamadas, clases y sus copias, instancias.
Distribuido
Java se ha construido con extensas capacidades de interconexin TCP/IP. Existen libreras de
rutinas para acceder e interactuar con protocolos como http y ftp. Esto permite a los
programadores acceder a la informacin a travs de la red con tanta facilidad como a los
ficheros locales.
Robusto
Java realiza verificaciones en busca de problemas tanto en tiempo de compilacin como en
tiempo de ejecucin. La comprobacin de tipos en Java ayuda a detectar errores, lo antes
posible, en el ciclo de desarrollo. Java obliga a la declaracin explcita de mtodos, reduciendo
as las posibilidades de error.
Seguro
La seguridad en Java tiene dos facetas. En el lenguaje, caractersticas como los punteros o el
casting implcito 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
caractersticas del lenguaje con protecciones de sentido comn aplicadas al propio navegador.
Portable
Ms all de la portabilidad bsica por ser de arquitectura independiente, Java implementa otros
estndares de portabilidad para facilitar el desarrollo. Los enteros son siempre enteros y
adems, enteros de 32 bits en complemento a 2. Adems, Java construye sus interfaces de
FundamentosdeProgramacin 36
usuario a travs de un sistema abstracto de ventanas de forma que las ventanas puedan ser
implantadas en entornos Unix, Pc o Mac.
Interpretado
El intrprete Java (sistema run-time) puede ejecutar directamente el cdigo objeto. Enlazar
(linkar) un programa, normalmente, consume menos recursos que compilarlo, por lo que los
desarrolladores con Java pasarn ms tiempo desarrollando y menos esperando por el
ordenador.
Multithreaded
Al ser multithreaded (multihilvanado, en mala traduccin), Java permite muchas actividades
simultneas en un programa.
Dinmico
Java se beneficia todo lo posible de la tecnologa orientada a objetos. Java no intenta conectar
todos los mdulos que comprenden una aplicacin hasta el tiempo de ejecucin.
FundamentosdeProgramacin 37
Comentarios
Formato Uso
/*comentario*/ Se ignoran todos los caracteres entre /* */.
//comentario Se ignoran todos los caracteres detrs de // hasta el fin de lnea.
/**comentario*/ Lo mismo que /* */ pero se podrn utilizar para documentacin automtica.
Los dos primeros tipos de comentarios son los que todo programador conoce y se utilizan del
mismo modo. Los comentarios de documentacin, colocados inmediatamente antes de una
declaracin (de variable o funcin), indican que ese comentario ha de ser colocado en la
documentacin que se genera automticamente cuando se utiliza la herramienta de Java,
javadoc. Dichos comentarios sirven como descripcin del elemento declarado permitiendo
generar una documentacin de nuestras clases escrita al mismo tiempo que se genera el
cdigo.
Separadores
Slo hay un par de secuencias con otros caracteres que pueden aparecer en el cdigo Java;
son los separadores simples, que van a definir la forma y funcin del cdigo. Los separadores
admitidos en Java son:
[] - corchetes. Para declarar tipos matriz. Tambin se utiliza cuando se referencian valores de
matriz.
. - punto. Para separar nombres de paquete de subpaquetes y clases. Tambin se utiliza para
separar una variable o mtodo de una variable de referencia.
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 smbolo de dlar ($).
Los siguientes caracteres pueden ser letras o dgitos. Se distinguen las maysculas de las
minsculas y no hay longitud mxima.
FundamentosdeProgramacin 38
identificador
nombre_usuario
Nombre_Usuario
_variable_del_sistema
$transaccion
int contador_principal;
char _lista_de_ficheros;
float $cantidad_en_Ptas;
Operadores
Conocidos tambin como operandos, indican una evaluacin o computacin para ser realizada
en objetos o datos, y en definitiva sobre identificadores o constantes. Los operadores admitidos
por Java son:
+ ^ <= ++ %=
>>>= - ~ >= -
== <<= [ / ||
>> += ^= ] %
! >>> = != (
& < *= ) |
Tipos de Datos
9 Enteros: Estos tipos son byte, short, int y long, que guardan el signo valor, estos
representan un nmero y no pueden representar elementos fraccionarios.
Esto puede ser un buen ejemplo de declaracin de tipos de datos enteros:
byte midato1 = 1;
short midato2 = 100;
int midato3 = 10000;
long midato4 = 100000000;
9 Decimales: Estos son float y double y pueden almacenar nmeros en coma flotante y
con signo, esto quiere decir que nos permiten representar nmeros 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 tamao;
FundamentosdeProgramacin 39
9 El tipo Caracter: Estos son de tipo char, String, que almacena la representacin de los
caracteres (letras o nmeros), un carcter est almacenado en 16 bits, y siguen un
estndar que es el Unicoide.
Char letra=A;
9 El tipo Lgico: 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.
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 modificacin una vez que haya
sido declarada e inicializada.
Variables
int edad,a_Actual;
double peso,tallar;
Tambien se le pude inicializar con un valor por ejemplo
FundamentosdeProgramacin 40
Operadores Aritmticos
Java soporta varios operadores aritmticos que actan sobre nmeros enteros y nmeros en
coma flotante. Los operadores binarios soportados por Java son:
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.
&& Conector Y
|| Conector O
! Niega la expresin (No)
FundamentosdeProgramacin 41
Ventana de
Ventana de Componente
Aplicaciones
Ventana Ventana de
Structure Propiedades
Ventana de
Mensajes
Objeto Frame
FundamentosdeProgramacin 42
Entorno de trabajo
Tiene las siguientes venta:
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 aplicacin.
FundamentosdeProgramacin 43
Aqu mostraran
los errores que
ubiecen dentro
del cdigo
Run Manager(Vetana)
Aqu se Mostraran todas las aplicaciones
que estn ejecutadas
FundamentosdeProgramacin 44
1) Crear la Aplicacin:
a) Dar click derecho en Applications (ventana de aplicaciones) y elegir la opcin New.
b) Al decir new saldr esta ventana donde se establecer el nombre de la aplicacin(empezara con
App_Nombre) y la ruta a guardarse.
FundamentosdeProgramacin 45
c) Deber estar en la opcin Java Aplication (JAVA. Swing).
d) Luego aceptar
Nombrede
laAplicacin
Opcional
Larutadondese
guardarla
FundamentosdeProgramacin 46
2) Crear el proyecto: por defecto Java nos da el Client pero nosotros aprenderemos a
crear nuestro proyecto de la siguiente manera:
FundamentosdeProgramacin 47
d) La segunda ventana nos pedir el nombre del Proyecto (asegrate que el proyecto
este en la misma carpeta que tu aplicacin).
e) Luego finalizar.
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).
FundamentosdeProgramacin 48
FundamentosdeProgramacin 49
Hayunainterrogantecmo
haraparasoloteneruna
aplicacinyvariosproyectos?
Lonicoqueharases:
1) Creaunaaplicacinconlospasosindicados
anteriormente.
2) SeleccionalaaplicacinyCreaelproyectoconsuClase
yFrame
Entoncesvuelveaseleccionarlaaplicacinyvuelve
soloacreardesdeelpasodeproyecto(ClaseyFrame)
yasrepetirlasecuenciacadavezquedeseesun
proyectodentrodelamismaaplicacin.
FundamentosdeProgramacin 50
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 extensin JWS (donde esta
todo el contenido de la aplicacin).
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)
Las etiquetas, junto con los botones y las cajas de seleccin, son uno de los componentes ms
bsicos de todo interfaz de usuario, independientemente de que se hayan visto otros hasta
ahora, o el lector difiera de esta clasificacin.
FundamentosdeProgramacin 51
Su nomenclatura es lbl_Nombre
FundamentosdeProgramacin 52
Su nomenclatura es txt_Nombre
Propiedades
Esuntexto
EsunaEtiqueta
Su nomenclatura es btn_Nombre
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
FundamentosdeProgramacin 53
Todos los objetos JtextField por defecto devuelve un dato de tipo carcter es por ello que
cuando se lee a un texfield se debera de emplear la conversion del dato tales como:
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 2:Ahora pensemos en el diseo. Sabemos que cada lectura sera un JtextField
entonces ingresa a JAVA y crea tu aplicacin con su respectivo proyecto(Class y Frame).
Y con los controles swing comienza a disear quedando de la siguiente manera tu pantalla
FundamentosdeProgramacin 54
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
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
Tendramos2textosparaleerlasnotasy
txtN1 2etiquetasparaverlosresultadosylas
demsetiquetassoloreflejaranlosttulos
txtN2 quesemuestran.
lblSu Ademsunbotnparaquenosdelos
resultadosaldarleClick.
lblPr
btnCalcular
LUEGO tendr que programar en el boton calcular.(ud. Dara doble click y aparecera la ventana
de codigo donde podra escribir).
FundamentosdeProgramacin 55
Estructuras Condicionales
Las estructuras condicionales comparan una variable contra otro(s)valor (es), para que en base
al resultado de esta comparacin, se siga un curso de accin dentro del programa. Cabe
mencionar que la comparacin se puede hacer contra otra variable o contra una constante,
segn se necesite. Existen tres tipos bsicos, las simples, las dobles y las mltiples.
9 Simples:
Las estructuras condicionales simples se les conoce como Tomas de decisin. Estas
tomas de decisin tienen la siguiente forma:
PseudoCodigo
si (<expresin_lgica>) entonces
<acciones>
fin_si
FundamentosdeProgramacin 56
JAVA:
Cuandoenjavalacondicionaltengaunasola
if(Condicin)
accinesopcionallasllaves,perocuandola
<Accion>; condicinvaarealizarmsde1setendrque
ponerllaveabierta{yllavecerrada}.
if(Condicin) {
<Accion 1>;
<Accion 2>;
}
9 Dobles:
Las estructuras condicionales dobles permiten elegir entre dos opciones o alternativas
posibles en funcin del cumplimiento o no de una determinada condicin. Se
representa de la siguiente forma:
PseudoCodigo
si (<expresin_lgica>) entonces
<acciones>
sino
<acciones>
fin_si
JAVA:
Formato 1:
If (Condicin)
<Accion>;
else
<Accion>;
FundamentosdeProgramacin 57
Formato 2:
if(Condicin) {
<Accion 1>;
<Accion 2>;
}
else{
<Accion 1>;
<Accion 2>;
1. Realizar un algoritmo en donde se pide la edad del usuario; si es mayor de edad debe
aparecer un mensaje indicndolo. Expresarlo en Pseudocdigo.
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
FundamentosdeProgramacin 58
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 (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 enve 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 Pseudocdigo.
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 Es importante ser ordenado
en el cdigo que se escribe!
si altura>170 entonces
escribir( persona alta)
fin_si
fin_si
fin_si
fin_prorama
FundamentosdeProgramacin 59
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 Es importante ser ordenado
multip=num1*num2*num3 en el cdigo que se escribe!
escribir(suma,resta,multip)
sino
escribir(Los nmeros no son positivos)
fin-si
fin_programa
FundamentosdeProgramacin 60
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");
}
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
FundamentosdeProgramacin 61
rea Presupuesto
Urgencias 37%
Pediatra 42%
Traumatologa 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
FundamentosdeProgramacin 62
p=Monto_Gen*0.21
fin_si
fin_si
fin_si
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;
FundamentosdeProgramacin 63
variables
entero: num,c1,c2
inicio
leer(num)
si(num>=10 y num<=99) entonces
c1=num div 10
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
FundamentosdeProgramacin 64
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
FundamentosdeProgramacin 65
int ts,ai,sb;
double inc,mc;
//constante
ai=Integer.parseInt(txtai.getText());
sb=Integer.parseInt(txtsuel.getText());
ts=ac-ai;
if(ts>10)
inc=0.25*sb;
else
inc=0.15*sb;
else
inc=0.08*sb;
mc=sb+inc;
lblinc.setText("Incremento es:"+inc);
FundamentosdeProgramacin 66
EJERCICIOS DE APLICACIN
1. Se evala dos nmeros. Visualiza como resultado el mayor de los nmeros.
2. Se evala cuatro nmeros. Muestre por pantalla el menor de los nmeros.
3. Elabore un programa que lea 2 nmeros enteros positivos y que muestre la suma y la
multiplicacin de estos.
4. Elabore un programa que lea 3 nmeros enteros positivos y que muestre la suma, la
resta y la multiplicacin de todos. El resultado debe ser siempre positivo.
5. Un alumno desea saber cul ser su calificacin final en la materia de Algoritmos.
Dicha calificacin se compone de tres exmenes.
6. Elabore un programa que calcule la edad exacta de una persona, considere da, mes y
ao.
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 tambin la
palabra Excelente.
8. Se tiene que evaluar cuatro notas de un alumno, como resultado se visualiza el
promedio del alumno junto con su condicin de APROBADO o DESAPROBADO, si
esta aprobado y con 13 o ms, 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 adems muestre la nota que no se tomo en
cuenta para el resultado.
10. Se debe de ingresa tres nmeros. Muestre los tres nmeros ordenados en forma
ascendente.
11. Se evala 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 nmero que est en el rango de 4 a 10. Si el nmero ingresado es par,
muestre como resultado el cubo del nmero, de lo contrario muestre el 16% del
nmero.
13. Se tiene un nmero. Evala si es que est en el rango de -18 a 29 de 90 a 105 en
el rango de 140 a 250. Si el nmero es positivo, mostrara el doble del nmero; De no
ser positivo el nmero, mostrara la mitad del nmero.
14. Se tiene un nmero. Evala si el nmero est en el rango de -54 a -20 y si el segundo
digito es par. Muestre como resultado el doble del nmero y si no la tercera parte.
15. Se ingresa 4 nmeros. Evala si el primero es mayor al segundo nmero y si la suma
del tercero con el cuarto es mayor a 167, de ser as muestre como resultado los
nmeros ingresados ordenados en forma descendente.
16. Se ingresa 3 nmeros. De ser todos impares, muestre como primer resultado la suma
de los tres nmeros y como ltimo resultado muestre el ltimo dgito del valor impreso
anteriormente.
FundamentosdeProgramacin 67
17. Escriba un algoritmo que dado el nmero 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 mnimo 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 nmeros. Si el tercer nmero es mayor a los dems, se debe de
mostrar el promedio de los nmeros ingresados; de lo contrario evaluar si los tres
nmeros son impares, si es as, muestre cada uno de los nmeros con un incremento
del 89%.
22. Se ingresa un nmero entero. Si el nmero es de tres dgitos positivo muestre dicho
nmero 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 calificacin de los alumnos, las
calificaciones son notas entre 1 y 20; use los siguientes parmetros: 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, Pediatra y Traumatologa. El presupuesto
anual del hospital se reparte de la siguiente manera:
rea Presupuesto
Urgencias 37%
Pediatra 42%
Traumatologa 21%
Obtener la cantidad de dinero que recibir cada rea para cualquier monto
presupuestal. Deber de ingresar los montos por cada rea.
FundamentosdeProgramacin 68
37. Nuestra empresa calcula las comisiones a sus vendedores en funcin de la categora a
la que pertenece.
Los porcentajes segn la categora a la que pertenece son:
Categora A 2%
B 8%
C 12%
FundamentosdeProgramacin 69
38. La misma empresa anterior nos propone una ampliacin para, en funcin de la
categora y las unidades vendidas, calcule las comisiones a sus vendedores. Estos
clculos los realiza utilizando la siguiente tabla
Ventas Comisin
Menos de 100 n_ventas * 100$ * Porcentaje categora * 2
Entre 100 y 199 n_ventas * 100$ * Porcentaje categora * 3
Ms de 199 n_ventas * 100$ * Porcentaje categora * 4
39. Supongamos que tras un ao 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 dems trabajadores. Supongamos que el nmero de
trabajadores es 4 y que su comisin se ver reducida a la mitad si no ha llegado a la
media aritmtica 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
categora C y no supera un mnimo de ventas de 100 se muestre un mensaje avisando
que este vendedor ya no pertenecer la categora C pasando a pertenecer a la
categora B.
Realizar esta modificacin para que, sin perder las opciones de los puntos anteriores,
al final del clculo de la comisin, avise si el trabajador cambia o no de categora.
FundamentosdeProgramacin 70
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 accin.
Metodos:
FundamentosdeProgramacin 71
9 Insertar 4 Jlabel
El primero: Text =
Borde = Title Descuentos
El segundo: Text =
Name = lblS
El tercero: Text =
Name = lblF
El cuarto: Text =
Name = lblT
double seguro;
int su=Integer.parseInt(txtS.getText());
if(chkS.isSelected()==true)
seguro=0.07*su;
FundamentosdeProgramacin 72
else
seguro=0;
lblS.setText(""+seguro);
lblF.setText(""+falta);
}
3er Paso
9 Guardo tu archivo
9 Y elige la clase y ejecuta(puedes presionar F11).
FundamentosdeProgramacin 73
JRadioButton
Los Botones de Radio son grupos de botones en los que, por convencin, slo 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.
GrpSexo GrpEstCiv
Entonces hagamoslo:
1er Paso (Realiza el Diseo y establece lo nombres y formatos)
Elege esta opcion y al darle aceptar y aparecera una cruz y solo presiona click
FundamentosdeProgramacin 74
Escribeeste
nombre
GrpSexo
FundamentosdeProgramacin 75
2do Paso (debemos de realizar esto para que solo se pueda seleccionar uno de cada
grupo).
//Grupo de Sexo
GrpSexo.add(rbtM); Y antes que termine la
GrpSexo.add(rbtV); llave del jbInit escribe
//Grupo de Estado Civil
GrpEstCiv.add(rbtC);
GrpEstCiv.add(rbtS);
GrpEstCiv.add(rbtVi);
}
3er Paso
9 Guarda tu archivo
9 Y elige la clase y ejecuta(puedes presionar F11).
FundamentosdeProgramacin 76
GrpCarreras.add(rbtCom);
GrpCarreras.add(rbtGes);
GrpCarreras.add(rbtGas);
5. Ahora si biene lo interesante debemos de codificar y por ello usaremos el mtodo
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.
6. Ahora ejecuta y tendra que salir como el ejemplo anterio y por cada radio que elijas
saldra un monto diferente
Observacin:
Al diseo que tienes puedes agregarle un Botn y dar el resultado cada vez que presionemos
en el.
Para ello selecciona el botn y dale nombre en la propiedad name( btnCalcularMonto), luego
en el text ponle Calcular.
if(rbtGes.isSelected())
mon=250;
if(rbtGas.isSelected())
mon=320;
lblMon.setText(""+mon);
FundamentosdeProgramacin 77
<lista_de_valores> : <acciones>
[sino
<acciones>]
fin_cuando
Descripcin:
FundamentosdeProgramacin 78
EJEMPLOS:
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
FundamentosdeProgramacin 79
Practiquemos:
Realiza el diseo para cada uno de estos caso.
FundamentosdeProgramacin 80
String ver=cboTipo.getSelectedItem().toString();
Como Usarlo:
cbotipo.addItem("Darle el Valor");
Int orden=nombreCombo.getSelectedIndex();
String Dato= nombreCombo.getSelectedItem().toString;
nombreCombo.removeAllItems;
3 Pasos Importantes:
FundamentosdeProgramacin 81
Caso 1:
Establecer una Lista de Nombres de los Tipo de Letras. Debe de quedar como se muestra en
el Ejemplo.
cbotipo.addItem("Arial");
cbotipo.addItem("Comis Sans");
cbotipo.addItem("Book Antigua");
cbotipo.addItem("Calibri");
Caso 2:
Establecer una Lista de Estado Civil y de Areas. Debe de quedar como se muestra en el
Ejemplo.
FundamentosdeProgramacin 82
Caso 3:
Tomando en cuenta el ejemplo anterior de acuerdo al area debemos de establecer el sueldo.
Procedimiento:
4. Entonces despues de los primeros 3 pasos lo que haremos es ahora dar doble click en el
combo y codificamos.
FundamentosdeProgramacin 83
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 A B C
Nacional 50% 40% 30%
Particular 25% 20% 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
FundamentosdeProgramacin 84
FundamentosdeProgramacin 85
Desarrollo de Casos
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 A B C
Nacional 50% 40% 30%
Particular 25% 20% 15%
int cat,ins;
double porcI=0, importe,cuota; RecordemosqueenellenguajeJavaalutilizar
ComboBoxyaltrabajarconelswitch
cat=cboCat.getSelectedIndex();
ins=cboCole.getSelectedIndex(); debemosdepreferenciatrabajarconelorden
cuota=Double.parseDouble(txtP.getText()); delosseleccionadoenelcasodelacategora
switch(cat) { solohay3entoncesserelorden0,1y2.Enel
case 0:
switch(ins){ casoinstitutoporser2trabajemoscomoel
case 0: porcI=0.50 * cuota; orden0y1paraparticularynacional.
break;
case 1: porcI=0.25 * cuota; UnaestructuradentrodeotraserAnidaday
break;
ademsnoolvidemosdelbreakyesporcada
}
break; caso.
case 1 :
switch(ins){
case 0: porcI=0.40 * cuota;
FundamentosdeProgramacin 86
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);
}
La Clase Math
La 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.
FundamentosdeProgramacin 87
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
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
Ejemplo 01: Inserte un botn y escriba este cdigo, donde estamos empleado mtodos de la
clase Math.
//Variables
int x;
double rand,y,z;
float max;
// Inicio
FundamentosdeProgramacin 88
Funciones trigonomtrica
FundamentosdeProgramacin 89
FundamentosdeProgramacin 90
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*/
/*Se obtiene 72.35 y 0.34. 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.
Programacin en el lenguaje Java*/
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;
FundamentosdeProgramacin 91
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));
FundamentosdeProgramacin 92
FundamentosdeProgramacin 93
CASOS RESUELTOS
Pseudocodigo
Variables
entero: veloc,multa
decimal: inc,mp
lgico: 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
FundamentosdeProgramacin 94
Java
private void jbInit() throws Exception {
..
..
GrupoVelocidades.add(rbtC);
GrupoVelocidades.add(rbtNC);
mp=multa+inc;
lblmulta.setText(""+multa);
lblinc.setText(""+inc);
lblmp.setText(""+mp);
}
FundamentosdeProgramacin 95
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
mc=con-des+igv;
lbldes.setText(""+des);
lbligv.setText(""+igv);
lblmc.setText(""+mc);
}
FundamentosdeProgramacin 96
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 an es menor de edad"
fin_si
fin_si
FIN
JAVA
FundamentosdeProgramacin 97
Caso 4 Que admita el ingreso de dos nmeros 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
FundamentosdeProgramacin 98
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.
FundamentosdeProgramacin 99
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
JAVA
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);
}
FundamentosdeProgramacin 100
FundamentosdeProgramacin 101
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);
FundamentosdeProgramacin 102
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.
FundamentosdeProgramacin 103
FundamentosdeProgramacin 104
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);
}
FundamentosdeProgramacin 105
FundamentosdeProgramacin 106
break;
}
tp=cuota-descuento;
lbldescuento.setText(""+descuento);
lbltp.setText(""+tp);
FundamentosdeProgramacin 107
1. Caso 10: Calcule el sueldo de un empleado a partir de su sueldo bruto. Sobre este sueldo
se harn los siguientes descuentos:
Descuentos fijos:
Descuentos variables:
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.
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");
FundamentosdeProgramacin 108
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;
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 109
chkJ.setSelected(false);
chkS.setSelected(false);
}
FundamentosdeProgramacin 110
EJERCICIOS DE APLICACIN
1. Que admita el ingreso de 3 nmeros, e imprima cul de ellos son los 2 primeros mayores.
3. Que admita el ingreso de 3 nmeros, 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
nmeros.
4. PC: Que admita el ingreso de un registro de fecha, en el formato da, mes, ao, e imprima
si este es o no correcto. Considere aos bisiestos.
Ejemplo
30 04 2008 Errado
28 12 1975 Correcto
5. PC: Que admita el ingreso de un numero entero comprendido entre 0 y 6, estos nmeros
corresponden a das de la semana segn: 0 Domingo, 1 Lunes, 2 Martes Su programa
deber mostrar literalmente el nombre del da de la semana al que corresponde el nmero
ingresado.
6. PC: Que acepte una fecha bajo el formato que se indica, imprimiendo esta en forma
numrica totalmente.
Ejemplo
7. PC: Que determine el neto a cobrar por un trabajador sabiendo que tiene derecho a una
bonificacin dependiendo de su estado civil y del nmero de hijos, segn:
ESTADO CIVIL PORCENTAJE
Casado 15
Viudo 17
Soltero 8
Adicionalmente se le abonara el 1.5% por cada hijo con un mximo 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
Programacin. Imprimir el promedio si se anula la nota ms baja.
10. PC: Que permita ingresar los nombres y precios de 3 productos diferentes de una farmacia.
Imprimir el nombre del producto ms barato y el promedio de los tres.
FundamentosdeProgramacin 111
11. PC: Que muestre le neto a pagar por un DVD sabiendo que la tienda se encuentra en
realizacin ofreciendo los siguientes descuentos:
MARCA 19 21
SAMSUNG 12 13
PANASONIC 14 12
LG 12 14
SONY 13 15
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 segn:
Adicionalmente se deber mostrar junto al promedio la observacin aprobada en el caso
que el promedio final sea mayor a 10 o desaprobado en caso contrario:
7.5
13. Modificar el ejemplo anterior considerando que, si el alumno no aprobara el curso tendr
derecho a un examen de recuperacin, 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 automtico.
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 segn:
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
FundamentosdeProgramacin 112
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 bonificacin de un empleado del Banco Las Ameritas de acuerdo a las
tablas siguientes, si se sabe que:
Tiempo Porcentaje
Servicio de(aos) bonificacin
1-3 17%
4-6 21%
7-15 29%
15 a ms 52%
CATEGORIA Porcentaje
De bonificacin
A-B 11%
C-D 22%
OTROS 33%
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 nmero 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 kilmetro, de
lo contrario se cobrara el monto bsico que es igual a S/. 25.00
La carga puede ser frgil o no frgil. Solo si la carga es frgil al monto calculado
anteriormente se le incrementara el 25%
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 debern 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 ms baja.
20. PC: Que determine el mayor y el menor de cuatro nmeros 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 (Niez, 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
FundamentosdeProgramacin 113
es socio REGULAR pagara S/. 150.00. Si el socio tiene deuda tendr un recargo del 15%
sobre el total de su deuda. En ningn 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:
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:
Los obreros durante el mes pueden confeccionar solo un tipo de prenda. Si el obrero
confecciona ms de 700 unidades recibir una bonificacin de acuerdo a su categora,
como se indica en el cuadro siguiente:
CATEGORIA BONIFICACION
A 250.00
B 150.00
C 100.00
D 50.00
Al final presentar el sueldo neto, cada uno de los descuentos y la bonificacin. Los
resultados se mostraran con dos decimales.
25. PC: Que calcule el monto mensual a pagar por un servicio de atencin medica. El
policlnico brinda atencin de salud solo a sus asegurados, los cuales se dividen en cuatro
categoras, cada una con una tarifa bsica que se paga mensualmente:
CATEGORA TARIFA (S/.) POLICLNICO DOMICILIO
A 100 10 3
B 80 7 2
C 60 5 1
D 40 3 -
Si el asegurado asiste a ms consultas que las indicadas en el cuadro anterior deber
pagar por consulta adicional: S/. 15.00 por consulta en el policlnico y S/. 20.00 por consulta
a domicilio. Si el asegurado es mayor a 75 aos, recibir el siguiente descuento respecto al
total segn su categora:
FundamentosdeProgramacin 114
CATEGORA 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 ubicacin el monto de la licencia por metro cuadrado ser el que se indica
en el siguiente cuadro:
ZONA
UBICACIN COMERCIAL PRINCIPAL LATERAL
($/M2) ($/M2) ($/M2)
Miraflores (M) 15 13 10
San Isidro (S) 12 10 8
Lince (L) 10 9 6
Jess Maria (J) 14 12 10
27. PC: Que calcule el monto por impuesto predial. El impuesto depender del rea que ocupa
la casa (Ingresado por teclado), de los aos de construccin y del material de construccin.
Para calcular el impuesto debe considerarse el siguiente cuadro:
0-5 2.00
6 10 1.20
11 15 0.85
16 a ms 0.25
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
bsicas, las cuales se indican en el siguiente cuadro:
DESTINO TARIFA ($)
Ica 100.00
Arequipa 450.00
Chimbote 300.00
Trujillo 350.00
FundamentosdeProgramacin 115
Las tarifas pueden variar de acuerdo a la modalidad del servicio incrementndose la tarifa
bsica de acuerdo al siguiente cuadro:
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 bsicas tendrn otro incremento adicional de
5% por seguro. Los montos por el servicio se mostraran en soles y dlares.
FundamentosdeProgramacin 116
Estructura de Repeticin
1. Concepto de Bucle
En programacin, un bucle es un tipo de estructura de control que permite repetir una o ms
sentencias mltiples veces.
Todos los bucles se ejecutan mientras se cumpla una determinada condicin, mientras esa
condicin sea verdadera, el bucle seguir ejecutndose.
Si hay algn error en el cdigo, el bucle podra ejecutarse una y otra vez, entrando en un bucle
infinito.
En programacin, un bucle es una sentencia que se repite
varias veces bajo unas condiciones. Se utiliza para repetir sin
tener que repetir el mismo cdigo. Esto permite ahorro de
tiempo, menor tamao de programa, mayor claridad y facilita
las modificaciones.
FundamentosdeProgramacin 117
Bucle infinito se considera un error de programacin, a menos que ese sea el resultado
esperado por el programador (generalmente usado en programas malignos/molestos, para que
se repita una accin una y otra vez).
2. Elementos de un Bucle
a) Contadores.- Un elemento cuyo valor puede incrementar o disminuir en un valor
constante en cada iteracin de un bucle, y se utiliza para controlar la condicin del
bucle.
C= C / Valor C= C ^ Valor
9 Para contabilizar el nmero de veces que es necesario repetir una accin (variable
de control de un bucle).
9 Para contar un suceso particular solicitado por el enunciado del problema
(asociado a un bucle o independientemente).
Tambin en las situaciones en que hay que obtener un total como producto de
distintas cantidades se utiliza un acumulador, debindose inicializar con el valor 1.
c) Banderas (Interruptor flag).- Es una variable que sirve como indicador de una
determinada informacin y que solo puede tomar uno de dos valores (0 -1 / verdadero
- falso).
Sw=0 / Sw=1
Sw=true / Sw=false
FundamentosdeProgramacin 118
mientras (Condicion)
<Acciones>
fin_mientras
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).
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:
variables
entero: c
inicio
c=3
mientras(c<=30) Es la variacin del contador
para poder cumplir con la
escribir(c)
condicindelbucle.
c=c+3
fin_mientras
fin_programa
FundamentosdeProgramacin 119
variables
entero: c
inicio
c=50
mientras(c>=3) Es la variacin del contador
para poder cumplir con la
escribir(c)
condicindelbucle.
c=c-3
fin_mientras
fin_programa
variables
entero: c
inicio
c=4
mientras(c<=450) Es la variacin del contador
para poder cumplir con la
escribir(c)
condicindelbucle.
c=c*2
fin_mientras
fin_programa
FundamentosdeProgramacin 120
variables
entero: c
inicio
c=2 Es la variacin del contador
mientras(c<=22222) para poder cumplir con la
condicindelbucle.
escribir(c)
c=c*10+2
fin_mientras
fin_programa
variables
entero: c
inicio
c=1
mientras(c<=50)
escribir(c,.- Programacin)
c=c+1
fin_mientras Es la variacin del contador
para poder cumplir con la
fin_programa
condicindelbucle.
FundamentosdeProgramacin 121
variables
entero: c
inicio
c=80
mientras(c>=0) Es la variacin del contador
para poder cumplir con la
escribir(c)
condicindelbucle.
c=c-10
fin_mientras
fin_programa
variables
entero: c,x
inicio
c=9 : x=1
Es la variacin del contador
mientras(c<=650) para poder cumplir con la
escribir(c) condicin del bucle. Puede
c=c+x haberNContadores.
x=x+1
fin_mientras
fin_programa
FundamentosdeProgramacin 122
while (Condicion) {
<Acciones>
}
Cuando se utiliza una estructura while se debe tomar en cuenta que llevara { } cuando
quieres que repitas ms de una Accin.
FundamentosdeProgramacin 123
9 JList .- Este control permite agregar datos en forma lineal, es un poco ms difcil
de manejar pero nos permite hacer cosas ms interesantes que el JComboBox.
Tambin veremos cmo utilizar algunas otras clases que nos van a permitir
manejar un JList de una manera ms eficiente por ejemplo para permitir que
crezca de manera dinmica.
Nomenclatura : ModLstNombre
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.
FundamentosdeProgramacin 124
9 3er paso: regrese componentes Swing y elija un JList y dar click dentro
del JScrollPane quedando de la siguiente manera.
FundamentosdeProgramacin 125
El cursor tomara una forma de aspa para poder dar click en un lugar
vacio del Frame para poder incrustarlo.
FundamentosdeProgramacin 126
NombredelCustom yse
reflejaradentrodela
ventanaStructure.
Noteolvidesde
haberseleccionado
aljList.
ModaloCustom
Creado.
FundamentosdeProgramacin 127
JList JTextArea
Disea lo siguiente:
1. Inserta un botn y ponle el nombre: btnSerie1
2. Inserta dos JScrollPane dibjelo segn la dimensin
3. Seleccione el 1er JScrollPane, inserte un JList .
4. Seleccione el 2do JScrollPane, inserte un JTextArea.
FundamentosdeProgramacin 128
Estoessolounademostracin,t
solopuedesutilizaracualquierade
losdosparapodermostrar.
FundamentosdeProgramacin 129
FundamentosdeProgramacin 130
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;
}
}
FundamentosdeProgramacin 131
Casos:
9 Caso 01: Ingresar 10 notas y mostrar el promedio
inicio
c=1
C=C+1
mientras(c<=10)
leer(nota)
escribir(nota)
acu=acu+nota
c=c+1
fin_mientras
p=acu/10
escribir(p)
fin_programa
variables
entero: num,c,sw
inicio
c=0
sw=0
mientras(sw=0)
leer(sueldo)
escribir(sueldo)
si(sueldo=0)
sw=1
sino
c=c+1
fin_si
fin_mientras
FundamentosdeProgramacin 132
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=Brea)entonces
cb=cb+1
fin_si
si(distrito=San Miguel)entonces
cs=cs+1
fin_si
cd=cd+1
fin_mientras
escribir(Cantidad de Sueldos: ,c)
fin_programa
variables
caracter: nom,ape,sexo
entero: edad
decimal: psm,psv
inicio
cd=1
FundamentosdeProgramacin 133
mientras(cd<=15)
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
Area Sueldo
Contabilidad 1520
Administracion 1630
Logistica 1450
Almacen 1230
Otros 1020
FundamentosdeProgramacin 134
- 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.
Nombre=JOptionPane.showInputDialog(Ingresar el Nombre);
apellido=JOptionPane.showInputDialog(Ingresar el Apellido);
FundamentosdeProgramacin 135
Sueldo=Double.parseDouble(JOptionPane.showInputDialog(Ingresar el Sueldo));
FundamentosdeProgramacin 136
FundamentosdeProgramacin 137
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);
}
FundamentosdeProgramacin 138
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 Diseemos esta ventana y
ademas utilizaremos la Clase MAth para generar los numeros aleatorios.
FundamentosdeProgramacin 139
9 Estructura Repetir
repetir
<acciones>
hasta_que (<expresin_lgica>)
do{
<acciones>
}while (<expresin_lgica>)
FundamentosdeProgramacin 140
Caso 01: Escriba un algoritmo que lea del teclado un nmero entero y que compruebe si es
menor que 5. Si no lo es, debe volver a leer un nmero, repitiendo la operacin hasta que el
usuario escriba un valor correcto. Finalmente debe escribir por pantalla el valor ledo.
variables
entero: num
inicio
escribir(Teclee un nmero menor que 5)
repetir
leer num
hasta_que(num >= 5)
escribir(El nmero ledo es: , num)
fin
do{
num=Integer.parseInt(JOptionPane.showInputDialog("Ingresar Numero"));
}while(num>5) ;
lblp.setText(""+num);
Caso 02: Modifique el algoritmo del caso 1 para que, en vez de comprobar que el nmero es
menor que 5, compruebe que se encuentre en el rango (5,15).
FundamentosdeProgramacin 141
variables
entero: num
inicio
escribir(Teclee un nmero entre 5 y 15 (no incluidos))
repetir
leer num
hasta_que(num <= 5 O num >= 15)
escribir(El nmero ledo es: , num)
fin
do{
num=Integer.parseInt(JOptionPane.showInputDialog("Ingresar Numero"));
lblp.setText(""+num);
Caso 03: Modifique el algoritmo del caso 2 para que cuente las veces que ha ledo un nmero
que no est incluido en el rango y escriba el resultado por pantalla.
variables
entero: num, veces
inicio
escribir(Teclee un nmero entre 5 y 15 )
veces 1
repetir
leer num
veces = veces + 1
hasta_que(num <= 5 O num >= 15)
FundamentosdeProgramacin 142
Caso 04: Modifique el algoritmo del caso 3 para que se realicen 10 lecturas del teclado como
mximo.
variables
entero: num, veces
inicio
escribir(Teclee un nmero entre 5 y 15 )
veces 1
repetir
leer num
veces = veces + 1
FundamentosdeProgramacin 143
si (veces=10) entonces
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);
FundamentosdeProgramacin 144
if (veces==10){
lblp.setText(""+"");
Caso 04: Escriba un algoritmo en pseudocdigo que calcule e imprima la suma de los n
primeros nmeros 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
Usaremos un JTextArea
para mostrar Varios
resultados en el mismo
objeto.
FundamentosdeProgramacin 145
double acu;
txtSalida.setText("");
n=Integer.parseInt(JOptionPane.showInputDialog("Ingresar Numero"));
s= 0;
do{
acu= acu+i;
i = i+1;
} while(i<n);
FundamentosdeProgramacin 146
Estructura Desde.
La estructura Desde sirve para repetir un cdigo dependiendo de un contador, establecer el
valor inicial y el valor final.
<acciones>
fin_desde
Definicin:
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 cuntas veces se iterar el mismo, lo cual
muchas veces puede redundar en una optimizacin del cdigo por parte de los compiladores.
FundamentosdeProgramacin 147
Las condicionales constituyen junto con los bucles los pilares de la programacin estructurada,
y su uso es una evolucin de una sentencia de lenguaje ensamblador que ejecutaba la
siguiente lnea o no en funcin del valor de una condicin.
En JAVA
<Acciones>
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 nmeros son:,suma)
fin_programa
FundamentosdeProgramacin 148
Caso 02:
Imprimir la suma de los primeros 1250 nmeros enteros
for(int x=1;x<=1250;++x){
suma=suma+x;
ModLstNum.addElement(x);
FundamentosdeProgramacin 149
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
int num=Integer.parseInt(txtn.getText());
for(int x=1;x<=12;++x){
r=num*x;
ModLstNum.addElement(num+"*"+x+"="+r);
}
}
FundamentosdeProgramacin 150
Caso 04:
Leer 20 nmeros enteros y producir:
La suma de los nmeros ledos
El promedio de los nmeros
El mayor y el menor nmero
variables
entero: x,num,suma
inicio
leer(num)
Aux_menor=num
escribir(num)
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
fin_programa
FundamentosdeProgramacin 151
FundamentosdeProgramacin 152
Estructura Anidadas
Puede anidar una estructura dentro de otra estructura, y por tanto guardar juntos elementos asociados.
Las estructuras de control bsicas pueden anidarse, es decir pueden ponerse una dentro de
otra.
En los ciclos anidados, al entrar a una estructura de repeticin, dentro de ella se encuentra
otra. La ms interna se termina de realizar y se contina con la externa hasta que la condicin
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
Bucle B
Fin B
Fin A
FundamentosdeProgramacin 153
EJEMPLOS
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.
FundamentosdeProgramacin 154
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");
FundamentosdeProgramacin 155
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");
FundamentosdeProgramacin 156
EJERCICIOS DE APLICACIN
*
**
***
****
*****
******
*******
********
*********
6. Ingresar un nmero par y mostrar sus divisores; el nmero par debe ser positivo.
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 informacin del censo para
una persona:
a) Nmero de censo
b) Sexo
c) Edad
d) Estado civil (a. Soltero, b. Casado c. Viudo d. Divorciado)
FundamentosdeProgramacin 157
14. Elabore un programa que lea secuencias de datos de personas censadas e indique el
nmero de personas que son mujeres solteras entre 16 y 21 aos.
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 vlida
puede suministrarse incluso como primer valor ledo.
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 trminos)
f) 56,53,50,47(25 trminos)
j) 5,6,8,11,15,20,26,33.(22 trminos)
k) 1,1,2,3,5,8,13,21,34.(31 trminos)
l) S=5+9+13+17+.45
m) OP=167-(3+6+9+.+27)
n) P=4*6*8*.*18
18. Consistencia el ingreso de 4 nmeros. Que el primer nmero sea mayor al segundo,
que el segundo mayor al tercero y el tercero sea mayor al doble del cuarto nmero.
19. Consistencia el ingreso de 3 nmeros. Que el primer nmero sea mayor al doble del
segundo nmero; que el segundo nmero sea menor al tercer nmero y que el tercer
nmero sea positivo mayor a 300.
FundamentosdeProgramacin 158
20. Consistencia el ingreso del nombre de un distrito, tomando en cuenta que los distritos
vlidos 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 vlidos 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, adems de la suma de estos en la siguiente serie:
3 5 7 9
S= + + + +
4 7 10 13
PP + 2 EP + 3 EF
PF=
Donde:
PP : Promedio de las 7 practicas obtenidas eliminando la menor nota.
EP : Examen Parcial.
EF : Examen Final.
FundamentosdeProgramacin 159
25. PC: Que muestre la estadstica de las notas de los alumnos de un aula
sabiendo que el promedio mnimo aprobatorio es 13 y que enlista se
encuentran registrados 37 alumnos, los cuales no necesariamente completaros
el curso.
26. PC: Que imprima los 50 primeros nmeros capicas mayores que 100.
27. PC: Que ingrese un nmero y muestre un mensaje indicando si es primo o no.
28. PC: Que muestre por lo menos 5 nmeros perfectos. Los primeros nmeros
perfectos son: 6, 28, 496, 8128, 33550336, 8589869056.
29. PC: Que ingrese 2 nmeros 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
2 3 4 5 n
33. PC: Que muestre los elementos del siguiente triangulo para N Lneas:
FundamentosdeProgramacin 160
1
2
2 3
2 3 4
.
1 2 3 4 5 N
34. PC: Que muestre los elementos del siguiente triangulo para n Lneas:
1
1 2 1
1 2 3 2 1
1 2 3 4 3 2 1
35. PC: Que desarrolle la nmina para una compaa 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 impresin 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 numrico, verificando si
cada uno de ellos supera los US$ 750.00. El programa termina cuando
ingresemos un valor negativo.
FundamentosdeProgramacin 161
..
18 54.04 13.51 67.55 216.17
19 216.00 10.81 226.81
Cuntos son de PER con edades mayores a 22 aos, con un peso mayor
a 70 y menor a 91.
Cuntos son de COLOMBIA con ms de 30 goles anotados y con pesos
menores a 68 kilos.
Cuntos son casados, que hallan anotado menos de 15 goles y que sean
de PER, COLOMBIA BRASIL.
Cuntos 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 nmeros. Cada vez que se ingrese un nuevo nmero muestre
la suma de sus dgitos y al trmino de los ingresos muestre los siguientes
resultados:
Cuntos nmeros tuvieron 6 9 dgitos.
Cuntos nmeros fueron pares de 4 5 dgitos y su ltimo dgito fue mayor
a 5.
Cuntos nmeros fueron mayores a 100 pero menores a 200 y a su vez
impar.
Cuntos nmeros fueron mayor a 5 y a su vez fueron nmeros primos.
Cuntos nmeros fueron pares negativos en el rango de -200 a -8.
43. Imprimir por pantalla los nmeros desde el 40 hasta el 687, solo aquellos que
sean divisibles de 6 y de 9 a la vez.
FundamentosdeProgramacin 162
Programacin modular
Un mdulo 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 mdulos tiene una tarea
bien definida y algunos necesitan de otros para poder operar. En caso de que un mdulo
necesite de otro, puede comunicarse con ste mediante una interfaz de comunicacin que
tambin 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 prctica es comn representarlos con procedimientos y
funciones. Adicionalmente, tambin pueden considerarse mdulos las libreras que pueden
incluirse en un programa o, en programacin orientada a objetos, la implementacin de un tipo
de dato abstracto.
FundamentosdeProgramacin 163
Se podr modificar un mdulo sin afectar a los dems Las tareas, subalgoritmos, slo
se escribirn una vez, aunque se necesiten en distintas ocasiones a lo largo del
algoritmo.
El uso de mdulos facilita la proyeccin y la comprensin de la lgica subyacente para
el programador y el usuario.
Aumenta la facilidad de depuracin y bsqueda de errores en un programa ya que
stos se pueden aislar fcilmente.
El mantenimiento y la modificacin de la programacin se facilitan. Los mdulos
reciben diferentes nombres:
- Funciones en C, C++
- Subrutinas en Basic
- Procedimientos y funciones en Pascal
- Subrutinas en Fortran
- Secciones en Cobol y
- Mtodos en Java
Cuestiones generales
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 funcin. Conocidas tambin como variables publicas en java.
Locales: las variables son creadas cuando el programa llega a la funcin o
procedimiento en la que estn definidas. Al finalizar la funcin 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 mdulo en que ha sido
declarada.
Dos variables locales pueden tener el mismo nombre siempre que estn declaradas en
funciones o procedimientos diferentes.
FundamentosdeProgramacin 164
VariablesGlobales(variablespublicas)
Entero:prom,suma,nreg
Modulo1
VariablesLocales
Entero:n1,n2
Modulo2
VariablesLocales
Entero:n1,n2
Modulo3
VariablesLocales
Entero:n3,n3
Procedimientos
Son subprogramas, es decir, mdulos que forman parte de un programa y realizan una tarea
especfica. Un procedimiento puede tener sus propias variables que se declaran en la seccin
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 slo se pueden usar en el cuerpo del
procedimiento y no en el cuerpo principal del programa.
Declaracin
procedimiento <nombre_procedimiento>([<lista_parmetros >])
[Variables locales]
inicio
fin_procedimiento
FundamentosdeProgramacin 165
Definicin
Llamada a procedimientos
<nombre_procedimiento>([<lista_parmetros>])
La lista de parmetros actuales es una o varias variables o expresiones separadas por comas
que deben coincidir en nmero, orden y tipo con la lista de parmetros formales de la
declaracin.
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
FundamentosdeProgramacin 166
Procedimiento Calculo
variables
entero: n1,n2,n3,n4,n5
carcter: condicin
inicio
leer(n1,n2,n3,n4,n5)
prom=(n1+n2+n3+n4+n5)/5;
si(prom>=10.5)
condicin=Aprobado
else
condicin=Desaprobado
fin_si
escribir(condicin,prom);
fin_procedimiento
3,33,333,3333,.(15 trminos)
Procedimiento Serie
variables
entero: c
inicio
c=3
desde(x=1 hasta 15)
escribir(c);
c=c*10+3
fin_desde
fin_procedimiento
FundamentosdeProgramacin 167
Procedimientos en Java
[Variables locales];
<Accione>;
Ejemplos:
void promedio(){
double nota,acu=0,Prom;
for(int g=0;g<5;++g){
ModLstn.addElement(nota);
acu=acu+nota;
Prom=(acu/5);
Lblprom.setText(+Prom)
Presionar2clickenelbotn
escribirpromedio();
Compilatuprograma
ingrsalelasnotasy
aparecerelpromediode
dichasnotas
FundamentosdeProgramacin 168
void sueldo(){
int ch,cost,suel;
ch=Integer.parseInt(txtch.getText());
cost=Integer.parseInt(txtcst.getText());
suel=ch*cost;
lbls.setText(""+suel);
FundamentosdeProgramacin 169
Funciones
La funcin es una estructura autnoma similar a los mdulos. La diferencia radica en que la
funcin se usa para devolver un solo valor de un tipo de dato simple a su punto de referencia.
La funcin se relaciona especificando su nombre en una expresin, como si fuera una variable
ordinaria de tipo simple. Las funciones se dividen en estndares y definidas por el usuario.
Declaracin
funcion
<nombre_funcin>([<lista_parmetros_formales>]):tipo_Dato
[declaraciones locales]
inicio
Definicin
FundamentosdeProgramacin 170
Llamada a funciones
<nombre_funcin>([<lista_parmetros_actuales>])
La lista de parmetros actuales es una o varias variables o expresiones separadas por comas
que deben coincidir en nmero, orden y tipo con la lista de parmetros formales de la
declaracin.
FundamentosdeProgramacin 171
- Puesto que se debe asociar un valor al nmero de una funcin, tambin se le debe
asociar un tipo. Por tanto, la cabecera de una funcin debe incluir un identificador de
tipo que especifique el tipo del resultado. Sin embargo, no se asocia ningn valor con
el nombre de un procedimiento y, por tanto, tampoco ningn tipo.
Ejemplos:
Caso 02: Crear una funcin que me devuelva la sumatoria de los 20 primeros nmeros pares.
FundamentosdeProgramacin 172
Tipo_Dato <nombre_funcin>([<lista_parmetros_formales>]){
[declaraciones locales]
<Acciones>;
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);
FundamentosdeProgramacin 173
Caso 01:Sumatoria.
String serie="";
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);
FundamentosdeProgramacin 174
FundamentosdeProgramacin 175
EJERCICIOS DE APLICACIN
1. Disear una funcin que calcule el promedio de varios nmeros introducidos por el
teclado.
2. Escribir una funcin que intercambie el valor de dos variables, es decir si X=5 e Y=7
tras aplicar la funcin, por ejemplo haciendo "intercambiar(X,Y)" se tiene que X=7 e
Y=5.
3. Disear una funcin que calcule la potencia ensima de un nmero, es decir que
calcule X n para X, real y n entero
4. Disear una funcin "Invertir()" que invierta un numero introducido.
5. Disear dos funciones "EurosAPesetas()" y "PesetasAEuros()" que realicen las
conversiones de monedas de forma que se puedan utilizar directamente dentro de una
expresin del tipo: "Imprimir valEuros son EurosAPts(valEuros)"
6. Disear una funcin "EsBisiesto()" que decida si un ao es bisiesto o no
7. Escribir una funcin "EsMultiplo" que sirva para determinar si un nmero es mltiplo de
otra. Utilizarla en un programa que pida la antiguedad de un trabajador y calcule
cuantos trienios de antigedad tiene.
8. Modularizar el programa nomina1.c utilizando tres funciones. Una para la entrada, una
para los clculos 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 nmero 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.
FundamentosdeProgramacin 176
Usando Mtodos
cboArea.addItem("Seleccionar");
cboArea.addItem("Logistica");
cboArea.addItem("Administracion");
cboArea.addItem("Seguridad");
cboArea.addItem("Otros");
GrpAumentos.add(rbtCts);
GrpAumentos.add(rbtGrati);
}
FundamentosdeProgramacin 177
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);
FundamentosdeProgramacin 178
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();
}
void Eliminar(){
int orden=Lstr.getSelectedIndex();
ModLstR.remove(orden);
ModLstA.remove(orden);
FundamentosdeProgramacin 179
ModLstAum.remove(orden);
ModLstCh.remove(orden);
modLstCosto.remove(orden);
ModLstDes.remove(orden);
ModLstNeto.remove(orden);
ModLstS.remove(orden);
c=c-1;
renovar ();
}
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);
FundamentosdeProgramacin 180
btnModifica.setEnabled(true);
btnActualizar.setEnabled(false);
}
FundamentosdeProgramacin 181
Recursividad
La recursividad es una tcnica de programacin importante. Se utiliza para realizar una llamada
a una funcin desde la misma funcin.
La recursividad y la iteracin (ejecucin en bucle) estn muy relacionadas, cualquier accin que
pueda realizarse con la recursividad puede realizarse con iteracin y viceversa. Normalmente,
un clculo determinado se prestar a una tcnica u otra, slo necesita elegir el enfoque ms
natural o con el que se sienta ms cmodo.
Claramente, esta tcnica puede constituir un modo de meterse en problemas. Es fcil crear una
funcin recursiva que no llegue a devolver nunca un resultado definitivo y no pueda llegar a un
punto de finalizacin. Este tipo de recursividad hace que el sistema ejecute lo que se conoce
como bucle "infinito".
FundamentosdeProgramacin 182
9 Recursividad indirecta
Cuando en una subrutina hay llamadas a ella misma se habla de recursividad directa, en
contraposicin, cuando se tienen varias subrutinas y stas se llaman unas a otras formando
ciclos se dice que la recursin es indirecta.
Ejemplos de Recursividad
FundamentosdeProgramacin 183
else
if ( n == 1)
return 1;
else
return fibonacci(n - 1) + fibonacci(n - 2);
FundamentosdeProgramacin 184
Aplicaciones JAVA
El lenguaje JAVA es un lenguaje que contiene muchos APIs las cuales nos permite mejorar la
presentacin del FRAME de Java. Adems 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 presentacin de nuestro Frame, pudiendo ponerle imgenes y
pudiendo controlarlos mediante objetos.
JLabel
Ponleel
nombre
lblImagen
FundamentosdeProgramacin 185
Empecemos:
String nombre(){
If(rbtProfesor.isSelected())
Usuario=Profesor;
If(rbtAlumno.isSelected())
Usuario=Alumno;
Return(Usuario);
Void contrasea(){
FrmDatos llama=new FrmDatos();
llama.setLocationRelativeTo(null);
llama.setVisible(true);
llama.setTitle("Usuario: "+nombre());
}
4) Quizs el FrmDatos saldr con lnea roja es porque no existe, as que haz lo
siguiente, ubcate 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.
FundamentosdeProgramacin 186
CASO 01: Cambiar el color de fondo de texto segn las combinaciones de los
combos.
.
for (int i=0; i<256; i++) Estainicializacinpermitirquelos
choVerde.addItem(""+i); comboscontengannmerosdesde
for (int i=0; i<256; i++) 0hasta255.
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));
}
FundamentosdeProgramacin 187
CASO 02: Cambiar la apariencia del texto, poniendo estilos de letras, tamao y
tipo.
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");
FundamentosdeProgramacin 188
//--------------
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 leeTamao() {
return Integer.parseInt(choTamao.getSelectedItem().toString());
}
FundamentosdeProgramacin 189
.
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();
FundamentosdeProgramacin 190
FundamentosdeProgramacin 191