Libro Introduccion Al Desarrollo de Sistema de Información
Libro Introduccion Al Desarrollo de Sistema de Información
Libro Introduccion Al Desarrollo de Sistema de Información
de Mayolo
INTRODUCCIÓN AL DESARROLLO
DE SISTEMAS DE INFORMACIÓN
Introducción al desarrollo de Sistemas de
Información
U
n sistema de información es un
conjunto de componentes que
interactúan entre sí con un fin común.
En informática, los sistemas de información
ayudan a administrar, recolectar, recuperar,
procesar, almacenar y distribuir información
relevante para los procesos fundamentales
y las particularidades de cada organización.
La importancia de un sistema de información
radica en la eficiencia en la correlación de una
gran cantidad de datos ingresados a través
de procesos diseñados para cada área con el
objetivo de producir información válida para
la posterior toma de decisiones. Un sistema
de información se destaca por su diseño,
facilidad de uso, flexibilidad, mantenimiento
automático de los registros, apoyo en toma de
decisiones críticas y mantener el anonimato
en informaciones irrelevantes. Todos estos
elementos interactúan para procesar los
SUMILLA
datos (incluidos los procesos manuales y
La Unidad Didáctica es de naturaleza práctico
automáticos) y dan lugar a información más
- teórico para brindar al estudiante una visión
elaborada, que se distribuye de la manera
amplia de los aspectos relacionados con la
más adecuada posible en una determinada
especialidad empezando con el Hardware
organización, en función de sus objetivos.
de los sistemas informáticos, Se desarrollan
Habitualmente el término “sistema de
habilidades profesionales que permitan
información” se usa de manera errónea
abordar los problemas de instalación de
como sinónimo de sistema de información
sistemas para encontrar soluciones efectivas
informático, en parte porque en la mayoría
y eficientes, relacionadas con la PC, a través
de los casos los recursos materiales de un
de casos de estudio y problemas reales,
sistema de información están constituidos
teniendo un badajee de información sobre
casi en su totalidad por sistemas informáticos.
periféricos, sistemas operativos, accesorios
Estrictamente hablando, un sistema de
de Windows y para Windows, software de
información no tiene por qué disponer de
ofimática, software de diseño y diferentes
dichos recursos (aunque en la práctica esto
utilidades de los sistema. en la segunda parte
no suela ocurrir). Se podría decir entonces
hablaremos de las especialidades, empezando
que los sistemas de información informáticos
con algoritmia, diseño de software,
son una subclase o un subconjunto de
lenguaje de programación entre otros.
los sistemas de información en general.
CAPACIDADES
• Conocer las diferentes partes de la
computadora
• Reconocer los diferentes sistemas
operativos más comunes
• Utilizar de forma precisa los diferentes
utilitarios de Windows
• Poder instalar y manejar los diferentes
utilitarios para Windows
• Entender cómo se trabaja en el diseño
gráfico y edición de videos
• Aprender los diferentes lenguajes de
programación
• Utilizar las diferentes opciones de la
programación orientada a objetos.
• Realizar todas las prácticas e diseño y
programación de software
• Realizar pequeños programas con
NetBeans.
COMPETENCIAS DE UNIDAD
DIDÁCTICA
“Analizar, identificar y compartir el
campo de acción de la Computador las
Tecnologías de Información a través de la
Instalación y manipulación de software”
UNIDADES DE APRENDIZAJE
1 HARDWARE
UNIDAD DE
2 UTILITARIOS
UNIDAD DE
APRENDIZAJE APRENDIZAJE
5 RESOLUCIÓN DE 6 PROGRAMAS Y
UNIDAD DE
APRENDIZAJE
PROBLEMAS UNIDAD DE
APRENDIZAJE
ASIGNACIÓN
7 FLUJO Y 8 LENGUAJES DE
UNIDAD DE
APRENDIZAJE
ESTRUCTURA UNIDAD DE
APRENDIZAJE PRORGAMACIÓN
9 IDE - NETBEANS
UNIDAD DE
APRENDIZAJE
PRESENTACIÓN Y CONTEXTUALIZACIÓN CAPACIDADES
La evolución tecnológica de las computadoras • Comprende los conceptos básicos de
permite que sean cada vez más rápidas, de hardware, software e informática.
mejor desempeño, más pequeñas físicamente, • Interpreta la diferencia entre datos e
con mayor capacidad de almacenamiento, información.
más fáciles de utilizar, con más posibilidades, • Diferencia los distintos tipos de
más accesorios e inclusive más económicas. computadoras y su campo de aplicación.
Sin embargo, sus principios siguen siendo los • Conoce las características físicas y usos
mismos. Una computadora es un instrumento que tienen las partes que componen una
electrónico capaz de aceptar información, computadora.
procesarla y entregar resultados en diversas • Comprende el funcionamiento básico de
formas: texto, imágenes, sonidos, etc. Sus un computador, los conceptos de Bit, Byte
componentes esenciales son el hardware y código ASCII.
y el software. Estos interactúan entre sí • Comprende los distintos tipos de software y
armónicamente: el hardware no funciona las funciones propias de cada uno.
sin el software ni viceversa. Un hardware • Establece medios de protección de la
funciona al máximo con un buen software. información.
COMPETENCIA TEMAS
Poder identificar la lógica de almacenamiento,
de interrelación de datos, de procesamiento y
1 UNIDAD DE MEDIDA,
de presentación de resultados que posibilita
la computadora como medio programable e
TEMA SISTEMA NUMÉRICO
identificar los riesgos de manipulación y uso
de computadoras con las funciones básicas
de una computadora personal y de su sistema 2 EL HARDWARE DE LA PC
TEMA
operativo.
ACTITUDES
• Estar dispuesto a crear, gestionar,
3
TEMA
PERIFÉRICOS
implementar, auditar el hardware
4 SISTEMA OPERATIVO
• Adquirir conocimientos técnicos y, además,
desarrollan competencias, habilidades
de gestión, trabajo en equipo, soluciones
creativas, comunicación e investigación
WINDOWS
TEMA
1 0 Pulsa botón 2
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1 Seguramente todos relacionamos en primera
1 1 0 instancia el valor de bits con la arquitectura
de un ordenador. Cuando hablamos de
1 1 1 procesadores de 32 o 64 bits nos estamos
refiriendo a la capacidad de realizar
El sistema binario es un sistema de base 2 (dos operaciones que tienen estos, concretamente
valores) por lo que para determinar cuántas la ALU (unidad aritmético-lógica) para procesar
combinaciones de bits podemos hacer, instrucciones.
solamente tendríamos que elevar la base a la Si un procesador es de 32 bits será capaz de
enésima potencia según los bits que queramos. trabajar simultáneamente con grupos de
Por Ejemplo: bits de hasta 32 elementos. Con un grupo de
Si tengo 3 bits, tengo 23 combinaciones 32 bit podremos representar 232 tipos de
posibles o 8. ¿Será verdad?: instrucciones distintas o 4294967296
Si tuviera 8 bits (octeto) tendríamos 28 Uno de 64 por tanto, sería capaz de trabajar
combinaciones posibles o 256. con palabras (instrucciones) de hasta 64 bits.
Mientras más bits haya en un grupo, mayor
BITS MÁS SIGNIFICATIVOS capacidad de realizar operaciones tendrá
Como ocurre en todo sistema de numeración, un procesador. De igual forma con un grupo
no es lo mismo 1 que 1000, los ceros a la de 64 podremos representar 264 tipos de
derecha cuentan y mucho. Llamamos bit más operaciones., cantidad ridículamente grande.
significativo (MSB) al bit de mayor peso o mayor UNIDADES DE ALMACENAMIENTO: EL BYTE
valor y bit menos significativo (LSB) al bit de
menor peso o menor valor.
Posición 5 4 3 2 1 0
Bit 1 0 1 0 0 1
Valor 25 24 23 22 21 20
Valor decimal 32 16 8 4 2 1
Por su parte, las unidades de almacenamiento
miden su capacidad en bytes. Un byte es
MSB LSB
una unidad de información equivalente a un
conjunto ordenado de 8 bits o un octeto. La
Como vemos mientras mayor sea la posición magnitud con la que se representa un byte es
hacia la derecha, mayor valor tendrá el bit. con la “B” mayúscula.
Entonces en un byte seremos capaces de
representar 8 bits, por lo que, la conversión
queda bastante clara ahora
1 byte = 8 bits
LA IDEA PRINCIPAL
Conversión de sistemas numéricos
UNIDAD 1 - TEMA 2
EL HARDWARE DE LA PC
ARQUITECTURA DEL COMPUTADOR EL DISCO RÍGIDO O DISCO DURO
Placa Base: La placa El disco duro consiste de uno o varios platos o
base, también conocida discos rígidos unidos por un mismo eje que gira
como placa madre a gran velocidad dentro de una caja metálica
o tarjeta madre (del sellada, en tanto, sobre cada plato y en cada
inglés Motherboard una de sus caras, se encuentra situado un
o Mainboard) es una cabezal de lectura/escritura que flota sobre
placa de circuito una delgada lámina de aire generada por la
impreso a la que se rotación de los discos.
conectan los componentes que constituyen Las características que presenta un disco duro
la computadora. Tiene instalados una serie son: tiempo medio de acceso (el tiempo medio
de circuitos integrados, entre los que se que tarda la aguja en situarse en la pista y el
encuentra el chipset, que sirve como centro sector deseado), tiempo medio de búsqueda
de conexión entre el microprocesador, la (tiempo que tarda el disco en situarse en la
memoria de acceso aleatorio (RAM), las ranuras pista deseada), tiempo de lectura/escritura
de expansión y otros dispositivos. Va instalada (el tiempo medio que tarda el disco en leer o
dentro de una caja o gabinete que por lo escribir una nueva información), latencia media
general está hecha de chapa y tiene un panel (tiempo medio que tarda la aguja en situarse
para conectar dispositivos externos y muchos en el sector deseado), velocidad de rotación
conectores internos y zócalos para instalar (revoluciones por minuto de los platos) y
componentes dentro de la caja. La placa base, tasa de transferencia (velocidad con la cual
además, incluye un firmware llamado BIOS, traslada la información a la computadora).
que le permite realizar las funcionalidades Por su parte, entre los tipos de conexión que
básicas, como pruebas de los dispositivos, admite un disco duro se cuentan: IDE, SC SI, SA
vídeo y manejo del teclado, reconocimiento de TA y SAS y respecto de las medidas podemos
dispositivos y carga del sistema operativo. encontrarnos con las siguientes: 8 pulgadas,
5,25 pulgadas, 3,5 pulgadas, 2,5 pulgadas, 1,8
pulgadas, 1 pulgada y 0,85 pulgadas.
EL MICROPROCESADOR
Se llama microprocesador o simplemente
procesador al circuito integrado central de un
sistema informático, en donde se llevan a cabo
las operaciones lógicas y aritméticas (cálculos)
para permitir la ejecución de los programas,
desde el Sistema Operativo hasta el Software
de aplicación. Un microprocesador puede
operar con una o más CPU (Unidades Centrales
de Procesamiento), constituidas cada una por
registros, una unidad de control, una unidad
aritmético-lógica y una unidad de cálculo en
coma flotante (o coprocesador matemático).
Asimismo, se haya generalmente conectado Ryzen 9 16/32 3.5/4.7 GHz
mediante un zócalo a la placa base o tarjeta 3950X
madre, junto con un sistema disipador de calor
que conforman ciertos materiales de disipación R y z e n 32/64 3.7/4.5 GHz
témica y un fan cooler (ventilador inerno). Threadripper
Mientras que un mismo microprocesador 3970X
puede contar con uno o más núcleos físicos o
En la siguiente gráfica se ordenan los
lógicos, en los que se lleva a cabo toda la labor
de cálculo, un mismo sistema informático procesadores por potencia, y en función al uso
puede disponer de varios procesadores de todos sus núcleos al mismo tiempo. No es
trabajando en paralelo. El rendimiento de una lista exhaustiva, ya que en un momento
dichos procesadores no es nada fácil de medir, dado hay cientos de procesadores diferentes
en el mercado, sino que se muestran aquellos
pero se suele usar la frecuencia de reloj (medida
para equipos de sobremesa que me parecen
en herzios) para distinguir entre la potencia de
unos y de otros. más interesantes o que me parece adecuado
incluir para poder tener una idea global del
mercado actual.
MODELOS DE PROCESADOR: La arquitectura de un microprocesador actual
Resumen de los procesadores más interesantes es realmente compleja, por lo que quedarse en
por rango por potencia, son muy interesantes los parámetros básicos
y permiten optimizar la inversión en el c o m o n ú m e r o d e
procesador para equipos para gaming o diseño. núcleos o frecuencia de
Modelo Núcs./hilos Frec. base/turbo funcionamiento como
características para
Athlon 200GE 2/4 3.2 GHz, sin turbo comprarlos es un error.
Ryzen 3 1200 4/4 3.1/3.4 GHz Sobre todo, si se va a
comparar procesadores
Core i 3 - 4/4 3.6/4.2 GHz de distintas compañías
9100F y series, porque
Ryzen 5 1600 6/12 3.2/3.6 GHz hay muchos otros
parámetros internos que definen su potencia,
Ryzen 5 2600 6/12 3.4/3.9 GHz como la cantidad de caché que tienen, el
Core i 5 - 6/6 2.9/4.1 GHz número de instrucciones por ciclo que
9400F ejecutan, y un largo etcétera. Además, debido
a las diferencias internas de arquitectura, unos
Ryzen 5 6/12 3.6/4.2 GHz procesadores son mejores que otros en ciertas
2600X tareas, la cantidad de núcleos que tiene un
Ryzen 5 3600 6/12 3.6/4.2 GHz procesador determina la cantidad de procesos
que puede ejecutar al mismo tiempo. Podrá
Ryzen 7 8/16 3.7/4.3 GHz ejecutar uno por núcleo salvo que el procesador
2700X disponga de tecnología multihilo, en cuyo caso
Ryzen 7 8/16 3.6/4.4 GHz podrá ejecutar dos subprocesos por núcleo.
3700X En este último caso, la ejecución del segundo
proceso se hará a un rendimiento menor, por
Ryzen 7 8/16 3.9/4.5 GHz lo que un procesador de cuatro núcleos físicos
3800X con multihilo puede tener una potencia inferior
Core i 7 - 8/8 3.6/4.9 GHz a la de un procesador de seis núcleos físicos sin
9700K multihilo. La frecuencia de funcionamiento es
importante a la hora de comparar procesadores
Core i 9 - 8/16 3.6/5.0 GHz de misma arquitectura, y en general siempre
9900K será mejor cuanto mayor sea su frecuencia,
Ryzen 9 12/24 3.8/4.6 GHz aunque con algunos peros. El primero, que
3900X hay que tener en cuenta la diferencia entre
frecuencia base y, si el procesador lo tiene, la
Core i 9 - 10/20 3.7/4.5 GHz
frecuencia turbo.
10900X
MEMORIAS:
Actualmente la frecuencia base es 2133 (casi el
En informática, dispositivo basado en circuitos
doble que las DDR3) y su latencia estándar se
que posibilitan el almacenamiento
encuentra en CL14, un poco más alta
limitado de información y su
que las DDR3, pero se compensa
posterior recuperación.
con su frecuencia superior.
Las memorias suelen
En estas memorias estamos
ser de rápido acceso, y
en la misma situación: Una
pueden ser volátiles o no
frecuencia mayor a 2133
volátiles. La clasificación
puede provocar cuello
principal de memorias
de botella en según qué
son RAM y ROM. Estas
equipos, mientras que, una
memorias son utilizadas
alta latencia puede provocar
para almacenamiento
lentitud en ciertas tareas.
primario. Se emplea el término
En todos los casos, lo normal es comprar
memoria también para llamar a cualquier
la RAM en una cantidad par de módulos. De esta
dispositivo, circuito o medio de grabación
forma se puede aprovechar una característica
que permite almacenar información desde
de las placas base —las de hace unos años
una computadora. Existen memorias de
a esta parte la tienen— que permite usar
almacenamiento secundario como los discos
ambos módulos a la vez durante la ejecución
duros, discos ópticos, etc.
de tareas, lo que se conoce como doble canal
• Memoria virtual.
o double channel. Esto también depende de
• Memoria caché.
la configuración que permita el procesador
• Memoria flash.
con que se use la RAM, ya que los más caros
• Las memorias pueden clasificarse en
también permiten usar los módulos de tres en
memoria externa o memoria interna.
tres o cuatro en cuatro, siendo de canal triple
• Tarjeta de memoria.
o canal cuádruple. La mejora de rendimiento
• Dirección de memoria.
en esta disposición suele ser limitada, entre un
• Ancho de banda de la memoria.
1 y 5 % al usar la disposición multicanal, por
• Latencia de memoria
lo que a la hora de elegir la memoria no hay
que obsesionarse en comprarla en múltiplos
de dos, ya que además no en todos los usos
va a notarse esa mejora de rendimiento. Puede
notarse en ciertas aplicaciones, pero con una
tarjeta gráfica de 150 o 200 euros en juegos no
aportará rendimiento adicional
TARJETAS DE EXPANSIÓN
Memoria RAM DDR3, Su frecuencia estándar La tarjeta de expansión es un tipo de
fue durante un tiempo 1333, aunque con el dispositivo con diversos circuitos integrados
tiempo se subió hasta 1600, siendo la mayoría (chips) y controladores, que insertada en
de procesadores compatibles con esta su correspondiente ranura de expansión
frecuencia. Por tanto, si quieres montar un sirve para expandir las capacidades de la
equipo cuya memoria RAM es DDR3 tendrás computadora a la que se inserta.
que elegir memorias que sean CL10 con una
frecuencia de 1600 Mhz (lo explicamos más
abajo). Una frecuencia mayor puede provocar
cuello de botella en según qué equipos,
mientras que, una alta latencia puede provocar
lentitud en ciertas tareas (conversión de video,
extraer archivos).
Memoria RAM DDR4, Por otro lado, las
memorias DDR4 son las más recientes y,
las cuales, están en continua evolución.
Las tarjetas de expansión más comunes sirven FUENTES DE ALIMENTACIÓN
para añadir memoria, controladoras de unidad La fuente de alimentación de un PC está
de disco, controladoras de vídeo, puertos serie diseñada sencillamente para tomar la energía de
o paralelo y dispositivo de módem interno. la red eléctrica de corriente alterna y convertirla
La tarjeta de expansión permite dotar a la en una corriente continua de bajo voltaje. Esta
computadora de algún elemento adicional.1 conversión debe realizarse en forma fiable
Las tarjetas suelen ser de tipo Peripheral y eficaz, y debe de desconectar el sistema en
Component Interconnect (PCI), PCI-Express caso de sobrecargas, de cortocircuitos o de
o Accelerated Graphics Port (AGP). No se sobrecalentamiento. Cuando se enciende la
fabrican las placas de tipo Industry Standard fuente de alimentación, deberá hacerse en
Architecture (ISA). la secuencia adecuada. Cuando se apaga,
Gracias los avances en la tecnología Universal deberá evitar la aparición de sobre tensión o
Serial Bus (USB) y a la integración de audio, fluctuación para no someter a ninguno de los
video o red en la placa base, las placas de sensibles elementos a variaciones de voltaje
expansión ahora son menos imprescindibles perjudiciales. Deberá tener una adecuada
para tener una computadora completamente refrigeración con circulación de aire.
funcional.
TIPOS DE TARJETAS DE EXPANSIÓN
• Tarjeta de expansión con dos puertos USB
1.1 para ranura PCI.
• Tarjeta de expansión para ranura PCI, con
puerto RJ-45 (Ethernet) con dos led.
• Adaptador PCI para red inalámbrica (WLAN).
• Tarjeta adaptadora de puerto PCI para
módem-fax V.92.
• Versión de prueba de la tarjeta de tv-dvb s2
“estación de TV DVB-S2 PLUS” por “KNC1”.
Tarjeta de TV para interfaz PCI.
PCI : Peripheral Component Interconnect
• PCI—USB
• PCI—IDE
• PCI—IEEE1394
• PCI—Paralelo
• PCI—RAID
• PCI—SATA
• PCI—Serie
PCI Express : PCI-Express
• PCI Express
Tipos tarjetas de expansión
• Tarjeta de sonido
• Tarjeta gráfica
GABINETES
• Tarjeta de red
Uno de los elementos básicos que se
• Módem interno
necesitan en todo PC. es una caja también
• Tarjeta sintonizadora de televisión o
llamada gabinete en la que colocar todos los
capturadora de televisión
componentes. Vienen en distintas formas y
tamaños, y por lo general cuanto más exclusivo
sea su diseño, más resistentes sean y fáciles de
montar los componentes.
Cómo elegir el tamaño de caja
Existen diversos tamaños de caja de PC que,
aunque no todo el mundo las llama por el
mismo nombre, se podrían clasificar de la
siguiente forma:
Torres, semi torres, FAMILIA DE SISTEMAS OPERATIVOS
y mini torres. Son los Existen diversos tipos de mercado, cada uno
modelos clásicos, con diferentes funciones. Los más populares:
aunque la semi torre es
la que se suele comprar
más habitualmente ya
que cuenta con gran
cantidad de ranuras de
expansión para discos
y tienen un interior
amplio para todo
tipo de componentes
como por ejemplo
ventiladores grandes y
tarjetas de gama alta o
entusiasta que suelen
ser especialmente √ Windows: Es un sistema operativo comercial
grandes. desarrollado por Microsoft. Windows ha
ido evolucionando a lo largo del tiempo a
Slim o formato delgado. través de numerosas versiones orientadas
Pocas posibilidades a ordenadores personales y servidores. Es
de expansión, suelen uno de los sistemas más difundidos entre
contar con una bahía ordenadores portátiles y de escritorio.
de 5.25 pulgadas para
un lector de DVDs
y uno o dos huecos
de 3.5 pulgadas para
discos. En estos casos
hay que recurrir
a las capacidades
gráficas integradas
en el procesador
del sistema. Están
pensadas para incluir √ Linux: Es un sistema operativo basado
una placa Micro ATX o en UNIX y que cuenta con multitud de
Mini ITX y poco más. distribuciones. Linus Torvalds, estudiante
finlandés, creó su núcleo en 1991 y lo
difundió como software libre. Este sistema se
Sobremesa. Es la típica popularizó rápidamente y, en la actualidad,
caja que ocupa más cuenta con millones de desarrolladores que
espacio en horizontal colaboran en todo el mundo.
y bastante menos
en vertical, y que
en muchos centros
de trabajo le ponen
encima el monitor.
Capacidades de
expansión medias,
pero personalmente
nunca me han gustado.
Son herencia directa de
los primeros diseños
de PC de IBM y Apple.
√ Mac OS: Es un sistema operativo comercial TIPOS DE SISTEMAS OPERATIVOS
desarrollado por Apple para ordenadores
Macintosh. Su arquitectura está basada
en el sistema operativo UNIX, por lo que
es bastante estable. Fue el primero en
popularizar la interfaz gráfica de usuario.
LA IDEA PRINCIPAL
EL Hardware de la Computadora
UNIDAD 1 - TEMA 3
TEORÍA DE LA COMUNICACIÓN
LOS PERIFÉRICOS MÁS USADOS CARACTERÍSTICAS DEL TECLADO
Es un dispositivo empleado para el ingreso de
TECLADO información al computador o sistema del cual
Es la herramienta que nos permite escribir e se encuentra en conexión, esto se logra a partir
insertar números y símbolos. El teclado de la del uso de las teclas que lo complementan.
computadora es similar al de una máquina de Además de ello, posee distintas teclas con
escribir, pero con más caracteres y funciones. otras funcionalidades que podrán de ser muy
Algunas tienen hasta 3 símbolos. A veces útiles además de la creación de palabras. Este
tendremos que pulsar dos teclas a la vez para dispositivo es de los artefactos más usados
que aparezca el símbolo que queremos. ya que es una parte fundamental del uso de
En este teclado encontrarás las teclas de uso computadoras, presentándose de manera
más frecuente. No es necesario aprenderlas de completa y fácil de usar, no ha presentado
una sola vez. En la medida que las necesites, las grandes cambios mediante el tiempo.
irás aprendiendo.
CONOCE LAS CARACTERÍSTICAS Y CARACTERÍSTICAS
FUNCIONES DEL TECLADO Las características del teclado ofrecen el tipo de
El teclado es el dispositivo más usado que información necesaria para tener conocimiento
dispone de uso de teclas con distintas funciones, exacto de los detalles y aspectos que el mismo
las cuales brindan acceso a letras o números presenta, lo cual será de gran importancia al
que permitirá a las personas la creación de hacer uso de él, entre ellas se pueden destacar:
información en un sistema. Este artefacto Su objetivo y la razón por la cual es generalmente
presenta distintos procesos de funcionamiento, utilizado, es para tener la posibilidad de
de los cuales es importante tener conocimiento, ingresar información al sistema, esto se puede
ya que existen distintos tipos del mismo que lograr haciendo uso de caracteres o comandos
ofrecen otras funcionalidades. Destacando las de control
características del teclado, es importante tener Está divido en varios bloques, lo cual permite
conocimiento de cada una de ellas al hacer uso un mejor funcionamiento, así como mayor
del mismo permitiendo un funcionamiento facilidad a las personas, ya que se observan las
correcto, en este libro se podrá encontrar teclas en un orden en específico.
información detallada referente a ello. Dependiendo el tipo de teclado, puede llegar
a presentar de 2 a 5 bloques, esto dependerá
también de lo que requiere el usuario.
Gracias a que se encuentra compuesto por
teclas de letras, así como también distintas
teclas funcionales, permite lograr el proceso
de funcionamiento del mismo y poder lograr el
objetivo que este presenta.
Es el periférico de entrada más importante
de una computadora, ya que a partir del uso
del teclado es que se pueden llevar a cabo la
mayoría de las actividades que se pueden
realizar en una computadora.
FUNCIONAMIENTO
Algunas teclas presentan dobles funciones,
El teclado presenta como función y objetivo
en ellas los caracteres que se encuentran en
general el permitir a los usuarios hacer uso de
la parte inferior son aquellos que se usan al
un mecanismo que les será posible el ingreso
solo pulsar la tecla, mientras que los que se
de información en una computadora. En él
encuentran en la parte superior podrá hacer
se encuentras las letras, así como el diseño
uso de este al presionar simultáneamente la
que se observaba en la máquina de escribir,
tecla SHIFT. Para aquellas que poseen una
además de otras teclas que permitirán el uso
tercera función se aplicará de la misma manera
de funciones de mayor avance.
que el anterior, mientras que para esa tercera
De igual manera se debe considerar la
función es necesario presionar las teclas Ctrl y
existencia de otros teclados, cada uno de ellos
Alt.
incorpora nuevas teclas que buscan resolver
un problema determinado y por lo tanto,
son específicos de cada modelo. Este tipo de
funciones adicionales se pueden observar para
uso de juegos, acciones de trabajos y más.
Que les permitirá realizar distintas actividades
mediante ellos destacando el conocimiento
de las mismas de manera detallada. Teniendo
en cuenta el tipo de teclado que se tenga se
presentará un proceso detallado, que puede
ser diferente para otros tipos, que le permitirá
ser funcional de manera correcta. RATÓN
TIPOS DE TECLADO Es el componente que conectado a la torre nos
• Teclado ergonómico. permite movernos por las diferentes pantallas,
• Teclado multimedia. así como abrir o cerrar programas y cerrar la
• Teclado flexible. computadora. dispone de dos botones, uno a
• Teclado en pantalla. la izquierda y otro a la derecha, más una rueda.
• Teclados de proyección. estos botones realizan varias funciones. Con el
• Teclados de membrana. ratón podemos ejecutar los siguientes tipos de
• Teclados capacitivos. acciones:
• Teclados de contacto metálico.
• Entre mocho más
BOTÓN IZQUIERDO
Apuntar: colocar el ratón de tal forma que el
puntero toque algún elemento. Clic: oprimir
y soltar el botón izquierdo del ratón. al hacer
clic en algún elemento, por lo general quedará
seleccionado. Siempre se usará el botón
izquierdo, excepto cuando se te diga que
utilices el botón derecho.
Doble clic: oprimir y soltar el botón izquierdo
del ratón dos veces con rapidez. cuando haces
doble clic, por lo general, se activa un elemento
o se abre una ventana, carpeta o programa.
BOTÓN DERECHO
que manda una corriente de información.
Clic: haciendo un clic se abrirá un menú en el
La computadora traduce esta información
que aparecerán varias opciones.
a movimiento del cursor y la posición del
COGER EL RATÓN CORRECTAMENTE Descansa
apuntador (la flecha gráfica) en la pantalla. Un
tu muñeca en la almohadilla o en el escritorio,
ratón puede tener de uno a tres botones en
con la palma de tu mano descansando en la
la parte superior, con cada botón ejecuta una
parte de atrás del ratón. Aguanta el ratón entre
función en particular. La mayoría del tiempo
tu dedo pulgar y los últimos dos dedos (anular
se utiliza el botón izquierdo del ratón para
y meñique), dejando tu palma en la parte de
seleccionar opciones del menú y de ventanas
atrás del ratón.
de diálogo. Los botones restantes pueden tener
Ligeramente descansa tu dedo índice en el
funciones que dependen del tipo de software
botón de la izquierda y tu dedo del medio
que esté utilizando.
(corazón) en el botón derecho.
• Mecánicos
Sirve para seleccionar textos y también para
• Opto-mecánicos
mover objetos en la pantalla. Para Textos:
• Rueda
Hacemos un clic con el botón izquierdo en el
• Óptico
origen y sin soltar arrastramos hasta donde
Los tipos de ratones antes mencionados
queramos seleccionar. Para Objetos: Hacemos
pueden presentarse de dos formas, las cuales
un clic con el botón izquierdo dentro del objeto
son:
y sin soltar lo arrastramos al sitio que queramos
de la pantalla. Mouse de dos botones.
los haces de electrones. En LCD y en CRT de Hz o son 2 valores entre los cuales
apertura de rejilla, es la distancia en horizontal, frecuencia el monitor es capaz de mostrar
mientras que en los CRT de máscara de sombra, de refresco imágenes estables en la
se mide casi en diagonal. Lo mínimo exigible vertical: pantalla.
en este momento es que sea de 0,28mm. Para
CAD o en general para diseño, lo ideal sería de Hz o similar al anterior, pero en
0,25 mm o menor. 0,21 en máscara de sombra frecuencia sentido horizontal, para
es el equivalente a 0,24 en apertura de rejilla. de refresco dibujar cada una de las líneas
horizontal: de la pantalla.
Blindaje: un monitor puede o no estar Estas dos medidas describen el tamaño de lo
blindando ante interferencias que se muestra por la pantalla, históricamente
eléctricas externas y ser más hasta no hace mucho tiempo y al igual que
o menos sensible a ellas, las televisiones los monitores de ordenador
por lo que, en caso de estar tenían una proporción de 4:3. Posteriormente
blindando, o semi-blindado se desarrollaron estándares para pantallas de
por la parte trasera llevara aspecto panorámico 16:9 (a veces también de
cubriendo prácticamente la 16:10 o 15:9) que hasta entonces solo veíamos
totalidad del tubo una plancha en el cine.
metálica en contacto con tierra MEDICIÓN DEL TAMAÑO DE LA PANTALLA
o masa. Las medidas de tamaño de pantalla son
Tipo d e en los CRT pueden existir 2 diferentes cuando se habla de monitores
monitor: tipos, de apertura de rejilla o CRT y monitores LCD. Para monitores CRT la
de máscara de sombra. medida en pulgadas de la pantalla toma como
referencia los extremos del monitor teniendo
L í n e a s d e son unas líneas horizontales, en cuenta el borde, mientras que el área visible
tensión: que tienen los monitores es más pequeña. Para monitores LCD la medida
de apertura de rejilla para de tamaño de pantalla se hace de punta a punta
mantener las líneas que de la pantalla sin contar los bordes.
permiten mostrar los colores
perfectamente alineadas;
en 19 pulgadas lo habitual
suelen ser 2, aunque también
los hay con 3 líneas, algunos
monitores pequeños incluso
tienen una sola.
LA IDEA PRINCIPAL
Uso de Periféricos de la Computadora
UNIDAD 1 - TEMA 4
LA IDEA PRINCIPAL
Instalación y configuración de Windows 10
UNIDAD 1 - TEMA 5
LA IDEA PRINCIPAL
Instalación y Configuración Linux CentOS7
LECTURAS RECOMENDADAS
• Sistemas operativos: aspectos internos y principios de diseño - William Stallings
• DOS Internals 1994 Autor: Geoff Chappell
• Sistemas operativos: diseño e implementación Albert S. Woodhull, Andrew S.
Tanenbaum
• Linux: administración del sistema y explotación de los servicios de red - 2012
Autor: Sébastien Bobillier
ACTIVIDADES Y EJERCICIOS
• Realizar la instalación del sistema operativo Windows 10 una máquina virtual
• Realizar las configuraciones que sean necesarias para la mejor utilización del
sistema operativo Windows 10.
• Realizar la instalación del sistema operativo Linux CentOS7 una máquina
virtual
• Realizar las configuraciones que sean necesarias para la mejor utilización del
sistema operativo Linux CentOS 7.
PRESENTACIÓN Y CONTEXTUALIZACIÓN CAPACIDADES
Los programas utilitarios cambian dependiendo • Distinguir el uso de cada software utilitario
del sistema operativo y que dispositivo es. de Windows.
Los programas utilitarios o utilidades, son • Distinguir el uso de cada software utilitario
programas diseñados para realizar una hecho para el sistema operativo Windows.
• Manejar los sistemas de ofimática de
función determinada, Que sirve para ejercer
Windows.
tareas específicas o diversas en un dispositivo,
• Instalar y utilizar utilitarios de antivirus.
por ejemplo, un editor, un depurador de
• Majear los gestores de disco para hacer una
código o un programa para recuperar datos distribución correcta de la información en
perdidos o borrados accidentalmente en Windows.
el disco duro. El término utilitario se refiere
normalmente al software que resuelve ACTITUDES
problemas relacionados con la administración
• Presta cuidadosa y permanente atención
del sistema de la computadora. Existen en
a las explicaciones del tema que se aborda
nuestros medios programas utilitarios que nos en clase.
ayudan a resolver gran cantidad de problemas, • Asume un papel laborioso y constante en
entre ellos tenemos las llamadas utilidades: las tareas y oficios que realiza a nivel de
En informática, una utilidad es una herramienta grupo.
que realiza: Tareas de mantenimiento, Revisión • Trata a compañeros y superiores con
de software, Recuperar Datos Perdidos, modales y vocabulario de persona educada
Eliminar softwares maliciosos, Creación de y culta.
vídeos, Creación de documentos etc. Entre • Expone el producto didáctico con claridad y
ellas podemos nombrar también el cifrado y fluidez frente a sus compañeros
descifrado de archivos, compresión de archivos,
desfragmentadoras de disco, editores de texto,
respaldo, etc. Clasificación De Los Programas
TEMAS
Utilitarios: Existen gran variedad de programas
cada uno de ellos destinados a tareas muy
diferentes estos programas se denominan
1
TEMA
Software Utilitarios de
Windows
utilitarios y diremos que se clasifican en:
Utilitarios Estándar: Traen su nombre debido a
que son creados por las empresas diseñadoras
de software para determinada utilidad. Por esta 2 Software Utilitarios
para Windows 2
razón podemos decir que existen distintos tipos TEMA
de programas utilitarios estándar destinados a
tareas muy diferentes algunos de estos son:
Antivirus, Quemadores, Mantenimiento,
Información, Seguridad, Generadores
3
TEMA
Software de Ofimática
de llaves, Reproductores de audio/
video, Compresores de archivos, etc.
COMPETENCIA 4
TEMA
Antivirus
LA CALCULADORA
La Calculadora es una aplicación con la que realizar operaciones matemáticas y
realizar conversiones entre diversas unidades de medida.
Se usa de la misma forma que usaríamos una calculadora normal, pudiendo
hacerlo pulsando sus botones con el cursor, o directamente con el teclado,
escribiendo los números y signos aritméticos pertinentes.
Por defecto se muestra EL BLOC DE NOTAS
la calculadora estándar El Bloc de notas es un editor de texto muy
con las funciones básico, que no soporta formatos de texto.
básicas: sumar, restar, Es muy útil cuando queremos apuntar algo,
multiplicar, dividir, etc. ya que es más ágil que abrir un procesador de
Si cambiamos a otra texto más potente.
calculadora, la próxima Por otro lado, puede abrir prácticamente todos
vez que iniciemos la los tipos de archivos. Claro que esto no quiere
aplicación se abrirá decir que todos sean comprensibles para
nuestra última elección. nosotros. Por ejemplo, al abrir una imagen
La calculadora estándar JPG, sólo encontraremos símbolos que para
tiene la siguiente nosotros no tienen sentido. Pero si en cambio,
apariencia. El menú abrimos un documento html (una página
para seleccionar otras web), veremos su código fuente y podremos
funciones se despliega editarlo. En otro caso, si por ejemplo se daña
con el icono que está un documento de Word, y no muestra su
a la izquierda de la palabra ESTÁNDAR. Dicho contenido, antes de repetirlo podemos probar
menú tiene básicamente dos secciones. En a abrirlo con el Bloc de notas, y seguramente
la primera podemos elegir entre diversos podamos rescatar así el texto escrito.
tipos de calculadoras: Estándar, Científica y El Bloc de notas se muestra como una hoja en
Programador. En tanto que la siguiente sección blanco con texto de color negro.
convierte a la calculadora en un convertidor de Dispone de una barra de menús, con opciones
valores. El tipo de conversión a efectuar debe que nos permitirán realizar las acciones
seleccionarse en la básicas, como guardar, abrir, copiar, pegar,
lista: Volumen, buscar, reemplazar, imprimir, etc.
Longitud, Peso y masa,
Temperatura, Energía,
Área, Velocidad, Tiempo,
Potencia, Datos, Presión
y Ángulo.
Las calculadoras
científicas suelen incluir
un buen número de
funciones matemáticas
y de cálculo de funciones
(trigonometría,
logaritmos, etcétera).
La calculadora científica
de Windows 10 tiene la WORDPAD
siguiente apariencia: WordPad es otro editor de texto,
En tanto que las pero a diferencia del Bloc de notas,
calculadoras para programación contienen sí soporta el texto con formato.
funciones de conversión entre sistemas Esta aplicación incluida en Windows
numéricos (binario, octal o hexadecimal) puede resultar la solución perfecta
y funciones lógicas, entre otras funciones para la redacción de la mayoría
básicas, por supuesto. En cambio, las funciones de documentos. Si has manejado otros
de conversión muestran el valor a convertir y procesadores de texto como Microsoft Word o
el resultado a otro tipo de unidad de medida. Google Docs, no tendrás ningún problema para
Obviamente, en todos los tipos de conversores, manejar este programa, ya que es muy similar.
tenemos listas desplegables para seleccionar En la versión de WordPad para Windows 10 se
la unidad a convertir. Un ejemplo simple por ha renovado el estilo de los menús y botones
supuesto es la conversión de temperaturas, de de forma que mantenga la misma estética y
grados Farenheit a grados Celsius o a grados distribución que la que utiliza Microsoft Office
Kelvin. e incluso, como hemos visto, el Explorador de
archivos.
En la parte superior, encontramos las barras de PAINT
herramientas, ordenadas en pestañas. Usando Paint es un sencillo editor de
los distintos menús y botones, podremos incluir imágenes. Se trata de una
imágenes, dibujos realizados a mano alzada, aplicación muy útil para realizar
dar formato al texto y muchas otras opciones. dibujos y retoques sencillos.
Usando el Paint, por ejemplo,
podemos crear nuestros propios
iconos para personalizar el Escritorio. Para
ello creamos la imagen o la recortamos, y la
guardamos con la extensión .png. Al igual
que el WordPad, el Paint ha renovado su
estética. La organización y disposición de sus
barras de herramientas es muy similar, pero
sus funciones están enfocadas al dibujo. Nos
permite: Rotar la imagen, rellenar su fondo,
utilizar diferentes pinceles personalizables
LA GRABADORA DE VOZ en grosor y color, etc. Es una aplicación tan
La Grabadora de voz nos permite intuitiva, que vas con comenzar a utilizarla para
grabar un archivo de audio comprender su funcionamiento.
utilizando un micrófono. Se trata
de una grabadora muy básica. Al
pulsar en el Icono del micrófono
comenzaremos a grabar, siempre y
cuando tengamos un micrófono conectado. Ese
mismo icono nos permite detener la grabación.
En el panel de la izquierda van apareciendo los
audios grabados y a la derecha la posibilidad
de reproducirlos.
RECORTES
Otra de las herramientas que
encontramos en Accesorios
es la llamada Recortes. Es una
herramienta sencilla pero muy
útil para hacer capturas de
pantalla.
Al abrirla, la pantalla se vuelve translúcida. Si
En la parte inferior tenemos iconos que nos realizamos una selección con el cursor, la zona
permiten compartir el archivo de audio, una seleccionada se abrirá en un editor básico de
herramienta básica para realizar recortes, recortes. En él podremos subrayar o escribir
borrar el archivo y renombrarlo. a mano alzada sobre la imagen y guardarla
en el formato que queramos: GIF, PNG, JPG y
MHT. También podremos enviarla por correo
electrónico.
REPRODUCTOR DE WINDOWS MEDIA CENTRO DE MOVILIDAD PARA PORTÁTILES
Windows Media es el reproductor El Centro de movilidad de
y biblioteca multimedia de Windows sólo está disponible
Windows. Con esta aplicación para equipos portátiles, y en él
podremos clasificar y escuchar encontramos las opciones que
música, ver vídeos, imágenes, más frecuentemente tenemos
etc. Las bibliotecas de contenido que modificar en estos equipos.
multimedia (imágenes, música y vídeos) Por ejemplo, desde aquí podremos cambiar
se agregan directamente al Reproductor algunas opciones para ahorrar batería,
Windows Media. De esta forma resulta más conectarnos redes inalámbricas o conectar un
cómodo ir ejecutando los archivos que nos monitor externo.
interesen desde el propio panel de navegación
del programa. Con este reproductor, aparte
de tener nuestra multimedia completamente
organizada, podremos pasar nuestros discos
de música al equipo, convirtiéndolos en mp3,
por ejemplo, y viceversa, crear discos con la
música del equipo que podremos reproducir
en cualquier otro aparato de sonido.
MICROSOFT EDGE
Microsoft Edge es el
navegador web que incluye
Windows. Su función es la de
En la parte superior derecha encontramos las permitirnos visualizar páginas
opciones principales en forma de pestañas: web, siempre y cuando
Reproducir, Grabar y Sincronizar. dispongamos de conexión a
Reproducir: Podemos crear una lista de Internet, o visualizar páginas
reproducción arrastrando directamente que tengamos guardadas en
las canciones hasta la zona de la pestaña nuestro ordenador, en este último caso no se
Reproducir. También se pueden crear desde utiliza ninguna conexión a Internet.
el panel de la izquierda. Podemos darle Observando la ventana de arriba a abajo
un nombre a la lista de reproducción para encontramos:
guardarla y escucharla en otro momento.
Grabar: Nos permite grabar a un CD las
canciones que arrastramos hasta la zona de
esta pestaña. También podemos grabar una
lista de reproducción ya creada anteriormente.
Sincronizar: Si conectamos un reproductor
de mp3 o mp4 mediante su cable USB al
ordenador, nos permite sincronizarlo de forma
que copie las últimas canciones que hemos
agregado a la Biblioteca y que no se encuentran
aún en el reproductor portátil.
Si quieres conocer más a fondo esta aplicación,
en una unidad posterior la explicamos, junto
con nuevas aplicaciones multimedia que vienen
con Windows 10.
• Las pestañas con las que podemos tener Al pulsar el icono , la página cambia del
abiertas varias páginas a la vez, una en cada siguiente modo:
solapa, para ir alternándolas.
• Los botones adelante y atrás para
desplazarnos entre las páginas que hemos
visitado.
• La barra de direcciones, donde se escribe
la dirección web (url) de la página que
queremos visitar o visualizamos la de
la página que estamos visitando en ese
momento. Esa misma caja funciona como
caja de búsqueda en Internet. Finalmente, podemos pulsar el icono , el cual
• La barra de herramientas en la que se abre el panel de notificaciones de Windows
sitúan diversos botones y menús útiles con las opciones que tengamos activas para
para la navegación por Internet: favoritos, compartir la página.
herramientas, etc.
• La zona para la exploración web, en que
se abre la página visitada como tal: en este
caso estamos viendo la web. La novedad
más interesante de este nuevo navegador
de Internet es que es posible añadir diversos
tipos de anotaciones a las páginas visitadas.
Dichas anotaciones pueden grabarse de
modo que estarán presentes si volvemos a
la página.
3D BUILDER
Windows 10 también incluye una aplicación
que la mayoría podría considerar simplemente
como una rareza. Se trata de un programa En el caso de la aplicación de correo, la propia
para la visualización y edición de modelos 3D cuenta de Microsoft sirve para obtener un
en formato .3MF. No es un programa con la servicio de correo electrónico, por eso la
capacidad, extensión y complejidad de otros pantalla inicial muestra la cuenta por default. Si
programas especializados en el área, como 3D añadimos otras cuentas de correo, la bandeja
Studio Max de Autodesk. Es más bien como un de entrada mostrará entonces los mensajes de
pequeño juego en el que podemos disponer todas las cuentas combinadas, lo que facilita
piezas 3D pre dibujadas y realizar con ellas el acceso y administración. Sin embargo, otra
algunas operaciones básicas de edición. Sin vez, eso implicaría ceder la información de las
embargo, su verdadera intención es servir contraseñas de nuestras cuentas de correo
como un primer puente entre las nacientes (de Gmail, por ejemplo), a una aplicación de
impresoras 3D y el usuario. En otras palabras, Microsoft. Además, una vez que la aplicación
si por alguna razón tuviéramos la necesidad tiene acceso a nuestro correo de Gmail u otros,
de probar una impresora 3D, éste es el obtiene y organiza todos los contactos en la
programa que utilizaríamos. Por lo demás, si aplicación de ese mismo nombre, Contactos.
decides utilizarlo, seguramente tendrás para Una vez indicadas las salvedades que suelen
entretenerte un largo rato. Por cierto, por su inquietar a los usuarios, veamos la aplicación
nombre, es el primer programa que verás en de Correo en primer lugar.
las listas de aplicaciones de Windows 10.
En el panel de la izquierda podemos ver: Los días con citas registradas pueden verse
• Correo nuevo: Permite escribir nuevos fácilmente toda vez que la aplicación los
mensajes resalta. A su vez, con un clic en cualquier día se
• Cuentas: Muestra una lista de las cuentas abre el formulario que nos permitirá registrar
de correo electrónico que hemos añadido a nuevas citas, aunque, como ya vimos, podemos
la aplicación. simplemente decírselo a Cortana. A su vez,
• Carpetas: Son las carpetas típicas que Cortana también nos permite consultar la
permiten organizar los mensajes de correo agenda del día, pero un clic sobre el calendario
electrónico: Bandeja de entrada, bandeja de también nos ofrece una vista de los eventos
salida, borradores, etcétera. registrados.
En la parte derecha veremos los elementos que
correspondan en función de lo seleccionado a
la izquierda. Por ejemplo, si hacemos clic en
alguna carpeta, veremos los mensajes que
contiene, lo mismo si hacemos clic en una
cuenta distinta, etcétera. Para ver un correo
en particular, hacemos clic en él y el área de la
derecha mostrará el contenido, por supuesto.
Abajo tenemos una pequeña barra con iconos
para el uso de la aplicación.
Desde ahí podemos activar la
aplicación de Calendario, pulsando en su icono,
así como abrir la Configuración del correo. La Finalmente, la aplicación Contactos nos
aplicación de Calendario, como veremos un permitirá consultar las listas de correos y
poco más adelante, tiene una barra idéntica. números de personas que registremos en
Al pulsar en el icono de configuración (el cualquiera de nuestras cuentas, eso incluye
engrane de la derecha), se abre un menú en la el Calendario, las cuentas de correo añadidas,
ventana con el que podremos dar de alta otras Teléfono, Skype, etcétera. Como dicha lista
cuentas (o eliminarlas en cualquier momento), puede llegar a crecer de modo considerable, la
personalizar la aplicación, configurar aplicación destaca una caja de búsqueda para
respuestas rápidas, etcétera. facilitar las consultas de datos.
LA IDEA PRINCIPAL
Aplicaciones más usadas de Windows 10
UNIDAD 2 - TEMA 2
Software Utilitarios para
Windows 2
ALGUNOS UTILITARIOS PARA WINDOWS EDICIÓN DE DOCUMENTOS, FOTOGRAFÍAS Y
FING - Para ver si te están ingresando a tu red VÍDEOS
WiFi. FOXIT READER - Para ver, editar y guardar PDFs
UTILIDADES
7zip - Para extraer archivos comprimidos.
LA IDEA PRINCIPAL
Los mejores utilitarios para Windows 10
UNIDAD 2 - TEMA 3
SOFTWARE DE OFIMÁTICA
NAVEGADORES
Un Navegador de Internet es una aplicación de
software que les permite a los usuarios acceder
a los recursos que hay en internet y buscar en
sitios que tengan textos y gráficos. La mayoría
de los navegadores de Internet también les
da a los usuarios la habilidad de ver videos y
de escuchar música. Algunos navegadores de
Internet también vienen con más software
para enviar correo electrónico, acceder a los
grupos de noticias, y componer páginas Web.
Las páginas Web son similares a las páginas de
un libro. En un libro, las páginas se referencian
por un número, mientras que en Internet las
páginas tienen una dirección Web asignada. Los
navegadores de Internet más conocidos son
Google Chrome, Microsoft Internet Explorer
(I.E.), Mozilla Firefox, Safari y Opera.
LA IDEA PRINCIPAL
Aplicaciones de Oficina en Windows 10
UNIDAD 2 - TEMA 4
ANTIVIRUS
SOFTWARE UTILITARIOS CLASIFICACIÓN DE LOS PROGRAMAS
Los utilitarios o utilidades, son programas Existen gran variedad de programas cada uno
diseñados para realizar una función de ellos destinados a tareas muy diferentes
determinada, por ejemplo, un editor, un estos programas se denominan utilitarios y
depurador de código o un programa para diremos que se clasifican en:
recuperar datos perdidos o borrados Utilitarios Estándar: Traen su nombre
accidentalmente en el disco duro. debido a que son creados por las empresas
El término utilitario se refiere normalmente diseñadoras de software para determinada
al software que resuelve problemas utilidad.
relacionados con la administración del Por esta razón podemos decir que existen
sistema de la computadora. Existen en distintos tipos de programas utilitarios
nuestros medios programas utilitarios que estándar destinados a tareas muy diferentes
nos ayudan a resolver gran cantidad de algunos de estos son:
problemas, entre ellos tenemos las llamadas • Antivirus
utilidades: • Quemadores
• Mantenimiento
• Información
• Tareas de mantenimiento
• Seguridad
• Revisión de software
• Generadores de llaves
• Recuperar Datos Perdidos
• Reproductores de audio/video
• Eliminar software maliciosos etc.
• Compresores de archivos
Entre ellas podemos nombrar también el
• Programas Diseñados A medida
cifrado y descifrado de archivos, compresión
de archivos, desfragmentadores de disco, Los programas diseñados a medida son
editores de texto, respaldo, etc. aquellos que los programadores fabrican
especialmente a pedido de una empresa
un estudio contable o una universidad no
tienen marca registrada para ser utilizado por
cualquier usuario.
SOFTWARE UTILITARIO O SOFTWARE DE Antivirus es un antivirus de calidad y eficacia
DIAGNOSTICO realmente impresionantes, con una certeza
Los programas utilitarios que pueden servir prácticamente absoluta de que en cada una
de ayuda para el diagnóstico, reparación y de sus versiones detectará cualquier virus
mantenimiento de computadores son los conocido y, mediante una heurística compleja,
siguientes: por conocer.
SOFTWARE ANTIVIRUS En conjunto ESET NOD32 Antivirus es un
El software antivirus es un programa de antivirus de primera calidad, compitiendo
computación que detecta, previene y toma entre los mejores en la mayoría de las facetas
medidas para desarmar o eliminar programas de estos indispensables de los usuarios,
de software malintencionados, como virus aunque en la velocidad y la total detección
y gusanos. Puede ayudar a proteger su basa toda su potencia, destacando del resto.
computadora de virus usando software
antivirus, como por ejemplo Microsoft Security Esta versión de ESET NOD32 Antivirus se
Essentials. adapta a las últimas tendencias en lo que a
interfaz gráfica se refiere. La nueva interfaz,
aunque en inglés, es fácil de usar a más no
poder, y cuenta con dos modos: normal y
avanzado.
LA IDEA PRINCIPAL
Antivirus para proteger la Computadora
UNIDAD 2 - TEMA 5
GESTORES DE DISCO
SOFTWARE DESFRAGMENTADOR
Una de las tareas de PC recomendadas para
nuestros equipos es la desfragmentación del
disco duro, cuyo objetivo es reunificar toda
la información y eliminar los espacios vacíos
del disco duro, es decir, reordenar los datos
del disco duro, para que el sistema acceda
más rápido a la información, lo que agiliza el
rendimiento del equipo en general.
Existen multitud de programas para Windows AUSLOGICS DISK DEFRAG
que nos van a permitir realizar esta operación
Auslogic Disk
en nuestro disco duro.
Defrag es otro
DEFRAGGLER programa gratuito
que nos ayudará
Defraggler es uno
a desfragmentar
de los mejores
nuestra
programas para
computadora.
desfragmentar
n u e s t r a El programa funciona sin darnos
computadora. cuenta mientras trabajamos en nuestra
Defraggler va analizar computadora. El programa no solo
por completo nuestro desfragmenta nuestra computadora, sino
disco duro o también que optimiza nuestros archivos de sistema
se puede configurar en el disco. El programa tiene instalador,
para que analice pero también hay una versión portable que
archivos individuales. no necesita instalarse.
El programa es
MYDEFRAG
muy liviano y no es
necesario instalarse. MyDefrag es otra
Defraggler utiliza de las alternativas
la misma forma de que tenemos para
desfragmentación desfragmentar
que Windows, así que n u e s t r a
no tendrás problemas computadora. Este
de seguridad. programa también
funciona rápido y
SMART DEFRAG
utiliza bajo recursos.
Smart Defrag 2 es un programa de La diferencia de este
desfragmentación gratuito, está diseñada programa es que
para sacar el mejor rendimiento al disco duro. puedes utilizarlo con
No solo desfragmenta nuestro disco, también memorias USB o
racionaliza tus archivos en base a la frecuencia discos extraibles.
de uso, acelerando de manera significativa Incluye una configuración sencilla, un
la velocidad de nuestro disco. Smart Defrag, protector de pantalla y puede programar para
funciona rápido, automático y sin molestar, que el script funcione de manera automática
ya que funciona en el background. un día a la semana.
DISK SPEEDUP SOFTWARE COMPRESOR
Disc SpeedUp Los programas
es un programa utilitarios o de
totalmente gratuito utilidades y medios
y super rápido para auxiliares de
desfragmentar programación,
nuestro disco, son programas
también optimiza y aplicaciones
nuestro disco para un especiales o
mayor rendimiento. herramientas que
Es fácil de usar y sirven para facilitar
tiene una interfaz las tareas del usuario
muy intuitiva. y ayudarle a gestionar
SpeedUpdetecta el ordenador, pueden
todos los archivos tener dificultades
desfragmentados para encontrar las
en segundos características que
y reorganizar necesitan para llevar
archivos en nuestra a cabo una tarea.
computadora.
Este se centra en hacer que la ejecución de
El programa hará más rápido a la hora de las tareas habituales resulte más sencilla e
abrir un programa, también incrementa la intuitiva.
velocidad a la hora de buscar archivos, acorta Algunos de ellos inician a incorporarse como
el sistema al arrancar y mejora el rendimiento. rutina dentro de los sistemas operativos
modernos.
SOFTWARE COMPRESOR
Son aplicaciones no demasiadas grandes
El manejo de grandes cantidades de que realizan funciones muy específicas y
información en un reducido espacio, parece concretas.
ser no una necesidad sino una gran obsesión,
1. WINZIP
en nuestros días.
W i n Z i p e s ,
Por ello día a día se tratan de crear nuevas
probablemente,
maneras de mantener grandes cantidades de
el compresor de
información en un espacio lo más reducido
ficheros más antiguo
posible.
y más conocido. Es
Los programas compresores, de alguna
heredero del antiguo
manera, cumplen esa función. Tomando un
PKZIP de MS-DOS y
determinado archivo y comprimiéndolo para
ha cambiado mucho
que ocupe el menor espacio posible en el
a lo largo de los
disco.
años. Ahora soporta
VENTAJAS numerosos métodos
de compresión,
1. Un archivo comprimido pesa menos que
incluidos algunos
el original.
más nuevos que,
2. Puedes dividir un archivo comprimido en
en realidad, ya no
varias partes
son ZIP, pero que
3. Los archivos normales se pueden dañar
resultan mucho más
más fácilmente que los comprimidos.
eficientes.
Además, tiene integradas funciones online
para enviar ficheros directamente.
2. WINRAR PeaZip es, en realidad, una interfaz de usuario
para varios motores de compresión de línea
WinRAR es el otro
de comandos. Lo particular de este programa
“gran antiguo”
es que admite muchos formatos más o
de entre los
menos exóticos y que dispone del algoritmo
compresores. Este
de compresión más potente de todos: PAQ8.
programa procede de
Si te decides por PAQ8 conseguirás ahorros
Rusia (de hecho, RAR
de espacio importantes, pero has de pagar
quiere decir “Russian
el precio: PAQ8 es muy lento. De verdad. Al
ARchiver”) y utiliza
comprimir y descomprimir. Pero a cambio
un método distinto
casi hace desaparecer tus ficheros.
de compresión que
ZIP. Consigue unas 5. FREEUPX
tasas de compresión
FreeUPX no es
algo más altas que
un compresor
el ZIP tradicional
tradicional, ya que
y su velocidad de
está especializado en
funcionamiento es
ficheros ejecutables
comparable.
(.EXE, .COM y .DLL).
Tiene múltiples funciones de gestión de El trabajo de UPX es
ficheros, de prueba, protección anticorrupción reducir los ficheros
de ficheros, etc. ejecutables al tamaño
mínimo posible
3.ZIP
si n que dej en de
Zip arroja unas tasas funcionar. Ese es el
de compresión tipo de “magia” que
de lo más elevado realiza este programa.
comparado con los
Ahorra espacio en el disco y no requiere
dos anteriores y
absolutamente nada para descomprimir
tiene una velocidad
de nuevo los ficheros, ya que se incluye a si
de funcionamiento
mismo dentro del propio ejecutable, que se
envidiable, tanto
descomprime automáticamente cuando se
a la hora de
carga en la memoria del PC
comprimir, como de
descomprimir. Incluye SOTFWARE PARA BACKUP
varios métodos de
¿Por qué hacer copias de seguridad?
compresión, aunque
Lo más probable es que manejes información
te aconsejamos
importante y confidencial y dependes de ella
el LZMA que es el
para que tu negocio siga adelante. La pérdida
mejor. Naturalmente
de esta información supondría la pérdida de
también lee
horas de trabajo y de proyectos que tendría
otros formatos
graves consecuencias para la continuidad del
comprimidos y
negocio.
también dispone de
Hay que tener en cuenta que los soportes
funciones de gestión
donde recogemos esa información suelen
de ficheros, aunque
tener una vida útil limitada (averías,
su punto fuerte es la
desgastes…) y están sujetos a diversos riesgos
compresión.
y/o amenazas (accidentes, ataques...). Por
4. PEAZIP estos motivos tenemos que implementar
las medidas para proteger el mayor activo
que almacenamos en dichos soportes, la
información, así que empecemos a hacer
copias de seguridad.
URANIUM BACKUP Con copias programadas, soporte para
múltiples soportes internos y externos,
Empezamos por
copias sucesivas añadiendo únicamente
este programa, en
los datos que han cambiado para tardar
concreto por su
menos y ahorrar espacio (conocida como
versión gratuita,
copia diferencial), posibilidad de restaurar la
Uranium Backup
copia, e incluso tiene la opción de preparar
Free. Se trata de
una unidad USB a modo de disco ejecutable
una herramienta de
para hacer copias y restaurarlas sin iniciar
copias de seguridad
Windows.
clásica, con copias
programadas, COMODO BACKUP
aviso por correo
En este caso, Comodo
e l e c t r ó n i c o ,
Backup dos tipos de
posibilidad de
copia de seguridad:
guardar los archivos
local y online. En el
en dos o más espacios
primer caso, puedes
a la vez.
programar o realizar
Compresión en un único ZIP para que ocupe manualmente una
menos espacio y protegido con contraseña. copia en otra unidad
Lo único negativo es su aspecto, que no llama de disco, externa o
mucho la atención, pero por contra es fácil de interna.
configurar.
En cuanto a la copia online, de forma gratuita
DFINCBACKUP tienes hasta 5 GB, ampliable mediante
pago. Además de comprimir y cifrar los
Como en el caso
datos copiados, con Comodo Backup tienes
anterior, el aspecto
la posibilidad de programar la copia en el
de DFIncBackup no
momento más oportuno.
es su mejor cualidad,
pero al ver su lista MOZYHOME
de funciones, nos
El modelo de backup de MozyHome se centra
olvidamos enseguida
en usar sus propios servidores en Internet
de su diseño:
para guardar tus archivos a salvo. La cuenta
copias de seguridad
gratuita ofrece 2 GB de espacio, ampliables
incrementales
mediante pago. Como en otros programas
y diferenciales,
de corte más clásico, MozyHome realiza
compresión de la
copias automáticas y programadas. Además,
copia de seguridad
para ahorrar espacio opta por la copia
en ZIP protegido
incremental, renovando los archivos que
por contraseña,
cambian y manteniendo los que siguen igual
copia manual o
en vez de copiar el mismo fichero varias veces
programada.
en sucesivas copias.
Apagado automático y aviso por correo
En cualquier caso, elijas el programa que
electrónico al terminar la tarea de backup.
elijas, recuerda usar un disco externo distinto
PARAGON BACKUP & RECOVERY al que guarda los datos originales que quieres
Se puede destacar copiar, asegúrate que ese disco está en
su herramienta de buen estado y procura realizar las copias de
particionado de seguridad de Windows de forma periódica y
disco. También tiene habitualmente, para evitar largos periodos de
su propia aplicación tiempo sin backup. Si tienes un percance con
para realizar copias tu disco, lo agradecerás.
de seguridad de
Windows. Paragon
Backup & Recovery,
no confundir con
Redo Backup and
Recovery, también
es una utilidad de
backup al uso,
RESUMEN DEL TEMA
Los utilitarios o utilidades, son programas diseñados para realizar una función
determinada, por ejemplo, un editor, un depurador de código o un programa para
recuperar datos perdidos o borrados accidentalmente en el disco duro. El término
utilitario se refiere normalmente al software que resuelve problemas relacionados
con la administración del sistema de la computadora. Existen en nuestros medios
programas utilitarios que nos ayudan a resolver gran cantidad de problemas, entre
ellos tenemos las llamadas utilidades: En informática, una utilidad es una herramienta
que realiza:
Tareas de mantenimiento, Revisión de software, Recuperar Datos Perdidos, Eliminar
software maliciosos etc. Entre ellas podemos nombrar también el cifrado y descifrado
de archivos, compresión de archivos, desfragmentadoras de disco, editores de texto,
respaldo, etc.
LA IDEA PRINCIPAL
Utilidades para los discos duros
LECTURAS RECOMENDADAS
• https://www.xataka.com/basics/mejores-aplicaciones-herramientas-gratis-para-
windows-10-2021
• https://es.digitaltrends.com/computadoras/mejores-apps-para-windows/
• https://www.malavida.com/es/listas/mejores-programas-para-pc-006764#gref
• https://www.softzone.es/noticias/programas/12-programas-sacar-provecho-
pc-2021/
ACTIVIDADES Y EJERCICIOS
• Manejar los diferentes utilitarios de Windows.
• Dibujar con Paint, crear un documento con WordPad.
• Formatear disco e instales softwares utilitarios.
• Instalar antivirus y manejar el escaneo.
INTRODUCCIÓN COMPETENCIA
Diseño gráfico es la profesión de crear y “Poder comprender el uso de los diferentes
transmitir mensajes a través del contenido softwares de diseño gráfico tales como los
visual. Aplicando la jerarquía visual y técnicas vectoriales como los de mapa de bits”.
de composición de páginas, los diseñadores
utilizan tipografía e imágenes para satisfacer las CAPACIDADES
necesidades específicas de los usuarios de sus
productos. Asimismo, se centran en la lógica de • Comprender el diseño grafico como
visualización de los elementos en los diseños aplicaciones de creatividad publicitaria.
interactivos, para optimizar la experiencia • Manejar de manera simple los mejores
del usuario. Los diseñadores gráficos tienen softwares de diseño gráficos.
el objetivo de entregar de forma sencilla y • Diseñar fáciles logos, publicidades, volantes,
atractiva un gran mensaje. Es decir, inspirar caratulas, etc.
ideas de forma visual. Ya saben, una imagen vale
• Manejar los diferentes diseñadores, y
más que mil palabras. ¿El diseño gráfico está
presente en nuestras vidas? Sí, y mucho. Debes utilizar sus herramientas de combinación.
notarlo desde que abres los ojos. Apenas miras
tu teléfono, enciendes la televisión o miras
TEMAS
la etiqueta del shampoo que estás usando
cuando te das una ducha al levantarte, el
diseño está detrás de todo lo que estás viendo.
1
TEMA
PHOTOSHOP
En la actualidad, el diseño gráfico va muy de
la mano con la digitalización y despierta el
interés de muchos en esta extensa y diversa
disciplina. No solo por curiosidad, sino porque
desean genuinamente comenzar a crear 2
TEMA
COREL DRAW
algo más atractivo, ya sea contenido artístico
para sus marcas, emprendimientos, redes
sociales o incluso proyectos personales.
Sin diseñadores gráficos no se podría entender
el mundo actual, debido a que son ellos 3
TEMA
ILlUSTRATOR
los creadores de elementos que facilitan la
comunicación en un mundo globalizado.
ACTITUDES
• Tener un gran interés en el tema del curso
4
TEMA
AFTER EFFECTS
• Tener la capacidad de funcionar bien como
grupo
• Realiza el aprendizaje de valores
• Tener la capacidad de pensar y trabajar en 5 PREMIEre
forma independientemente TEMA
MENÚ SELECCIÓN
LA IDEA PRINCIPAL
Editar imágenes con Photoshop
UNIDAD 3 - TEMA 2
COREL DRAW
INTRODUCCIÓN A COREL DRAW SELECCIÓN DE ESPACIO DE TRABAJO
CorelDRAW® Graphics abarcan todas las La colección de espacios de trabajo
necesidades: desde la ilustración de vectores especializados se ha diseñado con el
hasta el diseño de página, pasando por propósito de contribuir a aumentar la
la edición de fotografías, la vectorización productividad; para ello, estos facilitan el
de mapas de bits, los gráficos web y la acceso a las herramientas que se utilizan con
administración de fuentes. mayor frecuencia en tareas o flujos de trabajo
determinados. Entre los espacios de trabajo
disponibles se incluyen Predeterminado,
Retoque, Lite, Ilustración, Diseño de página y
Adobe Illustrator.
Para seleccionar un espacio de trabajo, haga
clic en Ventana
• Espacio de trabajo o seleccione uno de
los espacios de trabajo disponibles en la
pantalla de inicio.
• Para añadir herramientas o controles al
espacio de trabajo activo, haga clic en el
botón Personalización rápida.
FORMAS
CorelDRAW ofrece una amplia gama de
herramientas para dibujar formas.
RECTÁNGULOS FORMAS PREDEFINIDAS
Si realiza un movimiento de arrastre en Con la herramienta Formas comunes del
diagonal mediante la herramienta Rectángulo, menú lateral Objeto, también puede dibujar
puede dibujar un rectángulo o un cuadrado formas básicas, flechas, así como formas
(cuando mantiene presionada la tecla Ctrl ). de diagramas de flujo, de orla y de notas.
La herramienta Rectángulo de 3 puntos le Seleccione una forma preestablecida en la
permite dibujar rectángulos sesgados barra de propiedades y arrastre el tirador
rápidamente. con forma de diamante (glifo) con el fin de
modificarla apariencia de ciertas formas.
LA IDEA PRINCIPAL
Diseño Gráfico Vectorial.
UNIDAD 3 - TEMA 3
ILlUSTRATOR
ILLUSTRATOR Para comenzar a trabajar en el programa
se activa la pestaña en el borde superior
Se refiere al uso de fórmulas geométricas
izquierdo, la cual aparece como “File”, al tocar
para representar imágenes por software
con el mouse sale un desplegado en el cual
y hardware. Esto sígnica que los dibujos
vamos a hacer clic en el primero que es “New”.
vectoriales son creados con primitivas
geométricas como puntos, líneas, curvas o
polígonos.
Las imágenes vectoriales son más flexibles
porque pueden ser redimensionadas y
extendidas sin perder calidad. Incluso la
animación por gráficos vectoriales suele ser
más sencilla. Otra ventaja de los gráficos
vectoriales es que su representación suele
requerir menos memoria y menos espacio de
almacenamiento.
LA IDEA PRINCIPAL
Dibujar con Illustrator
UNIDAD 3 - TEMA 4
AFTER EFFECTS
A la derecha aparece otra pestaña llamada
Cuando queremos dar un salto de calidad muy
“Capa”. Ahí podrás ver lo que estés trabajando
grande en cualquier proyecto videográfico,
en una capa concreta del proyecto cuando
poner nuestra creatividad a disposición de
estés aplicando diferentes efectos que veremos
este programa es uno de los pilares que
más adelante. No te muestra el resultado final,
marca la diferencia. Lo que pasa es que, de
sino solo los cambios de esa capa.
entrada, su interfaz asusta y puede parecer
Justo en la parte superior, nos encontramos
muy complicado hacer algo, aunque sea muy
con la barra de herramientas.
sencillo.
1. Información
2. Audio
3. Previsualización
4. Efectos y ajustes preestablecidos
5. Alinear
6. Bibliotecas
7. Carácter (para modificar todo lo relacionado
con el estilo de letra)
8. Párrafo (para hacer ajustes en el texto)
9. Rastreador
SE EMPIEZAS A ANIMAR
La razón por la que mi composición de
Photoshop tiene tantas capas es porque cada
una representa un objeto diferente en la
imagen. Eso me sirve para lo que vas a aprender
ahora, que es animar algunos de esos objetos
por separado.
Para que no te líes con tantas capas, primero
vas a ocultar todas menos la capa “fondo”
y en la que aparece. Las capas se ocultan o
se muestran clicando en el ojito que hay a la
izquierda de cada una de ellas. Otra forma de
ocultarlas es la siguiente:
1. Abajo del todo, selecciona “conmutar
definidores > modos” para alternar entre los
definidores y los modos de fusión.
2. Elige los definidores y entre los que
aparecen, hay uno que es como la cabeza de
un muñequito, se llama “tímido”. Si pinchas
en él, la cabeza se oculta. Entonces, puedes
darle a ese icono en cada capa que quieras
ocultar.
3. Un poco más arriba y a la derecha de 3. Escala: es el tamaño del objeto.
los definidores, clica en el icono “oculta 4. Rotación y opacidad se entienden por sí
todas las capas con el definidor” “tímido” solos, ¿no?
“activado”. El hecho es que todas estas opciones se pueden
4. Las capas se han ocultado, dejando a la vista modificar y animar mediante fotogramas.
solo las que vas a animar por ahora. Interpolación de fotogramas.
Puedes ver este proceso en la siguiente imagen: Aunque suene a tecnicismo, es muy
fácil de entender. La interpolación es el
comportamiento que quieres que tengan
los fotogramas que hay en medio de los que
tú hayas creado. Por ejemplo, modificar la
velocidad y posición de la animación entre dos
fotogramas concretos.
Para ello haz lo siguiente:
1. Selecciona con el ratón el fotograma de
inicio y final. Haz clic derecho y luego a
“asistente de fotogramas clave”.
2. Las siguientes opciones son para acelerar
o desacelerar suavemente la animación, o
ambas a la vez. La que más se suele usar es
la de las dos a la vez.
3. Cuando la selecciones, la forma de los
fotogramas cambia a un reloj de arena y el
movimiento que hayas puesto será mucho
más fluido.
Vale, ahora vas a editar la capa donde salgo
yo. Si te fijas, en todas las capas hay un
pequeño triángulo que puedes pulsar para
desplegar más opciones. Pues tienes que
desplegar la capa y volver a hacerlo donde dice
“transformar”. Y te salen estas opciones:
1. Punto de anclaje: es el circulito que aparece
en la imagen y que determina el punto a
partir del cual se aplicarán los efectos.
2. Posición: es el movimiento que le quieras
dar al objeto en cuestión. Por lo tanto, es el
principio básico de la animación. Si activas
el relojito que está a la izquierda, verás que
en el timeline se habrá creado un fotograma
(con forma de rombo). Eso quiere decir CAPAS DE FORMAS.
que, en ese momento, se ha congelado la Para crear una forma que quieras animar, sigue
posición actual. Ahora, puedes mover la estos pasos:
línea unos segundos después y cambias la 1. Selecciona con el ratón el fotograma de
posición del objeto modificando los valores, inicio y final. Haz clic derecho y luego a
y se crea otro fotograma. “asistente de fotogramas clave”.
2. Las siguientes opciones son para acelerar Para modificar este efecto, tienes que irte al
o desacelerar suavemente la animación, o monitor ”proyecto” y pinchar en la pestaña
ambas a la vez. La que más se suele usar es “controles de efectos”. Si añades varios efectos,
la de las dos a la vez. ten en cuenta que los que aparezcan arriba
3. Cuando la selecciones, la forma de los también tendrán jerarquía sobre los de abajo.
fotogramas cambia a un reloj de arena y el Como se ve, puedes animar el desenfoque.
movimiento que hayas puesto será mucho Activando el relojito y colocando fotogramas
más fluido. con distintos valores en la línea de tiempo,
Una vez se ha creado la capa de formas, podrás hacer que tu figura pase de estar nítida
despliega la opción “transformar”. Ahí, jugando a desenfocada.
con los fotogramas del punto de anclaje, la Si en cualquier momento quieres modificar
posición y la escala, y con un poco de paciencia cualquier fotograma, no hace falta que vayas
e imaginación, podrás crear alguna animación desplegando las opciones dentro de la capa.
de movimiento sencilla. Simplemente, teniéndola seleccionada,
presiona el atajo “U” y te aparecerán todos.
EFECTO 3D.
Para este efecto, tienes que volver a mostrar
las capas que habías ocultado con el definidor
”tímido”. Aprovechando que estás de nuevo
con los definidores, activa el icono de 3D para
todas las capas, que es este:
LA IDEA PRINCIPAL
Crear efecto de video en After Effects
UNIDAD 3 - TEMA 5
PREMIERE
CREAR UN PROYECTO NUEVO La ventana 1 corresponde a la Bandeja general
del proyecto.
Se abrirá la primera ventana donde se listan
La ventana 2 es la Barra de herramientas.
los proyectos recientes. Para crear un proyecto
La ventana 3 es la Línea de tiempo.
nuevo: [Nuevo Proyecto].
La ventana 4 es el Monitor de audio
Al crear el proyecto,
Las ventanas 5 y 6 son Monitor de origen y
Monitor de Programa
respectivamente. En caso de que el espacio de
trabajo no se presente de tal manera, se puede
configurar mediante:
Ventana Espacio de trabajo Edición
CORRECCIÓN DE SONIDO
apretado SHIFT y se los selecciona de a grupo.
En la corrección de sonido se recomienda
Por último, pueden utilizarse transiciones de
comenzar compensando los distintos clips y
audio de manera que el cambio sonoro sea
pistas de la secuencia para que el nivel de audio
gradual y no lo abrupto de un corte. Para ello
sea parejo. Para ello se utiliza el Mezclador
hacemos clic en el corte entre dos clips y con
de audio de la secuencia, ubicado como una
clic derecho seleccionamos Aplicar transición,
pestaña de la ventana de Monitor de origen.
se genera un bloque de transición constante
Con esta herramienta podemos visualizar
de audio. Se puede estirar la transición
el nivel de las distintas pistas de audio de la
arrastrando los extremos del bloque.
EXPORTAR LA SECUENCIA
Herramienta Seleccionar Pista: Esta
secuencia. herramienta se utiliza para seleccionar
Los controladores de volumen, ubicados a todos los clips a la derecha del cursor en una
la izquierda de cada medidor de audio en secuencia. Para seleccionar un clip y s los clip
amarillo, son el primer paso para equilibrar a la derecha de su propia pista, haga clic en
el nivel de cada pista de audio. También se el clip. Para seleccionar un todas los clips de
puede panear los distintos canales, a través todas las pistas, haga clic en el clip y presione
de los controladores de paneo ubicados en el Mayús. Su atajo n la tecla A. en la parte superior
de la secuencia, en la Línea de tiempo, debería
aparecer coloreada de gris.
Luego vamos a Archivo Exportar Medios,
en ese momento se desplegará el siguiente
cuadro de diálogo en donde debemos verificar
que los parámetros coincidan con los de los
archivos de origen. Esto lo vemos en Ajustes
básicos de video en el recuadro amarillo.
Además puedes verificar que se encuentra todo
el contenido que quieres mostrar en el video
trasladándose por la Línea de tiempo ubicada
en la parte inferior izquierda de la ventana en
celeste.
LA IDEA PRINCIPAL
Editar videos con Adobe Premiere
LECTURAS RECOMENDADAS
• https://www.xataka.com/fotografia-y-video/los-14-retoques-mas-faciles-de-
photoshop-que-te-van-a-dar-mejor-resultado-para-editar-fotos
• https://pccadla.com/programas/corel-draw-graphics-suite/
• https://helpx.adobe.com/es/illustrator/tutorials.html
• https://www.adobe.com/la/products/aftereffects.html
• https://www.adobe.com/la/products/premiere-elements.html
ACTIVIDADES Y EJERCICIOS
• Realizar fotomintajes con Adobe Photoshop
• Realizar publicidad en volantes usando Corel Draw.
• Realizar un dibujo en 3d con Adobe Illustrator.
• Crear efecto para videos con Adobe Afect Effect
• Editar videos con adobe Premiere.
INTRODUCCIÓN CAPACIDADES
La, capacita al estudiante en los conceptos • Conoce e identificar la aplicación de un
y elementos fundamentales para facilitar su algoritmo para resolver problemas.
introducción al mundo de la programación y • Construye algoritmos para resolver
pueda ejercitar su capacidad de razonamiento. problemas basados en estructuras
Se aplica en los conceptos de Algoritmos,
repetitivas y condicionales.
seudocódigo, Mini especificaciones, Diagramas
de Flujo, como sabemos no existe una ACTITUDES
regla precisa para escribir un programa • Tener la capacidad de funcionar bien como
que resuelva un dado problema practico.
grupo
Utilizando los programas PSeInt y DFD.
En matemáticas, lógica, ciencias de la • Tener la capacidad de pensar y trabajar en
computación y disciplinas relacionadas, un forma independientemente
algoritmo (del latín algorithmus y este del • Tiene la disciplina para estudiar sin
griego arithmos, que significa «número», recordatorios externos.
quizá también con influencia del nombre del • Expresan mayor preocupación por los
matemático persa Al-Juarismi). Es un conjunto resultados obtenidos en sus evaluaciones.
de instrucciones o reglas definidas y no-
ambiguas, ordenadas y finitas que permite, TEMAS
típicamente, solucionar un problema, realizar
un cómputo, procesar datos y llevar a cabo
otras tareas o actividades. Y también, dados un
estado inicial y una entrada, siguiendo los pasos
1
TEMA
concepto básico de
algoritmo
sucesivos se llega a un estado final y se obtiene
una solución. Los algoritmos son el objeto de
estudio de la algoritmia. En la vida cotidiana,
se emplean algoritmos frecuentemente para
resolver problemas determinados. Algunos 2
TEMA
tipos de
algoritmos
ejemplos son los manuales de usuario, que
muestran algoritmos para usar un aparato, o
las instrucciones que recibe un trabajador de
su patrón. Algunos ejemplos en matemática
son el algoritmo de multiplicación, para calcular
el producto, el algoritmo de la división para
3
TEMA
diseño y ejecución de
diagramas de flujo
calcular el cociente de dos números, el algoritmo
de Euclides para obtener el máximo común
divisor de dos enteros positivos, o el método de
Gauss para resolver un sistema de ecuaciones
lineales. En términos de programación, un
algoritmo es una secuencia de pasos lógicos
4
TEMA
pseudocódigo pseint
que permiten solucionar un problema.
COMPETENCIA
“Conocer e identificar la terminología para
construir y resolver algoritmos con las
5
TEMA
diagramas de flujo
con dfd
estructuras de datos más adecuadas”.
UNIDAD 4 - TEMA 1
concepto básico de algoritmo
¿QUÉ ES UN ALGORITMO? Un algoritmo es un método para resolver un
problema mediante una secuencia de pasos
Un computador es capaz de realizar “sólo” bien definidos, ordenados y finitos.
determinadas acciones sencillas, tales como Para que se pueda ejecutar el algoritmo es
sumar, comparar o transferir datos, pero los preciso, además, que se disponga de las
problemas que normalmente interesa resolver “herramientas” adecuadas para llevar a cabo
son más complejos. Para resolver un problema cada uno de los pasos. Si no es así, estos
real es necesario, en primer lugar, encontrar deberán, a su vez, ser descompuestos en una
un método de resolución y, posteriormente, secuencia (algoritmo) de pasos más simples
determinar la sucesión de acciones sencillas que sí se puedan llevar a cabo.
(susceptibles de ser ejecutadas por un Un programa de computador es una sucesión
computador) en que se descompone dicho de ´ordenes que describen un algoritmo,
método. No todos los métodos de solución de escritas de forma que puedan ser entendidas
un problema pueden ser puestos es práctica en por el computador.
un computador. En un algoritmo (y por tanto en un programa)
Para que un procedimiento pueda ser se distinguen las siguientes acciones:
implantado en un computador debe ser: • Entrada: es la información de partida que
• Preciso: estar compuesto de pasos bien necesita el algoritmo para arrancar.
definidos (no ambiguos) y ordenados. • Proceso: es el conjunto de todas las
• Definido: si se sigue dos veces, se obtiene el operaciones a realizar.
mismo resultado cada vez. • Salida: son los resultados obtenidos.
• Finito: tener un número finito de pasos.
Un procedimiento o método para resolver un ALGORITMO
problema que cumpla los requisitos anteriores
se dice que es un algoritmo. Se puede dar por En aritmética y programación informática,
tanto la siguiente definición: conjunto ordenado de instrucciones
sistemáticas que permite hallar la solución
de un problema específico: el algoritmo que
se emplea para hallar las raíces cuadradas;
un programa informático es un conjunto de
secuencias de instrucciones elementales
en forma de algoritmo La palabra algoritmo
se deriva de la traducción al latín de la
palabra árabe Alkhowarizmi, nombre de un
matemático y astrónomo árabe que escribió
un tratado sobre la manipulación de números
y ecuaciones en el siglo IX. Son un conjunto
de operaciones que se utilizan para resolver
problemas específicos. En estas instrucciones
se indica la secuencia de operaciones que
se deben realizar para que partiendo de los
datos de entada se pueda obtener el resultado
buscado.
Ejemplo:
PSEUDOCÓDIGO
SENTENCIAS
LA IDEA PRINCIPAL
Usar el algoritmo para solucionar problemas
UNIDAD 4 - TEMA 2
TIPOS DE ALGORITMOS
TIPOS DE ALGORITMOS • Algoritmo Cotidiano: es la serie de pasos
• Cualitativos: son aquellos en los que se que realizamos en nuestra vida diaria para
describen los pasos utilizando palabras. realizar las diferentes tareas y actividades
Son todos aquellos pasos o instrucciones comunes, desde los pasos al levantarnos,
descritos por medio de palabras que sirven así como ir de compras, etc.
para llegar a la obtención de una respuesta • Algoritmo Voraz: un algoritmo voraz es
o solución de un problema cualquier aquel que, para resolver un determinado
• Cuantitativos: son aquellos en los que se problema, sigue una meta heurística
utilizan cálculos numéricos para definir consistente en elegir la opción óptima en
los pasos del proceso. Son aquellos pasos cada paso local con la esperanza de llegar a
o instrucciones que involucran cálculos una solución general óptima.
numéricos para llegar a un resultado • Algoritmo Determinista: es un algoritmo que,
satisfactorio. en términos informales, es completamente
predictivo si se conocen sus entradas.
• Algoritmo Heurístico: es un algoritmo que
abandona uno o ambos objetivos; por
ejemplo, normalmente encuentran buenas
soluciones, aunque no hay pruebas de que
la solución no pueda ser arbitrariamente
errónea en algunos casos; o se ejecuta
razonablemente rápido, aunque no existe
tampoco prueba de que siempre será así.
Las heurísticas generalmente son usadas
TIPOS DE ALGORITMOS DE
cuando no existe una solución óptima bajo
RAZONAMIENTO:
las restricciones dadas (tiempo, espacio), o
• Algoritmos Estáticos: son los que funcionan
cuando no existe del todo.
siempre igual, independientemente del tipo
• Algoritmo de escalada: la idea básica
de problema tratado.
consiste en comenzar con una mala
• Algoritmos Adaptativos: algoritmos con
solución a un determinado problema y,
cierta capacidad de aprendizaje.
repetidamente, aplicar optimizaciones a la
• Algoritmos Probabilísticos: son algoritmos
misma hasta que esta sea óptima o satisfaga
que no utilizan valores de verdad booleanos
algún otro requisito.
sino continuos. Existen varios tipos de
algoritmos probabilísticos dependiendo de
su funcionamiento, pudiéndose distinguir:
• Algoritmos numéricos: que proporcionan
una solución aproximada del problema.
• Algoritmos de Montecarlo: que pueden dar
la respuesta correcta o respuesta erróneas
(con probabilidad baja).
• Algoritmos de Las Vegas: que nunca dan
una respuesta incorrecta: o bien dan la
respuesta correcta o informan del fallo.
¿CIENCIAS EN QUE SE APOYA LA Algoritmos repetitivos finitos
ALGORITMIA PARA PRODUCIR
Otro paso en la elaboración
SOLUCIONES INGENIOSAS?
de un algoritmo es el
de la iteración de una
• Ciencias de la Computación. o más instrucciones
• Matemáticas. involucradas en la solución
• Ciencias Sociales. de un requerimiento,
• Ciencias Políticas. por tanto, existen dos
esquemas el cualitativo
y el cuantitativo en los
cuales el programador o
desarrollador debe tener
agilidad y destreza para
su selección; estos a su
vez se componen de las
siguientes estructuras
TIPOS DE ALGORITMO (mientras, haga mientras
que y para). Los algoritmos
Algoritmos secuenciales finitos deben tener un
Es aquélla en la que una número finito de pasos,
acción (instrucción) sigue por lo que debe estar
a otra en secuencia. Las limitado tanto en tiempo
tareas se suceden de de realización como por
tal modo que la salida el número de pasos que
de una es la entrada realiza
de la siguiente y así Algoritmos repetitivos infinitos
sucesivamente hasta el fin
del proceso. La estructura El bucle de la siguiente
secuencial tiene una figura es infinito, ya que las
entrada y una salida. Su instrucciones (1), (2) y (3) se
representación gráfica es ejecutan indefinidamente,
la siguiente: pues no existe salida del
bucle, al no cumplirse una
Algoritmos condicionales determinada condición
En los lenguajes de
programación es común
el uso de condicionales
que sirven para denotar
diferentes alternativas
que pueden llevarse a
cabo dado el valor de una
expresión lógica, el cual
siempre será verdadero o
falso. La forma general que
tiene un condicional (una
pregunta) es la siguiente:
SI (expresión lógica
verdadera) instrucciones
que se realizan si la
expresión lógica es
verdadera EN CASO
CONTRARIO instrucciones
que se realizan si la
expresión lógica es falsa
RESUMEN DEL TEMA
Un algoritmo es una combinación de pasos lógicos dispuestos de forma organizada
para resolver un problema. Los algoritmos ayudan a ordenar el trabajo en numerosas
disciplinas. En informática se utilizan para expresar las instrucciones con las que se
realizan las funciones, y se suelen expresar mediante diferentes tipos de diagrama.
Existen distintos criterios para clasificar algoritmos.
Según el sistema de signos con el que describen los pasos a seguir:
Algoritmos cualitativos. Se hace a través de palabras, es decir, las instrucciones son
verbales. Por ejemplo, recetas de cocina.
Algoritmos cuantitativos. Se hace a través de cálculos numéricos. Por ejemplo, para
obtener la raíz cuadrada de un número
LA IDEA PRINCIPAL
Definir los tipos de algoritmos
UNIDAD 4 - TEMA 3
DISEÑO Y EJECUCIÓN DE DIAGRAMAS DE
FLUJO
SIMBOLOGÍA USADA EN UN DIAGRAMA DE INICIAR LA APLICACIÓN DIA
FLUJO Para iniciar Dia entra en la sección Aplicaciones
Dia es una aplicación diseñada para crear en el menú principal y haz clic en el icono Dia. O
diagramas técnicos. Su interfaz y funciones bien, escribe “dia” en la ventana Ejecutar.
son similares al programa Visio para Windows.
Algunas características de Dia son: la impresión
de varias páginas, la exportación a diferentes
formatos (EPS, SVG, CGM y PNG) y la capacidad
de utilizar formas personalizadas creadas
por el usuario como simples descripciones
XML. Dia es útil para dibujar diagramas UML
(Lenguaje Unificado de Modelado), mapas de
red, y diagramas de flujo.
CREAR UN LIENZO
Al iniciar Dia, aparece de forma automática
un lienzo en blanco. Todos los diagramas se
dibujan en su propio lienzo. Si deseas un lienzo
Dia es una aplicación desarrollada para crear nuevo, selecciona en el menú Archivo Nuevo. El
una gran variedad de diagramas. Dia es fácil lienzo se personaliza de varias formas a través
de aprender y lo suficientemente flexible como de opciones como cambiar el color de fondo o
para permitir a los usuarios crear diagramas el de las líneas de cuadrícula.
altamente personalizados.
HACER UN DIAGRAMA EL LIENZO
Hacer un diagrama con Dia es fácil. La Caja de Introducción al lienzo, en Dia el lienzo es la
herramientas contiene una paleta de objetos ventana que contiene el diagrama. Todos los
predefinidos en los que se incluyen formas objetos del usuario se colocan y organizan en
simples, líneas y objetos especializados. Los él.
diagramas se componen de objetos. Los
objetos son formas o líneas que pueden tener
REGLAS
diferentes colores y tamaños, asimismo pueden
Las reglas aparecen en la parte superior
ser simples dibujos de línea, texto o imágenes a
e izquierda del lienzo de Dia. Muestran,
todo color. Algunos objetos permiten introducir
en centímetros el tamaño de su lienzo.
texto dentro de ellos.
Un centímetro de la pantalla no será igual
Para agregar un objeto al lienzo, haz clic en la
necesariamente a un centímetro real. Esto
Caja de herramientas sobre el icono del objeto
dependerá de la configuración de puntos por
que deseas y, a continuación, vuelve a hacer clic
pulgada (DPI) del monitor y su porcentaje
en el punto del lienzo donde quieres colocarlo.
de zoom. Por ejemplo, si el monitor está
Éste aparecerá en el lugar que seleccionaste.
configurado a 96 DPI y su porcentaje de zoom
Un objeto se puede mover al hacer clic sobre
es de alrededor de 185%, entonces la regla en
él y arrastrarlo con el mouse sin dejar de
pantalla es a escala real. Independientemente
presionar el botón izquierdo. Se puede cambiar
de esta configuración, siempre se puede ver
el tamaño del objeto al hacer clic sobre uno de
qué tan grande, los objetos y diagramas, están
sus “tiradores”, verdes o rojos, y al arrastrarlo
usando la regla en pantalla.
hasta que tenga el tamaño necesario.
Los objetos pueden conectarse mediante Nota: al imprimir un diagrama y seleccionar la
líneas. Sólo tienes que arrastrar los extremos opción Escala/Escala al 100.0%, el diagrama se
de una línea a cualquier punto de conexión imprimirá a escala independientemente del
(pequeña “x” color azul) en un objeto. Una vez ajuste de los DPI de la impresora o el factor
que los objetos están conectados, se pueden de vista zoom.
mover y la línea se extiende para mantenerlos
unidos. Cada regla tiene una flecha que se mueve a lo
Para ver y editar las propiedades largo de la regla para mostrar la coordenada
predeterminadas de los objetos dentro de exacta del puntero del mouse. Por ejemplo,
la Caja de herramientas, haz doble clic sobre si el usuario mueve el mouse hacia arriba,
el icono que lo representa. Esto te permitirá la flecha de la regla vertical se moverá hacia
personalizar varias propiedades ya establecidas arriba, indicando el cambio. Estas flechas son
de cada objeto. Es posible personalizar la útiles cuando un objeto necesita alinearse
alineación del texto y las propiedades de la exactamente en cierto punto de medición.
fuente (tipo de letra) en los objetos que incluyen Las reglas pueden ocultarse temporalmente en
texto.Dia contiene un conjunto de formas el documento que está abierto, elije la opción
estándar y objetos de línea. Para éstas existen del Menú Ver Mostrar reglas. A diferencia de las
opciones como modificar la transparencia, la líneas de cuadrícula, las reglas no pueden ser
forma de la esquina y la relación de aspecto. Dia desactivadas de forma predeterminada para
incluye un gran número de objetos predefinidos los nuevos documentos.
para diversos usos, entre ellos, diagramas de
flujo, diagramas UML, diagramas de red, y
muchos otros.Muchas tareas frecuentes en Dia
requieren seleccionar uno o varios objetos, por
ello incluye diferentes maneras de seleccionar
objetos rápidamente.
Las capas crean imágenes múltiples las cuales
en realidad son una sola imagen. Al hacer esto,
se puede editar una capa sin preocuparse de
que afecte a cualquiera de las otras.
Dia fue diseñado para hacer que la adición de
nuevas formas definidas por el usuario sea
muy sencilla.
OBJETOS Y LA CAJA DE HERRAMIENTAS AGREGAR OBJETOS
Un diagrama elaborado en Dia consiste en un Para agregar objetos al lienzo de Dia haz clic en
conjunto de objetos. Los objetos son formas el botón de icono del objeto deseado en la Caja
que están predefinidas o son definidas por de herramientas y después haz clic en el lienzo
el usuario. La Caja de herramientas permite en el punto de inserción que desees. En ese
seleccionar el objeto deseado y configurar las momento se insertará el objeto seleccionado.
propiedades predeterminadas para los objetos. Para agregar con rapidez varios objetos
del mismo tipo en el diagrama usa la barra
espaciadora para alternar entre el control
INFORMACIÓN GENERAL DE LA CAJA DE
Modificar y el objeto. Por ejemplo, si quieres
HERRAMIENTAS DE DIA
agregar varios objetos Caja en el diagrama,
Cuando se ejecuta Dia se abren dos ventanas:
primero, haz clic en el icono Caja y después en
el lienzo, que contiene el diagrama, y la Caja
el lienzo. En ese momento el control Modificar
de herramientas, que contiene las paletas
será seleccionado automáticamente. Para
de objetos y otros controles. La Caja de
volver a seleccionar el control Caja, presiona la
herramientas se divide en tres regiones: la
barra espaciadora. Haz clic en el lienzo otra vez
región superior contiene catorce botones. Los
para agregar un segundo objeto Caja. Continúa
tres primeros son los controles utilizados para
presionando Espacio y haz clic para agregar
ajustar el diagrama. Los once siguientes son los
tantos objetos Caja como se desees.
iconos para los objetos básicos integrados.
La parte central de la Caja de herramientas Tip: si estás utilizando colores o estilos de
contiene los objetos Especiales seleccionados. línea distintos para diferentes objetos, un
Esto se utiliza para hacer una selección entre truco para ahorrar tiempo es crear un archivo
las muchas hojas integradas y suministradas de objetos de muestra con las propiedades
con Dia, tales como UML, diagrama de flujo, de deseadas en un diagrama diferente. Después,
red, etc. copia y pega estos objetos en tu diagrama de
La parte inferior de la Caja de herramientas trabajo a medida que los necesites.
contiene controles especiales que establecen
las propiedades predeterminadas de los CONECTAR OBJETOS CON LÍNEAS
objetos colocados en el lienzo. Estos incluyen
el color de primer plano, color de fondo, y el
ancho de línea. También hay tres controles que
establecen las propiedades predeterminadas
de los objetos de línea. Éstos son: estilo de
flecha al principio, estilo de flecha al final y
estilo de línea.
OBJETOS BÁSICOS
TEXTO
DIAGRAMA DE FLUJO
Dia soporta el uso del texto como su propio
Los diagramas de flujo se encuentran
tipo de objeto. El texto puede ser colocado en
habitualmente en la programación informática,
el lienzo haciendo clic en el botón de texto en la
mercadeo, economía, y cualquier otra
Caja de herramientas.
operación semilineal que requiere planificación.
La mayoría de los objetos de diagrama de flujo
Nota: El texto en Dia puede utilizar casi permiten la entrada de texto.
cualquier fuente disponible en el sistema. FS (Estructura de Función). - Editor de
Pero si vas a intercambiar diagramas con Diagramas de Estructura de función (FS). Estos
las personas que utilizan una plataforma objetos requieren el uso del menú contextual
diferente, sería prudente limitarse a un para acceder a gran parte de su funcionalidad.
subconjunto común.
LA IDEA PRINCIPAL
Dibujar diagramas de flujo con Dia
UNIDAD 4 - TEMA 4
PSEUDOCÓDIGO EN PSEINT
MANEJO DEL ENTORNO PSEINT representación usando diagramas de flujo. Un
Cuando nos enfrentamos a un problema en diagrama de flujo es un diagrama que utiliza
la vida cotidiana, su resolución requiere que símbolos (cajas) estándar y que tiene los pasos
sigamos una serie de pasos; para tal fin. El del algoritmo escritos en esas cajas unidas
conjunto ordenado de pasos seguidos con el fin por flechas, denominadas líneas de flujo, que
de resolver un problema o lograr un objetivo es indican las secuencia que debe ejecutar el
conocido como algoritmo. algoritmo
Un algoritmo es un conjunto de instrucciones Por otro lado, el pseudocódigo es un lenguaje
que especifica la secuencia de operaciones a de especificación (descripción) de algoritmos. El
realizar, en orden, para resolver un problema uso de tal lenguaje hace el paso de codificación
específico; en otras palabras, un algoritmo es final (traducción al lenguaje de programación)
una fórmula para la resolución de un problema. relativamente fácil, por lo que este es
La definición de un algoritmo debe describir considerado un primer borrador de la solución
tres partes: Entrada, Proceso y Salida, así: del programa.
• Entrada: Información dada al algoritmo, o
conjunto de instrucciones que generen los MANEJO DEL ENTORNO PSEINT
valores con que ha de trabajar. PSeInt es principalmente un intérprete
• Proceso: Cálculos necesarios para que a de pseudocódigo. por lo cual el tipo de
partir de un dato de entrada se llegue a los pseudocódigo que interpreta está basado en
resultados. el pseudocódigo presentado en la cátedra de
• Salida: Resultados finales o transformación Fundamentos de Programación. Actualmente
que ha sufrido la información de entrada a incluye otras funcionalidades como editor y
través del proceso. ayuda integrada, generación de diagramas
Cuando se formula un algoritmo el objetivo es de flujo o exportación a código C++ (en etapa
ejecutar este en un computador, sin embargo, experimental).
para que este entienda los pasos para llevar a
cabo nuestro algoritmo debemos indicárselo
siguiendo un conjunto de instrucciones y reglas LA INTERFAZ Y EL ÁREA DE TRABAJO
que este entienda, y estas instrucciones son
abstraídas en lo que conocemos como lenguaje
de programación.
Un algoritmo codificado siguiendo un
lenguaje de programación es conocido como
programa. Antes de aprender un lenguaje
de programación es necesario aprender la
metodología de programación, es decir la
estrategia necesaria para resolver problemas
mediante programas.
Como punto de partida se aborda la manera
como es representado un algoritmo.
Básicamente analizamos dos formas, la
representación usando pseudocódigo y la
EL PSEUDOCÓDIGO
Forma general de un algoritmo en
Pseudocódigo
Todo algoritmo en pseudocódigo de Pseint
tiene la siguiente estructura general:
Proceso SinTitulo
acción 1;
acción 1;
.
.
acción n;
FinProceso
Comienza con la palabra clave Proceso
seguida del nombre del programa, luego le
sigue una secuencia de instrucciones y finaliza
con la palabra FinProceso. Una secuencia
de instrucciones es una lista de una o más
instrucciones, cada una terminada en punto y
coma.
Las acciones incluyen operaciones de entrada y
salida, asignaciones de variables, condicionales
si-entonces o de selección múltiple y/o lazos
mientras, repetir o para.
OPERACIONES -EJEMPLOS DE ALGORITMOS
PSeInt incluye un conjunto de algoritmos de
diferentes niveles de dificultad para ejemplificar
la sintaxis y el uso del pseudocódigo. A
continuación, se describen los ejemplos
disponibles:
1. AdivinaNumero: Sencillo juego en el que el
usuario debe adivinar un número aleatorio.
// Juego simple que pide al usuario que adivine
un numero en 10 intentos
Proceso Adivina_Numero intentos<-9;
num_secreto <- azar(100)+1;
Escribir “Adivine el número (de 1 a 100):”; Leer INGRESO DE DATOS, VARIABLES
num_ingresado;
Mientras num_secreto<>num_ingresado Y Sumar dos números ‘a’ y ‘b’
intentos>0 Hacer //Algoritmo para sumar dos números enteros
Si num_secreto>num_ingresado Entonces ‘a’ y ‘b’ desarrollado por RPC
Escribir “Muy bajo”; Sino
FinSi
Escribir “Muy alto”; Proceso sumar_a_b //Proceso: ¿qué desea
FinMientras hacer el ‘programa’?: sumar a y b
Escribir “Le quedan “,intentos,” intentos:”; Escribir “ingrese a:” ; //escribe/muestra en
Leer num_ingresado; pantalla Leer a; //introduce por teclado el
intentos <- intentos-1; valor de ‘a’ Escribir “ingrese b:” ;
Si intentos=0 Entonces Leer b; //introduce por teclado el valor de ‘b’
Escribir “El numero era: “,num_secreto; Sino Suma<-(a+b); //operador Suma=a+b
FinSi Escribir “La suma de a + b es:”,Suma ; //
Escribir “Exacto! Usted adivinó en escribe/muestra en pantalla
“,11-intentos,” intentos.”; + el valor Suma
FinProceso FinProceso
Escribir un nombre 5 veces Escribir un el incremento en 1 de un nº
//Programa para Escribir un nombre y repetir 5 menor a 10 hasta 10
veces: RPC //Escribir el incremento en 1 de un número
menor a 10 hasta 10: RPC
Proceso repetir_nombre
Escribir “Ingresa tu nombre”; //muestra en Proceso sin_titulo
teclado: ingresa ti nombre leer nombre; // escribir “Digita un numero”; //Muestra en
leer/ingresar por teclado el nombre pantalla la instrucción leer a; //ingresa la
Para i<-1 Hasta 5 Con Paso 1 Hacer //para: use variable ‘a’ (número menor a 10)
la opción del menú de la derecha Para a<-a+1 Hasta 10 Con Paso 1 Hacer //
Escribir “ “ , nombre; // escribe el nombre 5 Comando Para: está al final derecha de este
veces, las comillas le dan espacio IDE
FinPara //fin del comando “Para” escribir “ “, a; //El espacio entre comillas (“”)
FinProceso //fin del proceso solo ajusta el texto debajo de la variable
ingresada
FinPara //Fin del comando Para
FinProceso //Fin del proceso
Sumar n números utilizando MIENTRAS
//Suma de n números : RPC Proceso suma_n_
numeros
Escribir “Ingrese un Número (0 para Calcular)”;
Leer a;
tot<-0
Mientras a<>0 Hacer tot<-tot+a;
Escribir “Ingrese otro Numero (0 para
Calcular)”; Leer a;
FinMientras
Escribir “Total: “,tot; FinProceso
RESUMEN DEL TEMA
PSeInt está pensado para asistir a los estudiantes que se inician en la construcción
de programas o algoritmos computacionales. El pseudocódigo se suele utilizar como
primer contacto para introducir conceptos básicos como el uso de estructuras de
control, expresiones, variables, etc., sin tener que lidiar con las particularidades de la
sintaxis de un lenguaje real. Este software pretende facilitarle al principiante la tarea
de escribir algoritmos en este pseudo lenguaje presentando un conjunto de ayudas
y asistencias, y brindarle además algunas herramientas adicionales que le ayuden a
encontrar errores y comprender la lógica de los algoritmos.
PSeInt es la abreviatura de Pseudocode Interpreter, en español, Intérprete de
Pseudocódigo. Este programa fue creado como proyecto final para la materia
Programación 1 de la carrera Ingeniería en Informática de la Facultad de Ingeniería
y Ciencias Hídricas de la Universidad Nacional del Litoral, de Argentina del en aquel
momento estudiante y hoy docente Pablo Novara. Ha recibido varios reconocimientos,
entre ellos fue el de Proyecto del Mes en SourceForge en dos oportunidades: 2015 y 2016
como se detalla en su sitio web oficial El programa utiliza pseudocódigo, una descripción
de un algoritmo computacional, cuya principal misión es que el programador pueda
centrarse en los aspectos lógicos de la programación, dejando el apartado técnico para
cuando el programador vea la sintaxis de un lenguaje de programación real. PSeInt
incluye en su editor diversas herramientas para que podamos crear y almacenar
programas en este peculiar lenguaje, ejecutarlos directamente desde su interfaz, o
incluso corregir posibles defectos que encontremos en su desarrollo.
LA IDEA PRINCIPAL
Ejecutar programas con seudocódigo
UNIDAD 4 - TEMA 5
DIAGRAMAS DE FLUJO CON DFD
DIAGRAMAS DE FLUJO CON EL PROGRAMA OBJETO ASIGNACIÓN
DFD El objeto Asignación
DFD es un software diseñado para construir asigna valores a campos
y analizar algoritmos. Usted puede crear variables. Al ser ejecutado,
diagramas de flujo de datos para la puede realizar hasta tres
representación de algoritmos de programación asignaciones.
estructurada a partir de las herramientas de
edición que para este propósito suministra
el programa. Después de haber ingresado
el algoritmo representado por el diagrama,
podrá ejecutarlo, analizarlo y depurarlo en un
entorno interactivo diseñado para este fin. La
interfaz gráfica de DFD, facilita en gran medida
el trabajo con diagramas ya que simula la
representación estándar de diagramas de flujo
en hojas de papel.
El cuadro de dialogo del objeto Asignación
GRÁFICOS DEL DIAGRAMA
contiene espacio para tres asignaciones,
OBJETOS EN DFD cada asignación consta de un espacio para el
campo variable situado siempre a la izquierda,
OBJETO INICIO el símbolo de asignación y un espacio para la
Es el primer objeto a ejecutar expresión situada siempre a la derecha. Esto
en cualquier algoritmo. Al ser indica que al campo variable se le asigna el
ejecutado, el objeto Inicio transfiere resultado de la evaluación de la expresión.
el control al siguiente objeto. Debe realizarse por lo menos una asignación.
ESTRUCTURAS CONDICIONALES Y
REPETITIVAS
Seguidamente la de
ENTRADA, que nos
muestra un cuadro
de texto donde
introduciremos el
valor que queramos
darle a la variable
edad (por ejemplo,
19):
RESUMEN DEL TEMA
DFD es un software diseñado para construir y analizar algoritmos. Usted puede crear
diagramas de flujo de datos para la representación de algoritmos de programación
estructurada a partir de las herramientas de edición que para este propósito suministra
el programa. Después de haber ingresado el algoritmo representado por el diagrama,
podrá ejecutarlo, analizarlo y depurarlo en un entorno interactivo diseñado para este
fin. La interfaz gráfica de DFD, facilita en gran medida el trabajo con diagramas ya
que simula la representación estándar de diagramas de flujo en hojas de papel. En
estructuras condicionales y repetitivas, El objeto Ciclo Mientras tiene como función el
ejecutar un bloque de objetos mientras que una condición sea verdadera. La condición
debe ser siempre una expresión que al ser evaluada de como resultado un valor de
tipo de dato Lógico. Ciclo Para, su función es ejecutar un bloque de objetos mientras
que la variable contadora no alcance el límite establecido por el valor final. El contador
es siempre una variable de tipo de dato Real. Contiene además un valor inicial que
será asignado al contador al iniciar la ejecución del ciclo, un valor final y un valor
de incremento. Si el contador excede el valor final, la ejecución continuará a partir
del objeto que sigue al Cierre. En caso contrario, se ejecutará el cuerpo del ciclo y el
contador será incrementado en el valor indicado por el incremento. También Se usan
diferentes tipos de Operadores, entre los que encontramos Matemáticos, Relacionales,
Lógicos y con operaciones sobre Cadenas.
LA IDEA PRINCIPAL
Realizar prácticas de resolución de algoritmos
LECTURAS RECOMENDADAS
• Introducción a los algoritmos Autores: Thomas H. Cormen, Charles E. Leiserson,
Ronald Rivest, Clifford Stein Editorial: MIT Press.
• Algoritmos + Estructuras de datos = Programas Autor: Niklaus Wirth
• Algoritmos y estructuras de datos: una perspectiva en C Autores: Ignacio Zahonero
Martínez, Luis Joyanes Aguilar, Ignacio Zahonero ... Google Books
• Estructuras de Datos Y Algoritmos: Una Introducción Autor: Rudolph Russell
Google Books
ACTIVIDADES Y EJERCICIOS
• Realizar trabajos de programación utilizando el PSeInt
• Utilizar DFD para realizar estructuras secuenciales
• Utilizar DFD para definir las estructuras anidadas.
• Utilizar el algoritmo para resolver problemas computacionales.
INTRODUCCIÓN ACTITUDES
L
a principal razón para que las personas
aprendan lenguajes y técnicas de • Tener la capacidad de administrar bien el
programación es utilizar la computadora tiempo
como una herramienta para resolver • Puede adaptarse a ambientes de estudio
problemas. Esta unidad didáctica introduce nuevos.
al lector en la metodología a seguir para la • Toma decisiones con respecto a opciones
resolución de problemas con computadoras curriculares.
y en el diseño de algoritmos examinan
ando el concepto de Abstracción de Datos. TEMAS
La Abstracción de Datos es la técnica de
inventar nuevos tipos de datos que sean más
adecuados a una aplicación y, por consiguiente,
facilitar la escritura del programa. La técnica de 1
TEMA
fases en la resolución de
problemas
abstracción de datos es una técnica potente
de propósito general que cuando se utiliza
adecuadamente, puede producir programas
más cortos, más legibles y flexibles...
2
TEMA
práctica de diseño del
algoritmo
COMPETENCIA
“Implementar los diseños de programación
en las fases de resolución de problemas,
verificación y validación con su respectiva
documentación y la calidad del software”
3
TEMA
verificación y validación
CAPACIDADES
• Poder solucionar problemas utilizando los
algoritmos
4
TEMA
documentación
• Poder verificar y validar requerimientos del
software.
• Realizar los diferentes tipos de
•
documentación del software.
Poder evaluar la calidad del software.
5
TEMA
calidad de software
UNIDAD 5 - TEMA 1
fases en la resolución de problemas
FASE EN LA RESOLUCIÓN DE PROBLEMAS ANÁLISIS Y ESPECIFICACIÓN DEL
La creación de un programa requiere de PROBLEMA
técnicas similares a la realización de otros
proyectos de ciencia e ingeniería, ya que,
en la práctica, un programa no es más que
una solución desarrollada para resolver
un problema concreto. La escritura de un
programa es casi la última etapa de un proceso
en el que se determina primero ¿cuál es el
problema? y el método que se utilizará para
resolver el problema. Cada campo de estudio
tiene su propio nombre para de- nominar el
método sistemático utilizado para resolver El análisis de un problema se requiere para
problemas mediante el diseño de soluciones asegurarse de que el problema está bien
adecuadas. En ciencia y en ingeniería el método definido y comprendido con claridad. La
se conoce como método científico, mientras determinación de que el problema está definido
que cuando se realiza análisis cuantitativo claramente se hace después de que la persona
se suele conocer como enfoque o método entienda cuáles son las salidas requeridas y
sistemático. qué entradas son necesarias. Para realizar esta
Las técnicas utilizadas por los desarrolladores tarea, el analista debe tener una comprensión
profesionales de software para llegar a de cómo se pueden utilizar las entradas para
soluciones adecuadas para la resolución de producir las salidas deseadas.
problemas se denomina proceso de desarrollo Después de un análisis profundo del problema
de software. Aunque el número y nombre de se debe realizar la especificación que es una
las fases puede variar según los modelos, descripción precisa y lo más exacta posible del
métodos y técnicas utilizadas. problema; en realidad, es como un contrato
En general, las fases de desarrollo de software previo para solución.
se suelen considerar las siguientes: La especificación del problema no suele ser
• Análisis y especificación del problema. una tarea fácil sobre todo por la complejidad
• Diseño de una solución. que entrañan la mayoría de los problemas
• Implementación (codificación). del mundo real. La descripción inicial de un
• Pruebas, ejecución, corrección y depuración. problema no suele ser clara y casi siempre, al
• Documentación. principio, suele ser imprecisa y vaga.
• Mantenimiento y evaluación... La formulación de una especificación del
problema requiere una descripción precisa
y lo más completa posible de la entrada del
problema (información disponible para la
resolución del problema) y la salida requerida.
Además, se requiere información adicional tal
como: hardware y software necesario, tiempo
de respuesta, plazos de entrada, facilidad de
uso, robustez del software, etc.
La persona que realiza el análisis debe tener Una buena técnica para el diseño de un
una perspectiva inicial lo más amplia posible y algoritmo, como se ha comentado (diseño
comprender el propósito principal de los que descendente), es descomponer el problema
el problema o sistema pretende conseguir. en subproblemas o subtareas más pequeñas
En sistemas grandes el análisis, lo realiza y sencillas, a continuación, descomponer cada
normalmente un analista de sistemas, y en subproblema o subtarea en otra más pequeña
programas individuales, el análisis se realiza y así sucesiva- mente, hasta llegar a subtareas
directamente por el programador. que sean fáciles de implantar en C++ o en
Con independencia de cómo y por quién se cualquier otro lenguaje de programación.
realice el análisis, a la conclusión del mismo se Los algoritmos se suelen escribir en
debe tener una comprensión muy clara de: pseudocódigo o en otras herramientas de
• ¿Qué debe hacer el sistema o el programa? programación como diagramas de flujo o
• ¿Qué salidas debe producir? diagramas N-S. Hoy día la herramienta más
• ¿Qué entradas se requieren para obtener utilizada es el pseudocódigo o lenguaje
las salidas deseadas? algorítmico, consistente en un conjunto de
palabras en español, inglés, etcétera que
representan tareas a realizar y una sintaxis de
uso como cualquier otro lenguaje.
Otra técnica o método de diseño muy utilizado
en la actualidad es el diseño orientado a
objetos. El diseño descendente se basa en
la descomposición de un problema en un
DISEÑO conjunto de tareas y en la realización de los
La fase de diseño de la solución se inicia una vez algoritmos que resuelven esas tareas, mientras
que se tiene la especificación del problema y que el diseño orientado a objetos se centra
consiste en la formulación de los pasos o etapas en la localización de módulos y objetos del
para resolver el problema. Dos metodologías mundo real. Estos objetos del mundo real
son las más utilizadas en el diseño: diseño están formados por datos y operaciones que
descendente o estructurado que se apoya en actúan sobre los datos y modelan, a su vez, a
programación estructurada y diseño orientado los objetos del mundo real, e interactúan entre
a objetos que se basa en la programación sí para resolver el problema concreto.
orientada a objetos. El diseño orientado a objetos ha conducido a
la programación orientada a objetos, como
uno de los métodos de programación más
populares y más utilizados en el pasado siglo
XX y actual XXI.
LA IDEA PRINCIPAL
Recuerde: Escribir un programa sin diseño es como
construir una casa sin un plano (proyecto)
UNIDAD 5 - TEMA 2
LA IDEA PRINCIPAL
Los errores pueden ocurrir en cualquiera de las fases del desarrollo de software.
UNIDAD 5 - TEMA 3
verificación y validación
VERIFICACIÓN Y VALIDACIÓN En el caso de software orientado a objetos
La prueba del software cambia el concepto de unidad que pasa a ser
es un elemento de un la clase o la instancia de una clase (objeto)
tema más amplio que que empaqueta los atributos (datos) y las
suele denominarse operaciones (funciones) que manipulan estos
verificación y datos. La prueba de la clase en el software
validación. Verificación orientado a objetos es la equivalente a la prueba
es el conjunto de de unidad para el software convencional. La
actividades que prueba de integración se realiza sobre clases
aseguran que el que colaboran entre sí.
software funciona Otro tipo de pruebas importantes son las
correctamente con una amplia variedad de pruebas del sistema. Una prueba del sistema
datos. Validación es el conjunto diferente de com- prueba que el sistema global del
actividades que aseguran que el software programa funciona correctamente; es decir
construido se corresponde con los requisitos las funciones, las clases, las bibliotecas, etc.
del cliente [PRESMAN 05]. Las pruebas del sistema abarcan una serie de
En la práctica, la verificación pretende pruebas diferentes cuyo propósito principal es
comprobar que los documentos del programa, verificar que se han integrado adecuadamente
los módulos y restantes unidades son todos los elementos del sistema y que realizan
correctos, completos y consistentes entre sí y las funciones apropiadas. Estas pruebas se
con los de las fases precedentes; la validación, corresponden con las distin- tas etapas del
a su vez, se ocupa de comprobar que estos desarrollo del software.
productos se ajustan a la especificación del
problema. Boehm [BOEHM 81]5 estableció que
la verificación era la respuesta a: “¿Estamos
construyendo el producto correctamente?”
mientras que la validación era la respuesta
a: “¿Estamos construyendo el programa
correcto?”.
En la prueba de software convencional en
posible aplicar diferentes clases de pruebas.
Pressman distingue las siguientes:
• Prueba de unidad: se centra el esfuerzo de
verificación en la unidad más pequeña del ELECCIÓN DE DATOS DE PRUEBA
diseño de software, el componente o módulo Para que los datos de prueba sean buenos,
(función o subprograma) de software que se necesitan cumplir dos propiedades
comprueban individualmente. 1. Se necesita conocer cuál es la salida que
• Prueba de integración: se comprueba si debe producir un programa correcto para
las distintas unidades del programa se cada entrada de prueba.
han unido correctamente. Aquí es muy 2. Las entradas de prueba deben incluir
importante descubrir errores asociados con aquellas entradas que más probabilidad
la interfaz. tengan de producir errores.
Aunque un programa se compile, se ejecute y En programas sencillos la depuración se puede
produzca una salida que parezca correcta no realizar con mayor o menor dificultad, pero
significa que el programa sea correcto. Si la en programas grandes el seguimiento (traza o
respuesta correcta es 211492 y el programa rastreo) de errores es casi imposible sin ayuda
obtiene 211491, algo está equivocado. A veces, de una herramienta de software denominada
el método más evidente para encontrar el depurador (debugger). Un depurador eje- cuta
valor de salida correcto es utilizar lápiz y papel el código del programa línea a línea, o puede
utilizando un método distinto al empleado en ejecutar el código harta que se produzca una
el programa. Puede ayudarle utilizar valores de cierta condición. El uso de un depurador puede
entrada más pequeños o simplemente valores especificar cuáles son las condiciones que
de entrada cuya salida sea conocida. originan la ejecución anómala de un programa.
Existen diferentes métodos para encontrar Los errores más frecuentes de un programa
datos de prueba que tengan probabilidad de son:
producir errores. Uno de los más utilizados
se denomina valores de frontera. Un valor
frontera de un problema es una entrada que
produce un tipo de comportamiento diferente,
por ejemplo, la función C++
LA IDEA PRINCIPAL
La prueba del software es un elemento de un tema más amplio que suele
denominarse verificación y validación.
UNIDAD 5 - TEMA 4
DOCUMENTACIÓN
DOCUMENTACIÓN
El desarrollo de software requiere un gran
esfuerzo de documentación de las diferentes
etapas. En la práctica, muchos de los
documentos clave (críticos) se crean durante
las fases de análisis, diseño, codificación y
prueba. La documentación completa del
software presenta todos los documentos en un
manual que sea útil a los programadores y a su La fase de mantenimiento del software
organización. está relacionada con corrección futura de
Aunque el número de documentos puede variar problemas, revisión de especificaciones,
de un proyecto a otro, y de una organización a adición de nuevas características, etc. El
otra, esencialmente existen cinco documentos mantenimiento requiere, normalmente,
imprescindibles en la documentación final de un esfuerzo importante ya que, si bien el
un programa: desarrollo de un programa puede durar días,
1. Descripción del problema (especificación). meses o años, el mantenimiento se puede
2. Cambio y desarrollo de los algoritmos. extender a años e incluso décadas. Un ejemplo
3. Listado y programas bien documentados típico estudiado en numerosos cursos de
4. Ejecución de las pruebas de muestra. ingeniería de software fue el esfuerzo realizado
5. Manual del usuario para asegurar que los programas existentes
La documentación del software comienza en la funcionan correctamente al terminar el siglo XX
fase de análisis y especificación del problema conocido como el efecto del año 2000.
y continúa en la fase de mantenimiento y Estadísticamente está demostrado que
evolución. los sistemas de software, especialmente
los desarrollados para resolver problemas
complejos presentan errores que no fueron
detectados en las diferentes pruebas y que
se detectan cuando el software se pone
en funcionamiento de modo comercial o
profesional. La reparación de estos errores
es una etapa importante y muy costosa del
mantenimiento de un programa.
Además de estas tareas de mantenimiento
existen muchas otras tareas dentro de
MANTENIMIENTO esta etapa: “mejoras en la eficiencia, añadir
Una vez que el software se ha depurado nuevas características (por ejemplo, nuevas
completamente y el conjunto de programas, funcionalidades), cambios en el hardware, en
biblioteca de funciones y clases, etc., se han el sistema operativo, ampliar número máximo
terminado y funcionan correctamente, el uso de usuarios...”. Otros cambios pueden venir
de los mismos se puede extender en el tiempo derivados de cambios en normativas legales,
durante grandes períodos (normalmente en la organización de la empresa, en la difusión
meses o años). del producto a otros países, etc.
Estudios de ingeniería de software demuestran Una percepción común del mantenimiento es
que el porcentaje del presupuesto de que se trata meramente de la corrección de
un proyecto software y del tiempo de defectos. Sin embargo, un estudio indicó que
programador/analista/ingeniero de la mayoría, más del 80%, del esfuerzo de
software ha ido creciendo por décadas. mantenimiento es usado para acciones
Así, en la década de los setenta, no correctivas (Pigosky 1997). Esta
se estimaba el porcentaje de percepción es perpetuada por
mantenimiento entre un 35- usuarios enviando informes de
40 por 100, en la década de los problemas que en realidad son
ochenta, del 40 al 60 por 100, mejoras de funcionalidad al
y se estima que en la dé- cada sistema. [cita requerida]
actual del siglo XXI, puede llegar El mantenimiento del software
en aplicaciones para la web, y la evolución de los sistemas fue
videojuegos, software de inteligencia abordada por primera vez por Meir
de negocios, de gestión de relaciones M. Lehman en 1969. Durante un período
con los clientes (CRM), etc., hasta un 80 o un 90 de veinte años, su investigación condujo
por 100 del presupuesto total del desarrollo de a la formulación de las leyes de Lehman
un producto software. (Lehman 1997). Principales conclusiones de su
Por todo lo anterior, es muy importante que los investigación incluyen que el mantenimiento
programadores diseñen programas legibles, es realmente un desarrollo evolutivo y que las
bien documentados y bien estructurados, decisiones de mantenimiento son ayudadas
bibliotecas de funciones y de clases con buena por entender lo que sucede a los sistemas (y al
documentación, de modo que los programas software) con el tiempo. Lehman demostró que
sean fáciles de comprender y modificar y en los sistemas continúan evolucionando con el
consecuencia fáciles de mantener. tiempo. A medida que evolucionan, ellos crecen
más complejos a menos que se toman algunas
EL MANTENIMIENTO DE SOFTWARE
medidas como refactorización de código para
reducir la complejidad.
Los problemas claves de mantenimiento
de software son administrativos y técnicos.
Problemas clave de administración son:
alineación con las prioridades del cliente,
dotación de personal, cuál organización
hace mantenimiento, estimación de costos.
Son cuestiones técnicas claves: limitado
entendimiento, análisis de impacto, pruebas
(testing), medición de mantenibilidad.
El mantenimiento de software es una actividad
muy amplia que incluye la corrección de errores,
mejoras de las capacidades, eliminación de
En ingeniería del software, el mantenimiento de
funciones obsoletas y optimización. Debido a
software es la modificación de un producto de
que el cambio es inevitable, se debe desarrollar
software después de la entrega, para corregir
mecanismos para la evaluación, controlar y
errores, mejorar el rendimiento, u otros
hacer modificaciones.
atributos.1 El mantenimiento del software
Así que cualquier trabajo realizado para cambiar
es una de las actividades más comunes en la
el software después de que esté en operación
ingeniería de software.
es considerado trabajo de mantenimiento. El
El mantenimiento de software es también
propósito es preservar el valor del software
una de las fases en el ciclo de vida de
sobre el tiempo. El valor puede ser mejorado
desarrollo de sistemas (SDLC, sigla en inglés
ampliando la base de clientes, cumpliendo
de system development life cycle), que se
requisitos adicionales, siendo cada vez más
aplica al desarrollo de software. La fase de
fácil de usar, más eficiente y empleando más
mantenimiento es la fase que viene después
nuevas tecnología. El mantenimiento puede
del despliegue (implementación) del software
abarcar 20 años, mientras que el desarrollo
en el campo.
puede estar entre 1 y 2 años.
RESUMEN DEL TEMA
El desarrollo de software requiere un gran esfuerzo de documentación de las diferentes
etapas. En la práctica, muchos de los documentos clave (críticos) se crean durante
las fases de análisis, diseño, codificación y prueba. La documentación completa del
software presenta todos los documentos en un manual que sea útil a los programadores
y a su organización.
Una vez que el software se ha depurado completamente y el conjunto de programas,
biblioteca de funciones y clases, etc., se han terminado y funcionan correctamente,
el uso de los mismos se puede extender en el tiempo durante grandes períodos
(normalmente meses o años).
En ingeniería del software, el mantenimiento de software es la modificación de
un producto de software después de la entrega, para corregir errores, mejorar el
rendimiento, u otros atributos.1 El mantenimiento del software es una de las actividades
más comunes en la ingeniería de software.
LA IDEA PRINCIPAL
El desarrollo de software requiere un gran esfuerzo de documentación de las
diferentes etapas.
UNIDAD 5 - TEMA 5
INTEGRIDAD
La integridad es la capacidad de un software
para proteger sus propios componentes contra
los procesos que no tengan el derecho de
acceso.
RESUMEN DEL TEMA
¿Qué es la calidad del software? | Programación
El concepto de calidad del software juega un papel importante tanto para el desarrollo
como para la aceptación del software. Se evalúan y utilizan varias características para
evaluar la calidad del software.
En primer lugar, es importante abordar el concepto de calidad del software. Porque
la palabra calidad proviene originalmente del latín y puede traducirse allí como
“amabilidad y calidad”, “propiedad”, “habilidad” y “bondad”. Hoy en día, sin embargo, el
término calidad suele tener una connotación positiva.
El software de calidad debe cumplir las siguientes características:
• Corrección
• Legibilidad y comprensibilidad
• Extensibilidad
• Robustez
• Eficiencia
• Facilidad de uso
• Transportabilidad (portabilidad):
• Verificabilidad
• Reutilización
• Integridad
• Compatibilidad
LA IDEA PRINCIPAL
Se revisan y utilizan varias características para evaluar la calidad del software
LECTURAS RECOMENDADAS
• Etapas de la Resolucion de Problemas Autor Sistemos. Link https://umsistemas.
wordpress.com/2016/12/08/dgdf/
• Algoritmos. Autor Luis Alfredo Gómez Flores
• Verificación y validación. Autor José M drake y Patricia López
• Calidad de producto y Proceso de software. Autor Coral Calero, Angeles Moraga y
Mario Piattini
ACTIVIDADES Y EJERCICIOS
• Identifique las fases de desarrollo de software
• Selecciona el texto de referencia de algoritmos
• Realice un esquema sobre las características de software de calidad
INTRODUCCIÓN ACTITUDES
En esta unidad de aprendizaje se introduce • La capacidad de pensar y trabajar por
al proceso de la programación que se cuenta propia
manifiesta esencialmente en los programas. • Totalmente motivado y sigue motivado
El concepto de programa como un conjunto
• Realiza el aprendizaje de valores
de instrucciones y sus tipos constituye la parte
fundamental del capítulo. La descripción de • Tener la capacidad de pensar y trabajar en
los elementos básicos de programación, que forma independientemente
se encontrarán en casi todos los programas: • Tener la capacidad de administrar bien el
interruptores, contadores, totalizadores, tiempo
etc., junto con las normas elementales para
la escritura de algoritmos y programas, TEMAS
conforman el resto del capítulo. En la unidad
se examinan los importantes conceptos de
datos, constantes y variables, expresiones,
operaciones de asignación y la manipulación
de las entradas y salidas de información, así
1
TEMA
Concepto de programa
como la realización de las funciones internas
como elemento clave en el manejo de datos.
Por último, se describen reglas de escritura
y de estilo para la realización de algoritmos
y su posterior conversión en programas.
2
TEMA
instrucción de
asignación
COMPETENCIA
“Entender y aplicar el lenguaje de programación
orientado a objetos, describiendo los
elementos básicos de programación”
3
TEMA
elementos básicos de un
programa
CAPACIDADES
• Aprender los conceptos del proceso de
programación orientada a objetos.
4
TEMA
datos númericos
• Aplicar los conceptos básicos de
programación.
• Aplicar en programación las variables,
•
contadores, totalizadores, etc.
Comprender las reglas de escritura y estilos
de algoritmos y su conversión en programa.
5
TEMA
escritura de
algoritmos/programas
UNIDAD 6 - TEMA 1
Concepto de programa
CONCEPTO DE PROGRAMA Conceptualmente un programa puede ser
Un programa de computadora es un conjunto considerado como una caja negra, como se
de instrucciones —órdenes dadas a la muestra en la Figura siguiente. La caja negra
máquina— que producirán la ejecución de una o el algoritmo de resolución, en realidad, es
determinada tarea. En esencia, un programa el conjunto de códigos que transforman las
es un medio para conseguir un fin. El fin será entradas del programa (datos) en salidas
probablemente definido como la información (resultados).
necesaria para solucionar un problema. El El programador debe establecer de dónde
proceso de programación es, por consiguiente, provienen las entradas al programa. Las
un proceso de solución de problemas y el entradas, en cualquier caso, procederán de
desarrollo de un programa requiere las un dispositivo de entrada teclado, disco.... El
siguientes fases: proceso de introducir la información de entrada
1. Definición y análisis del problema; datos en la memoria de la computadora se
2. Diseño de algoritmos: denomina entrada de datos, operación de
• Diagrama de flujo lectura o acción de leer.
• Diagrama N-S Las salidas de datos se deben presentar en
• Pseudocódigo dispositivos periféricos de salida: pantalla,
3. Codificación del programa impresoras, discos, etc. La operación de salida
4. Depuración y verificación del programa de datos se conoce también como escritura o
5. Documentación acción de escribir.
6. Mantenimiento
INSTRUCCIONES Y TIPOS DE
INSTRUCCIONES
El proceso de diseño del algoritmo o
posteriormente de codificación del programa
consiste en definir las acciones o instrucciones
que resolverán el problema.
PARTES CONSTITUTIVAS DE UN
PROGRAMA
Tras la decisión de desarrollar un programa,
el programador debe establecer el conjunto
de especificaciones que debe contener el
programa: entrada, salida y algoritmos de
resolución, que incluirán las técnicas para
obtener las salidas a partir de las entradas.
Las acciones o instrucciones se deben escribir Tipos de instrucciones
y posteriormente almacenar en memoria en Las instrucciones disponibles en un lenguaje de
el mismo orden en que han de ejecutarse, es programación dependen del tipo de lenguaje.
decir, en secuencia. Por ello, en este apartado estudiaremos
Un programa puede ser lineal o no lineal. las instrucciones acciones básicas que se
Un programa es lineal si las instrucciones se pueden implementar de modo general en
ejecutan secuencialmente, sin bifurcaciones, un algoritmo y que esencialmente soportan
decisión ni comparaciones. todos los lenguajes. Dicho de otro modo, las
En el caso del algoritmo las instrucciones se instrucciones básicas son independientes del
suelen conocer como acciones, y se tendría: lenguaje. La clasificación más usual, desde el
punto de vista anterior, es: Entrada Programa
(algoritmo de resolución) Salida Figura siguiente
muestra los bloques de un programa.
1. Instrucciones de inicio/fin
2. Instrucciones de asignación
3. Instrucciones de lectura
4. Instrucciones de escritura
5. Instrucciones de bifurcación
Algunas de estas instrucciones se recogen en
la Tabla.
Un programa es no lineal cuando se interrumpe
la secuencia mediante instrucciones de
bifurcación.
RESUMEN DEL TEMA
Un programa de computadora es un conjunto de instrucciones —órdenes dadas a
la máquina— que producirán la ejecución de una determinada tarea. En esencia, un
programa es un medio para conseguir un fin. El fin será probablemente definido como
la información necesaria para solucionar un problema. El proceso de programación es,
por consiguiente, un proceso de solución de problemas.
Tras la decisión de desarrollar un programa, el programador debe establecer el conjunto
de especificaciones que debe contener el programa: entrada, salida y algoritmos de
resolución, que incluirán las técnicas para obtener las salidas a partir de las entradas.
El proceso de diseño del algoritmo o posteriormente de codificación del programa
consiste en definir las acciones o instrucciones que resolverán el problema.
Las acciones o instrucciones se deben escribir y posteriormente almacenar en memoria
en el mismo orden en que han de ejecutarse, es decir, en secuencia.
LA IDEA PRINCIPAL
El proceso de codificación de programa consiste en
definir las acciones para resolverán un problema.
UNIDAD 6 - TEMA 2
INSTRUCCIÓN DE ASIGNACIÓN
INSTRUCCIONES DE ASIGNACIÓN INSTRUCCIONES DE LECTURA DE DATOS
Como ya son conocidas del lector, repasaremos (ENTRADA)
su funcionamiento con ejemplos: Esta instrucción lee datos de un dispositivo
a. A 80 la variable A toma el valor de 80. de entrada. ¿Cuál será el significado de las
b. ¿Cuál será el valor que tomará la variable instrucciones siguientes?
C tras la ejecución de las siguientes a. leer (NÚMERO, HORAS, TASA)
instrucciones? Leer del terminal los valores NÚMERO, HORAS
• A 12 y TASAS, archivándolos en la memoria; si los
• B A tres números se teclean en respuesta a la
• C B instrucción son 12325, 32, 1200, significaría que
A contiene 12, B contiene 12 y C contiene 12. se han asignado a las variables esos valores y
equivaldría a la ejecución de las instrucciones.
• NÚMERO 12325
Nota: Antes de la ejecución de las tres
• HORAS 32
instrucciones, el valor de A, B y C es
• TASA 1200
indeterminado. Si se desea darles un valor
b. leer (A, B, C) Si se leen del terminal 100,
inicial, habrá que hacerlo explícitamente,
200, 300, se asignarían a las variables los
incluso cuando este valor sea 0. Es decir, habrá
siguientes valores:
que definir e inicializar las instrucciones.
• A = 100
• B = 200
• A 0
• C = 300
• B 0
• C 0 INSTRUCCIONES DE ESCRITURA DE
RESULTADOS (SALIDA)
c. ¿Cuál es el valor de la variable AUX al Estas instrucciones se escriben en un
ejecutarse la instrucción 5? dispositivo de salida. Explicar el resultado de la
1. A 10 ejecución de las siguientes instrucciones:
2. B 20 A 100
3. AUX A B 200
4. A B C 300
5. B AUX escribir (A, B, C)
Bifurcación condicional
La bifurcación depende del cumplimiento de
una determinada condición. Si se cumple la
condición, el flujo sigue ejecutando la acción F2.
Si no se cumple, se ejecuta la acción F1
RESUMEN DEL TEMA
Instrucciones de lectura de datos (entrada): Esta instrucción lee datos de un dispositivo
de entrada.
Instrucciones de escritura de resultados (salida): Estas instrucciones se escriben en un
dispositivo de salida
Instrucciones de bifurcación: El desarrollo lineal de un programa se interrumpe cuando
se ejecuta una bifurcación. Las bifurcaciones pueden ser, según el punto del programa
a donde se bifurca, hacia adelante o hacia atrás
Bifurcación condicional: La bifurcación depende del cumplimiento de una determinada
condición.
LA IDEA PRINCIPAL
Las instrucciones son necesarias para desarrollar nuestro programa
UNIDAD 6 - TEMA 3
ELEMENTOS BÁSICOS DE UN PROGRAMA
ELEMENTOS BÁSICOS DE UN PROGRAMA Además de estos elementos básicos,
existen otros elementos que forman parte
de los programas, cuya comprensión y
funcionamiento será vital para el correcto
diseño de un algoritmo y naturalmente la
codificación del programa. Estos elementos
son:
• Bucles
• Contadores
• Acumuladores
• Interruptores
• Estructuras:
En programación se debe separar la 1. Secuenciales
diferencia entre el diseño del algoritmo y su 2. Selectivas
implementación en un lenguaje específico. Por 3. Repetitivas
ello, se debe distinguir claramente entre los El amplio conocimiento de todos los elementos
conceptos de programación y el medio en que de programación y el modo de su integración
ellos se implementan en un lenguaje específico. en los programas constituyen las técnicas de
Sin embargo, una vez que se comprendan programación que todo buen programador
cómo utilizar los conceptos de programación debe conocer.
y, la enseñanza de un nuevo lenguaje es DATOS, TIPOS DE DATOS Y OPERACIONES
relativamente fácil. PRIMITIVAS
Los lenguajes de programación como los
restantes lenguajes tienen elementos básicos
que se utilizan como bloques constructivos, así
como reglas para las que esos elementos se
combinan. Estas reglas se denominan sintaxis
del lenguaje. Solamente las instrucciones
sintácticamente correctas pueden ser
interpretadas por la computadora y los
programas que contengan errores de sintaxis
son rechazados por la máquina. Los elementos
básicos constitutivos de un programa o El primer objetivo de toda computadora es
algoritmo son: el manejo de la información o datos. Estos
• Palabrasreservadas(inicio,fin,si-entonces...,etc.), datos pueden ser las cifras de ventas de un
• Identificadores (nombres de variables esencialmente, supermercado o las calificaciones de una clase.
procedimientos,funciones,nombredelprograma,etc.), Un dato es la expresión general que describe los
• Caracteresespeciales(coma,apóstrofo,etc.), objetos con los cuales opera una computadora.
• Constantes, La mayoría de las computadoras pueden
• Variables, trabajar con varios tipos (modos) de datos. Los
• Expresiones, algoritmos y los programas correspondientes
• Instrucciones. operan sobre esos tipos de datos.
La acción de las instrucciones ejecutables de Los distintos tipos de datos se representan
las computadoras se refleja en cambios en en diferentes formas en la computadora. A
los valores de las partidas de datos. Los datos nivel de máquina, un dato es un conjunto o
de entrada se transforman por el programa, secuencia de bits (dígitos 0 o 1). Los lenguajes
después de las etapas intermedias, en datos de de alto nivel permiten basarse en abstracciones
salida. e ignorar los detalles de la representación
En el proceso de resolución de problemas interna. Aparece el concepto de tipo de datos,
el diseño de la estructura de datos es tan así como su representación.
importante como el diseño del algoritmo y del Los tipos de datos básicos son los siguientes:
programa que se basa en el mismo. • Numéricos (entero, real)
Un programa de computadora opera sobre • Lógicos (boolean)
datos (almacenados internamente en la • Carácter (carácter, cadena)
memoria almacenados en medios externos Existen algunos lenguajes de programación que
como discos, memorias USB, memorias de admiten otros tipos de datos: complejos, que
teléfonos celulares, etc., o bien introducidos permiten tratar los números complejos, y otros
desde un dispositivo como un teclado, un lenguajes que también permiten declarar y
escáner o un sensor eléctrico). En los lenguajes definir sus propios tipos de datos: enumerados
de programación los datos deben de ser de (enumerated) y subrango (subrange).
un tipo de dato específico. El tipo de datos
determina cómo se representan los datos en
la computadora y los diferentes procesos que
dicha computadora realiza con ellos.
TIPO DE DATOS
Conjunto específico de valores de los datos y
un conjunto de operaciones que actúan sobre
esos datos.
Existen dos tipos de datos: básicos,
incorporados o integrados (estándar) que se
incluyen en los lenguajes de programación;
definidos por el programador o por el usuario.
Además de los datos básicos o simples, se
pueden construir otros datos a partir de éstos,
y se obtienen los datos compuestos o datos
agregados, tales como estructuras, uniones,
enumeraciones (sub rango, como caso
particular de las enumeraciones, al igual de
lo que sucede en Pascal), vectores o matrices/
tablas y cadenas “arrays o arreglos”; también
existen otros datos especiales en lenguajes
como C y C++, denominados punteros
(apuntadores) y referencias.
Existen dos tipos de datos: simples (sin
estructura) y compuestos (estructurados). Los
datos estructurados se verán más adelante y
son conjuntos de partidas de datos simples con
relaciones definidas entre ellos.
RESUMEN DEL TEMA
En programación se debe separar la diferencia entre el diseño del algoritmo y su
implementación en un lenguaje específico. Por ello, se debe distinguir claramente entre
los conceptos de programación y el medio en que ellos se implementan en un lenguaje
específico. Sin embargo, una vez que se comprendan cómo utilizar los conceptos de
programación y, la enseñanza de un nuevo lenguaje es relativamente fácil.
El primer objetivo de toda computadora es el manejo de la información o datos. Estos
datos pueden ser las cifras de ventas de un supermercado o las calificaciones de una
clase. Un dato es la expresión general que describe los objetos con los cuales opera
una computadora. La mayoría de las computadoras pueden trabajar con varios tipos
(modos) de datos. Los algoritmos y los programas correspondientes operan sobre esos
tipos de datos.
Existen dos tipos de datos: básicos, incorporados o integrados (estándar) que se
incluyen en los lenguajes de programación; definidos por el programador o por el
usuario.
LA IDEA PRINCIPAL
El primer objetivo de toda computadora es el manejo de la información o datos
UNIDAD 6 - TEMA 4
DATOS NUMÉRICOS
DATOS NUMÉRICOS DATOS LÓGICOS (BOOLEANOS)
DECLARACIÓN DE CONSTANTES Y
VARIABLES
Normalmente los identificadores de las
variables y de las constantes con nombre
deben ser declaradas en los programas antes
de ser utilizadas. La sintaxis de la declaración
de una variable suele ser:
<tipo_de_dato> <nombre_variable>
[=<expresión>]
RESUMEN DEL TEMA
El tipo numérico es el conjunto de los valores numéricos. Estos pueden representarse
en dos formas distintas: tipo numérico entero (integer), tipo numérico real (real).
Enteros: el tipo entero es un subconjunto finito de los números enteros. Los enteros
son números completos, no tienen componentes fraccionarios o decimales y pueden
ser negativos o positivos. Ejemplos de números enteros son: 6; –15; 4; 20; 17; 1340; 26
Reales: el tipo real consiste en un subconjunto de los números reales. Los números
reales siempre tienen un punto decimal y pueden ser positivos o negativos. Un número
real consta de un entero y una parte decimal. Los siguientes ejemplos son números
reales: 0.08 3739.41; 3.7452 –52.321; –8.12 3.0.
El tipo lógico —también denominado booleano— es aquel dato que sólo puede tomar
uno de dos va lores: cierto o verdadero (true) y falso (false).
El tipo carácter es el conjunto finito y ordenado de caracteres que la computadora
reconoce. Un dato tipo carácter contiene un solo carácter. Los caracteres que reconocen
las diferentes computadoras no son estándar; sin embargo, la mayoría reconoce los
siguientes caracteres alfabéticos y numéricos.
LA IDEA PRINCIPAL
Es necesario identificar los tipos de datos, para un correcto desarrollo de los
programas
UNIDAD 6 - TEMA 5
ESCRITURA DE ALGORITMOS/PROGRAMAS
ESCRITURA DE ALGORITMOS/PROGRAMAS CABECERA DEL PROGRAMA O ALGORITMO
DECLARACIÓN DE CONSTANTES Y
VARIABLES CARÁCTER
LA IDEA PRINCIPAL
La escritura de un algoritmo mediante una herramienta de programación debe ser
lo más clara posible y estructurada
LECTURAS RECOMENDADAS
• Fundamentos de Programación. Autor Luis Joyanes Aguilar
• Instrucciones Escribir, leer, Asignación. Autor Portafolio ABA3
• Elementos básicos de programación. Autor Universidad de Huelva
ACTIVIDADES Y EJERCICIOS
• Identifique el concepto de programa
• Realice un ejemplo de instrucción de asignación
• Enumere las ideas principales de los elementos básicos de un programa
INTRODUCCIÓN ACTITUDES
La Programación Orientada a Objetos (POO) es • Tener la capacidad de administrar bien el
un paradigma de programación, es decir, un tiempo
modelo o un estilo de programación que nos • Responsabilidad, Motivación,
da unas guías sobre cómo trabajar con él. Se Autodisciplina.
basa en el concepto de clases y objetos. Este • Trabaja con metas bien definidas.
tipo de programación se utiliza para estructurar • Estrategias de administración de recursos:
un programa de software en piezas simples y
tiempo y espacio.
reutilizables de planos de código (clases) para
crear instancias individuales de objetos. Con • Tiene la disciplina para estudiar sin
ESTE paradigma de Programación Orientado recordatorios externos.
a Objetos lo que buscamos es dejar de CAPACIDADES
centrarnos en la lógica pura de los programas,
para empezar a pensar en objetos, lo que • Comprender la programación orientada a
constituye la base de este paradigma. Esto nos objetos
ayuda muchísimo en sistemas grandes, ya que, • Diferenciar los lenguajes de programación
en vez de pensar en funciones, pensamos en • Utilizar el lenguaje apropiado para
las relaciones o interacciones de los diferentes desarrollar el App.
componentes del sistema. Los lenguajes de • Diferenciar los diferentes lenguajes de
programación orientados a objetos tratan a programación
los programas como conjuntos de objetos que
se ayudan entre ellos para realizar acciones. TEMAS
Entendiendo como objeto a las entidades
que contienen datos. Permitiendo que los
programas sean más fáciles de escribir,
mantener y reutilizar. Los objetos tienen toda
1
TEMA
programación orientada a
objetos
la información (atributos) que los diferencia de
otros pertenecientes a otra clase. Por medio de
unos métodos se comunican los objetos de una
misma o diferente clase produciendo el cambio
de estado de los objetos. Esto hace que a los
2
TEMA
principios de la programación
orientada a objetos
objetos se les trate como unidades indivisibles
en las que no se separan la información ni
los métodos usados en su tratamiento. Los
lenguajes de programación orientadas a
objetos son lenguajes dinámicos en los que
3
TEMA
lenguaje de
desArrolladores
estos objetos se pueden crear y modificar
sobre la marcha. Esta programación orientada
a objetos (POO) tomo auge a mediados de los
años ochenta debido a la propagación de las
interfaces gráficas de usuarios, para lo que
4
TEMA
lenguaje html
los lenguajes de programación orientados
a objetos están especialmente dotados.
COMPETENCIA
“Comprende y aplicar las técnicas de
programación orientada a objetos, utilizando
5
TEMA
lenguaje java
un diseño asegurado por el lenguaje”
UNIDAD 7 - TEMA 1
programación orientada a objetos
CONCEPTOS BÁSICOS EVOLUCIÓN DE LOS LEGUAJES DE
Muchas veces cuando empezamos a trabajar PROGRAMACIÓN
con lenguajes de programación nos dicen que Una revisión de la evolución de los leguajes de
son orientados a Objetos y nos dan la teoría programación, continuaremos explicando
del “porqué” pero puede que al trabajar qué es la OOP para terminar haciendo
con ellos en la práctica no sepamos una breve revisión histórica de la
interpretarlo desconociendo el misma.
“como”, y entonces seguimos Toda la historia de los lenguajes
desarrollando por simple inercia de programación se ha
porque así fue que aprendimos, desarrollado en base a una sola
pero tal vez no de la forma más idea conductora: hacer que la
óptima. Vamos a ver algunos tarea de realizar programas para
conceptos de POO de forma ordenadores sea cada vez lo más
general, más adelante trabajaremos simple, flexible y portable posible.
estos conceptos en casos prácticos La OOP supone, no solo un nuevo
para ver su aplicación. paso hacia ese fin, sino que, además, a
nuestro juicio, es el más importante acaecido
hasta el momento. “A medida que se van
PROGRAMACIÓN ORIENTADA A OBJETOS
desarrollando los lenguajes, se va desarrollando
La programación orientada a Objetos
también la posibilidad de resolver problemas
básicamente define una serie de conceptos y
cada vez más complejos. En la evolución de
técnicas de programación para representar
cada lenguaje, llega un momento en el que los
acciones o cosas de la vida real basada
programadores comienzan a tener dificultades
en objetos, a diferencia de otras formas
a la hora de manejar programas que sean de
de programación como por ejemplo la
un cierto tamaño y sofisticación. Esta evolución
estructurada, con la POO trabajamos de
en los lenguajes, ha venido impulsada por dos
manera distinta vinculando diferentes
motores bien distintos:
conceptos tales como clases, objetos,
• Los avances tecnológicos
métodos, propiedades, estados, herencia,
• Los avances conceptuales (de
encapsulación entre otros, generando cada
planteamiento)
vez interrelaciones en nuestro desarrollo en
• Los avances en cuanto a enfoque de la
pro del funcionamiento del sistema principal,
programación
definiendo el programa como un conjunto de
• Evolución en cuanto a la tecnología
estos objetos relacionados entre sí.
Una computadora no es más que un conjunto
de micro interruptores, estos pueden estar
apagados o encendidos (por lo que les
llamamos elementos biestado). En un principio
estos interruptores eran relés, que no es
más que un electroimán que puede cerrar o
abrir un circuito eléctrico. Si están apagados
(no dejan pasar corriente), decimos que su
estado es cero y en caso contrario uno. Un
programa de computadora no es más que una EL SIGUIENTE PASO, VINO CON LA
sucesión de instrucciones que se ejecutarán APARICIÓN DE LOS LENGUAJES DE ALTO
secuencialmente, es decir, una detrás de otra. NIVEL
Por tanto, como la forma de programarlos es El proceso de desarrollo de una aplicación con
introduciendo secuencias de ceros y unos (lo un lenguaje de alto nivel es mucho más rápido,
que llamamos bits); puede imaginarse la gran simple y, por tanto, resulta más fácil detectar y
probabilidad que existe de error al introducir corregir errores. Esto se debe principalmente
sucesiones enormemente largas; además, una a dos factores: por un lado, cada instrucción
vez cometido un error, intentar encontrarlo y que escribimos en lenguaje de alto nivel puede
corregirlo puede llevarnos antes al manicomio equivaler a varias decenas e incluso cientos de
con un grave cuadro de psicosis, que a la instrucciones en ensamblador; por otra parte, la
solución del problema. De hecho, desde hace ya sintaxis de las instrucciones y los nemónicos
muchos años, los microprocesadores, que usamos se parecen algo más al
que, como probablemente sabrá, lenguaje cotidiano (sobre todo si
son la maquinaria ejecutora de fuésemos angloparlantes). Para
los ordenadores, se fabrican hacernos una idea, diremos que
para ser programados, no en realizar un programa que en un
binario (secuencia de unos y lenguaje de alto nivel nos puede
ceros), sino en hexadecimal (un llevar pocos días, en ensamblador
número hexadecimal equivale a es tarea de meses. Si tenemos esto
16 ceros o unos). en cuenta, comprenderemos que
Cronológicamente el primer avance después de escribir un programa en código
importante vino con la aparición de los máquina y de haberlo depurado para eliminar
lenguajes ensambladores. A estos lenguajes los errores (bugs en terminología informática),
los llamamos de “bajo nivel”, ya que se hallan a nadie le queden ganas de ponerse a
estrechamente ligados a la forma de trabajo de reescribirlo para otra máquina distinta.
la máquina con la que programamos y se opera Con lo que la portabilidad queda mermada
con ellos de modo muy similar a como se hace considerablemente. Hecho que no debe ocurrir
cuando trabajamos en hexadecimal. con un lenguaje de alto nivel. La cuestión tiene
Un lenguaje ensamblador lo único que hace es dos vertientes bien distintas: por un lado, los
transcribir unos nemónicos (palabras fáciles programas realizados con lenguajes de alto
de recordar) a la secuencia ceros y unos a nivel, realizan los mismos procesos de un modo
los que el nemónico representa y que sí son más lento que de haberlos escrito con uno de
entendibles por la máquina. El problema de bajo nivel, este problema no es demasiado
los lenguajes ensambladores es que se hallan gravoso si echamos un vistazo a la evolución
fuertemente comprometidos con la máquina. en la potencia de cálculo de las máquinas en
Un programa escrito en lenguaje ensamblador los últimos diez años. Salvo para programas
solo podrá ser ejecutado en la máquina donde muy específicos, o de gran rendimiento, no
fue diseñado. habría ningún problema, en escribir nuestras
aplicaciones en un lenguaje de alto o bajo nivel.
El problema está en la portabilidad. En teoría, y El BASIC tradicional también trabaja de este
solo en teoría, puesto que un lenguaje de alto modo. Este sistema de trabajo es complicado,
nivel es independiente de la máquina donde ya que obliga al programador a retener en
se ejecute, el mismo código que escribimos su cabeza permanentemente todo el código
para una máquina puede ser traducido al escrito hasta un momento determinado
lenguaje hexadecimal en esa máquina o en otra para poder seguir escribiendo el programa;
cualquiera que disponga de traductor para ese además a la hora de leerlo, el programador se
lenguaje. pierde con facilidad porque debe ir saltando
Por ejemplo, si yo escribo un programa en continuamente de unos trozos de código a
lenguaje BASIC para un ordenador, este mismo otros.
programa podría ejecutarse en cualquier otra Veamos un ejemplo típico de cómo se abordaría
máquina que dispusiese de traductor de BASIC una misma tarea desde las dos perspectivas. La
para ella. Pero aquí aparece la torre de Babel de tarea consiste en mostrar los números del 1 a
la informática. Existen traductores de lenguaje 10. Lo explicaremos en seudocódigo (exponer
BASIC para multitud de máquinas diferentes, el los pasos a realizar en lenguaje natural, en
problema reside en que cada máquina tiene un lugar de hacerlo en alguno de los lenguajes de
dialecto del lenguaje BASIC distinto a los demás, programación existentes) para que resulte más
con lo que la portabilidad se hace imposible. comprensible:
EVOLUCIÓN EN CUANTO A LA
CONCEPTUALIZACIÓN
El primer avance en metodología de
programación, vino con la Programación
Estructurada (en este concepto vamos a incluir
el propio y el de técnicas de Programación
con Funciones -también llamado procedural-,
ya que ambos se hallan íntimamente
relacionados, no creemos, que se pueda Programación lineal
concebir la programación estructurada sin el Cada línea de programa debe ir precedida de
uso masivo de funciones). La programación un identificador (una etiqueta) para poder
en ensamblador es lineal, es decir, las referenciarla, para este ejemplo hemos
instrucciones se ejecutan en el mismo orden utilizado números, aunque podría utilizarse
en que las escribimos. Podemos, sin embargo, cualquier otro identificador:
alterar este orden haciendo saltos desde una 1. Hacer una variable igual a 0
instrucción a otro lugar del programa distinto 2. Sumar 1 a esa variable
a la instrucción que le sigue a la que se estaba 3. Mostrar la variable
procesando. 4. Si la variable es 100 -> terminar, Si_no ->
saltar a 1:
Programación estructurada
Hacer una variable igual a 0
Mientras que sea menor que 100 -> sumar 1 y
mostrarla
Lo importante aquí, es que cuando escribimos
un programa usando las técnicas de
programación estructurada, los saltos están
altamente desaconsejados, por no decir
prohibidos; en cambio en BASIC, por ejemplo,
son muy frecuentes (todos conocemos el
prolífico GOTO <nLínea> ), lo que no es nada
conveniente si queremos entender algo que
escribimos hace tres meses de forma rápida y
clara.
De hecho, cuando el traductor (ya sea
intérprete o compilador) cambia nuestro
programa a código máquina, lo convierte a
estilo lineal, pero eso es asunto de la máquina,
nosotros escribimos y corregimos nuestro
programa de un modo claro, y podemos
seguir el flujo de la información con facilidad.
Lo que se intenta, es de que el programador
pueda hacer programas cada vez más extensos
sin perderse en un entramado de líneas de
código interdependientes. Un programa en
estilo lineal se parece a la red neuronal del
cerebro, si usted ha visto alguna vez una foto
de estas, no lo habrá olvidado: en esa maraña Programación Orientada al Objeto
de neuronas y conexiones nerviosas no hay Por último, llegamos al más reciente avance,
quien se entienda, y si no que se lo pregunten la OOP, que nos ofrece mucho mayor dominio
a los neurofisiólogos. Para evitar esto, junto sobre el programa liberándonos aún más de su
con la programación estructurada aparece un control. Hasta ahora, el control del programa
concepto que nos permite abarcar programas era tarea del programador, si usted ha realizado
más amplios con menor esfuerzo: el de función. algún programa de magnitud considerable
La idea es muy simple: muchas veces realizo lo habrá padecido. El programador tenía que
procesos que se repiten y en los que controlar y mantener en su mente cada
sólo cambia algún factor, si trato ese proceso que se realizaba y los efectos
proceso como un subprograma colaterales que pudieran surgir
al que llamo cada vez que lo entre distintos procesos, lo que
necesito, y cada vez que lo llamamos colisiones. En OOP, el
llamo puedo cambiar ese factor, programa se controla a sí mismo
estaré reduciendo el margen y la mente del programador se
de error, al reducir el número libera enormemente pudiendo
de líneas que necesito en mi realizar aplicaciones mucho más
programa, ya que no tengo que complejas al exigir menor esfuerzo
repetir todas esas líneas cada vez de atención, ya que los objetos son
que quiera realizar el proceso, con una entidades autónomas que se controlan
sola línea de llamada al subprograma será (si han sido creados correctamente) a sí
suficiente; además, de haber algún fallo en este mismos. Esto es posible principalmente porque
proceso el error queda circunscrito al trozo de los objetos nos impiden mezclar sus datos con
código de la función. otros métodos distintos a los suyos.
Así, las funciones podemos entenderlas como En programación estructurada, una función
unas cajas negras, que reciben y devuelven trabaja sobre unos datos, y no debería modificar
valores. Solo tengo que programarlas una vez, datos que no le corresponde hacer, pero de eso
las puedo probar por separado y comprobar tiene que encargarse el programador, en OOP
que funcionan correctamente, una vez es el propio sistema de trabajo el que impide
terminadas puedo olvidarme de cómo las hice que esto ocurra. Además, la reusabilidad del
y usarlas siempre que quiera. código escrito es mucho mayor que con el
uso de funciones, y la portabilidad es también
mayor.
LA IDEA PRINCIPAL
Realizar programas para ordenadores sea cada vez lo
más simple, flexible y portable posible.
UNIDAD 7- TEMA 2
PRINCIPIOS DE LA PROGRAMACIÓN
ORIENTADA A OBJETOS
CLASES • Estado:Representa los atributos o
Las clases son uno de los principales características con valores concretos del
componentes de un lenguaje de programación, objeto.
pues en ellas ocurren todos los procesos lógicos • Comportamiento: Se define por los
requeridos para un sistema, en si podemos métodos u operaciones que se pueden
definirlas como estructuras que representan realizar con él.
objetos del mundo real, tomando como objetos • Identidad:Es la propiedad única que
a personas, lugares o cosas, en general las representa al objeto y lo diferencia del resto.
clases poseen propiedades, comportamientos En la imagen, los moldes representan las clases,
y relaciones con otras clases del sistema. (Ver mientras que las galletas obtenidas de estos
Ejemplo...) moldes representan los objetos instancias de
Una clase se compone por tres partes estas clases, por ejemplo, atributos del objeto
fundamentales: galleta podría ser sabor, color, tamaño etc.
• Nombre: Contiene el Nombre de la Clase.
• Atributos: Representan
las propiedades que
caracterizan la clase.
• Métodos: Representan
el comportamiento u
operaciones, la forma
como interactúa la clase
con su entorno. (.) así:
LA IDEA PRINCIPAL
Los Principios de la programación
UNIDAD 7 - TEMA 3
LENGUAJE DE DESARROLLADORES
¿QUÉ ES UN LENGUAJE DE TIPOS DE LENGUAJE DE PROGRAMACIÓN
PROGRAMACIÓN? Normalmente se distingue entre los siguientes
En informática, se conoce como lenguaje de tipos de lenguaje de programación:
programación a un programa destinado a la Lenguajes de bajo nivel.
construcción de otros programas informáticos. Se trata de lenguajes de programación
Su nombre se debe a que comprende un que están diseñados para un hardware
lenguaje formal que está diseñado para específico y que por lo tanto no
organizar algoritmos y procesos lógicos que pueden migrar o exportarse a otros
serán luego llevados a cabo por un ordenador computadores. Sacan el mayor
o sistema informático, permitiendo controlar provecho posible al sistema para el que
así su comportamiento físico, lógico y su fueron diseñados, pero no aplican para
comunicación con el usuario humano. ningún otro.
Lenguajes de alto nivel.
Se trata de lenguajes de programación
que aspiran a ser un lenguaje más
universal, por lo que pueden emplearse
indistintamente de la arquitectura del
hardware, es decir, en diversos tipos de
sistemas. Los hay de propósito general
y de propósito específico.
Dicho lenguaje está compuesto por símbolos Lenguajes de nivel medio.
y reglas sintácticas y semánticas, expresadas Este término no siempre es
en forma de instrucciones y relaciones lógicas, aceptado, que propone lenguajes de
mediante las cuales se construye el código programación que se ubican en un
fuente de una aplicación o pieza de software punto medio entre los dos anteriores:
determinado. Así, puede llamarse también pues permite operaciones de alto nivel y
lenguaje de programación al resultado final de a la vez la gestión local de la arquitectura
estos procesos creativos. del sistema.
L a i m p l e m e n t a c i ó n d e l e n g u a j e s d e Otra forma de clasificación a menudo es la
programación permite el trabajo conjunto siguiente:
y coordinado, a través de un conjunto afín y Lenguajes imperativos.
finito de instrucciones posibles, de diversos Menos flexibles, dada la secuencialidad
programadores o arquitectos de software, en que construyen sus instrucciones,
para lo cual estos lenguajes imitan, al menos estos lenguajes programan mediante
formalmente, la lógica de los lenguajes órdenes condicionales y un bloque
humanos o naturales. de comandos al que retornan una vez
No deben confundirse, sin embargo, con los llevada a cabo la función.
distintos tipos de lenguaje informático. Estos Lenguajes funcionales.
últimos representan una categoría mucho También llamados procedimentales,
más amplia, en donde están contenidos los estos lenguajes programan mediante
lenguajes de programación y muchos otros funciones que son invocadas conforme
protocolos informáticos, como el HTML de las a la entrada recibida, que a su vez son
páginas web. resultado de otras funciones.
Algunos de los lenguajes de programación
más conocidos son:
JAVA, Comenzamos con Visual Basic .NET te da la
JAVA que sigue desde hace posibilidad de automatizar sus
muchos años siendo el propios procesos y crear sus
lenguaje programación más propias aplicaciones web.
usado, quizás sea por su gran
Es uno de los lenguajes más amigables para
legibilidad y simplicidad.
los principiantes de programación, sobre
Actualmente cuenta con más de 9 millones todo a comparación de C#.
desarrolladores que lo usan y está presente
Javascript es un lenguaje de
en más de 7 mil millones de dispositivos en
programación que puede
todo el mundo.
ser utilizado para crear
C, El lenguaje de programación programas que son integrados
C fue creado entre 1969 y 1972 a una página web o dentro de
en los Laboratorios Bell, es aplicaciones más grandes.
uno de los más utilizados en el
Además, lo podemos utilizar para crear
mundo.
efectos y realizar acciones interactivas.
Lo utilizan la mayoría de los sistemas Algunos ejemplos de este lenguaje son
operativos lo cual hace que sea un el chat, calculadoras, buscadores de
lenguaje muy flexible. También se utiliza información y un sin fin de utilidades más.
frecuentemente para el desarrollo de
PHP, El lenguaje de
aplicaciones de escritorio como por ejemplo
programación PHP fue creado
GIMP que mencioné hace poco en post
en 1994 por el programador
sobre los programas gratis similares a
canadiense Rasmus Lerdorf.
Photoshop.
Python es un lenguaje Es de fácil acceso para nuevos
de programación programadores y a su vez ofrece a los más
multiplataforma y experimentados muchas posibilidades.
multiparadigma. Swift es un lenguaje de
Es muy fácil de utilizar lo cual lo hace un programación multiparadigma
lenguaje de programación ideal para creado por Apple enfocado en
principiantes. el desarrollo de aplicaciones
para iOS y macOS.
C++ es un lenguaje de
programación orientado a Fue presentado como un lenguaje
objetos y una evolución del propietario, pero en el año 2015, con la
lenguaje C. versión 2.2 pasó a ser de código abierto8
con la Licencia Apache 2.0.
Es un lenguaje muy utilizado para desarrollar
programas y paquetes como por ejemplo el SQL es un lenguaje específico
paquete de programas de Adobe. del dominio utilizado en
programación; y diseñado
C# es un lenguaje de para administrar sistemas
programación orientado a de gestión de bases de datos
objetos fue desarrollado en relacionales.
el año 2000 por Microsoft
para ser empleado en una Pese a su casi desaparición en los últimos
amplia gama de aplicaciones años en este listado de los lenguajes de
empresariales. programación más usados en 2020, vuelve
al top 10 con mucha fuerza y es sin duda
C# es una evolución de los lenguajes de uno de los ascensos más destacables de la
programación C y C++, y destaca por su lista
sencillez.
BASIC, Su nombre proviene
de las siglas de Beginner’s All-
purpose Symbolic Instruction
Code (Código simbólico de
instrucciones de propósito
general para principiantes),
y es una familia de lenguajes
imperativos de alto nivel,
aparecidos por primera vez en
1964. Su versión más actual es
Visual Basic .NET.
COBOL Su nombre es un
acrónimo para Common
Business-Oriented Lenguage
(Lenguaje común orientado
a los negocios) y se trata de
un lenguaje de programación
universal creado en 1959,
orientado principalmente a
la informática de gestión, es
decir, empresarial.
FORTRAN. Su nombre proviene
de The IBM Mathematical
Formula Translating System
(El sistema de traducción
de fórmulas matemáticas
de IBM), y es un lenguaje de
programación de alto nivel,
propósito general y de tipo
imperativo, diseñado para
aplicaciones científicas y de
ingeniería.
RESUMEN DEL TEMA
En informática, se conoce como lenguaje de programación a un programa destinado a
la construcción de otros programas informáticos. Su nombre se debe a que comprende
un lenguaje formal que está diseñado para organizar algoritmos y procesos lógicos
que serán luego llevados a cabo por un ordenador o sistema informático, permitiendo
controlar así su comportamiento físico, lógico y su comunicación con el usuario
humano.
La implementación de lenguajes de programación permite el trabajo conjunto y
coordinado, a través de un conjunto afín y finito de instrucciones posibles, de diversos
programadores o arquitectos de software, para lo cual estos lenguajes imitan, al menos
formalmente, la lógica de los lenguajes humanos o naturales.
Así, puede llamarse también lenguaje de programación al resultado final de estos
procesos creativos
LA IDEA PRINCIPAL
La implementación de lenguajes de programación
UNIDAD 7 - TEMA 4
LENGUAJE HTML
LENGUAJE HTML Dividiremos la descripción del lenguaje en
El HTML no es más que una aplicación del SGML varias partes:
(Standard Generalized Markup Language), • Descripción de los componentes léxicos
un sistema para definir tipos de del HTML. Donde se indica el formato
documentos estructurados de los caracteres, marcas, nombres,
y lenguajes de marcas para atributos y comentarios.
representar esos mismos • Estructura de los
documentos. El término HTML documentos. Hablaremos de las
se suele referir a ambas cosas, marcas empleadas para definir
tanto al tipo de documento las partes del documento, las
como al lenguaje de marcas. estructuras de bloque y lista, las
En realidad, aún no existe un marcas de formato de párrafos y
estándar del HTML en Internet, ya algunas marcas especiales que no
que existen tres revisiones o niveles entran en las categorías anteriores.
de estandarización que aún no han sido • Caracteres, palabras y párrafos. Juegos
aceptadas: la versión 1.0, que en realidad no de caracteres aceptados en el HTML y el
existe como estándar ya que nunca se hizo una marcado alternativo para que el texto sea
especificación formal, la 2.0, que es un estándar sólo ASCII de 7 bits, además de describir
de hecho, aunque todavía está en la etapa de cómo se tratan las palabras y los párrafos.
propuesta de estándar documentada en el RFC- • Soporte de hipertexto. Además de las
1866 de noviembre de 1995. El siguiente nivel, marcas de formato necesitamos marcas
el HTML 3.0, está en una etapa experimental, para definir relaciones entre distintos
aunque muchos de los visores aceptan algunas documentos (e incluso entre partes de un
de las extensiones propuestas. mismo documento). Para ello, el HTML define
En este apartado comentaremos la una serie de marcas que denominaremos
especificación del HTML 2.0 tal y como se hiperenlaces. Comentaremos su sintaxis y
describe en el RFC-1866. En el punto siguiente funcionamiento en detalle.
hablaremos de algunas de las propuestas • Formularios. Nuevos en el HTML 2.0,
de ampliación para el HTML 3.0 y algunas permiten la interacción del usuario y el
extensiones soportadas por algunos de los servidor mediante la definición de plantillas
visores. de formulario, que el usuario completa y
envía al servidor para su proceso. Según el
GENERALIDADES propósito del formulario el cliente recibirá
Antes de comenzar, comentaremos algo de algún tipo de respuesta.
la terminología necesaria para el resto de la
descripción.
La definición del HTML en SGML incluida COMPONENTES LÉXICOS
en la estándar resulta demasiado compleja Comenzamos nuestra descripción del HTML
para tratarla aquí, ya que es una descripción definiendo los componentes léxicos del
formal basada en la teoría de lenguajes. Nos lenguaje, es decir, las distintas entidades o
limitaremos a una aproximación informal elementos que pueden emplearse en los
al lenguaje, aunque siguiendo el esquema documentos.
empleado en el estándar.
Caracteres Nombres
Cada documento escrito en HTML puede Los nombres consisten en una letra seguida de
emplear un juego de caracteres distinto, como letras, dígitos, puntos o guiones. Los ejemplos
veremos más adelante. De cualquier modo, H1 y HR anteriores son ejemplos de nombres.
todas las marcas se pueden escribir usando el La longitud de un nombre está limitada a
ISO-646, el mismo juego de caracteres aceptado 72 caracteres en la definición del HTML.
por los lectores de correo. Los nombres de elementos y atributos no
Cualquier cadena de caracteres imprimibles distinguen entre mayúsculas y minúsculas, pero
que no represente un marcado se representa los nombres de entidades (la representación
literalmente, aunque los espacios y tabuladores alternativa de los caracteres) sí.
se reducen a un solo carácter cuando no están En las marcas, el nombre del elemento debe
dentro de un bloque pre formateado. comenzar inmediatamente después del <.
Para reducir los documentos a ASCII de 7 bits
y representar los caracteres empleados para
Atributos
marcar el texto se definen dos mecanismos de
Cuando una marca inicial admite atributos,
referencia:
éstos se escriben a continuación del nombre
• Referencia por nombre: el carácter se
del elemento. Generalmente los atributos
representa con un & seguido del nombre
tienen la forma nombre, signo igual, valor del
del carácter y un punto y coma, por ejemplo
atributo, aunque en algunos casos basta con el
& será el carácter & y < el carácter <.
nombre del atributo. Se pueden poner espacios
• Referencia numérica: en lugar de dar la
en blanco antes y después del signo igual.
referencia por nombre se escribe # seguido
El valor de un atributo puede ser:
del número de carácter en el código de
• Una cadena de caracteres entre comillas
caracteres seleccionado, por ejemplo &
(simples o dobles) que no contenga el símbolo
será el carácter & y el < el carácter <.
de fin de marca “>”.
Aunque en algunos casos se puede omitir el
• Un nombre como los definidos en el
punto y coma final, es recomendable ponerlo
apartado anterior.
para evitar errores. De igual forma, el carácter
La longitud del valor de un atributo no puede
& se representa a sí mismo si no va seguido de
superar los 1024 caracteres.
# o de una letra, aunque siempre es preferible
usar el código por la misma razón que antes.
Comentarios
Para incluir comentarios en HTML se emplea la
Marcas
declaración de comentarios. ¡Una declaración
Las marcas delimitan elementos de un
de comentarios comienza con <!, le siguen uno
documento como cabeceras, párrafos, etc.
o varios comentarios y termina con >. Cada
La mayoría de marcas constan de una marca
comentario comienza con -- e incluye todo el
inicial, que da el nombre y atributos del
texto hasta la siguiente aparición de -- . Dentro
elemento, seguida del contenido y una marca
de una declaración de comentarios, se pueden
final.
poner espacios en blanco después de cada uno
Las marcas iniciales se escriben entre los
de ellos, pero no antes del primero. Toda la
símbolos “<” y “>” (menor y mayor) y las finales
declaración del comentario se ignora.
entre “</” y “>” (menor barra y mayor). Por
ejemplo, <H1>Contenido</H1>, indica que
“Contenido” es una cabecera de nivel uno.
Algunos elementos sólo tienen una marca inicial
(por ejemplo, la marca <HR> que representa
una línea horizontal) y otros, aunque disponen
de ambas, se suelen expresar sólo con la inicial.
El contenido de un elemento es una secuencia
de cadenas de caracteres y puede incluir
elementos anidados, excepto en el caso de los
anclajes, que no pueden incluir otros elementos
(pero si estar incluidos en otros).
Identificación del Nivel HTML de un
Documento
Para identificar un documento como HTML que
sigue el estándar 2.0, cada documento debe
comenzar con la siguiente declaración:
<!DOCTYPE HTML PUBLIC “-//ITEF//DTD HTML
2.0//EN”>
Existen más identificadores que especifican
otros detalles, por ejemplo, si el documento
contiene formularios. Este mecanismo también
puede ser empleado por los visores para
reconocer otros tipos de documentos.
Definición de Bloques
Para definir y separar bloques de texto se
emplea una serie de marcas que definen
párrafos, texto pre formateado o bloques con
un significado especial como direcciones o citas.
También, y aunque no son propiamente para
definir bloques, hablamos en este punto de dos
marcas especiales, una para representar saltos
de línea y otra que inserta una línea horizontal.
Ambas permiten dividir el texto, por lo que las
hemos incluido aquí.
Las marcas de bloque son: Listas
• <P> para separar párrafos.Dado que para el En realidad, también son marcas que permiten
HTML todo el texto es continuo, necesitamos definir bloques, pero con características
algún mecanismo para indicar el principio y especiales. Las listas se emplean para presentar
fin de un párrafo. Las marcas inicial y final de forma ordenada una serie de líneas.
son <P> y </P>, aunque generalmente sólo En función de su carácter lógico se distinguen
se emplea la inicial, terminando el mismo los siguientes tipos de lista:
cuando encontramos cualquier elemento • Lista desordenada, <UL> (Unordered List).
que cause un salto de línea. • Lista ordenada, <OL> (Ordered List).
• <PRE> para texto preformateado. Esta • Directorio, <DIR> (Directory).
marca se emplea para texto escrito en • Menú, <MENU> (Menu).
tipo de letra de caja fija (mono-espaciada) • Lista de definición, <DL> (Definition List).
y dentro del bloque marcado los Exceptuando las listas de definición, el
saltos de línea sí son respetados. marcado de las líneas es igual en
Dentro de estos elementos se todos los casos: poniendo <LI>
pueden emplear anclajes y para marcar el principio de cada
marcado tipográfico, pero una, la línea termina cuando
no elementos que definan aparece un nuevo símbolo
formato de párrafo <LI> o se cierra la lista.
(como marcas de párrafo, Para las listas de definición
encabezados, etc.). se emplean las marcas <DT>
El elemento acepta el (Definition Term) y <DD>
atributo opcional WIDTH, (Definition Data) para cada
que indica el máximo término y su correspondiente
número de caracteres por línea definición. Se pueden poner varios
para que el visor ajuste el tamaño términos antes de una definición
y tabulación del texto.Además de la marca (marcas <DT>), pero no dos definiciones para
PRE existen dos elementos muy similares a un solo término.
él: EXP (ejemplo) y LISTING (listado), que no Un ejemplo sería:
permiten ningún tipo de elemento anidado.
Dado que con PRE podemos obtener el Esto es una lista desordenada:
mismo resultado, no es recomendable el <UL>
uso de estas marcas. <LI>Primer elemento
• <ADDRESS>, empleada para indicar que un <LI>Segundo elemento
texto representa una dirección o una firma. </UL>
Generalmente se representa en cursiva y Esto es una definición:
puede estar tabulado. <DL>
• <BLOCKQUOTE>, que indica que un texto es <DT>Perro
una cita de otra fuente. Se suele representar <DD>Animal al que el hombre tiene la fea
con tabulaciones a izquierda y derecha y costumbre de morder
en cursiva. En sistemas que no permiten </DL>
representar cursivas se puede emplear
algún tipo de símbolo al principio de las
líneas, de manera similar a lo que se hace
en las réplicas o citas (quote) del correo
electrónico.
• <BR>. Este elemento sólo tiene marca inicial
y se usa para que el visor termine la línea en
el punto en el que encuentre el salto.
• <HR>. Al igual que la anterior, sólo consta
de una marca inicial. Se emplea para
presentar una línea horizontal en el texto,
ya sea usando caracteres o un gráfico,
dependiendo del visor.
Marcado Lógico de Frases Marcado de Anclaje de Hiperenlaces
Existen multitud de marcas para indicar que Un caso especial de marcado es el representado
una palabra o frase tiene una connotación por el elemento <A>, que se emplea para
especial. indicar que un texto hace referencia a otro, es
Los elementos son: decir, está anclado mediante un hiperenlace.
• <CITE>, indica que el texto es una cita (por Para el marcado se emplean la marca inicial
ejemplo de un título). Generalmente se con atributos, el texto a anclar y la marca final.
representa en cursiva. Los atributos pueden ser:
• <CODE>, lo marcado es un ejemplo de • HREF. El valor es el URI (Uniform Resource
código dentro del texto. Se representa Identifier) del anclaje principal de un
usando un tipo de letra de caja fija. hiperenlace. El URI se puede referir a otro
• <EM>, denota énfasis. Generalmente se documento HTML, a un anclaje del mismo
representa con letra cursiva. documento o a cualquier otro tipo de
• <KBD>, indica que el texto se introduce recurso (FTP, Gopher, etc.).
desde el teclado. Se representa usando un • NAME. Nombra un anclaje para poder
tipo de letra de caja fija. ser usado como anclaje principal de
• <SAMP>, ejemplo, es decir, una secuencia un hiperenlace, es decir, el punto
de caracteres literales. Se representa nombrado puede ser referenciado desde
usando un tipo de letra de caja fija. otro anclaje que emplee el atributo
• <STRONG>, denota énfasis fuerte. HREF. Por ejemplo, si en el documento
Generalmente en negrita. test.html incluimos un anclaje <A
• <VAR>, lugar de una variable, por ejemplo, la NAME=”indice”>Índice</A>, dentro
que se le pasa a un programa. Se representa del mismo lo podremos referenciar
usando un tipo de letra de caja fija. mediante <A HREF=”#indice”>Volver al
índice</A>. Si queremos referirnos a
ese punto dentro del documento desde otro
Marcado Tipográfico de Frases
documento que se encuentra en el mismo
Se usan para indicar explícitamente el formato
directorio, la referencia será <A HREF=”test.
tipográfico de una palabra o frase.
html#indice”>índice del test</A>.
Los formatos y sus marcas correspondientes
• TITLE. Sugiere un título para el recurso
son:
destino. Este atributo es sólo informativo
• Negrita, <B></B>
y puede ser usado para que se visualice al
• Cursiva, <I></I>
colocarnos sobre el enlace o para nombrar
• Texto de teletipo (tipo de letra de caja fija)
recursos que no incluyen un título, como
<TT></TT>
gráficos.
Aunque no están en el estándar, algunos
• REL. relaciones descritas por el hiperenlace.
visores pueden soportar otras marcas de
El valor es una lista de nombres de
formato tipográfico como <STRIKE> (texto
relaciones separadas por blancos.
tachado) o <U> (subrayado).
• REV. Igual que REL pero en dirección
contraria (si A se relaciona con B por X,
un enlace de A a B con REL=”X” expresa lo
mismo que un enlace de B a A con REV=”X”).
• URN. Especifica un identificador para el
primer anclaje del hiperenlace. La sintaxis
de los URN (Uniform Resource Namer) a_n
no está especificada.
• METHODS. Especifica métodos a usar para
acceder al destino. Se escriben como una
lista de palabras separadas por espacios
y dependen del tipo de URI. Al igual que el
elemento TITLE, son sólo orientativos para
el visor.
Imágenes JUEGOS DE CARACTERES DE LOS
Para incluir imágenes en documentos HTML DOCUMENTOS
se emplea la marca <IMG>. Esta marca puede Como mínimo todos los visores deben soportar
tener los siguientes atributos: todos los caracteres gráficos del alfabeto latino
• SRC. Indica la fuente de la imagen, en definido en el ISO Latin-1 (ISO 8859-1), que
realidad se trata de un enlace con el permiten escribir textos en la mayoría de los
documento que contiene la imagen. En la idiomas occidentales.
práctica se suelen emplear solo imágenes De los caracteres de control, sólo están
en formatos de mapa de bits como gif o permitidos tres: tabulador, salto de línea
jpeg. y retorno de carro (códigos 9, 10 y 13
• ALT. Indica un nombre para referirnos respectivamente).
a la imagen si ésta no se representa.
Hiperenlaces (Hyperlinks)
Generalmente lo emplean los visores de solo
Como ya hemos comentado, además de
texto o los visores gráficos cuando el usuario
elementos para definir la presentación de los
selecciona no cargar automáticamente
documentos, el HTML incluye herramientas
las imágenes. Es el nombre que aparece
para expresar hiperenlaces, es decir, relaciones
habitualmente cuando interrumpimos la
entre dos anclajes, que se denominan cabeza
carga de una página o ésta se corta dejando
y cola del hiperenlace. El anclaje de cola es
imágenes sin traer.
el que “apunta” a la cabeza, es decir, el que
• ALIGN. Alineación de la imagen respecto al
empleamos para acceder a ella.
texto, puede tomar los valores: TOP (arriba),
Hasta ahora hemos visto anclajes a partes del
MIDDLE (en medio) o BOTTOM (abajo). En
propio documento o en otro documento de la
general, si no se especifica, los visores
misma dirección, pero en general, los anclajes se
asumen BOTTOM.
identifican mediante una dirección mucho más
• ISMAP. Indica que la imagen es un mapa (lo
completa. En el caso del HTML esta dirección es
veremos más adelante)
un URI (Uniform Resource Identifier) absoluto,
• El único atributo imprescindible es el SRC
seguido opcionalmente por una almohadilla
(como es lógico, sin la imagen poca utilidad
(#) y una secuencia de caracteres, denominada
tiene la marca).
identificador de fragmento.
Una página con varias referencias a imágenes
En la dirección de un anclaje, el URI se refiere
podría ser la siguiente:
a un recurso; este recurso puede ser cualquier
<HTML> tipo de entidad (como páginas HTML) y ser
<HEAD> obtenido usando distintos protocolos (HTTP
<TITLE>Página de para páginas HTML). El identificador de
prueba de imágenes</ fragmento se referirá a alguna vista o porción
TITLE> del recurso (por ejemplo, una sección dentro
</HEAD> de una página HTML).
<BODY> Los siguientes marcados del HTML indican el
<IMG SRC=”foto.gif” ALT=”Foto” anclaje de cola de un hiperenlace (o conjunto
ALIGIN=MIDDLE> de ellos):
Este soy yo. • <A> (si usan HREF)
<P>Selecciona lo que quieras • <LINK>
de este mapa: • <IMG>
<A HREF=”/cgi-bin/imagemap/ • <INPUT> (si tienen el atributo SRC)
mapa”><IMG SRC=”mapa.gif” • <ISINDEX>
ISMAP></A> • <FORM> (con método GET)
</BODY> Todos ellos hacen referencia a anclados cabeza
</HTML> mediante un URI, ya sea absoluto o relativo,
con o sin identificador de fragmento.
En el caso de tener un URI relativo, el URI
absoluto se obtiene combinando el URI base
absoluto del documento con el relativo. El URI
base es el identificado en el elemento <BASE>,
o sino existe el del documento actual.
Una vez calculada la dirección del recurso, el Mapas
visor debe obtenerlo para presentárselo al Cuando en un elemento <IMG> aparece el
usuario. Por ejemplo, si el URI base es http:// atributo ISMAP, el elemento <IMG> debe
www/alice/ y el documento contiene la marca estar dentro de un anclaje de tipo HREF.
<img src=”../img/logo.gif”>, el visor emplea el Esta estructura representa un conjunto de
URI http://www/img/logo.gif para obtener la hiperenlaces.
imagen. Por ejemplo:
<a href=”http://www/cgi-bin/
Activación de Hiperenlaces imagemap”><img ismap src=”menu.gif”></a>
El visor de HTML permite al usuario “navegar”
por el contenido del documento y solicitar la ¿Si el usuario selecciona alguno de los enlaces
activación de hiperenlaces representados con marcando un píxel de la imagen, el visor calcula
elementos de tipo <A> y, opcionalmente, los de la dirección del recurso añadiendo al URI dado
tipo <LINK>. en el elemento <A> un interrogante? y las
Para activar un enlace, el cliente obtiene una coordenadas x e y del pixel.
representación del recurso identificado por En el ejemplo anterior, si el usuario selecciona la
la dirección del anclaje, si lo que obtenemos esquina superior izquierda, el URI seleccionado
es otro documento HTML, la posibilidad de será http://www/cgi-bin/imagemap?0,0.
navegar comienza de nuevo con él.
Formularios (Forms)
Entramos ahora en la descripción del elemento
más novedoso del HTML 2.0 respecto a las
versiones anteriores: los formularios.
Un formulario es una plantilla para representar Dentro de un formulario podemos encontrar
un conjunto de datos, el método de enviarlos los siguientes elementos:
y el URI de la acción asociada (referencia al • Declaración del formulario (FORM)
programa que va a realizar el proceso de los • Campos de entrada (INPUT)
datos). • Campo de selección (SELECT)
• Área de texto (TEXTAREA)
A continuación, vamos a describir cada uno de
los elementos y sus atributos correspondientes.
Declaración del Formulario (FORM)
La declaración del formulario se pone entre las
marcas <FORM> y </FORM>.
En su interior aparecen una secuencia de
elementos de entrada (input elements), junto
con elementos de marcado de estructura del
El conjunto de datos resultante después de la documento.
edición de los campos por el usuario se emplea En la definición del formulario se pueden incluir
para acceder a un servicio de información, los siguientes atributos:
en función del método y la acción asociada • ACTION. Especifica el URI de la acción
especificados. asociada al formulario. Si no se especifica,
El conjunto de datos es una secuencia de por defecto se asume que el URI es el BASE
campos con pares nombre/valor. Los nombres del documento.
se especifican en los atributos NAME de los • METHOD. Indica el método de acceso al
elementos de entrada del formulario y los URI de la acción. El conjunto de métodos
valores toman un valor inicial empleando aplicables es función del esquema del URI.
distintos marcados, que luego pueden ser Se pueden emplear los métodos GET y
editados por el usuario. POST, que se describirán más adelante.
• ENCTYPE. Especifica el tipo de codificación del valor del campo aportada por el elemento,
para el transporte de los pares nombre/ respectivamente.
valor, excepto en los casos en los que el Opcionalmente podemos incluir el atributo
protocolo no imponga uno. Trataremos este CHECKED, que indica que el estado inicial es
tema en el punto referido a la codificación seleccionado.
de los formularios. Ejemplo:
Campo de Entrada (INPUT)
Qué bebidas le gustan:
El elemento <INPUT> representa un campo de
<input type=checkbox name=bebida
entrada de datos. Los atributos posibles del
value=agua checked>Agua<br>
elemento vienen dados por el valor del atributo
<input type=checkbox name=bebida
TYPE, que determina el tipo de entrada.
value=cerveza>Cerveza<br>
Los tipos de entrada son:
<input type=checkbox name=bebida
• Texto: INPUT TYPE=TEXT.
value=vino>Vino<br>
Valor por defecto del atributo TYPE, indica
• Botón: INPUT TYPE=RADIO.
que la entrada es una sola línea.
Representa una opción booleana
Necesariamente los elementos de
(si o no). Un conjunto de varios
este tipo deben incluir el atributo
elementos de este tipo con el
NAME, que indica el nombre del
mismo nombre representa un
campo.
campo de selección múltiple, 1
Como atributos opcionales
de muchos.
puede tomar:
Los elementos de este tipo
• MAXLENGTH, que limita
requieren, al igual que en el caso
el máximo número de
anterior, los atributos NAME y
caracteres que pueden ser
VALUE.
introducidos en el campo.
Opcionalmente podemos incluir el
Si el valor es mayor que el del
atributo CHECKED, que indica que el
atributo SIZE, el visor debe permitir el
estado inicial es seleccionado. En cualquier
desplazamiento de la línea. El número de
momento sólo uno de los botones de un
caracteres por defecto es ilimitado.
conjunto está marcado. Si ninguno de los
• SIZE, que especifica la cantidad de espacio
elementos <INPUT> de un conjunto de botones
reservada para este campo. El valor por
de tipo radio especifica CHECKED, el visor debe
defecto depende del visor.
marcar el primero de ellos inicialmente.
• VALUE, que indica el valor inicial del campo.
Ejemplo:
Ejemplo:
Qu&e acute; bebida prefiere:
Calle: <input name=calle><br>
<input type=radio name=bebida
Número: <input name=numero><br>
value=agua>Agua<br>
Código postal: <input name=cp size=5
<input type=radio name=bebida
maxlength=5 value=”99999”><br>
value=cerveza>Cerveza<br>
• Password: INPUT TYPE=PASSWORD.
<input type=radio name=bebida
Es un campo de texto como el anterior, pero el
value=vino>Vino<br>
valor no se ve al escribirlo.
• Píxel de una imagen: INPUT TYPE=IMAGE.
Ejemplo:
Especifica una imagen para que la muestre el
Clave de usuario: <input name=login><br> visor y permite la entrada de dos campos, las
Contraseña: <input type=password coordenadas x e y de un pixel seleccionado
name=passwd> de la misma. Los nombres de los campos
• Caja de selección: INPUT TYPE=CHECKBOX. son iguales al del campo, añadiendo al final
Representa una opción booleana (si o no). Un .x e .y respectivamente. Este tipo implica
conjunto de varios elementos de este tipo con también TYPE=SUBMIT, es decir, cuando
el mismo nombre representa un campo de un seleccionamos un píxel, se envía todo el
selección múltiple (n de muchos). formulario.
Los elementos de este tipo requieren los Los atributos NAME y SRC son necesarios y el
atributos NAME y VALUE, que indican el nombre campo ALIGN es opcional (al igual que en el
del elemento o grupo de elementos y la parte elemento <IMG>).
Ejemplo: • NAME. Especifica el nombre del campo.
• SIZE. Determina el número de ítems visibles.
Selecciona un punto del mapa:
Si se indica tamaño uno, se suelen presentar
<input type=image name=punto src=”mapa.
como menúes desplegables, mientras que
gif”>
si el tamaño es mayor se suelen presentar
• Oculto: INPUT TYPE=HIDDEN.
como lista con barra de desplazamiento.
Representa un campo oculto. El usuario no
Por ejemplo:
interactúa con él, es el atributo VALUE el que
especifica el valor del campo. Tanto el atributo <SELECT NAME=”bebida”>
NAME como VALUE son obligatorios. <OPTION selected>Agua
Ejemplo: <OPTION>Cerveza
<OPTION VALUE=refresco>Refresco Gaseoso
<input type=hidden name=clave
<OPTION>Vino
value=”l2k3j4l2k3j4l2k3j4lk23”>
<OPTION>Zumo
• Botón de envío: INPUT TYPE=SUBMIT. </SELECT>
Representa una opción (normalmente
El elemento <OPTION> sólo puede
mediante un botón) que le indica
aparecer dentro de un elemento
al cliente que debe enviar el
<SELECT> y representa una
formulario.
posible elección. Puede tomar
Como atributos opcionales
los siguientes atributos:
acepta:
• SELECTED. Indica que
• NAME. Indica que este
esta opción está seleccionada
elemento constituye un
inicialmente. Si ninguna
campo cuyo valor es el del
opción tiene este atributo,
atributo VALUE. En caso de
el visor presenta la primera
que no se incluya el atributo,
seleccionada.
este elemento no es un campo.
• VALUE. Indica el valor a retornar
• VALUE. Indica la etiqueta para la
si se selecciona la opción. Si no se incluye
entrada (botón).
el atributo, se emplea el contenido del
Ejemplo:
elemento.
Puede enviar esta solicitud al administrador
del sistema:
Área de Texto (TEXTAREA)
<input type=submit name=para
El elemento <TEXTAREA> representa un campo
value=administrador><br> o a mí:
de texto de múltiples líneas. Los atributos
<input type=submit name=para value=yo>
posibles son:
• Botón de reinicio: INPUT TYPE=RESET.
• COLS. El número de columnas visibles del
Representa una opción de entrada
área de texto, en caracteres.
(generalmente mediante un botón) que le
• NAME. Nombre del campo.
indica al cliente que debe reiniciar los valores
• ROWS. El número de líneas visibles del área
de sus campos a los que tenían inicialmente.
de texto, en caracteres.
El atributo VALUE, si existe, indica la etiqueta a
Por ejemplo:
emplear para la entrada (botón).
Ejemplo: <TEXTAREA NAME=”direccion” ROWS=6
COLS=64>
Si se ha equivocado, pulse para volver a
Magallanes, 25 - 28015 MADRID
comenzar: <input type=reset>
</TEXTAREA>
Campo de Selección (SELECT) El contenido del elemento es el valor inicial del
El elemento <SELECT> se emplea para reducir campo. La especificación de filas y columnas
el campo a una lista de valores. sólo se refiere a la dimensión del área visible,
Estos valores se presentan empleando pero los programas cliente pueden permitir
elementos de tipo <OPTION>. Los atributos del sobrepasar los límites mediante barras de
elemento son: desplazamiento. Generalmente se emplea
• MULTIPLE. Indica que el valor puede incluir un tipo de letra de caja fija para mostrar los
más de una opción. contenidos del campo.
Envío de Formularios Formularios de Consulta: METHOD=GET
Un visor de HTML comienza El método de consulta depende de los efectos
el proceso de un formulario que el formulario tenga en el estado del resto
presentando el documento del mundo, es decir, si el envío va a producir
con los campos en su estado cambios en cualquier documento o programa
inicial. Según el tipo de campo, que no sea nuestro visor.
el usuario puede modificar Si el proceso del formulario es idempotente
sus valores (seleccionando un (no produce cambios), el método debe ser GET.
campo, rellenando con texto, Un ejemplo de este tipo de formularios son
etc). Cuando ha terminado, puede enviarlo las consultas a bases de datos, que no tienen
empleando un botón de envío o una selección efectos laterales visibles.
de píxel en una imagen. En ese momento Para procesar un formulario cuyo URL de acción
el visor analiza las entradas en función del es un URL de tipo HTTP y el método es GET, el
método, acción y tipo de codificación y lo envía.visor genera un URI que comienza con el de la
En caso de que el formulario sólo tenga un acción al que se le añade un interrogante (?) y
campo de entrada de texto de una línea, el el conjunto de datos codificado con el formato
visor debe aceptar una pulsación de la tecla application/x-www-form-urlencoded visto en
de retorno de carro en ese campo como una el punto anterior. Para acceder a la consulta el
petición de envío del formulario. visor accede al URI de la misma manera que lo
hace con los que aparecen en los anclajes.
De todos modos, en algunos casos, la
Tipo de Codificación de Formularios
codificación de los datos puede generar un URI
La codificación por defecto de todos los
extremadamente largo, lo que puede provocar
formularios es, según el esquema MIME,
un funcionamiento erróneo con algunos
application/x-www-form-urlencoded. Un
servidores de HTTP antiguos. Por esta razón,
conjunto de datos de formulario se representa
algunos formularios que no tienen efectos
en este caso del siguiente modo:
laterales, se escriben usando el método POST.
1. Los nombres de campos y los valores
son preprocesados: los espacios son
reemplazados por el símbolo +, y los
caracteres son sustituidos como en los URL,
es decir, los caracteres no alfanuméricos se
representan con un signo de tanto por cien
y dos dígitos hexadecimales que indican
el código ASCII del carácter (%HH). Los
saltos de línea (empleados en campos de
múltiples líneas), se representan con pares
CRLF (sustituidos por %0D%0A).
2. Los campos se listan en el orden en el que
aparecen en el documento, con los nombres
separados del valor por el símbolo = y los
Formularios con Efectos Laterales:
pares separados entre sí por el símbolo
METHOD=POST
&. Los campos con valores nulos pueden
Para formularios con efectos laterales (como
ser omitidos, en particular, los campos
no seleccionados en entradas booleanas uno que modifique una base de datos) se
no deben aparecer en los datos, pero los emplea el método POST.
campos ocultos que tengan el atributo Para procesar un formulario cuyo URL de
acción es de tipo HTTP y el método es POST,
VALUE sí.
el visor gestiona una transacción de tipo POST
del protocolo HTTP, usando el URI de la acción
y el cuerpo de un mensaje de tipo application/
x-www-form-urlencoded como antes. El visor
debe presentar la respuesta del HTTP POST de
la misma forma que la respuesta obtenida con
el método GET.
Ejemplo de Envío de Formularios Entonces el visor gestiona una transacción
Llegados a este punto, se hace necesario HTTP POST usando el URI /cgi-bin/post-query.
mostrar un pequeño ejemplo para clarificar lo El cuerpo del mensaje será la siguiente línea:
anterior. Si tenemos el siguiente documento: nombre=Alicia
+Lindell&genero=mujer&familia
<!DOCTYPE HTML PUBLIC “-//IETF//DTD HTML =4&idioma=ingles&otros=catalan
2.0//EN”> %0D%0Aeuskera%0D%0Agallego
<title>Ejemplo de envío de formularios
HTML</title> Elementos de la Cabecera <HEAD>
<H1>Cuestionario de Personal</H1> El único elemento nuevo es el STYLE, que hace
<P>Por favor, rellene el siguiente cuestionario: referencia a la hoja de estilos a emplear para
<FORM METHOD=”POST” ACTION=”/cgi-bin/ visualizar el documento.
post-query”> Por ejemplo:
<P>Nombre: <INPUT NAME=”nombre”
<HEAD>
size=”48”>
<STYLE HREF=”../estilos/estilo1.css”>
<P>Hombre <INPUT NAME=”genero”
...
TYPE=RADIO VALUE=”hombre”>
</HEAD>
<P>Mujer <INPUT NAME=”genero”
Indica el URL de la hoja de estilos que se debe
TYPE=RADIO VALUE=”mujer”>
cargar y usar. La extensión CSS se refiere
<P>Número de miembros de la
a uno de los métodos en desarrollo para
familia: <INPUT NAME=”familia” TYPE=text>
representar las hojas de estilos. Hace poco
<P>Idiomas que conoce:
la W3 Organization ha llegado a un acuerdo
<UL>
con muchas de las empresas que desarrollan
<LI>Francés <INPUT NAME=”idioma”
productos para la WWW para definir el estándar
TYPE=checkbox VALUE=”Frances”>
de las hojas de estilos, refinando la propuesta
<LI>Inglés <INPUT NAME=”idioma”
del formato CSS (Cascading Style Sheets). De
TYPE=checkbox VALUE=”Ingles”>
cualquier modo, en el momento de escribir
<LI>Otros
estas páginas, todavía no se ha incorporado el
<TEXTAREA NAME=”otros” cols=48 rows=4></
soporte en los visores de uso generalizado.
textarea>
</UL>
<P> Pulse aquí para enviar los datos
<INPUT TYPE=SUBMIT>
<P> Puede volver a comenzar en cualquier
momento pulsando aquí <INPUT
TYPE=RESET>
</FORM>
El estado inicial de los datos del formulario es:
nombre “”
genero “hombre”
familia “”
otros “” Elementos del Cuerpo <BODY>
Hay que señalar que la entrada de tipo RADIO Quizá son los que se han popularizado más
tiene valor inicial, mientras que el de tipo rápidamente por impactar de forma más
CHECKBOX no. importante en el aspecto de las páginas.
El usuario rellena los campos y solicita el envío.
Supongamos que los valores son:
Atributos para el Elemento BODY
nombre “Alicia Lindell” La primera extensión notable es el atributo
genero “mujer” BACKGROUND dentro de la declaración del
familia “4” cuerpo. Esto permite especificar una imagen
idioma “ingles” como fondo para las páginas. Ya existen
otros “catalan\neuskera\ngallego” múltiples visores que incorporan este atributo.
Alineación Horizontal de Encabezados y Marcado Lógico y Tipográfico de Frases
Párrafos Para ampliar un poco las capacidades del
El HTML 3.0 propone un atributo ALIGN para control del aspecto de las letras, el HTML 3
encabezados y párrafos, que permite al autor incluye nuevas marcas tipográficas y lógicas.
especificar qué tipo de alineación desea para Las marcas son:
el texto. • U. Subrayado.
Tanto encabezados como párrafos permiten • BIG. Texto grande (respecto al tamaño
los valores ALIGN=”left”, ALIGN=”center” y normal).
ALIGN=”right” para alinear a la izquierda, • SMALL. Texto pequeño (respecto al tamaño
centrar o alinear a la derecha el texto normal).
respectivamente. Muchos visores soportan las • SUB. Subíndice.
alineaciones izquierdas y centrado, mientras • SUP. Superíndice.
que la alineación derecha es soportada por Actualmente sólo unos pocos visualizadores las
muy pocos. soportan todas.
Para los párrafos el atributo ALIGN también
Tablas
puede tomar el valor ALIGN=”justify” para
presentar las líneas justificadas.
Otra característica añadida a los párrafos es
el atributo ID = “nombre”, que permite marcar
el párrafo para ser referenciado mediante
un URL (en realidad viene a reemplazar las
marcas del tipo <A NAME=”nombre”></A>).
Esta característica es soportada por unos pocos
visualizadores, como el Emacs-w3.
LA IDEA PRINCIPAL
Cada documento escrito en html puede emplear un juego de caracteres distinto.
UNIDAD 7 - TEMA 5
LENGUAJE JAVA
CONCEPTOS BÁSICOS EN JAVA EL USO DE OBJETOS NOS PROPORCIONA LOS
Si estás empezando con el lenguaje Java hay SIGUIENTES BENEFICIOS:
una serie de conceptos básicos Java de la
orientación a objetos que debes de manejar 1. Modularidad:
para poder desarrollar con este lenguaje. El objeto y sus propiedades puede ser
Objeto pasado por diferentes estructuras del
Es un elemento de software que intenta código fuente, pero el objeto es el mismo.
representar un objeto del mundo real. De 2. Encapsular Datos:
esta forma un objeto tendrá sus propiedades Ocultamos la implementación de
y acciones a realizar con el objeto. Estas propiedades del objeto ya que accederemos
propiedades y acciones están encapsuladas a través de los métodos del objeto.
dentro del objeto, cumpliendo así los principios 3. Reutilización de Código:
de encapsulamiento. Podemos tener diferentes instancias de un
Un objeto tiene su estado (o estados) y su objeto de tal manera que esas diferentes
comportamiento. Esto se modela mediante instancias están compartiendo el mismo
propiedades (o variables) y métodos. Incluso código.
un objeto puede contener a su vez a otro tipo 4. Reemplazo:
de objeto. podemos reemplazar un objeto por otro
siempre y cuando estos objetos tengan el
mismo comportamiento.
Ejemplos de objetos
Cualquier concepto del mundo real se puede
modelar como un objeto con su estado y
comportamiento.
(expresion)?valor_true:valor_false;
En el caso de que la expresión
Operador Descripción tenga un valor de true se devuelve
&& Operador condicional Y el valor indicado después del
cierre de interrogación (?) Y si la
|| Operador condicional OR expresión tiene un valor de false
?: Operador Ternario se devuelve el valor que esté
después de los dos puntos (:).
en vez de Operador instancia de El operador ternario se suele
utilizar para decidir qué valor
OPERADORES CONDICIONALES
asignar. Un ejemplo de código del
La estructura de los operadores condicionales operador ternario sería:
en Java es:
int vble1 = 5;
(expresion_booleana1 && expresion_ int vble2 = 4;
booleana2) int mayor;
(expresion_booleana1 || expresion_ mayor = (vble1 >
booleana2) vble2)?vble1:vble2;
En el caso del operador condicional AND el System.out.println(“El mayor de
resultado será verdadero siempre y cuando las los dos números es “ + mayor);
dos expresiones evaluadas sean verdaderas. Si Vemos que si la variable 1 es mayor que la
una de las expresiones es falsa, el resultado de variable 2 guardaremos el valor de la variable
la expresión condicional AND será falsa. 1 en la variable mayor. En caso contrario se
Para el operador condicional OR el resultado guardaría el valor de la variable 2, ya que en ese
será verdadero siempre que alguna de las dos caso sería la mayor.
expresiones sea verdadera.
OPERADOR INSTANCIA DE
El operador instanceof es un operador especial
para los objetos. Mediante el operador
instanceof podemos comprobar si un objeto es
de una clase concreta.
La estructura del operador instanceof es:
objeto instanceof clase
El operador instanceof devolverá true siempre
y cuando el objeto sea del tipo clase o de alguna
de las clases de las que herede.
Así podríamos definir una secuencia de clases:
class Poligono {}
interface Figura {}
class Triangulo extends Poligono implements
Figura {}
Ahora definimos un par de objetos:
Poligono p = new Poligono();
Triangulo t = new Triangulo();
Podemos, mediante el uso del operador
instanceof , comprobar que t es instancia de
tipo Triangulo, Poligono y Figura. Mientras que
p es instancia de tipo Polígono, pero no de
Triangulo, ni Figura.
System.out.println(“p es instancia de “);
if (p instanceof Poligono)
System.out.println(“Poligono”);
if (p instanceof Triangulo)
System.out.println(“Triangulo”);
if (p instanceof Figura)
System.out.println(“Figura”);
System.out.println(“t es instancia de “);
if (t instanceof Poligono)
System.out.println(“Poligono”);
if (t instanceof Triangulo)
System.out.println(“Triangulo”);
if (t instanceof Figura)
System.out.println(“Figura”);
RESUMEN DEL TEMA
Es un elemento de software que intenta representar un objeto del mundo real. De
esta forma un objeto tendrá sus propiedades y acciones a realizar con el objeto. Estas
propiedades y acciones están encapsuladas dentro del objeto, cumpliendo así los
principios de encapsulamiento.
Las interacciones con los objetos se hacen mediante los métodos. Es decir, si queremos
conocer información del estado del objeto deberemos de llamar a uno de sus métodos
y no directamente a las propiedades.
Esta encapsulación nos permitiría el cambiar las propiedades del objeto sin que los
consumidores se vean afectados siempre y cuando les sigamos retornando el mismo
resultado.
Si bien hay objetos que tienen propiedades públicas, por lo cual podremos acceder
directamente a dichas propiedades sin necesidad de utilizar un método.
LA IDEA PRINCIPAL
Los procesos que debes de manejar para poder desarrollar con este lenguaje.
LECTURAS RECOMENDADAS
• Programación orientada a objetos en C++. Autor: Franciso Cortijo Bon.
• Principios de la programación orientada a objetos. Autor Martin Sánchez Morales.
Google Books.
• Java a fondo. Estudio del lenguaje y desarrollo de aplicaciones. Autor Pablo
Augusto Sznajdleder. Google Books.
• Desarrollo Aplicaciones Web Autor Rafael Menendez- Barzanallana Asencsio.
• Introduccion al lenguaje JAVA- CyTA. Autor Centro de tecnología informática.
Universidad de Navarra.
ACTIVIDADES Y EJERCICIOS
• Realizar una síntesis de programación orientadas de objetos
• Enumere las ideas principales de Principios de la Programación Orientada a
Objetos
• Realice un ejemplo del tema lenguaje HTML
• Elabore un estudio o análisis de lenguaje java
INTRODUCCIÓN COMPETENCIA
NetBeans es un entorno de desarrollo Gestiona e implementa el desarrollo de
integrado libre, hecho principalmente para el aplicaciones en los sistemas operativos Java
lenguaje de programación Java, pero no es el
único. Existe además un número importante CAPACIDADES
de módulos para extenderlo. NetBeans IDE es
un producto libre y gratuito sin restricciones • Describe el desarrollo de aplicación Java
de uso. NetBeans es un proyecto de código • Conoce los conceptos de Java
abierto de gran éxito con una gran base • Describe la creación de paquetes
de usuarios, una comunidad en constante • Identifica el uso de interface de desarrollo
crecimiento. Sun Microsystems fundó el
proyecto de código abierto NetBeans en junio
de 2000 y continúa siendo el patrocinador TEMAS
principal de los proyectos. Actualmente Sun
Microsystems es administrado por Oracle
Corporation. La plataforma NetBeans permite
que las aplicaciones sean desarrolladas a partir
1
TEMA
instalación de netbeans
de un conjunto de componentes de software
llamados módulos. Un módulo es un archivo
2
Java que contiene clases de java escritas para
interactuar con las API de NetBeans y un
archivo especial (manifest file) que lo identifica
la ventana estándar en
TEMA
como módulo. Las aplicaciones construidas netbeans
a partir de módulos pueden ser extendidas
agregándole nuevos módulos. Cada módulo
provee una función bien definida, tales como
el soporte de Java, edición, o soporte para el
sistema de control de versiones. NetBeans
3
TEMA
creación de paquetes
contiene todos los módulos necesarios
para el desarrollo de aplicaciones Java en
una sola descarga, permitiéndole al usuario
comenzar a trabajar inmediatamente.
ACTITUDES
4
TEMA
interface de desarrollo
• Trabaja con metas bien definidas.
• Capacidad de dirección y productividad
• Verificar e interpretar resultados
• Responsabilidad, Motivación,
Autodisciplina.
5
TEMA
opciones de netbeans
• Trabaja con metas bien definidas.
UNIDAD 8 - TEMA 1
instalación de netbeans
CÓMO DESCARGAR E INSTALAR EL IDE a) Paso 01: Página Oficial de Apache
APACHE NETBEANS 12.3 NetBeans 12.1
Para descargar el IDE Apache NetBeans 12.1
APACHE NETBEANS 12.3 primero tienes que ir a su página oficial de
Saludos lector, en este artículo Descarga, porque desde allí descargaremos
te voy a enseñar a cómo el IDE Apache NetBeans 12.1 para cualquier
descargar e instalar el IDE sistema operativo.
Apache NetBeans 12.3 paso Solamente presione clic en el enlace https://
a paso y espero que con netbeans.apache.org/download/ o copie el
este guía logres instalar en link en tu navegador favorito y desde esa
tu computador el Software página descargaremos el famoso IDE Apache
más querido por muchos NetBeans 12.1 en este caso para el sistema
desarrolladores o programadores. operativo Windows.
Descargar Apache NetBeans 12
NETBEANS
¿QUÉ ES NETBEANS?
NetBeans es un entorno de desarrollo
integrado libre, hecho principalmente para el
lenguaje de programación Java. Existe además
un número importante de módulos para
extenderlo. NetBeans IDE es un producto libre
y gratuito sin restricciones de uso. Después preciosa el botón Download para
Apache NetBeans 12.3 para Windows 10 descargar el IDE Apache NetBeans 12.1
Para poder descargar correctamente el Apache
NetBeans 12.3 para sistema operativo Windows
10, tenemos que ir a su página oficial y desde
allí descargar el IDE Apache NetBeans 12.1 sin
ningún problema.
No te recomiendo que descargues el IDE
Apache NetBeans 12.3 de otros sitios web,
porque corres el riesgo de poder descargar un
virus a tu PC.
LA IDEA PRINCIPAL
Descargar e instalar el ide apache netbeans 12.3
UNIDAD 8 - TEMA 2
LA VENTANA ESTÁNDAR EN NETBEANS
NetBeans es conocidas como una herramienta LA VENTANA ESTÁNDAR
IDEs o, en español, Entornos de Desarrollo Cada vez que inicie Netbeans, posiblemente
Integrados, las cuales conjuntan un grupo de vea algo así:
herramientas que nos permiten introducir
el código, verificar su sintaxis y gramática,
encontrar leaks de memoria, realizar
pruebas, conocer el rendimiento de nuestras
aplicaciones, trabajo colaborativo, etc. La
herramienta que más me gusta para trabajar
con Java es NetBeans, que recientemente fue
elegido como producto del año por developer.
com.
Para poder usar NetBeans primero debemos Projects: permite tener a mano todos
tener instalado nuestro JDK. Cómo este proceso los proyectos en que uno está trabajando
es directo no voy a mencionarlo. Solo recuerden actualmente o en los que ha trabajado en
que es necesario configurar dos variables de el último tiempo. A través de la expansión o
entorno de la siguiente forma (suponiendo colapso de los nodos en el árbol uno puede
que su JDK está instalado en la ruta C:\Program ir navegando a través de los elementos que
Files\Java\jdk1.6.xxx): conforman el proyecto. Sugiero hacer clic
• JAVA_HOME: C:\Program Files\Java\ derecho sobre el proyecto y revisar la ventana
jdk1.6.xxx de propiedades.
• JRE_HOME: C:\Program Files\Java\jdk1.6.xxx Files: permite navegar a través de las carpetas
(igual que el anterior) del proyecto. A veces algunos elementos
Y, de forma opcional, pueden agregar a la pueden no aparecer en el árbol del proyecto en
variable de entorno PATH el valor de C:\ “Proyects”, pero si en “Files”. Por ejemplo, los
Program Files\Java\jdk1.6.0_06\bin si es que archivos de salida al ejecutar o debugear un
pretenden hacer uso de java o javac a través de proyecto.
la línea de comandos. Services: maneja conexiones a algunos
El configurar estás variables de entorno nos servicios. Los más comunes son los de Bases
facilitará el trabajo al momento de usar algunos de datos. Son una ayuda sumamente útil si
contenedores de servlets y JSPs (como el uno realiza proyectos que interactúan con
Tomcat) y algunos servidores de aplicaciones servidores de base de datos.
(como el Glassfish). Navigator: despliega los miembros de una
clase. Se sugiere revisar su funcionamiento
ya que puede ser de suma utilidad. Permite
desplegar o esconder los miembros heredados
de una clase, desplegar o esconder los
atributos de una clase, ir hasta la definición
de un miembro (haciendo doble clic sobre
este), encontrar ocurrencias del elemento (find
usages), etc. 4. Ejemplo del Desarrollo de un
Proyecto.
CONFIGURANDO NUESTRA Todas las ventanas pueden ser movidas a
HERRAMIENTA DE TRABAJO, EL NETBEANS cualquier parte de la interface, así que podemos
poner las ventanas que más utilizamos siempre
a la vista en la posición en la que nosotros
queramos. De la misma forma podemos
minimizar todas las ventanas en forma de
“dock” para que se muestren cuando pasemos
el cursor del ratón sobre el ícono o nombre
de la ventana. Por ejemplo, en la siguiente
imagen podemos ver que en 1 he minimizado
las ventanas “Files” y “Services” por lo que solo
saranes visibles cuando pase el cursor sobre
Ahora, es aquí en donde comienza lo ellas. Y en 2 he colocado la ventana “Files” debajo
interesante. Cuando entremos veremos una de la ventana “Projects” para poder ver las dos
interface de usuario como la de la siguiente al mismo tiempo, mientras que he dejado la
imagen, en la cual he resaltado los títulos de ventana “Services” minimizada. Como puede
cada una de las secciones: verse, podemos colocar cualquier ventana en
cualquier parte del área de trabajo, incluso las
ventanas de salida de la aplicaciones o ventanas
de los plugins que vayamos agregando (como
CSS en el caso del plugin para aplicaciones
web). Si por error han cerrado una ventana al
estarla moviendo, no se preocupen, siempre
podemos volver a mostrarla seleccionándola
en el en menú Windows.
LA IDEA PRINCIPAL
Netbeans ide permite a nuestros desarrolladores crear aplicaciones de alta calidad
de forma rápida y sencilla.
UNIDAD 8 - TEMA 3
CREACIÓN DE PAQUETES
CREACIÓN Presionamos el botón “Finish”. Veremos algo
Puede presionar el botón o el menú File -> así:
New Proyect.
Elija el tipo de proyecto. Para
el ejemplo elegiremos un “Java
Desktop Application” (aplicación
con GUI), que es más interesante
a modo pedagógico que una por
consola.
LA IDEA PRINCIPAL
el proceso para la creación de paquetes
UNIDAD 8 - TEMA 4
INTERFACE DE DESARROLLO
EDITANDO EL FORM (GUI)
Agreguemos un área de texto y un botón.
DEBUGEANDO
Para debugear haremos algo muy similar a
lo hecho al ejecutar, pero si queremos ver
resultados debemos poner un punto de
quiebre (breakpoint) en alguna parte del código
que vaya a ser “alcanzada”.
Como ejemplo, ponga un breakpoint al inicio
del código del método llamado al dispararse
el evento actionPerformed del botón. Esto se
hace haciendo clic una vez sobre el número de
la línea donde desea poner el breakpoint. Si no
ve los números, es porque tiene configurado
para que estos estén ocultos. Puede buscar
entre las opciones de configuración la forma
de mostrarlos. En todo caso, de no estar los INTRODUCCIÓN
números de las líneas, basta que presione justo A medida que uno utiliza regularmente
encima del borde izquierdo al lado de la línea. Netbeans, podrá ir dándose cuenta de una
Debería aparecer la siguiente imagen . serie de elementos que le facilitan la vida al
programador.
Por desgracia, a veces puede tomarnos varios
meses antes de darnos cuenta de estos
elementos. Por esta razón, quise agregar
La imagen aparece en casos de un breakpoint algunos aquí para que se ahorren un montón
sobre la línea de declaración de un método y se de tiempo investigando o no vaya a pasar que
“alcanzan” cuando se entra en el método. Otros tengan la “mala suerte” de nunca darse cuenta
breakpoints tienen la imagen y la línea se de un par de cosas.
cubre con rojo. Estos breakpoints se “alcanzan” Tal vez no me acuerde de todos los tips
cuando se está a punto de ejecutar la línea de ahora, pero si recuerdo algunos más adelante
código. entonces los agregaré a una nueva versión del
documento.
Invito a quién tenga más tips a mandarlos a
la lista de correos del ramo o al correo del
ayudante.
AGREGANDO ARGUMENTOS A LA El archivo “newfile”, que está en la carpeta del
EJECUCIÓN proyecto (al final de la lista) será visible para el
Si ha ejecutado programas en java por consola programa si lo abrimos así:
sabrá lo fácil que es darle argumentos al File archivo = new File(“newfile”)
programa. Pero ¿Cómo lo hago si lo ejecuto Pero esto es bastante desordenado. Tal vez
desde Netbeans? queramos que el directorio de trabajo sea
Vaya a las propiedades del proyecto (clic otro, de forma de incluir todos los archivos de
derecho sobre el proyecto). entrada y salida en una misma carpeta. Para
esto nos vamos a las propiedades del proyecto
y seteamos el “Working Directory”. Aquí
podemos poner una ruta relativa o absoluta,
pero sugiero la primera opción, de lo contrario
tendremos que cambiar este valor cada vez
que movamos la carpeta o enviemos el archivo
a otra persona.
CREANDO EL JAR
En NetBeans es tan fácil como presionar el
botón .
Se pueden hacer ajustes para personalizar
un poco más el jar resultante si uno “juega”
un poco con la configuración del proyecto,
con el archivo MANIFEST.MF o con build.xml
(contiene una serie de configuraciones sobre la
compilación y creación del jar).
Por defecto el jar se creará en la carpeta ./dist
“Complete Code”: posiblemente el truco más
útil de todos.
Mientras escribimos el código podemos Otro caso de uso es cuando ya tenemos
desplegar un menú que nos ayudará en varios escrito todo aquello del método o variable
sentidos: puede mostrarnos la descripción que lo identifica unívocamente. En esos casos,
de un método o atributo; puede mostrarnos al apretar ctrl. + espacio, netbeans rellena
distintas opciones de variables y métodos a automáticamente el resto del nombre (no es
utilizar; puede completarnos el nombre de necesario seleccionar del menú).
un método, variable o atributo a medida que Por ejemplo: si escribo “jTe” (en el
vamos escribiendo y muchos más. ejemplo que hemos desarrollado) y luego
Esta herramienta se llama “complete code” presiono ctrl.+Espacio, netbeans escribe
y la forma más cómoda de invocarla es automáticamente “jTextArea1”
apretando ctrl.+ Espacio mientras escribimos También podemos usarlo cuando no
un código. OJO: a veces hay problemas con recordamos bien los métodos de una clase o
esta combinación porque algunos hotkeys del incluso cuando queremos buscar un método
sistema operativo o de otro programa lo tienen en particular y creemos que con el nombre
resevado. Un caso bien típico es Messenger, y la descripción del javadoc podremos
que suele emplear esa combinación para determinar si es lo que andamos buscando o
esconderse (creo que le llaman “boss alert” o no. 5.6. Las soluciones sugeridas
algo así). Por ejemplo. Si quiero modificar el Netbeans es capaz de sugerir distintas
texto dentro del botón “Saludar”, pero no me alternativas de solución a errores y
acuerdo bien del nombre, sólo se que parte con advertencias.
“j…”. Entonces puedo presionar Ctr+espacio y Por ejemplo: ¡Es capaz de agregar los bloques
luego la tecla “j” y veré algo así. try-catch por nosotros cuando lo hemos
olvidado!
Al olvidar importar java.io.File me aparece un
error y al lado izquierdo un ícono:
Si presiono sobre él, me sugiere varias
soluciones. Basta que selecione “Add import
java.io.File” para que netbeans ponga la
sentencia import donde corresponde.
NOTA
Posiblemente se me quedan varios en el tintero.
Por ejemplo: como cambiar el JDK que se usa
para el proyecto, como agregar librerías y JDKs,
como instalar javadocs para que netbeans
Cuando les aparezca “javadoc not found” es
los use, etc. Pero no creo que sea buena idea
posible que se trate de un elemento propio
extenderme tanto.
que ustedes no han documentado o porque
Jueguen un poco con el programa y si tienen
no han instalado el javadoc del JDK que
dificultades me contactan.
están utilizando. No me extenderé sobre
este tema ahora, pero es posible encontrar
documentación al respecto en Google.
Cuando hayan seleccionado lo que quieren
escribir, basta apretar el Enter y NetBeans
escribirá todo lo que falte.
RESUMEN DEL TEMA
El entorno de desarrollo integrado(IDE) es el software que sirve para el diseño de
aplicaciones que combina con herramientas comunes. el cual se puede optar por el
software netbeans.
Netbeans le permite hacer una infinidad de cosas en el modo de debugeo. Solo por
citar algunas: ejecutar paso a paso, saltar hasta los cursos, poner un “watch” sobre una
variable, ver la fila de eventos (Event Queue), ver las hebras, ver variables locales, etc.
A medida que uno utiliza regularmente Netbeans, podrá ir dándose cuenta de una
serie de elementos que le facilitan la vida al programador.
Resulta que Netbeans es capaz de sugerir distintas alternativas de solución a errores y
advertencias.
Si nos valemos de esto, en la mayoría de los casos no haremos nosotros los importa,
sino que confiaremos en NetBeans para que los haga por nosotros.
LA IDEA PRINCIPAL
Netbeans es capaz de sugerir distintas alternativas de solución a errores y
advertencias.
UNIDAD 8 - TEMA 5
OPCIONES DE NETBEANS
PLUGINS EJERCICIO 1
Puede instalar y desinstalar herramientas
adicionales en NetBeans en cualquier momento package Ejercicio1;
que lo desee. Para esto vaya a Tools -> Plugins. public class Main {
publicstaticvoimain(String[]args){
int X = 1, Y = 2;
double M = 3.2, N = 4.7;
System.out.println(“Variable X = “ + X);
System.out.println(“Variable Y = “ + Y);
System.out.println(“Variable M = “ + M);
System.out.println(“Variable N = “ + N);
System.out.println(X + “ + “ + Y + “ = “ + (X+Y));
System.out.println(X + “ - “ + Y + “ = “ + (X-Y));
System.out.println(X + “ * “ + Y + “ = “ + X*Y);
System.out.println(X + “ / “ + Y + “ = “ + X/Y);
System.out.println(X + “ % “ + Y + “ = “ + X%Y);
Vea las opciones que tiene en “Available System.out.println(N + “ + “ + M + “ = “ + (N+M));
Plugins” System.out.println(N + “ - “ + M + “ = “ + (N-M));
System.out.println(N + “ * “ + M + “ = “ + N*M);
System.out.println(N + “ / “ + M + “ = “ + N/M);
System.out.println(N + “ % “ + M + “ = “ + N%M);
System.out.println(X + “ + “ + N + “ = “ + (X+N));
System.out.println(Y + “ / “ + M + “ = “ + Y/M);
System.out.println(Y + “ % “ + M + “ = “ + Y%M);
System.out.println(“Variable X = “ + X + “ el
doble es “ + 2*X);
System.out.println(“Variable Y = “ + Y + “ el
doble es “ + 2*Y);
System.out.println(“Variable M = “ + M + “ el
doble es “ + 2*M);
System.out.println(“Variable N = “ + N + “ el
Seleccione las que desee y apriete en el doble es “ + 2*N);
botón “Install”. Estas se descargarán e System.out.println(X + “ + “ + Y + “ + “ + N + “ + “
instalarán automáticamente. Una herramienta + M + “ = “ + (X+Y+M+N));
interesante es UML (para trabajar con System.out.println(X + “ * “ + Y + “ * “ + N + “ * “
diagramas UML), y para programadores más + M + “ = “ + (X*Y*M*N));
avanzados hay herramientas para XML y }
esquemas, para WSDL, layouts gráficos de JSF, }
etc.
Puede desinstalar las que ya no ocupe en
la pestaña “Installed” y puede actualizar su
versión de NetBeans en “Updates”.
¿En esta entrada vamos a ver tres ejemplos de ejemplo C = 55 la salida será
utilización del operador condicional?: 55 es positivo
Se trata de usar el operador condicional en lugar 55 es impar
de la instrucción condicional if para mostrar 55 es múltiplo de 5
por pantalla un mensaje u otro dependiendo 55 no es múltiplo de 10
de una condición. 55 es menor que 100
EJERCICIO 2 package Ejercicio4;
Escribe un programa java que declare una public class Main {
variable A de tipo entero y asígnale un valor. A public static void main(String[] args) {
continuación, muestra un mensaje indicando si int C = 55;
A es par o impar. Utiliza el operador condicional System.out.println(C + (C >= 0 ? “ es positivo “
( ? : ) dentro del println para resolverlo. : “ es negativo “));
Si por ejemplo A = 14 la salida será 14 es par System.out.println(C + (C%2== 0 ? “ es par “ : “
Si fuese por ejemplo A = 15 la salida será: 15 es es impar “));
impar System.out.println(C + (C%5== 0 ? “ es múltiplo
de 5 “ : “ no es múltiplo de 5 “));
package Ejercicio2;
System.out.println(C + (C%10== 0 ? “ es
public class Main {
múltiplo de 10 “ : “ no es múltiplo de 10 “));
public static void main(String[] args) {
System.out.println(C + (C>100 ? “ es mayor
int A = 15;
que 100 “ : “ es menor que 100 “));
System.out.println(A + (A%2==0 ? “ es par “ : “
}
es impar “));
}
}
Programa Java que lea dos números enteros
}
por teclado y los muestre por pantalla.
EJERCICIO 3 import java.util.*;
Escribe un programa java que declare una public class Main {
variable B de tipo entero y asígnale un public static void main(String[] args){
valor. A continuación, muestra un mensaje //declaración de variables
indicando si el valor de B es positivo o negativo. int n1, n2;
Consideraremos el 0 como positivo. Utiliza el Scanner sc = new Scanner(System.in);
operador condicional (?:) dentro del println //leer el primer número
para resolverlo. System.out.println(“Introduce un número
Si por ejemplo B = 1 la salida será: 1 es positivo entero: “);
Si fuese por ejemplo B = -1 la salida será: -1 es n1 = sc.nextInt(); //lee un entero por teclado
negativo //leer el segundo número
package Ejercicio3; System.out.println(“Introduce otro número
public class Main { entero: “);
public static void main(String[] args) { n2 = sc.nextInt(); //lee un entero por teclado
int B = -1; //mostrar resultado
System.out.println(B + (B >= 0 ? “ es positivo “ System.out.println(“Ha introducido los
: “ es negativo “)); números: “ + n1 + “ y “ + n2);
} }
} }
EJERCICIO 4
Escribe un programa java que declare una
variable C de tipo entero y asígnale un valor. A
continuación, muestra un mensaje indicando si
el valor de C es positivo o negativo, si es par o
impar, si es múltiplo de 5, si es múltiplo de 10 y si
es mayor o menor que 100. Consideraremos el
0 como positivo. Utiliza el operador condicional
( ? : ) dentro del println para resolverlo. Si por
Programa Java que lea un nombre y muestre EJERCICIO: 5
por pantalla: Programa que lea un número entero N de
“Buenos dias nombre_introducido” 5 cifras y muestre sus cifras igual que en el
import java.util.*; ejemplo.
public class Main { Por ejemplo, para un número N = 12345 La
public static void main(String[] args) { salida debe ser:
Scanner sc = new Scanner(System.in); 1
String cadena; 12
System.out.println(“Introduce un nombre: “); 123
cadena = sc.nextLine(); 1234
System.out.println(“Buenos Días “ + cadena); 12345
} import java.util.*;
} public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N;
System.out.print(“Introduzca valor de N: “);
N = sc.nextInt(); //supondremos que el
Escribe un programa Java que lee un número número introducido tiene 5 cifras
entero por teclado y obtiene y muestra por System.out.println(N/10000);
pantalla el doble y el triple de ese número. System.out.println(N/1000);
import java.util.*; System.out.println(N/100);
public class Main { System.out.println(N/10);
public static void main(String[] args) { System.out.println(N);
Scanner sc = new Scanner(System.in); }
int numero; }
System.out.println(“Introduce un número
entero:”); EJERCICIO 6:
numero = sc.nextInt(); Programa que pida por teclado la fecha de
System.out.println(“Número introducido: “ + nacimiento de una persona (día, mes, año) y
numero); calcule su número de la suerte. El número de
System.out.println(“Doble de “ + numero + “ -> la suerte se calcula sumando el día, mes y año
“+ 2*numero); de la fecha de nacimiento y a continuación
System.out.println(“Triple de “ + numero + “ -> sumando las cifras obtenidas en la suma.
“+ 3*numero); Por ejemplo: Si la fecha de nacimiento es
} 12/07/1980
} Calculamos el número de la suerte así:
12+7+1980 = 1999 1+9+9+9 = 28
Número de la suerte: 28 “Programa que calcula
el número de la suerte”
import java.util.*; Uso de for. Programa Java que muestre los
public class Secuenciales2_13 { números del 1 al 100 utilizando la instrucción
public static void main(String[] args) { for.
Scanner sc = new Scanner(System.in); public class Repetitiva1_3 {
int dia, mes, año, suerte, suma, cifra1, cifra2, public static void main(String[] args) {
cifra3, cifra4; System.out.println(“Numeros del 1 al 100: “);
System.out.println(“Introduzca fecha de for(int i = 1; i<=100;i++)
nacimiento”); System.out.println(i);
System.out.print(“día: “); }
dia = sc.nextInt(); }
System.out.print(“mes: “); Uso de while. Programa Java que muestre los
mes = sc.nextInt(); números del 100 al 1 utilizando la instrucción
System.out.print(“año: “); while.
año = sc.nextInt();
suma = dia + mes + año; public class Main {
cifra1 = suma/1000; //obtiene la primera cifra public static void main(String[] args) {
cifra2 = suma/100%10; //obtiene la segunda System.out.println(“Numeros del 100 al 1: “);
cifra int i=100;
cifra3 = suma/10%10; //obtiene la tercera cifra while(i>=1)
cifra4 = suma%10; //obtiene la última cifra System.out.println(i);
suerte = cifra1 + cifra2 + cifra3 + cifra4; i--;
System.out.println(“Su número de la suerte }
es: “ + suerte); }
} Uso de do-while. Programa Java que muestre
} los números del 100 al 1 utilizando la instrucción
do..while.
EJERCICIO 7:
public class Main {
El uso de while: Programa Java que muestre los
public static void main(String[] args) {
números del 1 al 100 utilizando la instrucción
int i = 100;
while.
System.out.println(“Numeros del 100 al 1: “);
public class Main { do{
public static void main(String[] args) { System.out.println(i);
System.out.println(“Numeros del 1 al 100: “); i--;
int i=1; }while(i>=1);
while(i<=100) { }
System.out.println(i); }
i++; Muestre los números del 100 al 1 utilizando la
} instrucción for.
}
public class Repetitiva1_6 {
}
public static void main(String[] args) {
Ejemplo de uso de do-while. Programa Java que
System.out.println(“Numeros del 100 al 1: “);
muestre los números del 1 al 100 utilizando la
for(int i=100;i>=1;i--)
instrucción do..while.
System.out.println(i);
public class Main { }
public static void main(String[] args) { }
int i = 1;
System.out.println(“Numeros del 1 al 100: “); EJERCICIO 8:
do{ Programa Java que convierte millas a
System.out.println(i); kilómetros. El programa pide que se introduzca
i++; una cantidad de millas y calcula y muestra su
}while(i<=100); equivalente en Kilómetros. El proceso se repite
} hasta que se introduzca un 0 como valor para
} las millas.
1 milla equivale a 1.6093 Kilómetros. • Examen Parcial 30%.
El valor de los KM resultantes se debe mostrar • Examen final 40%
con dos decimales. • Promedio de Practicas 20%
Solución: • Promedio de trabajos 10%
Para pasar de millas a Km realizaremos la
operación:
package ejercio;
Km = millas * 1.6093
import javax.swing.JOptionPane;
Para resolver el ejercicio utilizaremos como
public class ejer2 {
estructura repetitiva un bucle do .. while.
public static void main(String[] args) {
Para mostrar los Km equivalentes con dos
double q,w,e,r,t,y,u,i,o,p;
decimales utilizaremos printf. Puedes consultar
q=Double.parseDouble(JOptionPane.
en esta entrada del blog la función printf.
showInputDialog(null, “nota de examen
import java.util.Scanner; parcial”));
public class Main { w=Double.parseDouble(JOptionPane.
public static void main(String[] args) { showInputDialog(null, “nota de examen final
Scanner sc = new Scanner(System.in); “));
int millas; e=Double.parseDouble(JOptionPane.
double km; showInputDialog(null, “nota de promedio de
System.out.println(“Convertir Millas a practicas”));
Kilometros”); r=Double.parseDouble(JOptionPane.
do {System.out.print(“Introduce millas (0 para showInputDialog(null, “nota de promedio de
finalizar): “); trabajos”));
millas = sc.nextInt(); y=q*0.3;
if (millas != 0) { u=w*0.4;
km = millas * 1.6093; i=e*0.2;
System.out.printf(“%d millas equivalen a %.2f o=r*0.1;
KM %n”, millas, km); p=y+u+i+o/4;
}} while (millas != 0); JOptionPane.showMessageDialog(null, “el
} promedio es “+p );
} }
}
EJERCICIO 9
Ingrese por teclado un numero entero visualice Ingrese por teclado el puntaje de un alumno
el cuadrado del número, si el número es mayor que ha postulado a la Universidad, visualice
a 10 y menor a 50. un mensaje “Alumno Ingresado” si el puntaje
package ejercio; obtenido es mayor a 500.
import javax.swing.JOptionPane;
public class ejer1 { package ejercio;
public static void main (String[] args) { import javax.swing.JOptionPane;
int numero,cuadrado = 0; public class ejer3 {
numero=Integer.parseInt(JOptionPane. public static void main(String[] args) {
showInputDialog(null, “ingrese n° intero”)); int n;
if (numero>10 && numero<50) { n = I n t e g e r. p a r s e I n t ( J O p t i o n P a n e .
cuadrado= numero*numero; showInputDialog(null, “ingrese puntaje”));
JOptionPane.showMessageDialog(null, “el if (n>500){
cuadrado del numero --> “+cuadrado); JOptionPane.showMessageDialog (null,
}else{ “ALUMNO INGRESO :) “);
JOptionPane.showMessageDialog(null, “el }else{
numero “+numero+” no está en el rango”); JOptionPane.showMessageDialog (null,
} “ALUMNO NO INGRESO :( “ );
} }
Se desea calcular el promedio final en base a }
los pesos de cada curso: }
Ingrese por teclado el nombre del curso y su Desarrolle un algoritmo que tras introducir
precio, si el nombre del curso es Networking, una medida expresada en centímetros, lo
se le aplicara un descuento del 15% al precio, convierta en pulgadas. (donde 1 pulgada = 2.54
visualice el descuento y el nuevo precio. centímetros).
package ejercio; package ejercio;
import javax.swing.JOptionPane; import javax.swing.JOptionPane;
public class ejer4 { public class ejer6 {
public static void main(String[] args) { public static void main(String[] args) {
String m; double n=Double.parseDouble(JOptionPane.
m=JOptionPane.showInputDialog(“INGRESE showInputDialog(“ingrese cetimetros”));
NOMBRE DE PRODUCTO”); if(n>=1){
double n=Double.parseDouble(JOptionPane. double m =n*2.54;
showInputDialog(null,”ingrese precio”)); JOptionPane.showMessageDialog(null,”en
if(“networking”.equals(m)){ pulgadas es “ +m );
double d=n*0.15; }else{
double t=n-d; JOptionPane.showMessageDialog(null,”error
JOptionPane.showMessageDialog(null,”el en la conversion :( “ );
descuento es “+d); }
JOptionPane.showMessageDialog(null,”total a }
pagar es “+t); }
}else{
JOptionPane.showMessageDialog(null,”total a Ingrese por teclado el nombre, precio y la
pagar es “+n); cantidad de productos a vender, calcule el
} monto de la venta. Se aplicará un descuento del
} 35% de su precio por la compra de 20 unidades.
} Visualice el descuento y el neto.
package ejercio;
Ingrese por teclado dos notas, calcule su
import javax.swing.JOptionPane;
promedio sabiendo que la segunda nota es
public class ejer7 {
peso doble, visualice un mensaje “Aprobado”,
public static void main(String[] args) {
si su promedio es mayor o igual 11.
Double n=Double.parseDouble(JOptionPane.
package ejercio; showInputDialog(“ingrese precio”));
import javax.swing.JOptionPane; int m=Integer.parseInt(JOptionPane.
public class ejer5 { showInputDialog(null, “ingrese catidad”));
public static void main(String[] args) { double s = n*m;
double n,n1,n2,n3; if (m>=20){
n=Double.parseDouble(JOptionPane. double d=s*0.35;
showInputDialog(null,”ingrese nota 1”)); double t=s-d;
n1=Double.parseDouble(JOptionPane. JOptionPane.showMessageDialog(null,”el
showInputDialog(null,”ingrese nota 2”)); descuento es “+d);
n2=(n1*2)+n1; JOptionPane.showMessageDialog(null,”total
n3=n2/3; a pagar es “+t);
if (n3<=11){ }else{
JOptionPane. JOptionPane.showMessageDialog(null,”total
showMessageDialog(null,”aprobado con la a pagar es “+s+” no hay descuento”);
nota “+n3); }
}else{ }
JOptionPane. }
showMessageDialog(null,”desaprobado con
la nota “ +n3 ); Crear una aplicación, que permita el ingreso de
} 2 números, para luego calcular la suma, resta,
} división, multiplicación, división y residuo.
}
package ejercio; package ejercio;
import javax.swing.JOptionPane; import javax.swing.JOptionPane;
public class ejer8 { public class ejer10 {
public static void main(String[] args) { public static void main(String[] args) {
Double m=Double.parseDouble(JOptionPane. int m=Integer.parseInt(JOptionPane.
showInputDialog(null, “ingrese primer showInputDialog(null, “ingrese edad”));
numero”)); if (m>=18){
double n=Double.parseDouble(JOptionPane. JOptionPane.
showInputDialog(null, “ingrese segundo showMessageDialog(null,”mayor de edad :
numero”)); “+m );
double s=m+n; }else{
double r=m-n; JOptionPane.
double mu=m*n; showMessageDialog(null,”menor de edad : “
double d=m/n; +m );
double re=m%n; }
JOptionPane.showMessageDialog(null,”la }
suma es :”+s+”\n la resta es :”+r+”\n la }
multiplicacion es :”
+ mu+ “ \n la divicion es : “+d+ “\n el residuo
es : “ +re);
}
}
LA IDEA PRINCIPAL
Expectativas para la aplicación Netbeans
LECTURAS RECOMENDADAS
• Manual de programador. Autor July Maribel Rodriguez Martinez
• Paquetes en Java. Autor francisco charte
• Guia del desrrollador para la creación de paquetes de aplicaciones. Autor Oracle
• Uso de netbeans. Autor Facultad de informática de Universidad complutense.
ACTIVIDADES Y EJERCICIOS
• Realice un resumen sobre la instalación de Netbeans
• Identifique los elementos más característicos para la creación de paquetes
• Elabore dos preguntas sobre el tema interfaz de desarrollo
INTRODUCCIÓN ACTITUDES
Un programa permite resolver muchos tipos • Tiene habilidades para administrar su
de problemas, desde tareas relativamente tiempo y organizarse.
sencillas a solucionar grandes problemas • Trabaja con metas bien definidas
organizacionales y necesidades de las personas, • Optar por contenidos de acuerdo a sus
sin embargo, debemos de empezar por lo básico intereses de formación.
creando programas que permitan resolver
problemas que involucren instrucciones TEMAS
secuenciales. Así, en el tema de hoy crearemos
algoritmos en pseudocódigo y en Java que
permitan resolver problemas que involucren
instrucciones secuenciales. Una estructura de
secuencia como su mismo nombre lo indica,
1
TEMA
flujo de control de un
programa
es una secuencia ordenada y finita de pasos
que deben de seguir ciertas instrucciones y al
mismo tiempo dicha secuencia de instrucciones
debe ser única. Vamos a resolver algunos
problemas tanto en algoritmo empleando
pseudocódigo y luego lo pasaremos a Java.
2
TEMA
estructuras secuénciales
Básicamente necesitamos el JDK que es
un programa que contiene las librerías de
programación y el compilar de Java; y una IDE
que es el entorno de desarrollo integrado para
editar, compilar y ejecutar nuestros programas
escritos en java. Para eso usamos NetBeans.
3
TEMA
la estructura anidada
COMPETENCIA
“Desarrollar programas simples en Java con
estructuras de control simple, secuenciales,
dobles, etc. Aplicando las normas y criterios de
programación orientada a objetos”.
4
TEMA
la estructura si
CAPACIDADES
• Describe y controla la cantidad de datos
•
•
Modifica la ejecución de un programa
Describe la estructura switch
5
TEMA
la estructura para
• Describe la estructura while y mientras
UNIDAD 9 - TEMA 1
el flujo de control de un programa
EL FLUJO DE CONTROL DE UN PROGRAMA Cuando se ejecuta el programa, la salida que se
El control del flujo es la manera que tiene un obtienes en pantalla es la que indica la estación
lenguaje de programación de provocar que el en la que se encuentra el mes en que se está
flujo de la ejecución avance y se ramifique en escribiendo el código de esta aplicación:
función de los cambios de estado de los datos. %java java405
Java, en este aspecto, no utiliza los principios Agosto esta en el verano.
de diseño orientado a objetos, sino que las switch
sentencias de control del flujo del programa switch( expresión ) {
se han tomado del C/C++. A continuación, se case valor1:
tratan todos los mecanismos que proporciona sentencias;
Java para conseguir este control y decidir qué break;
partes del código ejecutar. case valor2:
sentencias;
SENTENCIAS DE SALTO break;
[default:
if/else sentencias;]
if( expresión-booleana ) { }
sentencias;
} La sentencia switch proporciona una forma
[else { limpia de enviar la ejecución a partes diferentes
sentencias; del código en base al valor de una única variable
}] o expresión. La expresión puede devolver
cualquier tipo básico, y cada uno de los valores
Esta construcción provoca que la ejecución especificados en las sentencias case debe
atraviese un conjunto de estados ser de un tipo compatible.
booleanos que determinan que En Java no se puede realizar una
se ejecuten distintos fragmentos comprobación contra caracteres
de código. La cláusula else como en C++, porque el tipo
es opcional. Cada una de las char en C++ es en realidad un
sentencias puede ser una entero de 8 bits, lo que no es
sentencia compuesta y la cierto en Java.
expresión-booleana podría La sentencia switch funciona
ser una variable simple de la siguiente manera: el valor
declarada como boolean, o una de la expresión se compara con
expresión que utilice operadores cada uno de los valores literales
relacionales para generar el de las sentencias case. Si coincide
resultado de una comparación. con alguno, se ejecuta el código que
En el ejemplo java405.java, se utilizan sigue a la sentencia case. Si no coincide
varias sentencias if-else para determinar en con ninguno de ellos, entonces se ejecuta la
qué estación del año se encuentra un mes sentencia default (por defecto), que es opcional.
determinado. Si no hay sentencia default y no coincide con
ninguno de los valores, no hace nada.
Al igual que en otros lenguajes, cada constante
en sentencia case debe ser única.
El compilador de Java inspeccionara cada uno
de los valores que pueda tomar la expresión en
base a las sentencias case que se proporcionen,
y creará una tabla eficiente que utiliza para
ramificar el control del flujo al case adecuado
dependiendo del valor que tome la expresión.
Por lo tanto, si se necesita seleccionar entre un
gran grupo de valores, una sentencia switch
se ejecutará mucho más rápido que la lógica
equivalente codificada utilizado sentencias if-
else.
La palabra clave break se utiliza habitualmente INICIALIZACIÓN DE LA VARIABLE DE
en sentencias switch sin etiqueta, para que CONTROL
la ejecución salte tras el final de la sentencia Comprobación del valor de la variable de
switch. Si no se pone el break, la ejecución control en una expresión condicional
continuará en el siguiente case. Es un error Actualización de la variable de control
habitual a la hora de programar el olvidar La cláusula de inicio y la cláusula de incremento
un break; dado que el compilador no avisa pueden estar compuestas por varias
de dichas omisiones, es una buena idea expresiones separadas mediante el operador
poner un comentario en los sitios en los que coma (,), que en estos bucles Java también
normalmente se pondría el break, diciendo soporta.
que la intención es que el case continúe en el
siguiente, por convenio este comentario es for( a=0,b=0; a < 7; a++,b+=2 )
simplemente, “Continúa”. Otra diferencia de El operador coma garantiza que el operando de
Java con C++ respecto a la sentencia switch es su izquierda se ejecutará antes que el operando
que Java soporta sentencias break etiquetadas. de su derecha. Las expresiones de la cláusula
Esta característica puede hacer que el entorno de inicio se ejecutan una sola vez, cuando
de funcionamiento sea muy diferente entre arranca el bucle. Cualquier expresión legal
ambos lenguajes cuando hay sentencias switch se puede emplear en esta cláusula, aunque
anidadas. generalmente se utiliza para inicialización. Las
El ejemplo java406.java es el mismo ejemplo variables se pueden declarar e inicializar al
que se creó en la sección if-else, reescrito para mismo tiempo en esta cláusula:
utilizar switch. for( int cnt=0; cnt < 2; cnt++ )
Sentencias de Bucle La segunda cláusula, de test, consiste en una
Bucles for única expresión que debe evaluarse a false
for( inicialización; terminación; iteración ) { para que el bucle concluya. En este caso, Java
sentencias; es mucho más restrictivo que C++, ya que en
} C, C++ cualquier expresión se puede evaluar
Un bucle for, normalmente involucra a tres a cero, que equivale a false. Sin embargo, en
acciones en su ejecución: Java, esta segunda expresión debe ser de
tipo booleano, de tal modo que se pueden
utilizar únicamente expresiones relacionales o
expresiones relacionales y condicionales.
El valor de la segunda cláusula es comprobado
cuando la sentencia comienza la ejecución y en
cada una de las iteraciones posteriores.
La tercera cláusula, de incremento, aunque
aparece físicamente en la declaración de bucle,
no se ejecuta hasta que se han ejecutado todas
las sentencias que componen el cuerpo del
bucle for; por ello, se utiliza para actualizar la
variable de control.
En ocasiones se utiliza como atajo, pero en
otras se prefiere la utilización de sentencias
múltiples dentro del cuerpo del bucle for.
for( a=0,b=0; a < 7; a++,b+=2 )
Hay una característica que se admite en C++
y que Java no soporta. Se trata de que los
compiladores actuales de C++ permiten la
declaración de variables de control del bucle
for con el mismo nombre que variables que
se encuentren declaradas fuera del bucle. El
ámbito de estas variables se limita al bucle. En
el programa C++ java407.cpp, se declara una
variable local de método llamada cnt y luego
se declara como variable de control del bucle
otra con el mismo nombre, cnt. El valor de
las variables se visualiza en varios puntos del
Es importante tener en cuenta que, si utilizamos programa, de forma que la salida por pantalla
variables incluidas en esta tercera cláusula en sería la que se reproduce a continuación
las sentencias del cuerpo del bucle, su valor no
Valor de la variable de método cnt: 5
se actualizará hasta que la ejecución de todas y
Valor de la variable del bucle cnt: 0
cada una de las sentencias del cuerpo del bucle
Valor de la variable del bucle cnt: 1
se haya completado. En esta cláusula pueden
Valor de la variable de método cnt: 5
aparecer múltiples expresiones separadas por
Java no soporta tal característica, no se pueden
el operador coma, que serán ejecutadas de
definir variables con el mismo nombre en dos
izquierda a derecha.
sitios diferentes de un método. El programa
El siguiente trocito de código Java que dibuja
java407.java, no compila, generando un error
varias líneas en pantalla alternando sus colores
que indica que la variable cnt está declarada
entre rojo, azul y verde, utiliza un bucle for
en el método cuando se intenta declararla en
para dibujar un número determinado de líneas
el bucle for. La salida de compilación es la que
y una sentencia switch para decidir el color
se muestra
de la línea. Este fragmento sería parte de una
función Java (método): java407.java:32: Variable ‘cnt’ is already
defined in this method.
for( int cnt=0; cnt < 2; cnt++ )
int contador;
^
for(contador=1; contador <= 12; contador++ ){
1 error
switch( contador % 3 )
{case 0:
setColor( Color.red );
break;
case 1:
setColor( Color.blue );
break;
case 2:
setColor( Color.green );
break;}
g.drawLine( 10,contador*10,80,contador*10
);
}
También se soporta, como ya se ha indicado,
el operador coma (,) en los bucles for, aunque
su uso es una decisión de estilo, no es la única
forma de codificar una sentencia lógica en
particular.
Si se elimina la línea en bucle, de tal modo que si esta comprobación
donde se declara e es false la primera vez, el conjunto de las
inicializa la variable sentencias no se ejecutará nunca.
local al método y la Un ejemplo típico de utilización de este
siguiente, en la que bucle es el cálculo de la serie de números
se imprime su valor, de Fibonacci, que es una de las formas de
el programa sigue conseguir la serie, y eso es precisamente
sin compilar. En este lo que hace el ejemplo java408.java, cuyo
caso, el compilador código se muestra a continuación:
indica que la variable
class java408 {
cnt, que se encuentra
public static void main( String args[] ){
en la sentencia final no
int max = 20;
está definida. Por tanto,
int bajo = 1;
el ámbito de la variable
int alto = 0;
declarada dentro del bucle for
System.out.println( bajo );
parece está restringido al bucle en sí mismo.
while( alto < 50 ) {
Si se eliminan las líneas en que interviene
System.out.println( alto );
la variable global del método, el programa
int temp = alto;
compila y se ejecuta correctamente, ilustrando
alto = alto + bajo;
el hecho de que Java soporta la declaración de
bajo = temp;
variables en la cláusula de inicio del bucle,y
}
además, que el ámbito de la variable está
}
restringido al interior del bucle.
}
La primera y tercera cláusulas del bucle for
Bucles do/while
pueden encontrarse vacías, pero deben estar
[inicialización;]
separadas por punto y coma (;). Hay autores
do {
que sugieren incluso que la cláusula de testeo
sentencias;
puede estar vacía, aunque para el programador
[iteración;]
que está escribiendo esto, salvando el caso de
}while( terminación-expresión-booleana );
que se trate de implementar un bucle infinito,
A veces se puede desear el ejecutar el cuerpo
si esta cláusula de comprobación se encuentra
de un bucle while al menos una vez, incluso si
vacía, el método de terminación del bucle
la expresión booleana de terminación tiene el
no es nada obvio, al no haber una expresión
valor false la primera vez. Es decir, si se desea
condicional que evaluar, por lo que debería
evaluar la expresión de terminación al final del
recurrirse a otro tipo de sentencia, en vez de
bucle en vez de al principio como en el bucle
utilizar un bucle for.
while. Esta construcción do-while hace eso
Bucles while
exactamente.
[inicialización;]
while( terminación-expresión-booleana ) {
sentencias;
[iteración;]
}
El bucle while es la sentencia de bucle más
básica en Java. Ejecuta repetidamente una
vez tras otra una sentencia, mientras una
expresión booleana sea verdadera. Las partes
de inicialización e iteración, que se presentan
entre corchetes, son opcionales.
Esta sentencia while se utiliza para crear una
condición de entrada. El significado de esta
condición de entrada es que la expresión
condicional que controla el bucle se comprueba
antes de ejecutar cualquiera de las sentencias
que se encuentran situadas en el interior del
RESUMEN DEL TEMA
El control del flujo es la manera que tiene un lenguaje de programación de provocar que
el flujo de la ejecución avance y se ramifique en función de los cambios de estado de los
datos. Java, en este aspecto, no utiliza los principios de diseño orientado a objetos, sino
que las sentencias de control del flujo del programa se han tomado del C/C++.
En este sentido, el compilador de Java inspeccionara cada uno de los valores que pueda
tomar la expresión en base a las sentencias case que se proporcionen, y creará una tabla
eficiente que utiliza para ramificar el control del flujo al case adecuado dependiendo
del valor que tome la expresión. Por lo tanto, si se necesita seleccionar entre un gran
grupo de valores, una sentencia switch se ejecutará mucho más rápido que la lógica
equivalente codificada utilizado sentencias if-else.
Por otro lado, la característica puede hacer que el entorno de funcionamiento sea muy
diferente entre ambos lenguajes cuando hay sentencias switch anidadas.
LA IDEA PRINCIPAL
El control del flujo controla la cantidad de datos que se
transmite de sí mismo.
UNIDAD 9 - TEMA 2
ESTRUCTURAS SECUÉNCIALES
ESTRUCTURAS DE CONTROL EN JAVA ESTRUCTURA SECUENCIAL
Las estructuras de control determinan la Las instrucciones de un programa se ejecutan
secuencia de ejecución de las sentencias de un por defecto en orden secuencial. Esto significa
programa. que las instrucciones se ejecutan en secuencia,
Los programas contienen instrucciones que una después de otra, en el orden en que
se ejecutan generalmente una a continuación aparecen escritas dentro del programa.
de la otra según la secuencia en la que el La estructura secuencial es el orden natural de
programador ha escrito el código. Sin embargo, ejecución. Las instrucciones que componen
hay ocasiones en las que es necesario romper esta estructura se ejecutan en orden una a
esta secuencia de ejecución para hacer que continuación de la otra.
una serie de instrucciones se ejecuten o no La mayoría de las instrucciones están separadas
dependiendo de una determinada condición o por el carácter punto y coma (;).
hacer que una serie de instrucciones se repitan Las instrucciones se suelen agrupar en bloques.
un número determinado de veces. El bloque de sentencias se define por el carácter
Las estructuras de control permiten modificar llave de apertura ({) para marcar el inicio del
el orden natural de ejecución de un programa. mismo, y el carácter llave de cierre (}) para
Mediante ellas podemos conseguir que el flujo marcar el final.
de ejecución de las instrucciones sea el natural Ejemplo de bloque de instrucciones:
o varíe según se cumpla o no una condición
o que un bloque de instrucciones se repita
dependiendo de que una condición se cumpla
o no.
Las estructuras de control tienen las siguientes
características:
• Tienen un único punto de entrada y un
único punto de salida.
• Están compuestas por instrucciones o por
otras estructuras de control. {int n = 1;
• Las estructuras de control se dividen en las int m = 0;
siguientes categorías: m = n++ ;
• Estructura Secuencial System.out.println(m);
• Estructura Condicional o Selectiva System.out.println(n);}
• Estructura Iterativa o Repetitiva. Si el bloque de instrucciones está constituido
• Instrucciones de salto por una única instrucción no es obligatorio el
La siguiente imagen muestra todas las uso de las llaves de apertura y cierre { }, aunque
estructuras de control del lenguaje Java es recomendable utilizarlas.
Ejemplo:de programa Java con estructura
secuencial: programa que lee dos números por
teclado y los muestra por pantalla. En este caso
hay un solo bloque de instrucciones contenidas
entre las llaves de apertura y cierre del método
main. Las instrucciones se ejecutan en el mismo
orden que aparecen escritas.
/* /*
Programa que lee dos números por teclado * Mostrar la suma, resta y multiplicación de
y los muestra por pantalla. dos valores
*/ * de tipo double que se introducen por
import java.util.*; teclado.
public class Secuencial { */
public static void main(String[] args){ //--> import java.util.*;
inicio del método main public class Secuencial2 {
//declaración de variables public static void main(String[] args){
int n1, n2; Scanner sc = new Scanner(System.in);
Scanner sc = new Scanner(System.in); double numero1, numero2;
//leer el primer número System.out.println(“Introduce el primer
System.out.println(“Introduce un número número:”);
entero: “); numero1 = sc.nextDouble();
n1 = sc.nextInt(); //lee un entero por System.out.println(“Introduce el segundo
teclado número:”);
//leer el segundo número numero2 = sc.nextDouble();
System.out.println(“Introduce otro número System.out.println(“Números introducido:
entero: “); “ + numero1 + “ “ + numero2);
n2 = sc.nextInt(); //lee un entero por System.out.println(numero1 + “ + “ +
teclado numero2 + “ = “ + (numero1+numero2));
//mostrar resultado System.out.println(numero1 + “ - “ +
System.out.println(“Ha introducido los numero2 + “ = “ + (numero1-numero2));
números: “ + n1 + “ y “ + n2); System.out.println(numero1 + “ * “ +
} //--> final del método main numero2 + “ = “ + numero1*numero2);
} }
Ejemplo de programa Java con estructura }
secuencial: programa que lee por teclado Para modificar el orden de ejecución de las
dos valores de tipo double y a continuación instrucciones de un programa Java se utilizan
muestra su suma, resta y multiplicación. En las estructuras condicionales y repetitivas.
este caso el programa también está formado
por un único bloque de instrucciones que se
ejecutan secuencialmente dentro del método
main.
RESUMEN DEL TEMA
Los programas contienen instrucciones que se ejecutan generalmente una a
continuación de la otra según la secuencia en la que el programador ha escrito el
código. Sin embargo, hay ocasiones en las que es necesario romper esta secuencia
de ejecución para hacer que una serie de instrucciones se ejecuten o no dependiendo
de una determinada condición o hacer que una serie de instrucciones se repitan un
número determinado de veces.
Las estructuras de control permiten modificar el orden natural de ejecución de
un programa. Mediante ellas podemos conseguir que el flujo de ejecución de las
instrucciones sea el natural o varíe según se cumpla o no una condición o que un
bloque de instrucciones se repita dependiendo de que una condición se cumpla o no.
En general, esto significa que las instrucciones se ejecutan en secuencia, una después
de otra, en el orden en que aparecen escritas dentro del programa.
LA IDEA PRINCIPAL
Las estructuras de control permiten modificar el orden natural de ejecución de un
programa.
UNIDAD 9 - TEMA 3
LA ESTRUCTURA ANIDADA
INSTRUCCIÓN SWITCH Funcionamiento de la instrucción switch:
Esta estructura de control se utiliza para • Primero se evalúa la expresión y salta al
seleccionar una de entre múltiples opciones case cuyo valor coincida con el valor de la
posibles. Es una alternativa a los if .. else expresión.
anidados. Si el número de anidamientos if .. • Se ejecutan las instrucciones que contiene
else es elevado, la estructura switch produce el case seleccionado hasta que se encuentra
un código más sencillo de leer y modificar. un break o hasta el final del switch. El break
El flujo de ejecución del programa lo determina produce un salto y la ejecución continúa por
el valor de una variable o expresión. la siguiente instrucción a continuación del
El tipo de esta variable o expresión puede ser switch.
uno de los siguientes: • Si el valor de la expresión no coincide con
• Tipo primitivo: byte, short, char, int. ningún case se ejecuta el bloque default.
• La clase envolvente de los tipos primitivos El bloque default es opcional por lo tanto no
anteriores: Byte, Short, Character, Integer. es obligatorio que exista siempre un bloque
• Tipo String. default en un switch. El bloque default suele
• Tipos enumerados (enum). escribirse de forma habitual al final del switch
La instrucción switch no permite que la variable a continuación de todos los case pero no es
o expresión sea del tipo float o double. obligatorio escribirlo al final, puede aparecer
La sintaxis general de una estructura switch es en cualquier lugar.
la siguiente: Los valores que aparecen en los case deben ser
únicos. No puede haber dos case con el mismo
switch (expresión){ valor.
case VALOR1: El valor de un case no puede ser una variable.
instrucciones1; Debe ser un literal o una constante (variables
break; declaradas como final).
case VALOR2: Ejemplo de switch: programa que lee por
instrucciones2; teclado un número de mes y muestra el
break; nombre de mes correspondiente.
.....
default:
instrucciones3;
}
//Programa que pide un número de mes y // Programa que pide un nombre de mes y
muestra muestra el número de días correspondiente
//el nombre de mes correspondiente import java.util.Scanner;
import java.util.*; public class Ejemplo2Switch {
public class EjemploSwitch { public static void main(String[] args) {
public static void main(String[] args) { String mes;
int mes; Scanner sc = new Scanner(System.in);
Scanner sc = new Scanner(System.in); System.out.print(“Introduzca un nombre de
System.out.print(“Introduzca un numero mes: “);
de mes: “); mes = sc.nextLine();
mes = sc.nextInt(); switch (mes.toUpperCase()) {
switch (mes) { //inicio del switch case “ENERO”:
case 1: System.out.println(“ENERO”); System.out.println(“31 DÍAS”);break;
break; case “FEBRERO”:
case 2: System.out.println(“FEBRERO”); System.out.println(“28 ó 29 DÍAS”);break;
break; case “MARZO”:
case 3: System.out.println(“MARZO”); System.out.println(“31 DÍAS”);break;case
break; “ABRIL”:
case 4: System.out.println(“ABRIL”); System.out.println(“30 DÍAS”);break;
break; case “MAYO”:
case 5: System.out.println(“MAYO”); System.out.println(“31 DÍAS”); break;
break; case “JUNIO”:
case 6: System.out.println(“JUNIO”); System.out.println(“30 DÍAS”);break;
break; case “JULIO”:
case 7: System.out.println(“JULIO”); System.out.println(“31 DÍAS”);break;
break; case “AGOSTO”:
case 8: System.out.println(“AGOSTO”); System.out.println(“31 DÍAS”);break;
break; case “SEPTIEMBRE”:
case 9: System.out.println(“SEPTIEMBRE”); System.out.println(“30 DÍAS”);break;
break; case “OCTUBRE”:
case 10: System.out.println(“OCTUBRE”); System.out.println(“31 DÍAS”);break;
break; case “NOVIEMBRE”:
case 11: System.out.println(“NOVIEMBRE”); System.out.println(“30 DÍAS”);break;
break; case “DICIEMBRE”:
case 12: System.out.println(“DICIEMBRE”); System.out.println(“31 DÍAS”);
break; break;
default : System.out.println(“Mes no default:
válido”); System.out.println(“Mes no válido”);
} //fin del switch }
} }
} }
Ejemplo de switch: programa que lee por
teclado un String correspondiente al nombre Un case puede contener además de
de un mes y muestra el número de días que instrucciones que se ejecuten en secuencia,
tiene. otras instrucciones como condiciones o bucles
o incluso otro switch.
Ejemplo: programa que pide por teclado dos
números enteros y un operador +, -, *, / y
realiza y muestra el resultado de la operación
según el operador introducido. Si se introduce
el operador división, se comprueba si el divisor
es cero, en ese caso la división no se puede
realizar y se muestra un mensaje indicándolo.
//Programa que pide dos números y un import java.util.*;
operador y muestra el resultado de la public class Ejemplo4Switch {
operación public static void main(String[] args) {
import java.util.*; int numeroDia;
import java.io.*; Scanner sc = new Scanner(System.in);
public class Ejemplo3Switch { System.out.print(“Introduzca el numero del
public static void main(String[] args) throws día de la semana (1 a 7): “);
IOException{ numeroDia = sc.nextInt();
int A,B, Resultado = 0 ; switch (numeroDia){
char operador; case 1:
boolean calculado = true; case 3:
Scanner sc = new Scanner(System.in); case 5: System.out.println(“Tenemos clase de
System.out.print(“Introduzca un numero programación”);
entero:”); break;
A = sc.nextInt(); case 2:
System.out.print(“Introduzca otro numero case 4: System.out.println(“Vaya, que pena”);
entero:”); System.out.println(“Hoy no tenemos clase de
B = sc.nextInt(); programación”);
System.out.print(“Introduzca un operador (+,- break;
,*,/):”); case 6:
operador = (char)System.in.read(); case 7: System.out.println(“Estoy deseando
switch (operador) { que llegue el lunes!!”); break;
case ‘-’ : Resultado = A - B;break; default : System.out.println(“Número de día
case ‘+’ : Resultado = A + B;break; no válido”);
case ‘*’ : Resultado = A * B;break; }
case ‘/’ : if(B!=0){ }
Resultado = A / B; }else{ }
System.out.println(“\nNo se puede dividir por En este programa si se introduce por ejemplo
cero”); un 1 como número de día, la ejecución pasará
calculado = false; al case 1 y comienza a ejecutar las instrucciones
} que encuentre desde ahí hacia abajo hasta
break; encontrar un break.
default : System.out.println(“\nOperador no Es importante entender que una vez que la
valido”); ejecución del programa entra en uno de los
calculado = false; case, el programa sigue ejecutándose desde
} ese punto hasta que encuentre el primer break
if(calculado){ (estén dentro del mismo case o no) o hasta
System.out.println(“\nEl resultado es: “ + que se llegue al final del switch en cuyo caso
Resultado); continuará por la instrucción que se encuentre
} a continuación del switch.
} Ejemplo: programa que pide un valor entero
} por teclado entre 1 y 6 y realiza una serie de
Si una misma instrucción o bloque de operaciones con él dependiendo de su valor
instrucciones se tienen que ejecutar para inicial.
distintos valores, en ese caso podemos escribir
case multiples. Esto consiste en escribir varias
instrucciones case seguidas.
Ejemplo de switch con case múltiples: programa
que pide introducir por teclado un número
entero entre 1 y 7 correspondiente a un día de
la semana y muestra un mensaje indicando si
ese día hay clase de programación o no.
import java.util.*; Sintaxis para anidar dos bucles for:
public class Ejemplo5Switch { for(inicialización; condición; incremento/
public static void main(String[] args) { decremento){ //inicio del for1
int x, y = 10; instrucciones1;
Scanner sc = new Scanner(System.in); for(inicialización; condición; incremento/
System.out.print(“Introduzca un número >= 1 decremento){ //inicio for2
y <= 6: “); instrucciones2; //instrucciones que se
x = sc.nextInt(); ejecutan en for2 } //fin del for2
switch (x){ instrucciones3;} //fin del for1
case 1: x--; Sintaxis para anidar dos bucles while:
case 2: x+=5; while(condición){ //inicio del while 1
case 3: x = x + y;break; instrucciones1;
case 4: while(condición){ //inicio del while 2
case 5: instrucciones2;} //fin del while 2
case 6: x++;break; instrucciones3;}Sintaxis para anidar dos
default : System.out.println(“Número no bucles do .. while:do{ //inicio del do .. while 1
válido”); instrucciones1;do{ //inicio del do .. while 2
} instrucciones2;}while(condición); //fin del do
System.out.println(“x = “ + x); .. while 2
} instrucciones3;}while(condición); // fin del do
} .. while 1
Si en este programa se introduce un 1 como Los bucles se pueden anidar aunque sean de
valor para la x, en el switch se entrará en el case tipos distintos, por ejemplo podríamos anidar
1 y se ejecutarán todas las instrucciones hacia un bucle for dentro de un do .. while y éste a
abajo hasta encontrar un break, es decir, si x es su vez dentro de un while de esta forma:
un 1 se ejecutan las instrucciones: while(condición){ //inicio del while
x--; instrucciones1;do{ //inicio del do .. while
x+=5; instrucciones2;for(inicialización; condición;
x = x + y; incremento/decremento){ //inicio del for
Siete ejemplos de ejecución de este programa: instrucciones3;} //fin del for instrucciones4;}
Introduzca un número >= 1 y <= 6: 1 while(condición); //fin del do .. while
x = 15 instrucciones5;}//fin del while
Introduzca un número >= 1 y <= 6: 2 Ejemplo: programa que dibuja un rectángulo
x = 17 formado por asteriscos. El número de filas y
Introduzca un número >= 1 y <= 6: 3 columnas del rectángulo se pide por teclado.
x = 13 El número de filas y de columnas debe ser > 1.
Introduzca un número >= 1 y <= 6: 4 // Rectángulo sólido de asteriscos.
x=5 import java.util.Scanner; public class
Introduzca un número >= 1 y <= 6: 5 Ejemplo1BuclesAnidados {public static
x=6 void main(String[] args) {Scanner sc = new
Introduzca un número >= 1 y <= 6: 6 Scanner(System.in);int filas, columnas;
x=7 //leer número de filas hasta que sea un
Introduzca un número >= 1 y <= 6: 0 número > 1
Número no válido
x=0
BUCLES ANIDADOS
Hablamos de bucles anidados cuando se
incluyen instrucciones for, while o do-while
unas dentro de otras. Los anidamientos de
estas estructuras tienen que ser correctos, es
decir, una estructura anidada dentro de otra lo
debe estar totalmente, sin solaparse una con
la otra.
do{ import java.util.Scanner;
System.out.print(“Introduce número de filas: public class Ejemplo2BuclesAnidados {public
“); static void main(String[] args) {Scanner sc =
filas = sc.nextInt(); new Scanner(System.in);int filas, columnas,
}while(filas < 2); contador = 0;//leer número de filas del
//leer número de columnas hasta que sea un cuadradodo{
número > 1 System.out.print(“Introduce número de filas
do{ del cuadrado: “); filas = sc.nextInt();
System.out.print(“Introduce número de }while(filas<2);for(int i = 1; i<=filas; i++){ //filas
columnas: “); for(int j = 1; j<=filas; j++){ //columnas = filas
columnas = sc.nextInt(); System.out.print(contador%10
}while(columnas < 2); +“);contador++;
for(int i = 1; i <= filas; i++){ //for para las filas } //fin del for para las columnas
for(int j = 1; j <= columnas; j++){ //for para las System.out.println();
columnas } //fin del for para las filas
System.out.print(“ * “); Ejemplo de ejecución:Introduce número de
} //fin del for para las columnas filas del cuadrado: 6
System.out.println(); 012345
} //fin del for para las filas 678901
} 234567
} 890123
Ejemplo de ejecución: 456789
Introduce número de filas: 6 012345
Introduce número de columnas: 10
* * * * * * * * * * Ejemplo: A partir de una variable x que tomará
* * * * * * * * * * los valores desde 1 hasta 10, mostrar una
* * * * * * * * * * tabla de potencias de x. Para cada valor de x
* * * * * * * * * * se mostrará x2 x3 x4/*
* * * * * * * * * * *Programa que muestra una tabla con las
* * * * * * * * * * potencias de x (x x2 x3 x4)
En este programa se han anidado dos bucles *para valores de x desde 1 hasta 10*/
for para mostrar el rectángulo de asteriscos. import java.util.Scanner; public class
El bucle for externo es el que corresponde a las Ejemplo1BuclesAnidados3{public static
filas. El for interno corresponde a las columnas. void main(String[] args) {int x, n;//mostrar la
Para cada una de las filas se ejecuta cabecera de la tabla
completamente el for de las columnas con lo System.out.printf(“%10s%10s%10s%10s%n”,
que se consigue que para cada fila se muestren “x”, “x^2”, “x^3”, “x^4”);for (x = 1; x <= 10; x++)
tantos asteriscos como columnas haya. { //filas for (n = 1; n <= 4; n++) { //columnas
Al final de cada fila se escribe un salto de línea System.out.printf(“%10.0f”, Math.pow(x, n));
para que la siguiente fila comience a mostrarse } //fin del for para las columnas
en la línea siguiente. System.out.println();
Ejemplo: programa que dibuja un cuadrado }//fin del for para las filas
formado por dígitos del 0 al 9. El número de filas La salida de este programa es:
del cuadrado se pide por teclado. El número de x x^2 x^3 x^4
filas debe ser > 1. 1 1 1 1
2 4 8 16
3 9 27 81
4 16 64 256
5 25 125 625
6 36 216 1296
7 49 343 2401
8 64 512 4096
9 81 729 6561
10 100 1000 10000
INSTRUCCIONES DE SALTO public class Ejemplo1Continue {
Una instrucción de salto provoca la modificación public static void main(String[] args) {
del flujo de ejecución de un programa. for (int i = 1; i <= 50; i++) { //inicio del for
Java ofrece dos instrucciones de salto: if (i % 3 == 0 && i % 5 == 0) {
• break continue; //siguiente iteracicón del for
• continue }
System.out.println(i);
BREAK
} //fin del for
Esta instrucción provoca la finalización de una }
instrucción switch, while, do-while o for. En }
aquellos casos en los que existan estructuras de
control repetitivas anidadas, un break produce
la salida inmediata de aquel bucle en el que se
encuentre incluida pero no de los demás.
La única situación en la que un buen
programador debería utilizar la instrucción
break, es para separar los diferentes casos de
una instrucción switch.
Ejemplo: Programa que muestra números
desde 1 hasta 50. Cuando encuentre el primer
número que sea múltiplo de 3 y de 5 dejará de
mostrar números.
public class Ejemplo1Break {
public static void main(String[] args) {
for (int i = 1; i <= 50; i++) { //inicio del for
if (i % 3 == 0 && i % 5 == 0) {
break; //provoca el final del for
}
System.out.println(i);
} //fin del for
System.out.println(“Hasta Pronto!!!”);
}
}
En este ejemplo, cuando se ejecuta la
instrucción break el for finaliza y la ejecución
del programa continúa en la instrucción que
aparece a continuación del for.
4.2 CONTINUE
Esta instrucción provoca la ejecución de la
siguiente iteración en el bucle, es decir, se salta
las instrucciones que quedan hasta el final del
bucle, y vuelve al inicio del mismo. Si se trata
de un bucle for vuelve a la zona de incremento/
decremento.
Un buen programador deberá evitar el uso de
esta instrucción.
Ejemplo: Programa que muestra los números
desde el 1 hasta el 50 excepto los que sean
múltiplos de 3 y de 5.
RESUMEN DEL TEMA
La estructura de control se utiliza para seleccionar una de entre múltiples opciones
posibles. Es una alternativa a los if .. else anidados. Si el número de anidamientos if ..
else es elevado, la estructura switch produce un código más sencillo de leer y modificar.
Si una misma instrucción o bloque de instrucciones se tienen que ejecutar para distintos
valores, en ese caso podemos escribir case multiples. Esto consiste en escribir varias
instrucciones case seguidas.
Esta instrucción provoca la ejecución de la siguiente iteración en el bucle, es decir, se
salta las instrucciones que quedan hasta el final del bucle, y vuelve al inicio del mismo.
Si se trata de un bucle for vuelve a la zona de incremento/decremento.
LA IDEA PRINCIPAL
La estructura switch produce un código más sencillo de leer y modificar.
UNIDAD 9 - TEMA 4
LA ESTRUCTURA SI
OPERADOR CONDICIONAL ? : import java.util.Scanner;
El operador condicional se puede utilizar en public class Operador condicional {
sustitución de la instrucción condicional public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
if-else.
int num;
Lo forman los caracteres ? y : System.out.println(“Introduzca numero: “);
Sintaxis: num = sc.nextInt();
expresión1 ? expresión2 : expresión3 System.out.println(num >= 0 ? “POSITIVO”
Si expresión1 es cierta entonces se evalúa : “NEGATIVO”);
expresión2 y éste será el valor que devuelve }
el operador. Si expresión1 es falsa, se evalúa }
expresión3 y éste será el valor que devuelve el En el ejemplo, la instrucción:
operador. System.out.println(num >= 0 ? “POSITIVO” :
Ejemplo: programa que pide por teclado un “NEGATIVO”);
número entero y muestra si es positivo o Es equivalente a escribir esto:
negativo. Consideramos el cero como positivo. if(num >= 0){
System.out.println(“POSITIVO”);
}else{
System.out.println(“NEGATIVO”);
}
Ejemplo: programa que pide por teclado un
número entero y muestra si es par o impar.
import java.util.*;
public class Ejemplo1OperadorCondicional2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int num;
System.out.println(“Introduzca numero: “);
num = sc.nextInt();
System.out.println(num%2 == 0 ? “PAR” :
“IMPAR”);
}
}
En el ejemplo, la instrucción:
System.out.println(num%2 == 0 ? “PAR” :
“IMPAR”);
Es equivalente a escribir esto:
if(num%2 == 0){
System.out.println(“PAR”);
}else{
System.out.println(“IMPAR”);
}
ESTRUCTURA CONDICIONAL, Ejemplo de programa Java con estructura
ALTERNATIVA O SELECTIVA condicional: Programa que pide que se
Es una de las estructuras que permiten introduzca una nota por teclado y muestra dos
modificar el orden de ejecución de las mensajes si la nota es mayor o igual a 5.
instrucciones del programa. * Programa que pide una nota por teclado y
Una estructura condicional determina si se muestra dos mensajes si la nota es
ejecutan unas acciones u otras según se cumpla * mayor o igual que 5
o no una determinada condición. import java.util.*;
La condición que se comprueba para decidir public class CondicionalSimple1 {
si unas instrucciones se ejecutan o no debe public static void main( String[] args ){
ser una expresión booleana es decir debe dar Scanner sc = new Scanner( System.in );
como resultado un valor booleano System.out.print(“Nota: “);
true ó false. int nota = sc.nextInt();
En java la estructura condicional se implementa if (nota >= 5){//----------------inicio de la condición
mediante: System.out.println(“Enhorabuena!!”);
• Instrucción if. System.out.println(“Has aprobado”);
• Instrucción switch. }//-------------------------------------fin de la condición
• Operador condicional ? : System.out.println(“Hasta Pronto!”);
}
INSTRUCCION IF En este ejemplo si se introduce un número >=
La instrucción condicional if puede ser de tres 5 el programa mostrará:
tipos:: Enhorabuena!!
• Condicional simple: if Has aprobado
• Condicional doble: if ... else ... Hasta Pronto!
• Condicional múltiple o if anidados:if..elseif .. Si introducimos un valor < 5 el programa
mostrará:
Estructura Condicional simple
Hasta Pronto!
Como su nombre indica, es la estructura
Si un bloque de instrucciones contiene una
condicional más sencilla en Java. La usaremos
sola instrucción no es necesario escribir las
para decidir si una instrucción o bloque de
llaves { } aunque para evitar confusiones se
instrucciones se ejecuta o no dependiendo de
recomienda escribir las llaves siempre.
una condición. Se evalúa la condición y si se
Supongamos que en el ejemplo anterior la
cumple se ejecuta. Si no se cumple la condición,
instrucción if la escribimos así:
se salta dicho grupo de instrucciones.
if (nota >= 5){//----------------inicio de la condición
Sintaxis: System.out.println(“Enhorabuena!!”);
}//-------------------------------------fin de la condición
instrucción 1; Como el bloque de instrucciones dentro del if
instrucción 2; ahora solo contiene una instrucción, las llaves
if(condición){ se pueden omitir. En ese caso el programa
//inicio de la quedaría así:
condición
instrucción 3; * Programa que pide una nota por teclado y
instrucción 4;} muestra un mensaje si la nota es
//fin de la * mayor o igual que 5
condición import java.util.*;
instrucción 5; public class CondicionalSimple1 {
instrucción 6; public static void main( String[] args ){
En este caso se ejecutan las instrucciones 1 y Scanner sc = new Scanner( System.in );
2 y a continuación se evalúa la condición. Si System.out.print(“Nota: “);
se cumple, se ejecutan las instrucciones 3 y 4 int nota = sc.nextInt();
y a continuación la 5 y 6. Si la condición no se if (nota >= 5)
cumple, las instrucciones 3 y 4 no se ejecutan, System.out.println(“¡¡En hora buena!!”);
siguiendo la ejecución del programa por las System.out.println(“Hasta Pronto”);
instrucciones 5 y 6. }
Ahora si se introduce un número >= 5 el En este caso se ejecutan las instrucciones 1 y
programa mostrará: 2 y a continuación se evalúa la condición. Si se
¡¡En hora buena!! cumple, se ejecutan las instrucciones 3 y 4. Si
Hasta Pronto la condición no se cumple se ejecutan las
Si introducimos un valor < 5 mostrará: instrucciones 5 y 6. En ambos casos el
Hasta Pronto programa continuará su ejecución por
No escribir las llaves en estos casos las instrucciones 7 y 8.
puede conducir a un código confuso Ejemplo: Programa que lee una nota
de entender por lo que es siempre por teclado y muestra un mensaje
recomendable escribir las llaves indicando si se ha aprobado o no. Si
incluso en los casos en los que no la nota es >= 5 mostrará los mensajes:
sea necesario. En hora buena
Ten en cuenta que el código no es Has aprobado
obligatorio escribirlo con ese formato Si la nota es < 5 mostrará el mensaje:
en el que las instrucciones están tabuladas. Lo siento, has suspendido
Aunque no es un buen estilo de programación,
/*
se podría hacer escrito así:
* Programa que pide una nota por teclado y
if (nota >= 5) muestra si se ha aprobado o no
System.out.println(“Enhorabuena!!”); */
System.out.println(“Hasta Pronto!”); import java.util.*;
Escribiéndolo así puede llevar a confusión al public class EjemploIfElse {
no estar claro a simple vista donde comienza public static void main( String[] args ){
el bloque if y donde acaba. Por eso es Scanner sc = new Scanner( System.in );
recomendable escribir las llaves siempre. System.out.print(“Nota: “);
int nota = sc.nextInt();
ESTRUCTURA CONDICIONAL DOBLE
if (nota >= 5){
Mediante esta estructura de control el flujo System.out.println(“Enhorabuena!!”);
de ejecución del programa puede seguir dos System.out.println(“Has aprobado”);
caminos distintos dependiendo del valor de } else {
una condición. System.out.println(“Lo siento,has
Se evalúa la condición y si se cumple se ejecuta suspendido”);
una determinada instrucción o grupo de }
instrucciones. Si no se cumple se ejecuta otra System.out.println(“Hasta Pronto!”);
instrucción o grupo de instrucciones. }
}
Ejemplo: programa que lee un número entero
por teclado y muestra un mensaje indicando si
el número es par o impar.
Sintaxis en Java:
/* Sintaxis en Java:
* Programa que pide un número por teclado
y muestra si es par o impar
*/
import java.util.*;
public class EjemploIfElse2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int num;
System.out.print(“Introduzca un número
entero: “);
num = sc.nextInt();
if (num % 2 == 0) { Cada else se corresponde con el if más próximo
System.out.println(“PAR”); que no haya sido emparejado.
} else { Una vez que se ejecuta un bloque de
System.out.println(“IMPAR”); instrucciones, la ejecución continúa en la
} siguiente instrucción que aparezca después de
} estructura condicional múltiple.
} Ejemplo de programa Java que contiene una
estructura condicional múltiple: Programa que
Ejemplos de ejecución: lee una hora (número entero) y muestra un
Ejemplo 1 mensaje según la hora introducida corresponda
Introduzca un número entero: 3 a la mañana, la tarde o la noche.
IMPAR //Programa que muestra un saludo distinto
Ejemplo 2 según la hora introducida
Introduzca un número entero: 214 import java.util.*;
PAR public class EjemploIfAnidados {
public static void main(String[] args) {
ESTRUCTURA CONDICIONAL MÚLTIPLE: IF Scanner sc = new Scanner(System.in);
ANIDADOS int hora;
System.out.print(“Introduzca una hora (>=
0 y <= 23): “);
La estructura condicional múltiple se obtiene
hora = sc.nextInt();
encadenando sentencias if ... else.
if (hora >= 0 && hora < 12) {
Mediante esta estructura podemos construir
System.out.println(“Buenos días”);
estructuras de selección más complejas.
} else if (hora >= 12 && hora < 21) {
Un ejemplo de if múltiple expresado en
System.out.println(“Buenas tardes”);
diagrama de flujo puede ser este:
} else if (hora >= 21 && hora < 24) {
System.out.println(“Buenas noches”);
} else {
System.out.println(“Hora no válida”);
}
System.out.println(“Hasta pronto!!!”);
}
}
Cuatro ejemplos de ejecución del programa:
Introduzca una hora (>= 0 y <= 23): 6
Buenos días
Hasta pronto!!!
Introduzca una hora (>= 0 y <= 23): 21
Buenas noches
Hasta pronto!!! // programa que lee una nota y escribe la
Introduzca una hora (>= 0 y <= 23): 25 calificación correspondiente
Hora no válida import java.util.*;
Hasta pronto!!! public class EjemploIfAnidados2 {
Introduzca una hora (>= 0 y <= 23): 13 public static void main(String[] args) {
Buenas tardes Scanner sc = new Scanner(System.in);
Hasta pronto!!! double nota;
En estos ejemplos podemos comprobar que System.out.println(“Introduzca una nota
una vez que se ejecuta una de las instrucciones entre 0 y 10: “);
dentro del bloque de if anidados, la ejecución nota = sc.nextDouble();
del programa continúa en la siguiente System.out.println(“La calificación del
instrucción a continuación del bloque de if alumno es “);
anidados, en este caso la ejecución sigue por la if (nota < 0 || nota > 10) {
instrucción System.out.println(“Nota no válida”);
} else if (nota == 10) {
System.out.println(“Matrícula de Honor”);
System.out.println(“Hasta pronto!!!”); } else if (nota >= 9) {
System.out.println(“Sobresaliente”);
Ejemplo de programa Java que contiene una } else if (nota >= 7) {
estructura condicional múltiple: System.out.println(“Notable”);
Programa que pide que se introduzca un valor } else if (nota >= 6) {
numérico de tipo double correspondiente a System.out.println(“Bien”);
la nota de un alumno en una determinada } else if (nota >= 5) {
asignatura y muestra un texto con la calificación System.out.println(“Suficiente”);
equivalente de la siguiente forma: } else {
Si la nota es menor que 5 muestra “Suspenso” System.out.println(“Suspenso”);
Si la nota es mayor o igual que 5 y menor que 6 }
muestra “Suficiente” }
Si la nota es mayor o igual que 6 y menor que 7 }
muestra “Bien” Errores comunes que se suelen cometer en las
Si la nota es mayor o igual que 7 y menor que 9 instrucciones if
muestra “Notable”
Si la nota es mayor o igual que 9 y menor que 1. Escribir un punto y coma al final de la
10 muestra “Sobresaliente” condición:
Si la nota es igual a 10 muestra “Matrícula de if (nota >= 6);
honor” System.out.println(“Notable”);
Si la nota es menor que 0 o mayor que 10 En este caso el mensaje “Notable” saldrá
mostrará el mensaje “Nota no válida” siempre. El if termina en el ;
2. Escribir elseif en lugar de else if
elseif (nota >= 5)
System.out.println(“Suficiente”);
3. Usar = en lugar de == en las comparaciones
if (nota=10)
System.out.println(“Matrícula de Honor”);
4. Errores al comparar dos String
No se deben usar los operadores relacionales
==, >, <, <= , etc.
if(cadena1 == cadena2){ //Comparación no
válida de 2 String
Comparar dos String en java Ejemplos de uso:
Para comprobar si dos String son iguales Suponiendo que cadena1 y cadena2 son de
se debe usar el método equals:if (cadena1. tipo String y ambas contienen una cadena de
equals(cadena2)) caracteres, podemos compararlas de varias
Si lo que queremos es comprobar si dos formas según necesitemos:
cadenas son iguales sin tener en cuenta
if(cadena1.compareTo(cadena2) < 0) //si la
mayúscula o minúscula se usa el método
condición se cumple significa que
equalsIgnoreCase:
//cadena1 es alfabéticamente menor que
if (cadena1.equalsIgnoreCase(cadena2))
cadena2
Para comparar dos cadenas en el orden
if(cadena1.compareTo(cadena2) > 0) //si la
alfabético se usa el método compareTo
condición se cumple significa que
El método compareTo compara las dos cadenas
//cadena1 es alfabéticamente mayor que
alfabéticamente y devuelve un valor entero con
cadena2
el resultado de la comparación de la siguiente
if(cadena1.compareTo(cadena2) == 0) //si la
forma:
condición se cumple significa que
• Devuelve 0 si las dos cadenas son iguales.
//cadena1 es igual que cadena2
• Devuelve un valor < 0 si la primera cadena
if(cadena2.compareTo(cadena1) > 0) //si la
es alfabéticamente menor que la segunda.
condición se cumple significa que
• Devuelve un valor > 0 si la primera cadena
//cadena2 es alfabéticamente mayor que
es alfabéticamente mayor que la segunda.
cadena1
if(cadena2.compareTo(cadena1) < 0) //si la
condición se cumple significa que
//cadena2 es alfabéticamente menor que
cadena1
Para comparar Strings en el orden alfabético
sin tener en cuenta mayúsculas o minúsculas
se usa el método compareToIgnoreCase
if(cadena1.compareToIgnoreCase(cadena2) >
0)
En este saso, si la condición se cumple significa
que cadena 1 es alfabéticamente mayor que
cadena2 sin importar que los caracteres en
ambas cadenas estén en mayúsculas o en
minúsculas.
RESUMEN DEL TEMA
Las estructuras nos permiten modificar el orden de ejecución de las instrucciones del
programa.
Una estructura condicional determina si se ejecutan unas acciones u otras según se
cumpla o no una determinada condición.
Mediante esta estructura podemos construir estructuras de selección más complejas.
Con la ayuda de, la estructura de control el flujo de ejecución del programa puede
seguir dos caminos distintos dependiendo del valor de una condición.
Con el propósito de, que se evalué la condición y si se cumple se ejecuta una
determinada instrucción o grupo de instrucciones. Si no se cumple se ejecuta otra
instrucción o grupo de instrucciones.
LA IDEA PRINCIPAL
la estructura de control el flujo de ejecución del programa puede seguir dos
caminos distintos dependiendo del valor de una condición.
UNIDAD 9 - TEMA 5
LA ESTRUCTURA PARA Y MIENTRAS
ESTRUCTURA REPETITIVA O ITERATIVA La ejecución de un bucle while sigue los
Esta estructura de control permite ejecutar de siguientes pasos:
forma repetida una instrucción o un bloque de 1. Se evalúa la condición.
instrucciones. 2. Si el resultado es false las instrucciones no se
Las instrucciones se repiten mientras que se ejecutan y el programa sigue ejecutándose
cumpla una determinada condición. por la siguiente instrucción a continuación
Esta condición se conoce como condición de del while.
salida del bucle. 3. Si el resultado es true se ejecutan las
En Java las estructuras repetitivas se instrucciones y se vuelve al paso 1
implementan mediante: Ejemplo: programa que pide introducir
• ciclo while números enteros por teclado. La lectura de
• ciclo do .. while números termina cuando se introduce un
• ciclo for número negativo. El programa muestra la suma
de todos los números introducidos excepto el
CICLO WHILE negativo.
Las instrucciones se repiten mientras la
condición sea cierta.
En un ciclo while la condición se comprueba al
principio del bucle por lo que las instrucciones
que lo forman se ejecutan 0 ó más veces.
Representación en diagrama de flujo de un
bucle do .. while:
Sintaxis:
instrucción 1;
while (condición){ //inicio while
instrucciones;
} //fin while
instrucción 2;
/* comience la estructura while. Hay que hacerlo
* Programa que lee números hasta que se lee así porque es posible que el primer número que
un negativo y muestra la se introduzca sea el negativo, en ese caso no
* suma de los números leídos tendríamos que sumarlo, por lo tanto, el while
*/ no se debe ejecutar y se muestra directamente
import java.util.*; el mensaje con la suma del número.
public class Ejemplo1While { Esta técnica se conoce como lectura adelantada
public static void main(String[] args) { o anticipada y es la forma correcta de utilizar la
Scanner sc = new Scanner(System.in); estructura while cuando no sabemos el número
int num; //variable que contiene el número de iteraciones que se van a realizar.
introducido Dos ejemplos de ejecución del programa:
int suma = 0; //variable donde acumularemos Introduzca un número ( < 0 para finalizar): 6
la suma de los números Introduzca un número ( < 0 para finalizar): 2
System.out.print(“Introduzca un número ( < 0 Introduzca un número ( < 0 para finalizar): 5
para finalizar): “); Introduzca un número ( < 0 para finalizar): -1
num = sc.nextInt(); //lectura del primer La suma es: 13
número En este caso se introducen los números 6, 2 y 5.
while (num >= 0){ //inicio del bucle while Cuando se introduce el valor -1 el bucle finaliza
suma = suma + num; //se suma el número y se muestra la suma.
introducido Introduzca un número ( < 0 para finalizar): -2
System.out.print(“Introduzca un número ( < 0 La suma es: 0
para finalizar): “); En este ejemplo de ejecución el primer número
num = sc.nextInt(); //lectura del siguiente introducido es negativo por lo que el bucle
número while no se ejecuta. Se muestra el resultado de
} //fin del bucle while la suma que en este caso será 0.
System.out.println(“La suma es: “ + suma ); // Ejemplo: programa que muestra N asteriscos
se muestra la suma por pantalla. El valor de N se introduce por
} teclado.
}
En este ejemplo, según el enunciado, se
trata de leer números enteros hasta que se
introduzca un número negativo, por lo tanto,
las instrucciones contenidas dentro del while se
repiten mientras el número que introduzcamos
sea >= 0.
Este es un ejemplo de estructura repetitiva
en el que no sabemos a priori cuántas veces
se repetirán las instrucciones. El número de
iteraciones del bucle depende del valor de la
variable num que se introduce por teclado. En
el ejemplo podemos ver también que la lectura
del primer número se realiza antes de que
/* public class Ejemplo3While {
* programa que lee un número n y muestra public static void main(String[] args) {
n asteriscos int fahrenheit = 10; //contiene las
*/ temperaturas fahrenheit
import java.util.*; double celsius; //contiene las temperaturas
public class Ejemplo2While { celsius
public static void main(String[] args) { System.out.printf(“ ºF \t ºC \n”);
Scanner sc = new Scanner(System.in); System.out.println(“---------------”);
int N; //variable que contiene el número de while (fahrenheit <= 100 ){ //inicio del bucle
asteriscos a mostrar while
int contador = 0; //variable para contar los celsius = (fahrenheit - 32)*5/9.0;
asteriscos que se han mostrado System.out.printf(“%3d\t%6.2f \n”, fahrenheit,
System.out.print(“Introduce número de celsius);
asteriscos a mostrar: “); fahrenheit += 10;
N = sc.nextInt(); //leemos el número total de } //fin del bucle while
asteriscos a mostrar }
while (contador < N){ //inicio del bucle while }
System.out.print(“*”); Salida por pantalla:
contador++; ºF ºC
} //fin del bucle while ---------------
System.out.println(“Fin programa”); 10 -12,22
} 20 -6,67
} 30 -1,11
En este programa se trata de mostrar tantos 40 4,44
asteriscos como indique el número N que se 50 10,00
ha introducido por teclado. 60 15,56
Este es un ejemplo de estructura repetitiva en 70 21,11
la que sabemos a priori cuántas veces se va a 80 26,67
repetir el while. En este caso el while se va a 90 32,22
repetir N veces. La variable contadora será la 100 37,78
variable de control que hará que el while En este ejemplo la variable fahrenheit es la
termine. Cada vez que se muestra un variable de control y será la encargada
asterisco por pantalla se suma 1 a de determinar cuando finaliza el bucle
esta variable. El while se repite while.
mientras el valor del contador Su valor inicial es 10 y se deben
sea menor que el número total mostrar las temperaturas desde
de asteriscos a mostrar. 10ºF hasta 100ºF de 10 en 10,
Dos ejemplos de ejecución: por lo tanto en cada iteración se
Introduce número de asteriscos incrementará su valor en 10.
a mostrar: 10 El while se repite mientras el valor
********** de la variable sea <= 100.
Fin programa
Introduce número de asteriscos a mostrar: 0
CICLO DO - WHILE
Fin programa
Las instrucciones se ejecutan mientras la
Ejemplo: programa que muestra una tabla
condición sea cierta.
con temperaturas expresadas en grados
La condición se comprueba al final del bucle por
Fahrenheit y su equivalente en grados Celsius.
lo que el bloque de instrucciones se ejecutará
Los valores de las temperaturas en grados
al menos una vez.
Fahrenheit estarán comprendidas entre 10 ºF
Esta es la diferencia fundamental entre el bucle
y 100 ºF y se mostrarán con un incremento de
while y el bucle do .. while. Las instrucciones de
10º entre ellas (10, 20, 30 ...).
un bucle while es posible que no se ejecuten si
Fórmula para pasar de ºF a ºC: ºC = (ºF – 32) *
la condición inicialmente es falsa.
5/9
Diferencia entre un bucle while y un bucle do ..
while:
• Bucle while se ejecuta 0 o más veces. Dos ejemplos de ejecución:
• Bucle do .. while se ejecuta 1 o más veces. Introduce un número entero <= 100: 27
Representación en diagrama de flujo de un Ha introducido: 27
bucle do .. while: Introduce un número entero <= 100: 690
Sintaxis do .. while: Número no válido
instrucción1; Introduce un número entero <= 100: 584
do{ //inicio do .. while Número no válido
instrucciones; Introduce un número entero <= 100: 58
}while(condición); //fin do .. while Ha introducido: 58
instrucción2; En los ejemplos podemos comprobar que las
La ejecución de un bucle do - while sigue los instrucciones dentro del bucle do .. while se
siguientes pasos: ejecutan al menos una vez.
1. Se ejecutan las instrucciones a partir de la Ejemplo: Programa que lee un número entero
instrucción do{ entre 1 y 10 ambos valores incluidos. Si el
2. Se evalúa la condición. número es válido se muestra un mensaje
3. Si la condición no se cumple el programa indicándolo y se vuelve a pedir. Finalmente se
sigue ejecutándose por la siguiente muestra por pantalla el número introducido.
instrucción a continuación del while.
// Programa que lee un número entre 1 y 10
4. Si la condición se cumple volvemos al paso 1.
import java.util.Scanner;
Ejemplo: Programa que lee un número entero
public class Ejemplo2DoWhile {
menor o igual que 100. Si el número es mayor
public static void main(String[] args) {
que 100 se muestra un mensaje indicándolo y
int n;
se vuelve a pedir. Finalmente se muestra por
Scanner sc = new Scanner(System.in);
pantalla el número introducido.
do { //inicio del do .. while
System.out.print(“Escribe un número
entero entre 1 y 10: “);
n = sc.nextInt();
if (n < 1 || n > 10) {
System.out.println(“Valor no válido”);
}
} while (n < 1 || n > 10); //fin del do .. while
System.out.println(“Ha introducido: “ + n);
}
}
//Programa que pide un número menor o Dos ejemplos de ejecución del programa:
igual que 100 Escribe un número entero entre 1 y 10: 3
import java.util.Scanner; Ha introducido: 3
public class Ejemplo1DoWhile { Escribe un número entero entre 1 y 10: -2
public static void main(String[] args) { Valor no válido
int valor; Escribe un número entero entre 1 y 10: 6
Scanner in = new Scanner( System.in ); Ha introducido: 6
do { //inicio del do .. while Ejemplo: Programa que muestra los números
System.out.print(“Introduce un número del 1 al 10 todos en la misma fila y separados
entero <= 100: “); por un espacio en blanco.
valor = in.nextInt();
if(valor > 100){
System.out.println(“Número no
válido”);
}
}while (valor > 100); //fin del do .. while
System.out.println(“Ha introducido: “ +
valor);
}
}
import java.util.Scanner;
public class Ejemplo3DoWhile {
public static void main(String[] args) {
int i = 1;
do { //inicio del do .. while
System.out.print(i + “ “);
i++;
} while (i<=10); //fin del do .. while
System.out.println(“\nFin programa”);
}
}
El programa muestra por pantalla:
1 2 3 4 5 6 7 8 9 10 Condición es una expresión booleana
Fin programa que determina si la sentencia o bloque de
En este caso la variable i es la que contienen sentencias se ejecutan o no. Las instrucciones
los valores a mostrar por pantalla. También es contenidas dentro del bucle for se ejecutan
la variable de control que determina cuando mientras que la condición sea cierta.
finaliza el bucle. Inicialmente vale 1 y en cada Incremento/decremento es una expresión
iteración, después de mostrar su valor por que modifica la variable o variables de control
pantalla se incrementa. El do .. while se repite del bucle. En esta zona puede haber más de
mientras el valor de i sea menor o igual a 10. una expresión para modificar las variables. Si
hay varias expresiones deben estar separadas
CICLO FOR por comas.
Un for hace que una instrucción o bloque La ejecución de un bucle for sigue los siguientes
de instrucciones se repitan un número pasos:
determinado de veces mientras se cumpla la 1. Se inicializa la variable o variables de control
condición. (zona de inicialización)
Los bucles for son los más adecuados cuando 2. Se evalúa la condición (zona de condición).
se conoce el número de veces que se van a 3. Si la condición es falsa, finaliza la ejecución
repetir las instrucciones. del for y el programa continúa su ejecución
Representación en diagrama de flujo de una en la siguiente instrucción después del for.
instrucción for: 4. Si la condición es cierta se ejecutan las
Sintaxis Java del bucle for: instrucciones contenidas dentro del for.
instrucción1; 5. Se actualiza la variable o variables de control
for(inicialización; condición; incremento/ (zona incremento/decremento)
decremento){ //inicio for 6. Se vuelve al punto 2.
instrucciones; Igual que el bucle while, un bucle for se puede
} //fin for ejecutar 0 ó más veces.
instrucción2; Ejemplo: Programa que muestra los números
A continuación de la palabra for y entre del 1 al 10 ambos incluidos todos en la misma
paréntesis debe haber siempre tres zonas línea y separados por un espacio en blanco.
separadas por punto y coma:
• zona de inicialización. /*
• zona de condición * programa que muestra los números del 1
• zona de incremento ó decremento. al 10
Las tres zonas son opcionales. Si en alguna */
ocasión no fuese necesario escribir alguna de public class Ejemplo1For {
estas zonas se pueden dejar en blanco, pero los public static void main(String[] args) {
punto y coma deben aparecer. int i;
Inicialización es la parte en la que la variable o for (i = 1; i <= 10; i++) { //inicio del for
variables de control del bucle toman su valor System.out.print(i + “ “);
inicial. Puede haber una o más instrucciones } //fin del for
en la zona de inicialización. Si hay varias System.out.println(“\nFin programa”);
instrucciones deben estar separadas por }
comas. La inicialización se realiza solo una vez. }
Salida por pantalla: Salida por pantalla:
1 2 3 4 5 6 7 8 9 10 10 9 8 7 6 5 4 3 2 1
Fin programa Fin programa
La instrucción for del ejemplo la podemos La instrucción for del ejemplo la podemos
interpretar de esta forma: interpretar así:
Primero asigna a i el valor inicial 1 y a Primero asigna a i el valor inicial 10 y a
continuación se comprueba la condición. continuación se comprueba la condición.
Mientras que i sea menor o igual a 10 muestra Mientras que i sea mayor que 0 muestra i + “
i + “ “, a continuación, incrementa el valor de i y “, a continuación se decrementa el valor de i y
se comprueba de nuevo la condición. El for se se comprueba de nuevo la condición. El for se
repite mientras i sea <= 10. repite mientras i sea > 0.
En los programas de este tipo en los que la Ejemplo: Vamos a hacer de nuevo el programa
variable de control, en este caso la i, solo se que muestra una tabla con temperaturas
utiliza dentro del bucle for es habitual declararla expresadas en grados Fahrenheit y su
en la zona de incialización. Si lo hacemos de esa equivalente en grados Celsius pero esta vez
forma el programa quedaría así: utilizaremos un bucle for para resolverlo.
El programa debe realizar los mismo que el
// Programa que muestra los números del 1
anterior, los valores de las temperaturas en
al 10
grados Fahrenheit estarán comprendidas entre
public class Ejemplo1For {
10 ºF y 100 ºF y se mostrarán con un incremento
public static void main(String[] args) {
de 10º entre ellas (10, 20, 30 ...).
for (int i = 1; i <= 10; i++) { //inicio del for
System.out.print(i + “ “); //Programa que muestra una tabla de
} //fin del for equivalencias entre grados Fahrenheit y
System.out.println(“\nFin programa”); celsius
} public class Ejemplo3For {
} public static void main(String[] args) {
Ejemplo: Programa que muestra los números double celsius;
del 10 al 1 ambos incluidos todos en la misma System.out.printf(“ ºF \t ºC \n”);
línea y separados por un espacio en blanco. System.out.println(“---------------”);
for (int fahrenheit = 10; fahrenheit <= 100;
// Programa que muestra los números del 10
fahrenheit+= 10) {
al 1
celsius = (fahrenheit - 32)*5/9.0;
public class Ejemplo2For {
System.out.printf(“%3d\t%6.2f \n”,
public static void main(String[] args) {
fahrenheit, celsius);
for (int i = 10; i > 0; i--) { //inicio del for
}
System.out.print(i + “ “);
}
} //fin del for
}
System.out.println(“\nFin programa”);
Salida por pantalla:
}
ºF ºC
}
---------------
10 -12,22
20 -6,67
30 -1,11
40 4,44
50 10,00
60 15,56
70 21,11
80 26,67
90 32,22
100 37,78
La instrucción for del ejemplo la podemos
interpretar así:
Primero asigna a fahrenheit el valor inicial 10
y a continuación se comprueba la condición.
Mientras que fahrenheit sea menor o igual no visualiza la frase “Elementos de
que 100 se ejecutan las instrucciones del Programación” 10 veces como cabría esperar,
for, a continuación se incrementa el valor de ni produce un mensaje de error por parte del
fahrenheit en 10 y se comprueba de nuevo la compilador.
condición. El for se repite mientras fahrenheit En realidad lo que sucede es que se visualiza
sea <= 100. una vez la frase “Elementos de Programación”,
Ejemplo: Dadas dos variables enteras a y b ya que aquí la sentencia for es una sentencia
con valor inicial 1, escribimos un programa vacía, sin instrucciones a realizar, al terminar
que muestre una tabla con el valor de ambas con un punto y coma (;).
variables y su suma. En cada iteración el valor El for en este caso se limita a realizar la
de a se incrementa en 1 unidad y el valor de b asignación inicial de la variable, y mientras se
se incrementa en 2 unidades. La tabla finaliza cumpla la condición incrementar el valor de i.
cuando la suma de a y b sea >= 10. La variable i toma como valor incial 1 y cuando
Este es un ejemplo de programa que utiliza el for termina valdrá 11. A continuación se
varias variables en las zonas de inicialización e mostrará el mensaje por pantalla.
incremento/decremento.
¿QUÉ ESTRUCTURA REPETITIVA USAR?
Aunque un for se puede utilizar también cuando
// Programa que muestra el valor de a, b y su no se sabe a priori el número de iteraciones
suma mientras que la suma sea menor de 10. a realizar, esta instrucción es especialmente
// En cada iteración el valor de a se incrementa indicada para bucles donde se conozca el
en 1 unidad y el de b en 2 número de pasadas.
public class Ejemplo4For { Como regla práctica podemos decir que:
public static void main(String[] args) { • La instrucción for se utiliza generalmente
for(int a = 1, b = 1; a + b < 10; a++, b+=2){ cuando se conoce el número de iteraciones
System.out.println(“a = “ + a + “ b = “ + b a realizar.
+ “ a + b = “ + (a+b)); • Las instrucciones while y do-while se utilizan
} generalmente cuando no se conoce a priori
} el número de iteraciones a realizar.
} • La instrucción do .. while será más adecuada
que la instrucción while cuando el bloque de
La salida de este programa es: instrucciones se deba repetir al menos una
a=1 b=1 a+b=2 vez.
a=2 b=3 a+b=5
a=3 b=5 a+b=8
La instrucción for del ejemplo la podemos
interpretar así: Primero asigna a las variables
a y b el valor 1 y a continuación se comprueba
la condición. Mientras que la suma de a + b sea
menor que 10 se ejecuta las instrucciones del
for, a continuación, se suma 1 a la variable a
y se suma 2 a la variable b y se comprueba de
nuevo la condición. El for se repite mientras
que la suma a +b sea menor que 10.
Un error que se puede cometer cuando
escribimos un for es escribir el punto y coma
después del paréntesis final. Un bucle for
generalmente nunca lleva punto y coma final.
Por ejemplo, el bucle:
for (int i = 1; i <= 10; i++);
{
System.out.println(“Elementos de
Programación”);
}
RESUMEN DEL TEMA
La estructura es aquella en que el cuerpo del bucle se repite mientras se cumple una
determinada condición. Cuando se establece la instrucción mientras, la primera cosa
que ocurre es evaluar la condición.
Aunque, un for se puede utilizar también cuando no se sabe a priori el número de
iteraciones a realizar, esta instrucción es especialmente indicada para bucles donde se
conozca el número de pasadas.
Para finalizar si la condición se evalúa falsa, no se entra al ciclo y se sigue con el flujo
normal del problema. Si la condición es verdadera, entonces se entra al ciclo y se ejecuta
el cuerpo del bucle (instrucciones dentro del mientras), después se evalúa de nuevo la
expresión booleana. Este proceso se repite una y otra vez mientras la condición sea
verdadera.
LA IDEA PRINCIPAL
la estructura de control permite ejecutar de forma repetida una instrucción o un
bloque de instrucciones.
LECTURAS RECOMENDADAS
• • Control de flujo. Autor Dennis Delgado Video: https://www.youtube.com/
watch?v=fX1hXbDQUgc
• Programación con R. Autor Francisco Martínez del Río.
• Estructuras. Autor Victor R. Gonzáles.
• Estructuras de Repetición. Autor Edgar Garcia Cano y Jorge Solano Galvez
ACTIVIDADES Y EJERCICIOS
• Defina de forma reducida el control de flujo
• Realice un cuadro comparativo de los Tipos de estructuras
• Elabore un ejemplo de estructuras anidadas