GUIA DIDÁCTICA PARA PROGRAMACIÓN EN LENGUAJES ESTRUCTURADOS SEGUNDA REVISIÓN, SEPTIEMBRE 2014. Ing. Wilson Cedillo P. Msc.
El autor otorga permiso para utilizar este documento bajo la licencia Creative Commons “Reconocimiento-NoComercial-SinObraDerivada 3.0 Genérica” (http://creativecommons.org/licenses/by-nc-nd/3.0/deed.es)
Usted es libre de : copiar, distribuir y comunicar públicamente ésta guía para PLE. Bajo las condiciones siguientes: Reconocimiento: Debe reconocer los créditos del documento al autor No comercial: No puede utilizar éste documento para fines comerciales Sin obras derivadas: NO SE PUEDE ALTERAR, TRANSFORMAR O GENERAR UNA OBRA DERIVADA A PARTIR DE ÉSTE DOCUMENTO • Al reutilizar o distribuir la obra, tiene que dejar bien claro los términos de la licencia de esta obra. • Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor • Nada en esta licencia menoscaba o restringe los derechos morales del autor. Se otorga permiso para enlazar este documento desde cualquier sitio Web, con la siguiente dirección: http://www.uets.edu.ec/ple1 El autor agradece el envío de cualquier comentario o sugerencia sobre esta Guía a los correos: wilsoncp@uets.edu.ec; ing.wilsoncedillo@msn.com
INDICE DE CONTENIDOS
Índice de Contenidos Prologo ............................................................................................................................................................. i Introducción ................................................................................................................................................. 2 Unidad de Trabajo 1 .................................................................................................................................. 2 Lógica Computacional ............................................................................................................................... 2 1.
Introducción .................................................................................................................................... 2
2.
Conceptos de Problema ............................................................................................................... 3
3.
Resolución de problemas............................................................................................................ 5
4.
Métodos de resolución de problemas ................................................................................. 14 4.1
Encontrar un patrón de comportamiento ................................................................ 14
4.2
Método de prueba y error............................................................................................... 18
4.3
Aplicación de una fórmula. ............................................................................................. 21
4.4
Comenzar de atrás hacia adelante ............................................................................... 23
4.5
Elaboración de una tabla. ................................................................................................ 26
4.6
Planteamiento gráfico de la solución. ........................................................................ 28
5.
La lógica .......................................................................................................................................... 32
6.
La Lógica como fundamento de la informática ............................................................... 33
7.
La lógica de programación ...................................................................................................... 34
8.
La lógica aplicada para resolver problemas. .................................................................... 35
9.
Valores de verdad ....................................................................................................................... 37
10.
Algoritmos ................................................................................................................................. 39
10.1 Algoritmos Informales ..................................................................................................... 40 10.2 Algoritmos Computacionales ........................................................................................ 42 Unidad de Trabajo 2 ............................................................................................................................... 44 Metodología de la Programación ....................................................................................................... 44 1.
2.
Introducción ................................................................................................................................. 44 1.1
Programa ............................................................................................................................... 44
1.2
Programación ...................................................................................................................... 45
1.3
Lógica de Programación .................................................................................................. 45
Fases en la Resolución de Problemas con un computador ......................................... 45 i
2.1
Análisis del problema. ...................................................................................................... 46
2.2
Diseñar un algoritmo Computacional ........................................................................ 46
2.3
Utilizar una técnica para representar el Algoritmo .............................................. 48
2.4
Traducir el algoritmo computacional a un lenguaje de programación ......... 48
2.5
Verificar y depurar el programa................................................................................... 49
2.6
Documentación y mantenimiento ............................................................................... 49
3.
Practicando algoritmos computacionales con Scratch ................................................ 50 3.1
Interfaz de SCRATCH ........................................................................................................ 51
3.2
Paleta de bloques y las acciones más comunes para los personajes.............. 56
3.3
Repeticiones y uso del lápiz en SCRATCH ................................................................ 57
3.4
Animaciones en SCRATCH .............................................................................................. 60
3.5
El control condicional ....................................................................................................... 62
4.
Las variables y sus características. ...................................................................................... 66 4.1
Las variables en los algoritmos computacionales ................................................. 68
4.2
Nombres de variables...................................................................................................... 68
4.3
Tipos de datos de las variables ..................................................................................... 69
5.
Operadores y expresiones aritméticas ............................................................................... 71 5.1
Jerarquía de Operadores ................................................................................................. 73
6.
Operadores de comparación y expresiones lógicas ...................................................... 76
7.
Las decisiones .............................................................................................................................. 77
8.
Pseudocódigos ............................................................................................................................. 80 8.1
Palabras claves de carácter general ............................................................................ 80
8.2
Estructuras de decisión simples en los pseudocódigos ...................................... 81
8.3
Concatenar resultados en la instrucción Escribir.................................................. 85
8.4
Operadores lógicos binarios .......................................................................................... 87
8.5
Variantes de las estructuras de decisión .................................................................. 92
9.
Los ciclos ........................................................................................................................................ 97 9.1
Contadores ..........................................................................................................................100
9.2
Acumuladores....................................................................................................................103
10.
La Prueba de Escritorio......................................................................................................105
11.
Diagramas de Flujo ..............................................................................................................108
11.1 Los bucles en un diagrama de flujo ...........................................................................110 Unidad de Trabajo 3 .............................................................................................................................111 La programación orientada a objetos ...........................................................................................111 1.
Historia de la programación .................................................................................................111
2.
Técnicas de programación ....................................................................................................113 2.1
Enfoque Monolítico o Programación no Estructurada ......................................113
2.2
La programación estructurada ...................................................................................114
2.3
Programación modular ..................................................................................................115
2.4
Programación orientada a eventos ...........................................................................116
2.5
Programación orientada a objetos ............................................................................117
2.6
Programación Funcional ...............................................................................................118
2.7
Programación Lógica ......................................................................................................118
2.8
Entonces... ¿Hay Técnicas de programación obsoletas? ...................................119
3.
Características generales de la programación orientada a objetos (POO) .........121
4.
Pensar en objetos, una manera de ver la realidad .......................................................123
5.
Los objetos...................................................................................................................................126
6.
Las clases......................................................................................................................................128 6.1
7.
8.
¿Cómo identifico a las clases?......................................................................................128
Análisis y diseño de sistemas, orientado a objetos ......................................................129 7.1
Lenguaje Unificado de Modelado ...............................................................................131
7.2
Diagrama de Clases .........................................................................................................132
7.3
Diagrama de objetos .......................................................................................................135
Principios Fundamentales de la Programación orientada a objetos ....................139 8.1
Encapsulamiento ..............................................................................................................139
8.2
Abstracción .........................................................................................................................140
8.3
Herencia...............................................................................................................................141
Unidad de Trabajo 4 .............................................................................................................................144 Lenguaje de programación Java .......................................................................................................144 1.
Lenguajes de Programación .................................................................................................144 1.1
Código Fuente ....................................................................................................................146
1.2
Compilar ..............................................................................................................................146
1.3 2.
Intérprete ............................................................................................................................146
¿Qué es java? ...............................................................................................................................146 2.1
Breve Historia....................................................................................................................147
2.2
La máquina virtual de java ...........................................................................................148
2.3
Características de java ...................................................................................................150
3.
El entorno de desarrollo de Java .........................................................................................151
4.
Entorno de desarrollo integrado NetBEANS ..................................................................153 4.1
Los proyectos en NetBEANS ........................................................................................154
4.2
Ventana de trabajo de NetBEANS ..............................................................................156
4.3
Detalles sobre la clase ....................................................................................................157
4.4
Los paquetes en java .......................................................................................................157
5.
Esquema básico de un programa en Java ........................................................................158 5.1
¿Cómo escribir mensajes en java? .............................................................................161
5.2
Tipos de datos y declaración de variables en java ..............................................163
5.3
Declaración de variables ...............................................................................................164
6.
Instanciar clases en java.........................................................................................................166 6.1
Declarar la variable y luego instanciar ....................................................................166
6.2
Declarar la variable e instanciar en una misma instrucción ...........................167
6.3
Constructores ....................................................................................................................167
6.4
Invocar métodos que no tienen parámetros .........................................................167
6.5
¿Cómo se hace la lectura de datos en java? ...........................................................171
7.
Trabajar con varias clases en java ......................................................................................175
8.
Paso de parámetros en Java y ámbito de las variables ..............................................179 8.1
Parámetros actuales .......................................................................................................179
8.2
Parámetros formales ......................................................................................................180
8.3
Ámbito de una variable ..................................................................................................181
9.
Métodos con valor de retorno..............................................................................................183 9.1
Métodos con valor de retorno sin parámetros .....................................................183
9.2
Métodos con valor de retorno con parámetros ....................................................184
10.
Estructuras de control ........................................................................................................187
10.1 Estructuras de Decisión .................................................................................................187
10.2 Conectores lógicos en java............................................................................................191 11.
La clase String y variantes de las estructuras de decisión ...................................192
11.1 Método equals ...................................................................................................................192 11.2 Método equalsIgnoreCase ............................................................................................193 11.3 Método length....................................................................................................................193 11.4 Métodos toUpperCase y toLowerCase .....................................................................193 11.5
Estructura con decisiones en cascada .....................................................................195
11.6 Estructura con decisiones anidadas .........................................................................196 Unidad de Trabajo 5 .............................................................................................................................198 Estructuras de control y ampliación del lenguaje java ...........................................................198 1.
Introducción ...............................................................................................................................198
2.
Conociendo otros métodos de la clase String ................................................................199 2.1
Método charAt ...................................................................................................................199
2.2
Método substring .............................................................................................................199
2.3
Método indexOf.................................................................................................................200
3.
Estructura de selección múltiple ........................................................................................200
4.
Estructuras de repetición en java .......................................................................................203
5.
Bucle do while ............................................................................................................................203
6.
Uso de variables especiales en la programación ..........................................................204
7.
8.
6.1
Contadores ..........................................................................................................................204
6.2
Variables auxiliares .........................................................................................................206
6.3
Acumuladores....................................................................................................................209
6.4
Centinelas ............................................................................................................................210
Encapsulamiento y Visibilidad ............................................................................................214 7.1
Modificadores de acceso ...............................................................................................215
7.2
El modificador static .......................................................................................................217
La clase Math ..............................................................................................................................217 8.1
Miembros dato constantes ...........................................................................................218
8.2
Método Math.toRadians.................................................................................................218
8.3
Método Math.toDegrees ................................................................................................218
8.4
Métodos de la clase Math para funciones trigonométricas .............................219
8.5
Método Math.pow ............................................................................................................219
8.6
Método Math.sqrt .............................................................................................................219
8.7
Método Math.floor ...........................................................................................................224
8.8
Método Math.random .....................................................................................................224
9.
Bucle while ..................................................................................................................................226
10.
Bucle for ...................................................................................................................................231
10.1 Características del bucle for.........................................................................................233 10.2 Bucle for anidado .............................................................................................................233
PROLOGO
Hace poco navegando en internet encontré una frase escrita por Maurice Tardif que me llamó mucho la atención y me hizo reflexionar sobre las problemáticas que aquejan nuestro sistema educativo, dicha frase rezaba así: "Saber algo ya no es suficiente; es preciso también saber enseñar". Parece ser, que quienes nos dedicamos a la docencia, sobre todo en las áreas llamadas técnicas, nos sentimos con un cierto compromiso escribir lo que “tanto nos ha costado aprender”, sin embargo, yo considero que entre nuestras obligaciones, la más importante es la de enseñar y aprender, dos palabras que están íntimamente unidas, pues para enseñar, hay que aprender. El desarrollar un documento como ésta a guía didáctica resulta ser una magnífica herramienta para el aprendizaje de quien lo escribe, pues para escribirlo es necesario, aclarar y actualizar nuestros conocimientos, reflexionar sobre ellos, organizarlos, y por supuesto cuidar su presentación. Y de ésta forma uno se aprende mucho. Esta guía didáctica lo desarrollé después de leer cuatro o cinco libros sobre el tema y consultar algunas páginas de Internet. Los conceptos que se presentan en este documento pueden encontrarse en cualquier libro de programación, con definiciones probablemente mucho más rigurosas que las que yo aquí presento, es por eso que el documento lo he subido de forma libre en la red con la esperanza de que pueda ser útil, y sin ningún ánimo de atribuirme méritos que no me corresponden. Estimado estudiante, espero que este documento sirva como un instrumento de mejora continua en la tarea difícil de un maestro: enseñar y aprender.
EL AUTOR
i
INTRODUCCIÓN
xiste actualmente un consenso general dentro de la comunidad educativa mundial sobre la necesidad de superar el tipo de enseñanza basada en la transmisión de contenidos para apuntarle en su lugar al desarrollo de capacidades. Investigaciones y estudios recientes proponen diversos conjuntos de habilidades que la educación debe fomentar para que los estudiantes puedan tener éxito en el mundo digital y globalizado en el que van a vivir. Este planteamiento exige, sin dilaciones, implementar estrategias que contribuyan efectivamente en el desarrollo de esas habilidades planteadas como fundamentales para la educación en el Siglo XXI. En la mayoría de conjuntos de habilidades propuestas figuran las habilidades de pensamiento de orden superior entre las que se incluye la destreza para solucionar problemas; por esta razón, se deben seleccionar estrategias efectivas para ayudar a que los estudiantes las desarrollen. El reciente surgimiento del interés por aprender a programar, reflejado en sitios Web como “codecademy.com” y “code.org”, se enfoca en oportunidades de carrera o de trabajo. Es fácil comprender el porqué: el número de oportunidades de trabajo para programadores y científicos de la computación aumenta rápidamente y en esos campos, la demanda supera ampliamente la oferta. Aunque es muy común referirse a las personas jóvenes como “nativos digitales” debido a su aparente fluidez con las tecnologías digitales (TIC)1. En realidad muchos jóvenes se sienten muy cómodos enviando mensajes de texto, interactuando con juegos en línea y navegando la Web. ¿Pero los hace esto realmente competentes en las TIC? Si bien 1
Prensky, M. Digital natives, digital immigrants. On the Horizon 9, 5 (Oct. 2001), 1–6.
INTRODUCCIÓN
interactúan con los medios digitales todo el tiempo, pocos son capaces de crear sus propios juegos, animaciones o simulaciones. Es como si pudieran “leer” pero no “escribir”. La competencia digital requiere no solamente tener habilidad para chatear, navegar o interactuar en redes sociales sino también la habilidad de diseñar, crear e inventar con los nuevos medios2. El objetivo fundamental de este documento es enseñar a resolver problemas
mediante
una
computadora.
El
programador
de
computadora es antes que nada una persona que resuelve problemas, por lo que para llegar a ser un programador eficaz se necesita aprender a resolver problemas de un modo riguroso y sistemático. A lo largo de todo el documento nos referiremos a la metodología necesaria para resolver problemas mediante programas, concepto que se denomina metodología de la programación. La habilidad para programar ofrece importantes beneficios. Por ejemplo, expande considerablemente el rango de lo que se puede crear (y las posibilidades de auto expresión) con el computador. También expande el rango de lo que se puede aprender. En particular, programar apoya el “pensamiento computacional”, que ayuda a las personas a aprender estrategias importantes de solución de problemas y de diseño (tales como, modularización y diseño iterativo) que conducen a dominios externos a la programación3; Además, como programar involucra el crear representaciones externas de procesos para solucionar problemas, la programación ofrece oportunidades para reflexionar sobre el propio pensamiento y aún para pensar en el proceso mismo de pensar4.
2
Resnick, M. Sowing the seeds for a more creative society. Learning and Leading with Technology (Dec. 2007), 18–22 3 Wing, J. Computational thinking. Commun. ACM 49, 3 (Mar. 2006), 33–35 4 DiSessa, A. Changing Minds: Computers, Learning, and Literacy. MIT Press, Cambridge, MA, 2000
INTRODUCCIÓN
Por otro lado actualmente hay una tendencia a utilizar java como primer lenguaje directamente con el concepto orientado a objetos, sin profundizar en el desarrollo de las bases lógicas de la programación, esto
puede
resultar
muy
dañino,
porque
vamos
a
generar
programadores buenos para codificar usando lenguajes, pero sin bases lógicas; es decir, programadores que no saben programar. Todo estudiante de sistemas, computación o informática debe aprender a programar orientado a objetos en lenguaje Java; pero para lograrlo, primero debe desarrollar las habilidades mentales lógicas necesarias, la programación es lógica y debe ser independiente de cualquier lenguaje de programación. En ese contexto esta guía de estudio está organizada para que el estudiante inicie en la Unidad de Trabajo 1 desarrollando habilidades mentales lógicas para resolver problemas; una vez adquirido dicha competencia en la Unidad de Trabajo 2 se pretende que el estudiante tenga claro cuáles son las metodologías para resolver problemas computacionales
mediante
herramientas
como
pseudocódigos,
algoritmos, etc. Además se cubre conceptos fundamentales de dos técnicas de programación, conocidas como programación estructurada y modular. En la Unidad de Trabajo 3 se estudia los principios básicos de una técnica de programación denominada Programación Orientada a Objetos o POO según sus siglas y que actualmente se utiliza en la mayoría de proyectos de desarrollo de software. La programación orientada a objetos es una “filosofía”, un modelo de programación, con su teoría y su metodología, que conviene conocer y estudiar antes de nada, razón por la cual en ésta Unidad de Trabajo, se estudiará los fundamentos
de
la
programación
orientada
a
objetos
y
se
comprenderá algunos conceptos importantes como por ejemplo los
INTRODUCCIÓN
modificadores de acceso, creación de objetos, herencia, polimorfismo, etc. Una vez que el estudiante ya ha aprendido la “filosofía” de la programación orientada a objetos, en la unidad de Trabajo 4, en cambio, aprenderá el lenguaje java, un lenguaje orientado a objetos que permite el diseño de aplicaciones orientadas a objetos. En ésta Unidad se revisará las estructuras básicas de java, que son las mismas estudiadas en la metodología de la programación, además se estudia las clases String y Math del API de java. Finalmente en la Unidad de Trabajo 5 se amplía el estudio del lenguaje java y se revisa el uso de estructuras de datos que permiten guardar varios elementos de un mismo tipo en una sola variable, es decir, los vectores. En definitiva el objetivo fundamental de ésta guía de estudio es permitir que el estudiante pueda resolver problemas de distinta índole (matemáticos, administrativos, gráficos, contables etc.) empleando como herramienta la computadora. Estimado estudiante tenga en cuenta que para llegar a ser programador se debe recorrer un largo camino donde cada tema es fundamental para conceptos futuros, es importante no dejar temas sin entender y relacionar. La programación a diferencia de otras materias como podría ser la historia requiere un estudio metódico y ordenado (en historia se puede estudiar la edad media sin tener grandes conocimientos de la edad antigua).
Unidad de Trabajo 1: Lógica Computacional
.
Unidad de Trabajo 1
1. Introducción a lógica computacional o lógica formal siempre ha sido una herramienta fundamental para el progreso de las ciencias computacionales, y sus desarrollos son la base para elaborar soluciones informáticas, tanto en software como en hardware. Es bien conocido que los profesionales que aplican adecuadamente
el
razonamiento
lógico
tienen
mayores
posibilidades de éxito, tanto en lo profesional como en lo personal, ya que analizar, saber buscar posibilidades, demostrar o refutar
afirmaciones
diversas,
le
permite
a
quien
tiene
ese
conocimiento y manejo ser un mejor ser humano y por consiguiente un profesional con mayores y mejores aptitudes y actitudes para vivir en una sociedad como la actual. Diseñar, desarrollar y mantener software son procesos netamente creativos que se sustentan fundamentalmente en la capacidad de razonamiento, en el pensamiento computacional y algorítmico y en la habilidad para abstraer cualquier problema, razón por la cual ésta Unidad de Trabajo está estructurada para ofrecer una base sólida de la lógica en la línea computacional.
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 1: Lógica Computacional
Muchas veces nos enfrentamos a problemas, pero, ¿qué es un problema y cómo se resuelve? Cuando las computadoras transforman los datos iniciales en información útil para el usuario, se dice que resuelven un problema. Las computadoras hacen esto gracias a que codifican los datos de manera lógica y ordenan con base en una secuencia. En ésta Unidad de Trabajo se aprenderá a plantear y a resolver problemas con una estrategia como la que utilizan las computadoras, es decir, expresaremos de forma matemática, las partes que forman un determinado problema a partir de pasos ordenados.
2. Conceptos de Problema a
palabra
problema
tiene
muchas
definiciones, presentaremos dos: Problema es una necesidad inicial que tiene un objetivo o solución a alcanzar, mediante una serie de operaciones, actividades o métodos bien definidos5. Problema es la diferencia existente entre una situación deseada y una situación actual6. En informática la definición es equivalente a las anteriores: Un problema es una situación inicial en la que existe un diferencia entre lo que tenemos y lo que deseamos tener (situación final).
5 6
Definición del diccionario de la real academia de la lengua española. Definición de Wikipedia.org. Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 1: Lógica Computacional
Para conseguir lo que queremos habrá que realizar las acciones necesarias con el fin de modificar la situación. Por ejemplo, un problema podría ser: obtener el promedio de las calificaciones de los estudiantes a partir de las actividades formativas individuales, actividades formativas grupales, tareas y evaluaciones sumativas. La situación final, obtener el promedio, es diferente de la inicial (calificaciones) e implica realizar varias operaciones. Actividad en clases Describa tres ejemplos de problema de acuerdo a la definición de este concepto en informática.
Hoy por hoy existe una confusión muy generalizada entre los significados de problema y ejercicio, confusión que se debe al manejo coloquial del término ''problema'' en el contexto de la didáctica de todas las ciencias, por esta razón la distinción entre ejercicio y problema es crucial en informática porque involucran actividades diferentes. Un ejercicio es una tarea de aplicación simple y directa de un conocimiento, procedimiento o técnica ya disponible o sobre la que el alumno / resolutor se encuentra ya iniciado. Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 1: Lógica Computacional
Por otra parte el problema es una tarea o situación que no se resuelve aplicando directamente una regla aprendida; hay que entender el enunciado, organizar la información, seleccionar los conocimientos útiles, probar, aplicarlos adecuadamente y evaluar el proceso.
3. Resolución de problemas n la vida el hombre se enfrenta con innumerables problemas: económicos, sociales, morales, políticos, religiosos, familiares, informáticos etc., y nosotros debemos aprender a resolverlos inteligentemente. Cada persona necesita saber cómo resolver cada uno de estos problemas inteligentemente, para lo cual necesitamos comprender cada problema. La manera como se resuelven los problemas pueden variar según cada persona o grupo de trabajo, por lo que los pasos son diferentes en cada situación, sin embargo lo que debemos tener claro es que para resolver un problema debemos tener una estrategia, es decir, un conjunto de pasos que nos llevan a una solución. El matemático húngaro George Pólya7, para involucrar a sus estudiantes en la solución de problemas, generalizó una estrategia en los siguientes cuatro pasos: 1.) Entender el problema. Es importante determinar cuál es la solución a la que se desea llegar. Identificar los elementos con que se
7
George Pólya (13 de diciembre de 1887 – 7 de septiembre de 1985, Pólya György en húngaro) fue un matemático que nació en Budapest, Hungría y murió en Palo Alto, EUA. Trabajó en una gran variedad de temas matemáticos, incluidas las series, la teoría de números, geometría, álgebra, análisis matemático, la combinatoria y la probabilidad. Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 1: Lógica Computacional
cuenta para buscar posibles soluciones y si estos datos son suficientes para lograrlo. En ésta etapa es conveniente identificar: OBJETIVO: ¿Qué fin se persigue?, es decir, especificar claramente los resultados que se desean obtener. Debemos conocer con exactitud lo que deseamos resolver. Si esta pregunta no la podemos contestar con exactitud entonces debemos volver al planteamiento del problema y preguntar a un experto del tema que nos ayude a entenderlo. ELEMENTOS BÁSICOS: Identificar la información disponible, es decir, el estado inicial del problema. Aquí es necesario enlistar todos los elementos que tenemos y que se necesitan para solucionar el problema planteado. CONDICIONANTE(S): particulares
se
deben
¿Qué cumplir
especificaciones y
bajo
qué
condiciones? Es importante aclarar que un problema no siempre tiene un condicionante. 2.) Configurar un plan. Deben hacerse explícitos los pasos que se seguirán para resolver el problema y recordar que en ocasiones hay más de una posibilidad para solucionarlo, por lo que es necesario pensar y plantear diferentes alternativas que permitan resolver el problema. Al final se debe elegir una alternativa valorando ventajas y desventajas. 3.) Ejecutar el plan. Poner en práctica lo que se ha ideado para encontrar la solución. 4.) Mirar hacia atrás (Verificar la solución). Observar la situación después de haber realizado el plan paso a paso y evaluar si se logró lo que se deseaba.
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 1: Lógica Computacional Entender el problema
Verificar la solución
Configurar un plan
Ejecutar el plan
Todo este proceso es recursivo, es decir, una vez que ha verificado la solución y no se ha logrado lo que se deseaba se debe regresar a la primera etapa de entender el problema y continuar hasta conseguir solucionar el problema. Ejemplo: Afuera está lloviendo y como su techo está en mal estado se introduce agua en la habitación.
RESOLUCIÓN 1. Entender el problema ¿Cuál es su problema? El problema es que la televisión no se ve bien. Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 1: Lógica Computacional
El problema es que el sillón no es muy cómodo. El problema es que las gotas hacen ruido. El problema es que se está metiendo agua en la casa. Un análisis profundo de la situación (y un poco de sentido común) podemos determinar que en realidad el problema es que se está metiendo agua en la casa: nuestro personaje tiene una gotera pero no quiere esa gotera. OBJETIVO: Evitar que se introduzca el agua de la lluvia en la habitación. ELEMENTOS BÁSICOS: Todos las objetos disponibles en su casa. CONDICIONANTE: Se debe resolver el problema mientras llueve. 2. Configurar un plan Tenemos cuatro alternativas de soluciones: Esperar con resignación a que pase la lluvia (mientras se moja el piso). Colocar un paraguas en el techo. Colocar una cubeta bajo la gotera. Reparar el techo. Cualquiera de estas soluciones es posible llevarlas a la práctica; sin embargo, resulta casi obvio que las dos primeras en realidad no ayudan mucho. La cuarta solución es la mejor, pero considerando que está lloviendo, la solución inmediata es colocar la cubeta (y cuando no llueva reparar el techo). 3. Ejecutar el plan La ejecución del plan dependerá de la solución que se haya elegido. En el caso de la opción 3 es buscar una cubeta y ponerla debajo de la gotera. Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 1: Lógica Computacional
4. Verificar el plan Para verificar si la estrategia dio resultado habrá que observar si el piso ha dejado de mojarse. Ejemplo Para comprender mejor el método analizaremos un segundo ejemplo: imagina que organizas una fiesta a la que asistirán algunos amigos y familiares, pero no todos saben cómo llegar a tu casa. Piensas notificarles por medio de una invitación impresa, ¿qué información debes incluir para que lleguen a la casa? RESOLUCIÓN 1. Entender el problema: OBJETIVO: Asegurarse que todos tengan la dirección del domicilio. ELEMENTOS BÁSICOS: Todos las objetos disponibles en su casa. CONDICIONANTE: Debe ser mediante una notificación impresa. 2. Configurar un plan: Puede haber muchas soluciones posibles. Por ejemplo, escribir un texto que indique que les esperarás en un lugar conocido por todos a una hora determinada y de ahí trasladarse a tu casa o diseñar un croquis donde incluyas la dirección y el teléfono. 3. Ejecutar el plan: Si elegiste la opción del croquis, tendrás que dibujarlo utilizando las herramientas adecuadas (puede ser con Google Maps por ejemplo). 4. Verificar el plan: Para verificar si tu estrategia dio solución al problema tendrás que esperar el día de la fiesta y averiguar si los invitados no tuvieron alguna dificultad para llegar. La verificación es un paso con el cual se puede mejorar la solución elegida para una segunda aplicación.
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 1: Lógica Computacional
Actividad en clases Desarrolla los cuatro ejercicios planteados 1.
Une cada fase del método de George Pólya con el paso que
le corresponde. Entender el problema
Se efectúan las operaciones.
Configurar el plan
OBJETIVO: Calcular el volumen de la Tierra. ELEMENTOS BÁSICOS: Radio terrestre. CONDICIONANTE: No hay en este problema
Ejecutar el plan
Se ha obtenido el volumen de nuestro planeta. Si sabemos que la Tierra es una esfera, entonces es necesario
Verificar la solución
saber la fórmula para calcular el volumen de una. Con esa información se sustituirán los datos en la fórmula.
Escribe los pasos mencionados en este sección para la resolución de cada problema: 2. Eliminar el dolor de cabeza Entender el problema.
Configurar el plan.
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 1: Lógica Computacional
Ejecutar el plan.
Verificar la solución.
3. Una persona tiene un terreno cuadrado que mide 20 m de lado. Desea cercarlo con una malla que se vende en rollos de 7m. ¿Cuántos rollos de malla necesita y cuánto sobra? Entender el problema.
Configurar el plan.
Ejecutar el plan.
Verificar la solución.
4. Un matemático se encontró un día con un amigo y éste le preguntó: - ¿Cuántas
hijas tienes? - Tres -contestó el matemático. - ¿Qué edades tienen? - preguntó el amigo. - El producto de sus edades es 36 y la suma de las mismas es el número que tiene el portal de ahí enfrente. El amigo del matemático se volvió y, después de ver el número del portal de enfrente, dijo: - Para saber las edades de tus hijas, me falta otro dato. - ¡Perdona, es cierto! -dijo el matemático-. La mayor toca el piano. ¿Qué edades tenían las hijas del matemático?
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 1: Lógica Computacional
Entender el problema.
Configurar el plan.
Ejecutar el plan.
Verificar la solución.
Es conveniente tener cuidado con las posibles trampas o contaminaciones que pueda encerrar el enunciado, tales como: Algunos meses tienen 31 días, ¿cuántos meses tienen 28 días?
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 1: Lógica Computacional
Actividad Formativa No. 1 (Resolución de problemas ) Desarrolle en un procesador de textos los 4 problemas propuestos, especificando cada paso para resolución de problemas según el método de George Pólya. Se calificará: Carátula, pasos para resolución de cada problema, soluciones acordes a lo que se pide y calidad del documento final. 1. 2. 3. 4.
Si hay 3 manzanas y tomas 2, ¿cuantas tienes? Un tren sale de Ibarra hacia Salinas a las 17H30 horas con una velocidad media de 80 km/h. Una hora más tarde sale otro tren de Salinas hacia Ibarra con una velocidad media de 95 km/h. Cuando ambos trenes se cruzan, ¿cuál está más cerca de Salinas? Suponiendo que se dispone de una cantidad ilimitada de agua, de un recipiente plástico de 5 litros y de otro de 4 litros de capacidad, indicar cómo se puede colocar exactamente 2 litros de agua en el recipiente de 5 litros. Se dice que, un turista visitando algunos pueblos alejados de la sierra de Ecuador encuentra dos pueblos llamados La Pampa y Pallasca (esto es sólo como ejemplo), y en las afueras se encontró con 3 campesinos, al primero de ellos le preguntó ¿de qué pueblo eres?, y el campesino le respondió. en un idioma que el turista no entendió, para salir de las dudas se dirigió al segundo campesino y le preguntó: - ¿De qué pueblo me dijo que es? - Ha dicho que es Pallasquino (de Pallasca), -respondió el segundo campesino-, en ese instante el tercer campesino que hasta el momento había permanecido en silencio, interpeló al segundo diciéndole: . ¡Tú mientes! Ante ésta incertidumbre, el turista realizó algunas investigaciones y sacó la información que los Pallasquinos siempre mienten y los Pampinos siempre dicen la verdad, esta información fue suficiente para averiguar de qué pueblo eran los dos últimos campesinos ó en el mejor de los casos los 3 campesinos. Por tanto que queda plateado la pregunta: ¿Cuál fue el razonamiento del turista?, ¿a qué conclusión llegó? Suba el archivo al aula virtual de PLE en el portal web de la U.E.T.S. en la fecha establecida por el docente
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 1: Lógica Computacional
4. Métodos de resolución de problemas egún George Pólya para resolver un problema, una vez que se ha determinado la situación a la que se desea llegar se procede a configurar el plan. Existen algunos posibles procedimientos: 4.1 Encontrar un patrón de comportamiento Con este método se describe algo que ocurre en repetidas ocasiones o que varía siempre de una misma manera. Ejemplo Si tengo tres pares de zapatos: unos celestes, otros verdes y otros grises y cada día me pongo un par de distinto color hasta haber agotado las tres posibilidades y luego vuelvo a empezar, si sabes qué ayer usé los zapatos verdes y hoy traigo los zapatos grises, ¿cuáles me pondré mañana?. Resolución 1. Entender el problema. OBJETIVO: Saber qué color de zapatos tengo que ponerme mañana. ELEMENTOS BÁSICOS: Tengo tres pares de zapatos: unos celestes, otros verdes y otros grises. Ayer me puse los verdes y hoy tengo puesto los grises. CONDICIONANTE: Cada día tengo que ponerme un par de distinto color. 2. Configurar el plan. Se aplicará la estrategia de Encontrar un patrón de comportamiento. Cada día me pongo un par de distinto color hasta haber agotado las tres posibilidades y luego vuelvo a empezar. Celestes
Verdes
Grises
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Celestes
Verdes
Grises
?
Unidad de Trabajo 1: Lógica Computacional
3. Ejecutar el plan. Al aplicar el plan puedo darme que por comportamiento de repetición me tocaría ponerme los zapatos celestes.
Celestes
Verdes
Grises
Celestes
Verdes
Grises
Celestes
4. Verificar el plan. Se puede comprobar que se ha cumplido con la condición de que cada día es un color diferente de zapatos. Algunas veces, los patrones de comportamiento se relacionan con los datos
numéricos.
En
estos
casos
los
patrones
representan
comportamientos en los que se suma, multiplica, divide o resta una misma cantidad. Ejemplo Renato compró varios objetos, y al ordenarlos según sus precios, observó que formaban una sucesión. ¿Cuál es el precio del celular?
$ 13
$ 28.50
$ 44
$ 59.50
$ 75
$?
1. Entender el problema. OBJETIVO: Saber el precio del celular. ELEMENTOS BÁSICOS: Tengo los precios de cinco objetos: $13, $28.50, $44, $59.50 y $75. CONDICIONANTE: El precio debe cumplir con la sucesión.
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 1: Lógica Computacional
2. Configurar el plan. Se aplicará la estrategia de Encontrar un patrón de comportamiento, pues se observa que los precios de los artículos forman una sucesión creciente. 3. Ejecutar el plan. Se observa que la regla de formación es sumar 15.5 al número anterior: $13
$28.50 +15.5
$44 +15.5
$59.50 +15.5
$75 +15.5
$90,5 +15.5
4. Verificar el plan. Se puede comprobar que se ha cumplido con la sucesión y se ha obtenido que el precio del celular es de $90.50. Actividad en clases ¿Podrías determinar en ambos casos qué elemento sigue?
1, 3, 5, … Argumente su respuesta
…………… ….
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 1: Lógica Computacional
Cuando un problema presenta sucesiones alfabéticas o alfanuméricas se puede aplicar el mismo método. Ejemplo A Ricardo le falta teclear las últimas teclas de la contraseña de su red social. Si está formada por 14 símbolos (entre letras y números), ¿cuáles son las tres últimas teclas que le faltan teclear?
1. Entender el problema. OBJETIVO: Saber las teclas que faltan teclear para la contraseña. ELEMENTOS BÁSICOS: La contraseña tiene 14 símbolos y ya se ha escrito: T2 S3 R5 Q8 P12. CONDICIONANTE: La contraseña debe cumplir con la sucesión con los tres símbolos que faltan. 2. Configurar el plan. Se aplicará la estrategia de Encontrar un patrón de comportamiento, pues se observa que la contraseña forman una sucesión decreciente para las letras y una sucesión creciente para los números. Para saber la sucesión que se está formando con las letras se asignará cada letra el número que le corresponde según su ubicación en el abecedario. Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 1: Lógica Computacional
A=1 B=2 C=3 D=4 E=5 F=6 G=7 H=8 I=9
J = 10 K = 11 L = 12 M = 13 N = 14 Ñ = 15 O = 16 P = 17 Q = 18
R = 19 S = 20 T = 21 U = 22 V = 23 W = 24 X = 25 Y = 26 Z = 27
3. Ejecutar el plan. Se observa que la regla de formación es sumar a los números y restar 1 a las letras: -1 T
2
-1 S
+1
3
-1 R
5
+2
-1 Q
+3
8
-1 P
12
+4
O
17
+5
4. Verificar el plan. Se puede comprobar que se ha cumplido con la sucesión y se ha obtenido los símbolos que faltaban para completar la clave: O17. La clave completa es: T2 S3 R5 Q8 P12 O17 4.2 Método de prueba y error Esta estrategia, aunque válida, no siempre es la más efectiva; se recurre a ella antes de pensar en otra más compleja o cuando no se ha encontrado otra opción. Este método consiste en probar con algunos valores y después evaluar si se ha resuelto el problema. Si no se ha llegado al resultado deseado se prueba con otros valores y así sucesivamente hasta encontrar la solución. Ejemplo Si te piden escribir signos de suma y resta entre los dígitos 1 2 3 4 5 6 7 para obtener como resultado 77, las condiciones son que no Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 1: Lógica Computacional
puedes alterar el orden de los números y puedes agrupar varios números o antes o después de un signo, ¿cómo resolverías? Resolución 1. Entender el problema. OBJETIVO: Obtener el 77 combinando los dígitos dados. ELEMENTOS BÁSICOS: Dígitos 1 2 3 4 5 6 7. CONDICIONANTE: La condición es que no se puede alterar el orden de los números. 2. Configurar el plan. Se aplicará la estrategia de Prueba y error combinando los dígitos y las operaciones hasta conseguir el resultado deseado. 3. Ejecutar el plan. 1
+
2
+
3
+
4
+
5
12
+
34
+
56
-
7
=
95
…
…
…
…
…
…
…
…
…
123
-
45
+
6
-
7
-
67
=
-52
Después de probar varias opciones, se ha encontrado que la solución es 123 – 45 + 6 – 7. Para encontrar la solución se usa el ensayo y la lógica. Si hubiésemos agrupado los primeros cuatro dígitos, quedaba un número muy grande que al restarle los siguientes jamás podríamos acercarnos al 77. 4. Verificar el plan. Se puede comprobar que se ha cumplido con la condición de que el resultado sea 77 sin cambiar el orden.
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 1: Lógica Computacional
Actividad en clases Resuelva que operaciones se necesitarían para obtener los siguientes resultados (Argumente cada respuesta):
2
2
2 = 6
3
3
3 = 6
4
4
4 = 6
5
5
5 = 6
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 1: Lógica Computacional
4.3 Aplicación de una fórmula. Existen problemas en los cuales se proporcionan datos y relaciones entre ellos; en este caso, para encontrar la solución se debe hallar un valor en particular. Los datos de los problemas en los que se aplica una fórmula suelen ser numéricos y podemos encontrar expresiones matemáticas en las que se incluya como una incógnita, el valor que se debe hallar. Ejemplo Imagina que en el verano irás de viaje al Puyo en el oriente ecuatoriano, pero no conoces el clima, por tanto no sabes qué tipo de vestimenta empacar. Además no hay internet para averiguar cómo es el clima en el Puyo. Resolución 1. Entender el problema. No sé la temperatura que hay en el oriente ecuatoriano en el verano. OBJETIVO: Empacar vestimenta acorde al clima del Puyo. ELEMENTOS BÁSICOS: Voy en el verano al Puyo (Oriente ecuatoriano). CONDICIONANTE: No tengo internet. 2. Configurar el plan. Buscando información se pudo saber que durante el verano, en el Puyo la temperatura mínima es 59º F y la máxima 104º F. Como estamos acostumbrados a usar unidades en grados Celsius esta información no responde a la interrogante. Para resolver el problema se debes buscar la fórmula para encontrar la equivalencia de grados Fahrenheit a Celsius y aplicar la estrategia de Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 1: Lógica Computacional
Aplicación de una fórmula a los datos que se tiene (la fórmula es C = (F-32) x 5/9). 3. Aplicar el plan. Mínima
Máxima
C = (F-32) x 5/9
C = (F-32) x 5/9
C = (59-32) x 5/9
C = (104-32) x 5/9
C = 27 x 5/9
C = 72 x 5/9
C = 15º C
C = 40º C
Se obtiene 15º C y 40º C, lo que te permitirá saber que ropa es la que se debe empacar para el viaje. 4. Verificar el plan. Una vez que se realice el viaje se podrá comprobar si la ropa que se eligió de acuerdo a la temperatura obtenida fue o no la correcta. Actividad en clases Un recipiente lleno de pegamento tiene una masa de 35Kg y de 19 Kg cuando sólo está la mitad. Determina la masa del recipiente.
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 1: Lógica Computacional
4.4 Comenzar de atrás hacia adelante Conocido también como encadenamiento hacia atrás o estrategia del cangrejo, se usa cuando se conoce la manera en que la situación acaba y se requiere encontrar un dato intermedio o inicial Ejemplo Cristina y sus amigas se reúnen por las tardes para memorizar las capitales de los países de América; tienen una semana para realizar la tarea. El quinto día retuvieron tres capitales más que el cuarto. El cuarto día aprendieron una menos que el tercero. El tercero memorizaron cuatro más que el segundo. El segundo memorizaron el doble que el primero, en el cuál aprendieron solo dos porque se pusieron a platicar. Si comenzaron el
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 1: Lógica Computacional
lunes, ¿cuántas capitales deberán memorizar el fin de semana para estar listas para el examen del lunes siguiente? Resolución 1. Entender el problema. Se necesita saber cuántas capitales deben memorizar el fin de semana considerando las que ya se aprendieron entre semana. OBJETIVO: Memorizar las capitales de América. ELEMENTOS BÁSICOS: Las capitales ya memorizadas entre semana. CONDICIONANTE: Una semana para memorizar la tarea. 2. Configurar el plan. Para responder a la pregunta debemos saber el total de capitales que ya fueron memorizadas y cuantos países hay en el continente americano. Se utilizará la estrategia de encadenamiento hacia atrás, primero hagamos un conteo de las que ya estudiaron partiendo del primer día, es decir, el último dato. 3. Aplicar el plan. En el primero se aprendieron dos, en el segundo el doble, es decir, cuatro, en el tercero ocho, en el cuarto siete y en el quinto diez. Cuando realizamos la suma se obtiene un total de 34. Como en América hay 38 naciones, sólo deben memorizar cuatro más. 4. Verificar el plan. Si se memorizan 4 más las 34 que ya sabían, se completa las 38 de América. Ejemplo Lorena tenía cierta cantidad de dinero, su abuelo le regaló $10 más, prestó $15 a su prima y regaló la mitad de lo que le quedaba a su hermana. Si al final se quedó con $8, ¿qué cantidad de dinero tenía Lorena al principio? Resolución Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 1: Lógica Computacional
1. Entender el problema. Se necesita saber con qué cantidad de dinero inició Lorena. OBJETIVO: Calcular la cantidad de dinero inicial de Lorena. ELEMENTOS BÁSICOS: El abuelo le regaló $10 más, prestó $15 a su prima y regaló la mitad de lo que le quedaba a su hermana; al final se quedó con $8. CONDICIONANTE: No hay para éste problema planteado. 2. Configurar el plan. Se utilizará la estrategia del cangrejo, partiendo de los $8 con los que quedó Lorena, es decir, el último dato. 3. Aplicar el plan. Se va a representar en un esquema los datos y vamos ubicar la cantidad final ($8). ÷2
- 15
+ 10
8
Se halla la cantidad inicial empezando por la cantidad final y realizando el proceso inverso. 21
÷2
- 15
+ 10 31
- 10
Lorena tenía al principio $12.
16
+ 15
8 x2
4. Verificar el plan. Se ha llegado a la cantidad de dinero inicial, pues su aplicamos las respectivas fórmulas, se obtiene 8. Actividad en clases En la aprobación de un proyecto de ley presentado ante una comisión de la Asamblea Nacional del Ecuador, hubo 7 votos a favor de representantes del Partido Nuevo Progresista más que del Partido Popular y el número de votos a favor del Partido Popular fue el doble de los votos a favor de los representantes del Partido Independentista. Hubo 2 representantes del partido Independentista que votaron a favor de la aprobación del proyecto. ¿Con cuántos votos a favor se aprobó el proyecto?
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 1: Lógica Computacional
4.5 Elaboración de una tabla. Este método resulta útil cuando debes organizar muchos datos o hacer cálculos recurrentes. En una tabla pueden ordenarse datos de varios tipos, no sólo numéricos. Ejemplo Se desea hallar un número entre 2570 y 2580 en el que al menos dos dígitos sean impares, todos los elementos sean diferentes y sea divisible entre nueve. RESOLUCIÓN 1. Entender el problema. OBJETIVO: Encontrar un número que cumpla con las condiciones indicadas. ELEMENTOS BÁSICOS: Número inicial 2570 y número final 2580.
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 1: Lógica Computacional
CONDICIONANTE: Al menos dos dígitos deben ser impares, todos los elementos deben ser diferentes y debe ser divisible entre nueve. 2. Configurar el plan. Para encontrar la solución utilizaremos la estrategia elaboración de tabla que tenga todos los dígitos posibles y con las condiciones solicitadas como cabecera de las columnas y analizar si la cumplen. 3. Aplicar el plan. Número 2571 2572 2573 2574 2575 2576 2577 2578 2579
Dos dígitos pares SI SI SI SI SI SI SI SI SI
Dígitos distintos SI NO SI SI NO SI NO SI SI
Divisible entre nueve NO NO NO SI NO NO NO NO NO
Después de observar la tabla, tenemos que el número que cumple con las tres condiciones solicitadas es el 2579. 4. Verificar el plan. El número 2574 tienes dos pares, el 2 y el 4, todos son distintos y es divisible entre nueve (2574/9=286). Actividad en clases Con el propósito de obtener fondos para la actividad de la Alerta Mundial contra el SIDA, doña Cora espera vender 27 cajas de estampas conmemorativas de la actividad. Tiene cajas que contienen estampas doradas y cajas con estampas plateadas. Cada caja de estampas doradas contiene ocho estampas. Las cajas con estampas plateadas contienen nueve estampas. Si se adquirieron cajas con un total de 230 estampas, ¿cuántas cajas de cada tipo se tienen?
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 1: Lógica Computacional
4.6 Planteamiento gráfico de la solución. En ocasiones, es posible que tanto el problema
como
su
solución
se
representen mediante un dibujo, un esquema
o
un
gráfico.
Veamos
la
situación siguiente. Consiste en cruzar a todas las personas de una parte del río a la otra parte, y así llegar a la casa (este es un juego que podrás encontrarlo en internet).
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 1: Lógica Computacional
Las reglas son las siguientes: 1) En la barca sólo pueden ir una o dos personas como máximo (tanto en la ida como en la vuelta). 2) La barca sólo puede ser manejada por el padre, la madre o el policía. La barca no puede navegar sola. 3) La madre no puede quedarse sola con sus dos hijos sin la presencia del padre. 4) El padre no puede quedarse sólo con sus dos hijas sin la presencia de la madre. 5) La delincuente no puede quedarse sola con ningún miembro de la familia sin que el policía esté presente. Si tuvieses que resolver en papel, una alternativa sería ir dibujando los personajes que van en cada viaje. En nuestro caso usaremos la aplicación y dibujaremos la solución cuando la encontremos. Actividad en clases 1.
Encuentra la solución en tu computador al juego planteado, al final
dibuja paso a paso la solución que te permitió cruzar el rio a todas las personas
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 1: Lógica Computacional
2. El Buscaminas es un juego aparentemente sencillo de memoria y lógica, además de ser uno de los juegos de Windows más populares. Tienes que encontrar los recuadros vacíos y evitar las minas del nivel Principientes. Al final comenta que estrategias de las estudiadas te permitieron ganar el juego.
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 1: Lógica Computacional
Actividad Formativa No. 2 (Estrategias de resolución de problemas ) Desarrolle en un procesador de textos los problemas propuestos, especificando cada paso para resolución de problemas según el método de George Pólya. Se calificará: Carátula, pasos para resolución de cada problema, soluciones acordes a lo que se pide y calidad del documento final. 1.
¿Cuál es la figura que le sigue a estas secuencias?
2.
¿Cuál es el número que le sigue? 1 2 4 7 11 16 ?? 40 35 30 24 18 13 ?? 21 24 32 36 44 49 57 ?? 40 42 47 44 46 51 48 ?? Resuelva que operaciones se necesitarían para obtener los siguientes resultados: 6 6 6 = 6 7 7 7 = 6 8 8 8 = 6
3.
4.
5. 6.
7.
8.
Un barril de vino tiene una masa de 120Kg y una caja de peras 36Kg. ¿Cuál es la masa de una bandeja de higos y un saco de zanahorias si el saco de zanahorias y la caja de peras pesan juntas lo mismo que el barril de vino y la bandeja de higos?. Por otra parte, dos bandejas de higos tienen la misma masa que una caja de peras. La edad de A es el triple de la de B y dentro de 20 años será el doble, Hallar la edad actual de A. Juan García fue a recolectar naranjas a 3 huertas. Los dueños de estas le dieron permiso, siempre y cuando al terminar de cortarlas en las 3 huertas, les diera a cada dueño la mitad de las naranjas recolectadas, más la mitad de una naranja en cada una de las huertas. Al final, a Juan García le quedo únicamente 1 naranja. Determina el total de naranjas que recolecto Juan García en las 3 huertas para que al final le quedara 1. Elena, María y Susana estudian 3 idiomas (francés, italiano y alemán), y entre las tres tienen 16 libros de consulta. De los cuatro libros de Elena, la mitad son de francés y uno es de italiano. María tiene la misma cantidad de libros de Elena, pero solo tiene la mitad de los libros de francés y la misma cantidad de libros de italiano que Elena. Susana tiene tres libros de alemán, pero en cambio tiene tantos libros de italiano como libros de alemán tiene María. ¿Cuántos libros de francés tiene Susana y cuántos libros de cada idioma tienen entre todas? Consiste en que tres misioneros y tres caníbales deben cruzar el río solo con una canoa que puede llevar a dos personas. No puede haber nunca más caníbales de misioneros. 5.
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 1: Lógica Computacional
5. La lógica a definición de lógica como ciencia formal en la cultura occidental es el resultado de un largo desarrollo histórico que empieza con las obras de algunos filósofos griegos y llega hasta la actualidad. En el siglo cuarto antes de nuestra era, Aristóteles (384-322 a.C.) fue el primero en tratar
de
formalizar
el
razonamiento
humano, razón por la cual se le puede considerar el fundador de la denominada lógica clásica. De hecho, sus propuestas en este campo, junto a las aportaciones de los estoicos8, han constituido prácticamente toda la lógica hasta el siglo XIX. Según la definición de Aristóteles "La lógica es la ciencia de la demostración, porque se preocupa de dar reglas para alcanzar la verdad de la evidencia inmediata, que conocemos por medio de la demostración". La lógica es la ciencia formal que estudia los principios de la demostración e inferencia válida. Así como el objeto de estudio tradicional de la química es la materia, y el de la biología la vida, el de la lógica es la inferencia.
8
Estoicos: Del griego stoá, pórtico. Se conoce con este nombre a los representantes del estoicismo, escuela filosófica fundada hacia el 300 a. C. por Zenón de Citio, que impartió sus doctrinas en un pórtico ateniense pintado por Polignoto (stoá poikíle), por lo que también se le ha llamado «escuela del Pórtico» o «la Stoa». Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 1: Lógica Computacional
La inferencia es el proceso por el cual se derivan conclusiones a partir de premisas9. Históricamente las áreas de aplicación más importantes de la lógica han sido la filosofía, las matemáticas y la informática.
6. La Lógica como fundamento de la informática n las décadas de 1950 y 1960 debido a la aparición de los computadores, la lógica comienza una nueva época. Surge en ese entonces la necesidad de determinar si es posible especificar formalmente programas y definir sistemas de demostración automática de teoremas. Estos problemas son los principales objetos de estudio de la lógica computacional. Algunas de las áreas de aplicación de la lógica en informática son:
Especificación y verificación de programas. Demostración automática de teoremas. Programación lógica. Inteligencia artificial y sistemas basados en el conocimiento, etc.
Desde este punto de vista, las ciencias computacionales buscan que los programas no sean una secuencia de instrucciones que le señalen al computador, paso a paso, la solución de un problema, sino que sean una especificación de lo que se desea resolver dejando para que el computador determine las acciones necesarias para ello. En este
9
Premisa: Se denomina premisa a cada una de las proposiciones de un razonamiento que dan lugar a la consecuencia o conclusión de dicho razonamiento. Las premisas son expresiones lingüísticas que afirman o niegan algo y pueden ser verdaderas o falsas. Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 1: Lógica Computacional
sentido la lógica puede verse como un lenguaje de especificación mediante el cual podemos plantear los problemas de forma rigurosa.
7. La lógica de programación uchas personas confunden la Programación con
la
Lógica
de
Programación,
es
importante aclarar que la primera involucra el “conocimiento de técnicas e instrucciones de un determinado Lenguaje a través de los cuales se hace sencillo lograr que la Computadora obtenga resultados mucho más rápidos que una persona”. La segunda involucra, de una manera técnica y organizada, los “conceptos que permiten diseñar en términos generales, la solución a problemas que pueden llegar a ser implementados a través de una computadora”. Toda persona que pretenda dar solución a problemas a través de una computadora se enfrenta a dos grandes interrogantes: ¿El QUÉ?: Acciones a realizar para poder resolver el problema. Esta tarea forma parte del trabajo de mesa previo a toda actividad de programación. ¿El CÓMO?: Instrucciones de las que se va a valer para escribir el código que realice las acciones determinadas en el QUÉ, las cuales están determinadas por el lenguaje de programación seleccionado. La lógica de programación nos ayudará a resolver la primera interrogante.
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 1: Lógica Computacional
8. La lógica aplicada para resolver problemas. n la solución de problemas, el lenguaje es un factor muy importante, ya que con él se plantea o describe con claridad la situación que consideramos un problema y el resultado al que queremos llegar. La principal aportación de la lógica es establecer un conjunto de reglas que permiten determinar cuándo un argumento10 es correcto. Un enunciado declarativo que puede ser evaluado como falso o verdadero recibe el nombre de preposición. Las preposiciones pueden ser simples o compuestas, las compuestas están formadas de dos o más proposiciones simples. Por ejemplo analicemos la siguiente preposición compuesta: s: Si este año ahorro lo suficiente y me dan vacaciones, entonces en diciembre iré de viaje o cambiaré de auto. La proposición s cumple con las condiciones necesarias para ser proposición: es una oración declarativa y puede evaluarse como verdadera o falsa. Ahora podemos dividir la preposición s en cuatro proposiciones simples: p: Este año ahorraré lo suficiente. q: Me darán vacaciones. r: En diciembre iré de viaje. t: En diciembre cambiaré de auto. 10
Argumento: Es una serie de razonamientos que se avocan a probar algo y está formado por un conjunto de enunciados declarativos relacionados entre sí. Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 1: Lógica Computacional
Observe que puede cambiar la conjugación de los verbos al formar una proposición compuesta y que hay palabras como si, y, entonces y o que unen las proposiciones simples. En Lógica, las palabras que se usan para relacionar preposiciones simples y formar compuestas, se las conoce como conectivos lógicos. De manera simbólica, se puede escribir la preposición s de la siguiente forma: s: Si p y q, entonces r o t Otro conectivo lógico es la negación, que rechaza la proposición (simple o compuesta) a la que está aplicada. Por ejemplo, si tenemos la proposición p: El oxígeno es transportado por la sangre a todo el cuerpo, la negación de p se escribe ~p, se lee no p y significa “El oxígeno no es transportado por la sangre a todo el cuerpo”. Actividad en clases
1. Anota si las preposiciones son falsas (F) o verdaderas (V). Los perros maúllan o ladran
Dos docenas son 36.
5=2+3
La nieve es fría y húmeda.
El cuadrado de 4 es un número par
El agua puede contaminarse.
Dos veces diez es menor que doce
3x2=6
y
3+2=7
2. Anota la negación de las preposiciones verdaderas. Preposición p: El átomo es la estructura básica de la materia. q: El átomo está formado por otras partículas.
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Negación
Unidad de Trabajo 1: Lógica Computacional r: Los átomos tienen núcleo. s: En el núcleo hay protones.
3. Redacta cuatro preposiciones compuestas a partir de las preposiciones simples. Preposiciones simples q: Este año conoceré Galápagos.
t: Jambelí es una isla de Machala.
r: Galápagos tiene un cielo hermoso.
u: Machala está en El Oro.
s: Tengo dos semanas de vacaciones.
v: Voy a ir a El Oro
Preposiciones compuestas
9. Valores de verdad ara representar los nexos entre las preposiciones, existen unos símbolos que se utilizan en lugar de palabras. En el cuadro
siguiente
se
muestran
los
nombres
representaciones simbólicas de los conectivos lógicos. Conectivo Lógico
Nombre
Símbolo
NO Y
Negación
~
Conjunción
O
Disyunción
SI … ENTONCES
Implicación
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
^ V
y
las
Unidad de Trabajo 1: Lógica Computacional
Las preposiciones simples o compuestas, se caracterizan por ser falsas o verdaderas. Cuando se ha tomado una decisión sobre la veracidad o falsedad de una preposición, se dice que se ha encontrado su valor de verdad. Existen reglas para evaluar si una preposición compuesta es falsa o verdadera. Estas reglas dependen del valor de verdad de las preposiciones simples. Supongamos que tenemos dos preposiciones simples p y q, las posibles combinaciones entre las dos preposiciones serían: p V F F V
q V F V F
A lo anterior se le conoce como tabla de verdad; pueden agregarse columnas en las que se evaluará el valor de verdad de las preposiciones construidas a partir de p y q mediante conectivos lógicos. p
q
~p
~q
p^q
p˅q
pq
V
V
F
F
V
V
V
F
F
V
V
F
F
V
F
V
V
F
F
V
F
V
F
F
V
F
V
V
Se han utilizado letras p y q, en lugar de ejemplos concretos para resaltar que las reglas establecidas por la Lógica no dependen de un enunciado, sino solo de su valor de verdad.
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 1: Lógica Computacional
Actividad en clases 1. q
r
s
V
V
V
V
V
F
V
F
F
F
F
F
F
V
V
F
F
V
V
F
V
F
V
F
Completa la siguiente tabla de verdad.
~q
~r
~s
q^r
q˅ (~s)
s^(~q)
(s^~r)^q
(q^r)s
10. Algoritmos na herramienta que se puede utilizar en la configuración de un plan, segundo paso del método de George Pólya, para resolver problemas son los Algoritmos. El algoritmo es un conjunto de pasos secuenciales y ordenados que permiten lograr un objetivo. Que los pasos sean secuenciales significa que deben ser ejecutados uno después de otro y que sean ordenados quiere decir que deben llevar un orden casi obligatorio. El algoritmo es el que permite lograr el objetivo propuesto.
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 1: Lógica Computacional
En la naturaleza hay muchos procesos que puedes considerar como Algoritmos ya que tienen procedimientos y reglas. Incluso, muchas veces no somos conscientes de ellos. Por ejemplo, el proceso digestivo es un concepto de algoritmo con el que convivimos a diario sin que nos haga falta una definición precisa de este proceso. Existen dos tipos de algoritmos, los Algoritmos informales y los Algoritmos computacionales. 10.1 Algoritmos Informales Son todos aquellos algoritmos que no son realizables a través de una computadora o al menos no fácilmente, es decir, aquellos Algoritmos donde el ejecutor real es el ser humano, como el algoritmo para dar un beso, el algoritmo para freír unos huevos o el algoritmo para conseguir un libro. Ejemplo Desarrollar un algoritmo que nos permita adquirir un libro HARRY POTTER Y LA PIEDRA FILOSOFAL de J.K. Rowling. Resolución 1. Entender el problema OBJETIVO: Adquirir el libro HARRY POTTER Y LA PIEDRA FILOSOFAL. ELEMENTOS BÁSICOS (DATOS): Nombre del libro HARRY POTTER Y LA PIEDRA FILOSOFAL, autor J.K. Rowling. CONDICIONANTES: Adquirir un solo libro. 2. Configuración de un plan: Se utilizará un algoritmo para indicar los pasos necesarios ALGORITMO Adquisicion_Libro Inicio 1. Saber cuál es el libro que se quiere adquirir Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 1: Lógica Computacional
2. Desplazarnos hacia una librería 3. Preguntar si tienen el libro que necesitamos 4. Si lo tienen adquirirlo y parar allí (dentro de este algoritmo) Si no lo tienen ir al paso 2 Fin 3. Ejecutar el plan. Seguir los pasos indicados en el algoritmo. 4. Verificar el plan. Si se lograría comprar el libro la solución propuesta cumple con lo que se pedía.
La tecnología ha avanzado tanto que, muchos algoritmos que en el pasado no eran implementables a través de una computadora, en la actualidad lo son y de manera mucho más sencilla como es el caso del algoritmo para conseguir un libro que anteriormente se pensaba en librerías y ahora se piensa en un concepto más globalizado, Internet, con más posibilidad de conseguirlo y con menos trabajo. Actividad en clases Resolver los problemas indicando solamente los dos primeros pasos del método de George Pólya; en el primer paso detalle el Objetivo(s) o fin(es), los elemento(s) básico(s) y el Condicionante(s); en el segundo paso utilice un Algoritmo. 1. Cruzar la avenida Don Bosco una sola vez. 2. Desarrollar un algoritmo que permita hacerse amig@ de alguien en una red social, sin acercarse personalmente antes de hacerse amig@. 3. Suponiendo que se dispone de una cantidad ilimitada de agua, de un recipiente plástico de 5 litros y de otro de 4 litros de capacidad (los recipientes no tienen medida), indicar cómo se puede colocar exactamente 2 litros de agua en el recipiente de 5 litros. 4. En el juego Ligth-Bot ¿cuáles son los pasos para que el marciano llegue hasta los cuadros azules y prenda la luz? (Avance por lo menos hasta el nivel 10). Por ejemplo en el primer nivel los pasos para llegar son:
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 1: Lógica Computacional
Actividad Formativa No. 3 (Algoritmos Informales ) Resolver los 5 problemas indicando los 2 primeros pasos del método de Pólya. En el primer paso detalle el Objetivo(s) o fin(es), los elemento(s) básico(s) y el Condicionante(s); en el segundo paso utilice un Algoritmo.
1. Hacer un avión con una hoja de papel. 2. Amarrarse los cordones de los dos zapatos 3. Se dispone de una balanza de brazos y de seis objetos de madera (Rojo: R, Verde: V, Amarillo: A, Negro: N, Fucsia: F, y Café: C); cinco de ellos tienen el mismo peso, mientras que el otro es más pesado. Indicar con un algoritmo cómo se puede encontrarse este último efectuando 2 pesadas como máximo. 4. Suponiendo que se dispone de una cantidad ilimitada de agua, de un recipiente plástico de 4 litros y de otro de 3 litros de capacidad (los recipientes no tienen medida), indicar cómo se puede colocar exactamente 2 litros de agua en el recipiente de 4 litros. 5. Un lechero tiene un cántaro de 8 litros lleno de leche, y dos más de 5 y de 3 litros. Un cliente le pide exactamente 4 litros. ¿Cómo puede calcular los cuatro litros y dárselos en el cántaro de 5 litros? Suba el archivo al aula virtual de PLE en el portal web de la U.E.T.S. en la fecha 6. establecida por el docente
10.2 Algoritmos Computacionales Son todos aquellos Algoritmos que deben ser preferiblemente implementados en una computadora para aprovechar su velocidad de procesamiento. Un ejemplo de estos puede ser el algoritmo que genere los primeros 100 números primos, recordando que un número primo es aquel que solo puede ser Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 1: Lógica Computacional
dividido exactamente entre la unidad y entre sí mismo, que si bien podrían ser calculados utilizando un papel y un lápiz, la utilización de una computadora en unión con el algoritmo adecuado ofrece un resultado mucho más rápido y absolutamente confiable (de hecho depende de que el algoritmo igualmente sea muy confiable).
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 2: Metodología de la programación
.
Unidad de Trabajo 2
1. Introducción l desarrollo de un programa que resuelva un problema podría tornarse una tarea compleja, ya que es necesario tener en cuenta de manera simultánea muchos elementos. Por lo tanto, es
indispensable
usar
una
metodología
de
programación. Una metodología de programación es un conjunto o sistema de métodos, principios y reglas que permiten enfrentar de manera sistemática el desarrollo de un programa que resuelve un problema algorítmico. Estas metodologías generalmente se estructuran como una secuencia de pasos que parten de la definición del problema y culminan con un programa que lo resuelve. 1.1 Programa Es una secuencia ordenada de instrucciones que le indican al computador
qué
tiene
que
hacer
con
los
proporcionamos para obtener el resultado deseado.
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
datos
que
les
Unidad de Trabajo 2: Metodología de la programación
1.2 Programación Conocimiento de técnicas e instrucciones de un determinado lenguaje de programación a través de los cuales se nos hace sencillo lograr que el computador obtenga unos resultados mucho más rápido que nosotros. 1.3 Lógica de Programación Conceptos que nos permiten diseñar en términos generales la solución a problemas que pueden llegar a ser implementados a través de un computador.
2. Fases en la Resolución de Problemas con un computador l proceso de resolución de un problema
con una
computadora conduce a la escritura de un programa y a su ejecución en la misma. Aunque el proceso de diseñar programas es esencialmente un proceso creativo, se puede considerar una serie de fases o pasos, los cuales están basados en el método de George Pólya. En la siguiente tabla podemos ver las fases para elaborar un programa y su relación con el método de Pólya Fases para elaborar un programa
Fases del método de George Pólya
1. Analizar el problema
Entender el problema
2. Diseñar un algoritmo Computacional 3. Utilizar una técnica para representar el Algoritmo
Configurar el plan
computacional 4. Traducir el algoritmo computacional a un lenguaje de programación 5. Verificar y depurar el programa 6. Documentación y mantenimiento
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Ejecutar el plan Mirar hacia atrás
Unidad de Trabajo 2: Metodología de la programación
2.1 Análisis del problema. Corresponde a la fase de Entender el problema según el método de George Pólya y es la primera fase para la resolución de un problema con computadora. Esta fase requiere una definición clara del problema, donde
se
debe contemplar exactamente lo que debe hacer el programa y el resultado o solución deseada. Dado que se busca
una
solución
por
computadora,
se precisan
especificaciones detalladas de los siguientes elementos. OBJETIVO: ¿Cuál es la salida deseada? Debemos conocer con exactitud lo que deseamos que haga el futuro programa en la computadora. Si esta pregunta no la podemos contestar con exactitud entonces debemos volver al planteamiento del problema y preguntar a un experto del tema que nos ayude a entenderlo. ELEMENTOS BÁSICOS: ¿Qué datos de entrada se requieren? Aquí es necesario enlistar todos los datos que se ocupan para solucionar el problema planteado. CONDICIONANTES: Qué especificaciones particulares debe cumplir el programa y bajo qué condiciones. 2.2 Diseñar un algoritmo Computacional Corresponde a la segunda fase del método de George Pólya, configurar el plan, la técnica utilizada son los algoritmos. Un algoritmo es un método para resolver un problema mediante una serie de pasos precisos, definidos y finitos. PRECISOS: Se debe indicar el orden de realización de cada paso.
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 2: Metodología de la programación
DEFINIDOS: Si se sigue un algoritmo dos veces se obtiene igual resultado. FINITOS: Debe tener un número determinado de pasos. En un algoritmo computacional y desde el punto de vista de la informática, la información11 debe tener el carácter de útil; es así que un dato12 sólo proporcionará información útil cuando sea recogido (ENTRADA), procesado (PROCESAMIENTO) y comunicado (SALIDA).
Ejemplo Calcular cuánto debo pagar a una empleada al fin de mes, si la misma gana por horas trabajadas RESOLUCIÓN 1. Análisis del problema OBJETIVO (SALIDA): Calcular sueldo a pagar de la empleada. ELEMENTOS BÁSICOS (DATOS): Total horas trabajadas y valor por hora. CONDICIONANTES: Calcular de un solo mes.
11
Información: Es un conjunto ordenado de datos que nos da alguna noticia Dato: Conjunto de caracteres con algún significado, pueden ser numéricos, alfabéticos, alfanuméricos o gráficos. 12
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 2: Metodología de la programación
2. Diseñar un algoritmo computacional ALGORITMO Sueldo_Empleada Inicio 1. Ingresar dato del total de horas trabajadas desde el teclado. ENTRADA 2. Ingresar dato del valor por hora desde el teclado. 3. Calcular sueldo = total de horas trabajadas * valor por hora.
PROCESAMIENTO
4. Mostrar en pantalla el sueldo de la empleada.
SALIDA
Fin
Actividad en clases Resolver los dos problemas indicando solamente los dos primeros pasos para resolver problemas con un computador. En el primer paso detalle el Objetivo(s) o fin(es), los elemento(s) básico(s) y el Condicionante(s); en el segundo paso utilice un Algoritmo Computacional e indique la entrada, procesamiento y salida. 1. Calcular el área de una cancha de fútbol. 2. Desarrolle un algoritmo computacional que permita calcular la nota del primer parcial de PLE.
2.3 Utilizar una técnica para representar el Algoritmo Las herramientas de programación para representar algoritmos son: Pseudocódigo. Diagramas de flujo (Flowchart). Diagrama de Nassi-Schneiderman (N-S). 2.4 Traducir el algoritmo computacional a un lenguaje de programación La traducción del algoritmo es la codificación del programa en un lenguaje que el computador sea capaz de entender y ejecutar. Para realizar la conversión del algoritmo Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 2: Metodología de la programación
en programa se deben sustituir las palabras reservadas en español por sus homónimos en inglés, y las operaciones/instrucciones indicadas en lenguaje natural expresarlas en el lenguaje de programación correspondiente. Por ejemplo C++, C#, java, .NET, etc. 2.5 Verificar y depurar el programa La verificación es el proceso de ejecutar el programa con una amplia variedad de datos de entrada, llamados datos de test o prueba, que determinarán si el programa tiene errores. Para realizar la verificación se debe desarrollar una amplia gama de datos de test, valores normales de entrada, valores extremos de entrada que comprueben los límites del programa y valores de entrada que comprueben aspectos especiales del programa. La depuración es el proceso de encontrar los errores del programa y corregir o eliminar dichos errores. 2.6 Documentación y mantenimiento La documentación de un programa consta de las descripciones de los pasos a dar en el proceso de resolución un programa. La importancia de la documentación debe ser destacada por su decisiva influencia en el producto final. La documentación es muy importante cuando se desea corregir posibles errores futuros o cambiar el programa. Tales cambios se denominan mantenimiento del programa. Después de cada cambio la documentación debe ser actualizada para facilitar cambios posteriores.
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 2: Metodología de la programación
3. Practicando algoritmos computacionales con Scratch
S
cratch es una herramienta que nos permite comenzar a utilizar un lenguaje de programación de una manera simple pero eficiente, creando
historias interactivas, juegos y animaciones. Esta herramienta utiliza la metáfora de “piezas encajables”
para
animar
objetos
que
se
encuentran en la pantalla, con un uso muy sencillo e intuitivo. Scratch fue desarrollado por un grupo de investigadores del Lifelong MIT (Instituto Tecnológico de Massachussets), una de las Universidades más importantes del mundo, bajo la dirección del Dr. Mitchel Resnick. Los elementos disponibles no son únicamente dibujos, sino también sonidos. Podemos utilizar los que vienen por defecto, añadir sonidos nuevos desde la web del proyecto, o incorporar nuestras propias grabaciones, bien a través de la grabadora incorporada en el entorno, bien a través de cualquier otra herramienta externa. Prácticamente todo se lleva a cabo arrastrando y soltando elementos con el ratón, y modificando con el teclado únicamente valores numéricos, textos, etc.
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 2: Metodología de la programación
3.1 Interfaz de SCRATCH
Como se puede ver en la imagen, la interfaz de Scratch es intuitiva y muy gráfica. La idea básica en la que se basa Scratch es en la existencia de una serie de personajes con diferentes disfraces, que van a realizar una serie de acciones sobre un escenario. ESCENARIO
PERSONAJES
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 2: Metodología de la programación
El escenario lo tenemos en la parte derecha de la pantalla, justo encima de los personajes que formarán parte de nuestra animación. Podemos incorporar tantos personajes como necesitemos. Cada personaje podrá tener tantos disfraces como queramos. Sólo tendremos que hacer click sobre el botón Importar y seleccionar aquella imagen que queramos haga de disfraz para nuestro personaje. También podemos dibujar nuestro propio disfraz utilizando el botón Pintar.
Un disfraz es la forma como se ve en un determinado momento un personaje, es decir, diferentes imágenes o facetas de un mismo personaje. Otra cosa que podemos hacer sobre los personajes es asignarles sonidos que podrán reproducir durante la animación. Cuando se crea cualquier personaje, por defecto se le asignan un par de sonidos (pop y meow), pero nosotros mismos podremos grabar nuevos sonidos utilizando el botón Record o bien importar otros archivos de audio. Estos archivos de audio deben estar en formato WAV. Nada de MP3 ni otros formatos (al menos en la versión 1.4).
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 2: Metodología de la programación
Por último, aunque quizás sea lo más importante, los personajes deberán realizar acciones durante la animación. Cada personaje que creemos en nuestra animación tendrá sus propias acciones en la sección Programas.
Como se ve en la imagen, las acciones del personaje formarán algo parecido a un puzzle de bloques que se ejecutarán sucesivamente. Las acciones que podemos realizar sobre los personajes de la animación están divididas en las siguientes categorías: Movimiento, qué se utilizarán para conseguir el movimiento de los personajes. Apariencia, dónde podremos cambiar el disfraz a nuestro personaje, entre otras acciones. Sonidos, todo lo referente a los sonidos asignados a los personajes. Lápiz, con Scratch podemos incluso pintar sobre el escenario. Control, qué se utilizarán para tener el control de ejecución de las acciones. Sensores, nos permitirá interaccionar con el usuario, por ejemplo con el ratón. Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 2: Metodología de la programación
Números, cualquier operación con números se encuentra en esta categoría. Variables, podremos almacenar información en variables que serán utilizadas posteriormente. Esta categoría se utilizará en proyectos más adelante. Ejemplo Al iniciar el programa el gato de SCRATCH debe moverse y maullar de la siguiente manera: Maúlla
Maúlla Camina 200 pasos
Regresa
Maúlla Camina 100 pasos
Regresa
RESOLUCIÓN 1. Análisis del problema OBJETIVO (SALIDA): El personaje debe caminar hacia adelante y luego regresar. ELEMENTOS BÁSICOS (DATOS): Cantidad de pasos que tiene que recorrer el gato y que acciones va a realizar cada vez. CONDICIONANTES: El gato va y regresa una sola vez. 2. Diseñar un algoritmo: ALGORITMO Ida_Vuelta Inicio 1. El gato maúlla. 2. Camina 200 pasos. 3. El gato maúlla. 4. Camina 100 pasos. 5. El gato maúlla. 6. El gato da la vuelta para regresar. 7. Camina 100 pasos. 8. El gato maúlla. 9. Camina 200 pasos. Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 2: Metodología de la programación
10. El gato maúlla. 11. Regresa a la posición inicial. Fin 3. Ejecutar el plan. Pasamos los pasos indicados en el algoritmo.
4. Verificar el plan. Presionar la bandera verde
y verificar si el movimiento
está acorde a los requerimientos. Actividad en clases El gato de SCRATCH deberá moverse por los cuatro bordes del escenario tal como se muestra en las indicaciones. Desarrolle en el cuaderno de actividades los dos primeros pasos de George Pólya para llegar a la solución del problema, Luego ejecute y pruebe la solución en SCRATCH. 4
3
El gato llega, espera 2 segundos dice MIAU y espera; apunta hacia abajo, espera 1 segundo y luego..... 5
1
El gato llega mira adelante, y dice Por fin llegué
El gato espera 1 segundo y luego.....
Camina hasta el final del borde superior
Camina hasta el final del borde derecho
Camina hasta el final del borde izquierdo
Camina hasta el final del borde inferior
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
El gato llega, espera 2 segundos, dice MIAU y espera; apunta hacia la derecha, espera 1 segundo y luego.....
2 El gato llega, espera 2 segundos dice MIAU y espera; apunta hacia arriba, espera 1 segundo y luego.....
Unidad de Trabajo 2: Metodología de la programación
Actividad Formativa No. 4 (Rebote de pelota en SCRATCH ) Crear en Scratch la historia que se presenta a continuación. Una pelota que rebote por tres ocasiones en el escenario, cada que llegue el piso del escenario debe tocar sonido del tambor por 0.2 segundos. Desarrolle en Word los dos primeros pasos de George Pólya para llegar a la solución del problema, luego ejecute y pruebe la solución en SCRATCH.
PUM!!
1.
PUM!!
PUM!!
Suba los dos archivos al aula virtual de PLE en el portal web de la U.E.T.S. en la fecha establecida por el docente
3.2 Paleta de bloques y las acciones más comunes para los personajes. La paleta de bloques, situada en la zona izquierda de la pantalla alberga, categorizados por colores y funcionalidad, los bloques de programación arrastrables al área de Programas (Scripts). Algunos bloques tienen campos de texto editables, de forma redondeada, que permiten modificar sus valores escribiendo en su interior o arrojar sobre ellos bloques con esta misma forma. Otros tienen menús desplegables que facilitan la selección de opciones pulsando sobre la punta de flecha que oculta el menú. MOVIMIENTO Mueve el Objeto hacia adelante o hacia atrás. Apunta el Objeto en la dirección especificada.
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 2: Metodología de la programación Mueve el Objeto hacia una posición específica de X, Y en el escenario (Recomendado para iniciar la animación).
APARIENCIA Modifica la apariencia del Objeto cambiando de disfraz. Despliega una nube de diálogo del Objeto durante un lapso de tiempo determinado. Despliega una nube de diálogo del Objeto. Despliega una nube de pensamiento del Objeto durante un determinado lapso de tiempo. Despliega una nube de pensamiento del Objeto.
SONIDO Comienza la reproducción del sonido seleccionado del menú desplegable, e inmediatamente pasa al siguiente bloque aunque el sonido se esté ejecutando aún. Reproduce un sonido y espera hasta que el sonido termine, antes de continuar con el bloque siguiente.
CONTROL Ejecuta una a una todas las instrucciones que tiene debajo al hacer clic en la bandera verde. Espera un número determinado de segundos y continúa luego con el bloque siguiente. Detiene el programa (que se está ejecutando dentro de un Objeto) Detiene todos los programas de todos los Objetos.
3.3 Repeticiones y uso del lápiz en SCRATCH En ciertas historias como la propuesta en la Actividad Formativa 4 se presenta acciones que se repiten las mismas instrucciones por algunas ocasiones. Las instrucciones repetitivas permiten ejecutar una o varias
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 2: Metodología de la programación
instrucciones, un número determinado de veces o, indefinidamente, mientras se cumpla una condición. Esta estructura repetitiva ayuda a ahorrar tiempo y espacio en los programas de Scratch. En Scratch, la estructura repetitiva se construye con las instrucciones repetir (n veces); repetir hasta que <una condición sea verdadera>; por siempre; por siempre si <una condición es verdadera>:
Ejemplo Utilizando la herramienta del lápiz de SCRATCH dibujar un cuadrado de lado 100 en el escenario. RESOLUCIÓN 1. Análisis del problema OBJETIVO (SALIDA): Dibujar un cuadrado. ELEMENTOS BÁSICOS (DATOS): El lado del cuadrado es 100. CONDICIONANTES: Dibujar un solo cuadrado. 2. Diseñar un algoritmo: ALGORITMO cuadrado Inicio 1. Borrar la pantalla. 2. Usar lápiz de SCRATCH. 3. Dibujar el primer lado. 4. Girar 90º a la derecha. 5. Dibujar el segundo lado. 6. Girar 90º a la derecha. 7. Dibujar el tercer lado.
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 2: Metodología de la programación
8. Girar 90º a la derecha. 9. Dibujar el cuarto lado. Fin 3. Ejecutar el plan. Pasamos los pasos indicados en el algoritmo.
En la solución planteada, claramente se puede observar que las instrucciones de mover 100 pasos y girar 90 grados se repite cuatro veces, en éste caso para ahorrar espacio en el programa es mejor usar la instrucción repetir 4 veces:
4. Verificar el plan. Presionar la bandera verde
y verificar si el movimiento
está acorde a los requerimientos. Actividad en clases Utilizando instrucciones de repetición, desarrolle el problema planteado en la Actividad Formativa 4, una pelota que rebota por tres ocasiones.
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 2: Metodología de la programación
3.4 Animaciones en SCRATCH En las historias que hemos desarrollado hasta el momento los personajes se han movido sin efectos de animación, lo cual hace que nuestras animaciones se vean estáticas. Para que las historias tengan efecto de animación es necesario que se haga una sucesión de cambio de disfraces; por ejemplo para que el gato de SCRATCH dé la sensación que camina con movimiento de los pies, debemos cambiar sucesivamente los dos disfraces siguientes:
Las historias pueden incluso dar una sensación de mayor realismo si se tiene un mayor número de disfraces como en el siguiente ejemplo:
Ejemplo El gato de SCRATCH debe caminar por el escenario, dando tres vueltas de ida y regreso. Debe dar la impresión de mover los pies. RESOLUCIÓN 1. Análisis del problema OBJETIVO (SALIDA): Mover el gato de SCRATCH por el escenario. ELEMENTOS BÁSICOS (DATOS): Tres vueltas. CONDICIONANTES: Debe dar la impresión de mover los pies. 2. Diseñar un algoritmo: ALGORITMO gato_caminando Inicio 1. Posicionar al personaje.
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 2: Metodología de la programación
2. El personaje debe mirar a la derecha. 3. Repetir tres veces. a. Repetir 30 veces. i. Andar 10 pasos. ii. Cambiar de disfraz. b. Fin del Repetir c. El personaje debe mirar a la izquierda d. Repetir 30 veces. i. Andar 10 pasos. ii. Cambiar de disfraz. e. Fin del Repetir f. El personaje debe mirar a la derecha. 4. Fin del repetir. Fin
3. Ejecutar el plan. Pasamos los pasos indicados en el algoritmo a SCRATCH.
Verificar el plan. Presionar la bandera verde
y verificar si el movimiento está
acorde a los requerimientos. Actividad en clases En la historia del ejemplo (Gato de SCRATCH que va y viene tres veces), adicione un nuevo personaje. Por ejemplo, un murciélago que inicie en la parte derecha del escenario y que vuele ida y vuelva, por 4 ocasiones.
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 2: Metodología de la programación
3.5 El control condicional El control condicional se utiliza para indicarle al computador que establezca si una determinada condición es verdadera o falsa y, a partir del resultado, ejecutar el bloque de instrucciones correspondiente. La forma más común está compuesta por una preposición que se evalúa y dos bloques de instrucciones que se ejecutan, uno cuando la condición es verdadera (selección simple y doble) y otro cuando ésta es falsa (únicamente en la selección doble). Un bloque de instrucciones puede contener una o varias instrucciones que se ejecutan una detrás de otra. Selección simple La estructura condicional de selección simple ejecuta un bloque de instrucciones cuando la proposición (condición) es verdadera; si esta es falsa, no hace nada. Ejemplo: Si se ha presionado la barra espaciadora, entonces camina 10 pasos; si no se ha presionado la barra espaciadora, no hace nada.
Selección doble La estructura condicional de selección doble ejecuta un Bloque de instrucciones A cuando la preposición (condición) es verdadera y un Bloque de instrucciones B cuando esta es falsa. Ejemplo: Si se ha presionado la barra espaciadora, entonces Condición camina 10 pasos; si no se ha Bloque de instrucciones A presionado la barra espaciadora, muestra durante 2 segundos en
pantalla el letrero “No se ha presionó la barra espaciadora, no pienso moverme”.
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Bloque de instrucciones B
Unidad de Trabajo 2: Metodología de la programación
Ejemplo El gato de SCRATCH debe caminar por el escenario cuando se presione las teclas de cursor (flecha arriba, abajo, derecha e izquierda). Este proceso se terminará cuando se presione la barra espaciadora con un maullido del gato. RESOLUCIÓN 1. Análisis del problema OBJETIVO (SALIDA): Gato moviéndose por el escenario. ELEMENTOS BÁSICOS (DATOS): Cantidad de pasos que se mueve cada que se presiona las teclas de movimiento y posición inicial del gato. CONDICIONANTES: El gato debe moverse según las teclas de movimiento presionadas y cuando se presiona la barra espaciadora deja de moverse. 2. Diseñar un algoritmo: ALGORITMO mover_gato Inicio 1. Posicionar al personaje. 2. El personaje debe mirar a la derecha. 3. Repetir hasta que se presione la barra espaciadora. a. Si se ha presionado la tecla flecha hacia la derecha. i. Mirar a la derecha ii. Andar 10 pasos. iii. Cambiar de disfraz. b. Fin del Si c. Si se ha presionado la tecla flecha hacia la izquierda. i. Mirar a la izquierda ii. Andar 10 pasos. iii. Cambiar de disfraz. d. Fin del Si e. Si se ha presionado la tecla flecha hacia arriba. i. Mirar a arriba ii. Andar 10 pasos. Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 2: Metodología de la programación
f. Fin del Si g. Si se ha presionado la tecla flecha hacia arriba. i. Mirar a arriba ii. Andar 10 pasos. h. Fin del Si 4. Fin del repetir. 5. El gato debe maullar. Fin 3. Ejecutar el plan. Pasamos los pasos indicados en el algoritmo a SCRATCH.
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 2: Metodología de la programación
4. Verificar el plan. Presionar la bandera verde
y verificar si el movimiento
está acorde a los requerimientos. Actividad Formativa No. 5 (Animaciones en SCRATCH ) Crear en Scratch la historia que se presenta a continuación: El perro debe caminar (cambie de disfraz) cuando se presionen las teclas de cursor (solo para adelante y atrás). Cuando se presione la tecla P, el perro cambia de disfraz y piensa “¿A qué hora me dará de comer?” y la chica piensa “Algo tenía que hacer... pero que era?”. Al presionar la barra espaciadora, la chica se para y dice “YA SÉ, tenía que chatear con mi novio” y espera unos segundos, en seguida el perro piensa “Mejor me voy, se olvidó de mi” espera unos segundos aúlla y termina el programa.
El perro se mueve con las teclas de cursor
Al presionar la Barra espaciadora. Al presionar la tecla P.
2.
Utiliza tu creatividad y adiciona más acciones o personajes a la historia. Suba el archivo al aula virtual de PLE en el portal web de la U.E.T.S. en la fecha establecida por el docente
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 2: Metodología de la programación
4. Las variables y sus características. as variables en la programación siguen una lógica similar a las variables utilizadas en otros ámbitos como las matemáticas y son una de las características fundamentales de los lenguajes de programación, permiten acceder a la memoria para almacenar y recuperar los datos con los que nuestros programas van a trabajar. Las variables se utilizan para almacenar valores temporalmente durante la ejecución del programa, es decir, una variable es un campo de memoria al que se le puede cambiar su contenido cuantas veces sea necesario. Se trata de un mecanismo de lo más sencillo, sólo tenemos que dar un nombre a nuestras variables, a partir de ese momento el compilador13 traducirá de forma automática ese nombre en un acceso a memoria. Gracias a las variables es posible crear "programas genéricos", es decir, programas que funcionan siempre igual independientemente de los valores concretos utilizados. Si no existieran variables, un programa que suma dos números podría escribirse como: resultado = 3 + 1
13
Un compilador es un programa informático que traduce un programa escrito en un lenguaje de programación a otro lenguaje de programación, generando un programa equivalente que la máquina será capaz de interpretar. Usualmente el segundo lenguaje es lenguaje de máquina, pero también puede ser un código intermedio (bytecode), o simplemente texto. Este proceso de traducción se conoce como compilación. Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 2: Metodología de la programación
El programa anterior es tan poco útil que sólo sirve para el caso en el que el primer número de la suma sea el 3 y el segundo número sea el 1. En cualquier otro caso, el programa obtiene un resultado incorrecto, sin embargo, el programa se puede rehacer de la siguiente manera utilizando variables para almacenar y referirse a cada número: numero_1 = 3 numero_2 = 1 resultado = numero_1 + numero_2 Los elementos numero_1 y numero_2 son variables que almacenan los valores que utiliza el programa. El resultado se calcula siempre en función del valor almacenado por las variables, por lo que este programa funciona correctamente para cualquier par de números indicado. Si se modifica el valor de las variables numero_1 y numero_2, el programa sigue funcionando correctamente. Una característica muy importante de las variables es que son cantidades cuyo valor no es el mismo en todos los pasos de un algoritmo. Ejemplos num_1 = 50 Se carga el valor de 50 a la variable num_1 num_2 = 10 Se carga el valor de 10 a la variable num_2 C = num_1 * num_2 En C se carga el valor de 50*10, o sea, 500 num_1 = C – 25 En num_1 se carga el valor de 475 num_2= num_1 + 5 En num_2 se carga el valor de 480 Observe que el signo igual del ejemplo es un operador de asignación, no es un operador de igualdad. Existe una regla sencilla que todo
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 2: Metodología de la programación
programador nunca debe olvidar: “Todo lo que está en la parte derecha del igual se carga en la parte izquierda del igual”. 4.1 Las variables en los algoritmos computacionales Para que un algoritmo computacional resulte más fácil traducir a una herramienta de programación como los pseudocódigos debe tener un formato específico con ciertas reglas y elementos como variables y constantes, entradas y salidas, y comparaciones y selecciones. Por otro lado, si decimos que un algoritmo computacional admite datos, es lógico pensar que dicha información debe guardarse en alguna parte del algoritmo, obviamente el lugar del que hablamos son las variables. En el algoritmo para calcular el sueldo de la empleada las variables serían:
4.2 Nombres de variables. El nombre se utiliza para identificar a la variable en el algoritmo o programa, debe ser corto y fácil de recordar, además su nombre debe estar relacionado con la función que va a desempeñar dentro del programa.
Por ejemplo si se necesita una variable
para realizar un conteo se le podría colocar el nombre de contador. A continuación tenemos algunas recomendaciones para dar nombres a las Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
De ahora en adelante te llamarás suma
Unidad de Trabajo 2: Metodología de la programación
variables. El nombre de una variable debe empezar siempre con una letra. Escribir los nombres de variables en minúsculas si es de una sola palabra. Por ejemplo: suma. No utilizar caracteres especiales a excepción del guion bajo. Por ejemplo: notas_Primero_E. Si los nombres de las variables están compuestos por más de una palabra, escribe cada palabra como nombre propio desde la segunda palabra. Por ejemplo: totalVentasMayo14. Es recomendable utilizar únicamente las tres primeras letras de cada palabra para evitar nombres muy largos (Si resulta más entendible poner 4 letras para ciertas palabras). Por ejemplo: totVentMayEuro. Aplicando las reglas para nombres de variables el algoritmo de nuestro ejemplo quedaría:
4.3 Tipos de datos de las variables El tipo de dato hace referencia a la clase de información que podemos almacenar en una variable.
Por ejemplo si vamos a trabajar con
14
Notación camelCase: Se escribe la primera palabra del nombre en minúscula, y si el nombre consiste en varias, las siguientes se empiezan por mayúsculas: Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 2: Metodología de la programación
valores decimales es necesario que nuestras variables nos permitan almacenar valores decimales. Para poder utilizar variables en el desarrollo de un algoritmo o un programa de computador se debe primero decir qué tipo de dato van a almacenar. Los tipos de datos que la mayoría de lenguajes de programación tienen son: Tipo Numérico: Son números con los que se realizan operaciones aritméticas. Numérico Entero: Un dato de tipo entero es un número que no tiene punto decimal, por lo tanto en sus operaciones jamás va a generar decimales. Por ejemplo 25, -96 y 0. Numérico Real o en coma flotante: Un dato de tipo Real es un número que tiene punto decimal, por lo tanto en sus operaciones puede generar decimales. Por ejemplo 12.3, -78.56 o 45.0. Tipo caracter: Pueden ser letras, símbolos o números con los que NO se efectúan operaciones aritméticas. Por ejemplo ‘A’, ‘4’, ´@´, ´z´, etc. Tipo cadena de texto: Son un conjunto de caracteres que por lo general forman palabras u oraciones. Por ejemplo “TÉCNICO SALESIANO” es una cadena. El contenido de una cadena se acostumbra acotarlo o encerrarlo entre comillas dobles, así tenemos las cadenas: “2do C”, “5%”, “U.E.T.S.”, etc. Tipo booleano (lógico): Pueden guardar el valor de VERDADERO o FALSO (True o False).
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 2: Metodología de la programación
Actividad en clases Especifique para cada variable que tipo de dato es el correcto:
A es para guardar el nombre de un equipo de fútbol………………………………………………………. B es para guardar el peso en kilos de una persona. …………………………………………………………. C es para guardar los goles de un equipo. ………………………………………………………………………. D es para guardar calificación cuantitativa de lecciones. ………………………………………………….. E es para guardar la temperatura de una ciudad. ………………………………………………………….…. F es para saber si un estudiante pasa o no pasa el año. ……………………………………………………
5. Operadores y expresiones aritméticas os operadores son signos que nos permiten expresar relaciones entre variables y/o constantes, de éstas relaciones normalmente se obtiene un resultado. En programación tenemos dos: los operadores aritméticos y los operadores de comparación.
Los Operadores aritméticos, son operadores binarios (requieren siempre dos operandos) que realizan las operaciones aritméticas habituales. Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 2: MetodologĂa de la programaciĂłn
Los operadores aritmĂŠticos en combinaciĂłn con variables, constantes, signos de agrupaciĂłn y funciones especiales del propio lenguaje forman una expresiĂłn aritmĂŠtica. b ď&#x20AC;d c var ď&#x20AC;˝ b aď&#x20AC;Ť d cd ď&#x20AC;Ť b a ď&#x20AC; *d c aď&#x20AC;Ť
Algo que debemos tener en cuenta cuando vamos a escribir una expresiĂłn es que el computador solo entiende las expresiones escritas en una sola lĂnea. De tal manera que si queremos escribir la ecuaciĂłn. đ?&#x2018;&#x17D;+đ?&#x2018;? đ?&#x2018;Łđ?&#x2018;&#x17D;đ?&#x2018;&#x; = đ?&#x2018;?+đ?&#x2018;&#x2018; DeberĂamos â&#x20AC;&#x153;linealizarâ&#x20AC;? la fĂłrmula: var = a + b / c + d Pero la soluciĂłn propuesta a ÂżcuĂĄl de las siguientes ecuaciones reales corresponderĂa?
La soluciĂłn es usar la facilidad para agrupamiento de los parĂŠntesis y podemos entonces expresar computacionalmente la Unidad Educativa TĂŠcnico Salesiano Primero de Bachillerato â&#x20AC;&#x201C; Aplicaciones InformĂĄticas Wilson Cedillo P.
Unidad de Trabajo 2: MetodologĂa de la programaciĂłn
fĂłrmula planteada asĂ: đ?&#x2018;Łđ?&#x2018;&#x17D;đ?&#x2018;&#x; =
đ?&#x2018;&#x17D;+đ?&#x2018;? đ?&#x2018;?+đ?&#x2018;&#x2018;
Linealizando ď&#x192; var = (a + b) / (c + d)
A travĂŠs de los parĂŠntesis se altera la jerarquĂa de operadores para llegar a las fĂłrmulas que queremos que el computador realice. El computador busca los parĂŠntesis mĂĄs internos, sobre ellos aplica la tabla de jerarquĂa de operadores. 5.1 JerarquĂa de Operadores Las expresiones aritmĂŠticas sin parĂŠntesis y que tienen dos o mĂĄs operandos requieren de unas reglas matemĂĄticas que permitan determinar el orden de las operaciones, se denominan reglas de prioridad o precedencia y son: ď &#x160; Las operaciones que estĂĄn encerradas entre parĂŠntesis se evalĂşan primero. Si existen diferentes parĂŠntesis anidados (interiores unos a otros), las expresiones mĂĄs internas se evalĂşan primero. ď &#x160; Las operaciones aritmĂŠticas dentro de una expresiĂłn suelen seguir el siguiente orden de prioridad o jerarquĂa de operadores: primero multiplicaciones y divisiones, segundo calcula residuos y por Ăşltimo sumas y restas ď &#x160; En caso de coincidir varios operadores de igual prioridad en una expresiĂłn o subexpresiĂłn encerrada entre parĂŠntesis, el orden de prioridad en este caso es de izquierda a derecha.
Unidad Educativa TĂŠcnico Salesiano Primero de Bachillerato â&#x20AC;&#x201C; Aplicaciones InformĂĄticas Wilson Cedillo P.
Unidad de Trabajo 2: MetodologĂa de la programaciĂłn
Actividades en clases 1.
SegĂşn la jerarquĂa de operadores calcule el resultado de X y Y en
las siguientes expresiones: X = 3 + 7 â&#x20AC;&#x201C; 12 / 2 * 3 Y = 9 â&#x20AC;&#x201C; 40 / 5 * 2 + 14 % 3 2. â&#x20AC;&#x153;Linealizarâ&#x20AC;? las siguientes expresiones (no se olvide que linealizar significa escribir una expresiĂłn algebraica en una sola lĂnea).
đ?&#x2018;? đ?&#x2018;&#x17D;+ đ?&#x2018;Ľ= đ?&#x2018;&#x17D; đ?&#x2018;? +đ?&#x2018;? đ?&#x2018;?
đ?&#x2018;Ľ=đ?&#x2018;&#x17D;+
đ?&#x2018;&#x17D;+đ?&#x2018;? đ?&#x2018;?+đ?&#x2018;&#x2018; đ?&#x2018;&#x17D; đ?&#x2018;&#x17D;+ đ?&#x2018;?
đ?&#x2018;&#x17D;+
Ejemplo EN SCRATCH Calcular cuĂĄnto debo pagar a una empleada al fin de mes, si la misma gana por horas trabajadas. RESOLUCIĂ&#x201C;N 1. AnĂĄlisis del problema OBJETIVO (SALIDA): Calcular sueldo a pagar de la empleada. ELEMENTOS BĂ SICOS (DATOS): Total horas trabajadas y valor por hora. CONDICIONANTES: Calcular de un solo mes.
2. DiseĂąar un algoritmo computacional ALGORITMO Sueldo_Empleada Inicio 1. Ingresar horas desde el teclado. 2. Ingresar valor_Hora desde el teclado. 3. Calcular sueldo = horas * valor_Hora. 4. Mostrar en pantalla el sueldo. Fin
Unidad Educativa TĂŠcnico Salesiano Primero de Bachillerato â&#x20AC;&#x201C; Aplicaciones InformĂĄticas Wilson Cedillo P.
ENTRADA PROCESAMIENTO SALIDA
Unidad de Trabajo 2: Metodología de la programación
3. Ejecutar el plan. Pasamos los pasos indicados en el algoritmo a SCRATCH.
4. Verificar el plan. Presionar la bandera verde
y verificar los resultados:
Actividad en clases Resolver los problemas propuestos indicando en su cuaderno de actividades los dos primeros pasos del método de George Pólya. Para la ejecución y verificación del plan utilice SCRATCH. 1. Calcular el área de una cancha de fútbol. 2. Desarrolle un algoritmo computacional que permita calcular la nota del primer parcial de PLE.
Actividad Formativa No. 6 (Algoritmos Computacionales ) Resolver los problemas indicando todos los pasos del método de George Pólya En el primer paso detalle el Objetivo(s) o fin(es), los elemento(s) básico(s) y el Condicionante(s); en el segundo paso utilice un Algoritmo. En el tercero utilice Scratch.
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 2: Metodología de la programación
1. Calcular el área de un trapecio. 2. Si las notas de los tres parciales se califican sobre 10 y el examen quimestral también se califica sobre 10, calcular la nota final del quimestre; considere que de cada parcial debe calcular la equivalencia sobre 8 y del examen sobre 2. 3. Juan compra 12 dulces por 30 dólares. Si al día siguiente el precio de cada dulce se incrementó a 6 dólares, calcular cuánto se ahorró Juan por dulce al comprarlos con el precio anterior. 4. En la actividad 5 todos los estudiantes reciben una de las cuatro calificaciones: A, B, C o D. Si
1 4
obtienen A,
1 2
obtienen B,
1 5
obtienen C y 20 alumnos reciben D. Calcular
cuántos estudiantes hay en total. 5. El precio final de un traje de novia es de 3060 dólares después de que se ha efectuado un descuento del 15%. Calcular el precio original del traje antes del descuento. Suba el archivo al aula virtual de PLE en el portal web de la U.E.T.S. en la fecha 3. establecida por el docente.
6. Operadores de comparación y expresiones lógicas onocidos
también
como
operadores
relacionales,
un
operador de comparación compara dos valores y determina la relación existente entre ambos; el resultado de dicha relación únicamente puede ser VERDADERO o FALSO15. Considere la siguiente tabla de operadores de comparación, suponiendo que A = 8 y B = 2.
15
Los mismos resultados de las preposiciones estudiados en la Unidad de Trabajo 1, Lógica computacional. Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 2: Metodología de la programación
Actividad en clases 1.
Si A=7 y B=((A%2)*6)/(10-A), cuál sería el resultado de R? R = A<=B
2. Si A=12, C=2 y B=(23+(((A/4)+C)%C))/C, cuál sería el resultado de R?. Desarrolle paso a paso. R = A!=B 3. Si A=21, B=3 y C=3, cual sería el resultado de R?. Desarrolle paso a paso. R = A+4 > B/C+A
7. Las decisiones iempre que tenemos que tomar una decisión o, más bien, siempre que tengamos que utilizar la estructura16 de decisiones vamos a depender de una condición. La condición es la que nos permite que podamos decidir cuál es el camino lógico correcto a tomar. Por ejemplo considere estas dos preposiciones:
16
Una estructura se define como un esquema que nos permite representar de manera simplificada alguna idea y que bajo condiciones normales es constante. Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 2: Metodología de la programación
p: Si su representante se inscribió para jugar en las jornadas de integración salesiana, TIENE QUE DESFILAR en las jornadas de integración salesiana, caso contrario NO DESFILA. q: José tiene 16 años, entonces José es MAYOR DE EDAD o es MENOR DE EDAD? En
programación,
las
decisiones
se
basan
en
condiciones, las cuales deben tener siempre tres elementos: ¿QUÉ voy a comparar? Ubicado en la parte izquierda de la comparación, y generalmente es una variable. OPERADOR DE COMPARACIÓN. Cualquiera de los seis operadores de comparación. ¿CON QUÉ voy a comparar? Ubicado en la parte derecha de la comparación, puede ser una constante o un variable. Operador de comparación
¿QUÉ voy a comparar?
¿CON QUÉ valor voy a comparar?
Ejemplo Se desea ingresar las notas de los dos quinquemestres, el programa
mostrará
en
pantalla
dependiendo de las notas ingresadas. RESOLUCIÓN
1. Análisis del problema Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
APROBADO
o
SUPLETORIO,
Unidad de Trabajo 2: Metodología de la programación
OBJETIVO (SALIDA): Saber si APRUEBA o se queda a SUPLETORIO. ELEMENTOS BÁSICOS (DATOS): Las notas del primero y segundo quinquemestre. CONDICIONANTES: APRUEBA si tiene 7 o más sino va al SUPLETORIO. 2. Diseñar un algoritmo computacional
ENTRADA
PROCESAMIENTO
SALIDA
3. Ejecutar el plan. Pasamos los pasos indicados en el algoritmo a SCRATCH.
4. Verificar el plan. Presionar la bandera verde
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
y verificar los resultados:
Unidad de Trabajo 2: Metodología de la programación
Actividad en clases Ingresar un número desde el teclado, si el dato ingresado es un número par el programa mostrará en pantalla NUMERO PAR, caso contrario mostrará en pantalla NUMERO IMPAR. Desarrolle todos los pasos de acuerdo al ejemplo.
8. Pseudocódigos l pseudocódigo corresponde a una de las técnicas para representar algoritmos y es la representación textual de un algoritmo, pero utilizando instrucciones simples. En lugar de escribir una oración larga como "Pedir al usuario que ingrese un dato desde el teclado", se usa palabras clave como Leer que indica que hay una entrada de datos; para el ejemplo la instrucción sería simplemente “Leer dato". Por lo dicho anteriormente es evidente que la técnica del pseudocódigo está orientada hacia los algoritmos computacionales. 8.1 Palabras claves de carácter general Aunque no existen reglas comunes para la escritura de los pseudocódigos, en ésta guía de estudio se ha recogido una notación estándar que se utiliza en la mayor parte de los libros de programación en español para las palabras clave de carácter general. Inicio: Indica donde empieza el algoritmo Leer: Se usa cuando hay que ingresar desde el teclado datos para trabajar. Por ejemplo: Leer nota. Para indicar que se realizará un cálculo para asignar un valor determinado a una variable, no es necesario ninguna palabra clave aunque algunos autores usan la palabra Asignar, por ejemplo: Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 2: Metodología de la programación
Asignar promedio= (nota_1+nota_2)/2. Escribir: Significa que en éste paso se mostrará información en pantalla, se puede escribir el contenido una variable o textos (se escriben entre comillas dobles). Por ejemplo: Escribir “Bienvenidos a la UETS” Escribir nota Fin: Indica la terminación del algoritmo Para
que
un
programa
o
un
pseudocódigo sea más legible, se rec omienda que se escriba para
mostrar
dependencias
de
tabulando
claramente unas
las
instrucciones
del
programa con respecto a otras. Para una mayor comprensión, en éste documento las palabras básicas reservadas, es decir, aquellas que luego pueden ser traducidas a palabras de un lenguaje de programación se presentan en cursiva de color azul. 8.2 Estructuras de decisión simples en los pseudocódigos Ya sabemos que una decisión, a nivel de lógica de programación17, es la escogencia de uno de entre varios caminos lógicos dependientes todos de una condición. Por facilidades de representación se han esquematizado en los pseudocódigos (y así mismo en los Lenguajes de Programación) la estructura de decisión Si-Entonces-Sino. Si condición: Para empezar la comparación. 17
El conectivo lógico de la implicación que se estudió en la Unidad de Trabajo 1. Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 2: Metodología de la programación
Entonces: Se usa para indicar el inicio de las operaciones a realizar en el caso de que la condición de una comparación es VERDADERO, se escribe después de la condición (Recuerde que la condición debe tener tres elementos). Por ejemplo: Si A>10 Entonces Sino: Se usa para indicar el inicio de las operaciones a realizar en el caso de que la condición de una comparación es FALSO. Es opcional. FinSi: Indica la terminación de una comparación. Si condición Entonces ………. ………. Bloque de Instrucciones 1 ………. ………. Sino ………. ………. Bloque de Instrucciones 2 ………. ………. FinSi
En conclusión ésta estructura comprueba una condición y, si es VERDADERO, ejecuta el primer bloque de instrucciones, Bloque de instrucciones 1, y luego salta a las instrucciones que hay después de FinSi. Si la condición es FALSO, ejecuta el segundo bloque de instrucciones, Bloque de instrucciones 2, es decir, las que hay a continuación de la palabra clave Sino. Ejemplo Ingresar las notas de los dos quinquemestres, el programa mostrará en pantalla APROBADO o SUPLETORIO. Este ejemplo ya se realizó con algoritmos computacionales, ahora vamos a ver como ambas soluciones son muy parecidas y se complementan para realizar
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 2: Metodología de la programación
el cuarto paso que había quedado pendiente, Utilizar una herramienta de programación para representar el algoritmo. RESOLUCIÓN
1. Análisis del problema OBJETIVO (SALIDA): Saber si APRUEBA o se queda a SUPLETORIO. ELEMENTOS BÁSICOS (DATOS): Las notas del primero y segundo quinquemestre. CONDICIONANTES: APRUEBA si tiene 7 o más sino va al SUPLETORIO. 2. Diseñar un algoritmo computacional
ENTRADA PROCESAMIENTO
SALIDA
3. Utilizar una herramienta de programación para representar el algoritmo. Se utilizará pseudocódigo para representar el algoritmo de la solución. PROGRAMA notas_finales Inicio Definir variables n1, n2, nf Como Números reales; Leer n1; Leer n2; nf =(n1+n2)/2; Si nf>=7 Entonces Escribir "APROBADO"; Sino Escribir "SUPLETORIO"; FinSi Fin
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 2: Metodología de la programación
4. Ejecutar el plan. Pasamos los pasos indicados en el algoritmo a PSeInt, que es un software libre creado para practicar y probar pseudocódigos.
De aquí en adelante se propondrán soluciones con SCRATCH y PSeInt18 con la intención de dejar claro que no es la herramienta que se utiliza lo importante, sino el razonamiento lógico que se aplican a las soluciones 5. Verificar el plan. Presionar el botón con un triángulo verde
y verificar los
resultados:
Si bien es cierto, la solución planteada sí cumple con el objetivo, sin embargo se puede notar que al ingresar los datos, el usuario no sabe qué está ingresando y al mostrar resultados tampoco se sabe con qué nota final ha quedado. Por lo que una solución más óptima y amigable sería la siguiente:
18
PSeInt es la abreviatura de Pseudo e Intérprete, un editor de programación diseñado específicamente para estudiantes que quieran comprender la lógica de la programación. El programa utiliza pseudocódigo, un lenguaje de programación especial cuya principal misión es que el programador pueda centrarse en los aspectos lógicos de la programación. El proyecto se distribuye como software libre bajo licencia GPL, para descargar la última versión visite http://pseint.sourceforge.net Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 2: Metodología de la programación
Como podemos ver en la figura, antes de Leer un dato se recomienda Escribir un mensaje indicando qué es lo que se va ingresar, de ésta manera obtendremos un resultado mucho más amigable tanto en la entrada de datos como en la visualización de resultados:
8.3 Concatenar resultados en la instrucción Escribir Para que la información que se presenta en pantalla mediante la instrucción Escribir sea mucho más clara, es conveniente concatenar (con el operador + en java) cadenas de texto con variables. Por ejemplo: Escribir “APROBADO, la calificación final es -->” + notaFinal El resultado será una sola frase unido el texto APROBADO, la calificación es --> con el valor que se haya obtenido en la variable notaFinal; por ejemplo si la variable notaFinal tiene un valor de 8.47, el resultado en pantalla sería:
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 2: MetodologĂa de la programaciĂłn
Es importante hacer notar que al concatenar debemos poner los textos entre comillas â&#x20AC;&#x153; â&#x20AC;? y usar el operador + para ir unir dichos textos con las variables19, recuerde ademĂĄs que las variables no van entre comillas. Actividad Formativa No. 7 (Decisiones Simples ) Resolver los problemas propuestos indicando los 5 pasos para la creaciĂłn de un programa. Desarrolle en Word los pasos y en PSeInt el pseudocĂłdigo, ademĂĄs debe concatenar en la visualizaciĂłn de los resultados. 1. Ingresar desde el teclado la nota del examen quimestral de un estudiante, si la nota es 1.40 o menos el programa mostrarĂĄ en pantalla el texto NO ALCANZA EL APRENDIZAJE, caso contrario mostrarĂĄ en pantalla el dato de la nota que fue ingresada. 2. Ingresar cuatro nĂşmeros enteros: a, b, c, d. Si el valor de d es diferente a cero, calcular la fĂłrmula A, caso contario calcular la fĂłrmula B. đ?&#x2018;&#x17D;+đ?&#x2018;?
đ?&#x2018;?
đ?&#x2018;Ľ=
đ?&#x2018;&#x17D;+ đ?&#x2018;? đ?&#x2018;&#x17D; +đ?&#x2018;? đ?&#x2018;?
đ?&#x2018;Ľ=đ?&#x2018;&#x17D;+
đ?&#x2018;&#x17D;+ đ?&#x2018;?+đ?&#x2018;&#x2018; đ?&#x2018;&#x17D;
đ?&#x2018;&#x17D;+ đ?&#x2018;? FĂłrmula B FĂłrmula A 3. Determinar si un aĂąo es bisiesto, recuerde que un aĂąo es bisiesto si es mĂşltiplo de 4 (por ejemplo 1984). 4. Leer dos nĂşmeros enteros y determinar cuĂĄl es mĂşltiplo de cuĂĄl. 5. Dado la duraciĂłn (en minutos) de una llamada telefĂłnica, calcular su costo, de la siguiente manera: Hasta 5 minutos el costo es 3.50. Por encima de 5 minutos el costo es 3.50 + 1.20 por cada minuto adicional a los primeros 5 minutos. Suba el archivo al aula virtual de PLE en el portal web de la U.E.T.S. en la fecha establecida por el docente
19
En java el + es para concatenar y en PSeInt se usa la coma (,). Unidad Educativa TĂŠcnico Salesiano Primero de Bachillerato â&#x20AC;&#x201C; Aplicaciones InformĂĄticas Wilson Cedillo P.
Unidad de Trabajo 2: Metodología de la programación
8.4 Operadores lógicos binarios Son operadores que se utilizan para formar expresiones lógicas uniendo dos o más condiciones. En programación son dos: AND y OR. Operador binario AND El operador binario AND sigue las mismas reglas que el conectivo lógico Y, es decir, una expresión lógica que utiliza AND será VERDADERO si todas las condiciones de la expresión son VERDADERO; y será FALSO si una o más condiciones son FALSO. En Java y PseInt se utiliza &&, utilice cuando en
Basta que una condición sea FALSO para que toda la expresión lógica sea FALSO
un ejercicio requiera que se cumpla todas las condiciones
de
la
expresión
lógica
para
realizar
alguna(s)
instrucción(es). Ejemplo Mostrar en pantalla si una persona hace o no el servicio militar, suponiendo que únicamente las personas mayores de edad y de sexo masculino pueden realizar el servicio militar. RESOLUCIÓN 1. Análisis del problema OBJETIVO (SALIDA): Saber si una persona PUEDE HACER o NO PUEDE HACER el servicio militar. ELEMENTOS BÁSICOS (DATOS): La edad y el género de la persona. CONDICIONANTES: PUEDE HACER EL SERVICIO MILITAR si el género de la persona es masculino y además su edad es mayor o igual a 18 años.
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 2: Metodología de la programación
2. Diseñar algoritmo y usar una técnica para representar el algoritmo Programa servicio_militar Inicio Definir variable edad como Numérico Entero; Definir variables género como Numéricos Reales; Escribir "Ingrese la edad de la persona: "; Leer edad; Escribir "Ingrese el género de la persona: "; Leer genero; Si edad>=18 && genero=="MASCULINO" Entonces Escribir "PUEDE HACER EL SERVICIO MILITAR OBLIGATORIO"; Sino Escribir "NO ES NECESARIO QUE HAGA EL SERVICIO MILITAR"; FinSi Fin
3. Ejecutar el plan. Pasamos los pasos indicados en el pseudocódigo a PSeInt.
4. Verificar el plan. Presionamos el botón con un triángulo verde
y
verificamos los resultados:
Se puede comprobar que únicamente cuando cumplen las dos condiciones (edad>=18 y género=”MASCULINO”), aparece el texto PUEDE HACER EL SERVICIO MILITAR OBLIGATORIO.
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 2: Metodología de la programación
Actividad en clases Resolver los dos problemas planteados utilizando PSeInt. 1.
Se necesita un programa que facilite la organización de un baile, el
programa permitirá ingresar el precio del boleto para el baile y si el invitado es de GENERO Femenino y la EDAD es mayor o igual a 14 años, se regalará un PASE DE CORTESIA (este texto debe aparecer en pantalla), caso contrario debe aparecer en pantalla el valor del boleto que debe pagar. 2. Se necesita un programa que facilite la entrada a una charla, si el estudiante es del colegio TECNICO SALESIANO y el curso es DECIMO, debe presentar en pantalla concatenando el nombre con SI PUEDE INGRESAR, por ejemplo ADRIAN SI PUEDE INGRESAR, caso contrario mostrará en pantalla el texto NO PUEDE INGRESAR A LA CHARLA
Operador binario OR El operador binario OR sigue las mismas reglas que el conectivo lógico O, es decir, una expresión lógica que utiliza OR será FALSO si todas las condiciones de la expresión lógica son FALSO; y será VERDADERO si uno o más condiciones son VERDADERO. En Java y PseInt se utiliza ||, utilice cuando en un
Basta que una condición sea VERDADERO para que toda la expresión lógica sea VERDADERO
ejercicio requiera que se cumpla por lo menos una de todas las condiciones. Ejemplo Se desea controlar el ingreso a juegos mecánicos con riesgo en los cuales se ha puesto la siguiente restricción: si el cliente tiene la EDAD mayor a 13 años o su ESTATURA mayor a 1,60 PUEDE INGRESAR, caso contrario LO SENTIMOS NO PUEDE INGRESAR. RESOLUCIÓN 1. Análisis del problema OBJETIVO (SALIDA): Saber si una persona PUEDE INGRESAR o NO PUEDE INGRESAR a juegos mecánicos con riesgo.
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 2: Metodología de la programación
ELEMENTOS BÁSICOS (DATOS): La edad y la estatura de la persona. CONDICIONANTES: PUEDE INGRESAR si la edad es mayor a 13 años o su estatura mayor a 1,60. 2. Diseñar algoritmo y usar una técnica para representar el algoritmo Programa play_land_park Inicio Definir variable edad como Numérico Entero; Definir variable estatura como Numérico Real; Escribir "Ingrese la edad de la persona: "; Leer edad; Escribir "Ingrese la estatura de la persona: "; Leer estatura; Si edad>13 || estatura>1,60 Entonces Escribir "PUEDE INGRESAR"; Sino Escribir "LO SENTIMOS NO PUEDE INGRESAR"; FinSi Fin
3. Ejecutar el plan. Pasamos los pasos indicados en el pseudocódigo a PSeInt.
4. Verificar el plan. Presionar el botón con un triángulo verde
y verificar los
resultados:
Se puede comprobar que únicamente cuando no cumplen las dos condiciones (edad>13 con estatura>1,60), aparece el texto LO SENTIMOS NO PUEDE INGRESAR. Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 2: MetodologĂa de la programaciĂłn
Actividad en clases Resolver los dos problemas planteados utilizando PSeInt. 1.
En una fiesta el ingreso es controlado por una computadora mediante 5
claves. Si la clave ingresada es una de las claves correctas se mostrarĂĄ en pantalla "BIENVENIDO A LA FIESTA", caso contrario mostrarĂĄ en pantalla "TE EQUIVOCASTE DE FIESTA" y no permitirĂĄ el ingreso. Las Claves son: 1: "TIENES" 2: "QUE SER" 3: "INVITADO" 4: "PARA" 5: "INGRESAR". 2. En un almacĂŠn se va asignar descuentos al precio de la compra de acuerdo a la categorĂa que tiene cada artĂculo comprado: Si la categorĂa es Ropa, Medicina o Alimentos tendrĂĄn un descuento del 20%, caso contrario el descuento es del 10%. Mostrar en pantalla el precio final a pagar.
Actividad Formativa No. 8 (PseudocĂłdigos con operadores lĂłgicos binarios ) Resolver los cinco problemas en PSeInt. Se evaluarĂĄ tabulaciĂłn, uso de variables, cĂĄlculos para llegar al resultado y visualizaciĂłn correcta de resultados de acuerdo a lo que pide cada problema.
1. Dados tres nĂşmeros enteros, mostrar en pantalla el mayor de dichos nĂşmeros. 2. De acuerdo con la astrologĂa, se sostiene que existen doce signos que representan doce personalidades. Determinar si una persona es del signo Aries dado el dĂa y el mes del nacimiento. 3. Determinar el precio de un boleto para un viaje en el tren, dando la distancia a recorrer y el nĂşmero de dĂas en el destino; sabiendo que si la estadĂa en el lugar es superior a 7 dĂas y la distancia es superior a 800 Km, el boleto tiene un descuento del 30%. El precio por kilĂłmetro es de 2,50 dĂłlares. 4. Dado el peso y estatura (en metros) de una persona. Calcular su Ăndice de masa corporal (IMC), si el dato del peso se ingresĂł en libras la fĂłrmula es:
đ??źđ?&#x2018;&#x20AC;đ??ś =
đ?&#x2018;&#x192;đ?&#x2018;&#x2019;đ?&#x2018; đ?&#x2018;&#x153; đ?&#x2018;&#x2019;đ?&#x2018;&#x203A; đ?&#x2018;&#x2122;đ?&#x2018;&#x2013;đ?&#x2018;?đ?&#x2018;&#x;đ?&#x2018;&#x17D;đ?&#x2018; Ă&#x2014; 0,45359237 đ?&#x2018;&#x2019;đ?&#x2018; đ?&#x2018;Ąđ?&#x2018;&#x17D;đ?&#x2018;Ąđ?&#x2018;˘đ?&#x2018;&#x;đ?&#x2018;&#x17D; 2
Caso contrario la fĂłrmula es:
đ??źđ?&#x2018;&#x20AC;đ??ś =
đ?&#x2018;&#x192;đ?&#x2018;&#x2019;đ?&#x2018; đ?&#x2018;&#x153; đ?&#x2018;&#x2019;đ?&#x2018;&#x203A; đ?&#x2018;&#x2DC;đ?&#x2018;&#x2013;đ?&#x2018;&#x2122;đ?&#x2018;&#x153;đ?&#x2018; đ?&#x2018;&#x2019;đ?&#x2018; đ?&#x2018;Ąđ?&#x2018;&#x17D;đ?&#x2018;Ąđ?&#x2018;˘đ?&#x2018;&#x;đ?&#x2018;&#x17D;2
El programa mostrarĂĄ si la persona que ingresĂł sus datos tiene un peso acorde, considerando que si el IMC da entre 20 y 25 significa que se tiene un peso acorde o normal. 5. Dado el nombre de un mes, el programa determinarĂĄ si tiene o no 31 dĂas (considerando el calendario del 2014). 4.
Unidad Educativa TĂŠcnico Salesiano Primero de Bachillerato â&#x20AC;&#x201C; Aplicaciones InformĂĄticas Wilson Cedillo P.
Unidad de Trabajo 2: Metodología de la programación
8.5 Variantes de las estructuras de decisión En ocasiones, las decisiones que se deben realizar no siempre serán del tipo "si se cumple la condición, hazlo; si no se cumple, haz esto otro", es decir, una estructura de decisión simple Si..Entonces..Sino. Dependiendo el problema a resolver pueden presentarse algunas variantes. Estructura con decisiones en cascada Es una estructura en donde el Sino de cada Si condicional da inicio a un nuevo Si condicional y así sucesivamente. Si condición1 Entonces Instrucciones a ejecutar en el caso de que la condición1 sea VERDADERO Sino Si condición2 Entonces Instrucciones a ejecutar en el caso de que la condición2 sea VERDADERO Sino Si condición3 Entonces Instrucciones a ejecutar en el caso de que la condición3 sea VERDADERO Sino Instrucciones a ejecutar en el caso de que la condición3 sea FALSO FinSi FinSi FinSi
Ejemplo Leer un número entero y determinar si es de uno o dos o tres o cuatro dígitos. RESOLUCIÓN 1. Análisis del problema OBJETIVO (SALIDA): Saber si un número que se ingresa es de 1, 2 o 3 dígitos. ELEMENTOS BÁSICOS (DATOS): El número a comprobar.
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 2: Metodología de la programación
CONDICIONANTES: Si el número está entre 0 y 9 tiene un dígito, si está entre 10 y 99 tiene dos dígitos, si está entre 100 y 999 tiene tres dígitos, sino cumple ninguna de las condiciones indicadas tiene más de tres dígitos. 2. Diseñar algoritmo y usar una técnica para representar el algoritmo Programa dígitos Inicio Definir variable num como Numérico Entero; Escribir "Ingrese el número a comprobar"; Leer num; Si num>=1 && num <=9 Entonces Escribir "El número tiene un dígito"; Sino Si num>=10 && num<=99 Entonces Escribir "El número tiene dos dígitos" Sino Si num>=100 && num<=999 Entonces Escribir "El número tiene tres dígitos" Sino Si num>=1000 && num <=9999 Entonces Escribir "El número tiene cuatro dígitos" Sino Escribir "El número tiene más de cuatro dígitos" FinSi FinSi FinSi FinSi Fin
3. Ejecutar el plan. Pasamos los pasos indicados en el pseudocódigo a PSeInt.
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 2: Metodología de la programación
4. Verificar el plan. Presionar el botón con un triángulo verde
y verificar los
resultados:
Se puede comprobar que la solución sí funciona para números de uno, dos, tres y hasta de más de tres dígitos. Estructura con decisiones anidadas Estas se presentan en aquellos casos en los cuales una estructura completa de una decisión se encuentra dentro de otra. Si condición externa Entonces Si condición interna Entonces Instrucciones a ejecutar en el caso de que la condición interna sea VERDADERO Sino Instrucciones a ejecutar en el caso de que la condición interna sea FALSO FinSi Sino Instrucciones a ejecutar en el caso de que la condición externa sea FALSO FinSi
También puede darse el caso de que la estructura de decisión interna se encuentre en la parte SiNo de la estructura de decisión externa, o hasta en ambas partes. Ejemplo Leer un número entero y determinar si es positivo o negativo. Si es positivo determinar si tiene dos dígitos y si es negativo determinar si tiene tres dígitos. Asumir que no puede entrar el número cero. Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 2: Metodología de la programación
RESOLUCIÓN 1. Análisis del problema OBJETIVO (SALIDA): Determinar sin número es positivo y de dos dígitos o si es negativo y además de tres dígitos. . ELEMENTOS BÁSICOS (DATOS): El número a comprobar. CONDICIONANTES: Si el número es mayor a cero será positivo y habrá que comprobar si está entre 10 y 99. Si no es mayor a cero habrá que comprobar si está entre -999 y -100. 2. Diseñar algoritmo y usar una técnica para representar el algoritmo Programa dígitos2 Inicio Definir variable num como Numérico Entero; Escribir "Ingrese el número a comprobar"; Leer num; Si num>0 Entonces Si num>=10 && num<=99 Entonces Escribir "El número es positivo y tiene dos dígitos"; Sino Escribir "El número es positivo y NO tiene dos dígitos"; FinSi Sino Si num>=-999 && num<=-100 Entonces Escribir "El número es negativo y tiene tres dígitos"; Sino Escribir "El número es negativo y NO tiene tres dígitos"; FinSi FinSi Fin
3. Ejecutar el plan. Pasamos los pasos indicados en el pseudocódigo a PSeInt.
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 2: Metodología de la programación
4. Verificar el plan. Presionar el botón con un triángulo verde
y verificar los
resultados:
Se puede comprobar que la solución sí funciona para números negativos de tres dígitos y positivos de dos dígitos. Actividad Formativa No. 9 (Variantes de las estructuras de decisión ) Resolver los cinco problemas en PSeInt. Se evaluará tabulación, uso de variables, cálculos para llegar al resultado y visualización correcta de resultados de acuerdo a lo que pide cada problema. 1. Leer un número entero y si es de un dígito y además es menor que 5 escribir su nombre en pantalla (El nombre del 1 es UNO, el nombre del 2 es DOS, etc.).. 2. Leer un número entero (solo se ingresará números entre -1000 y 1000) y determinar cuántos dígitos tiene. 3. Leer un número entero de 4 dígitos y determinar si el primer dígito es mayor a alguno de los otros dígitos (se recomienda que se calcule cada dígito y se guarde en variables diferentes). 4. Leer un número entero de 2 dígitos y si termina en 1 mostrar en pantalla su primer dígito, si termina en 2 mostrar en pantalla la suma de sus dígitos y si termina en 3 mostrar en pantalla el producto de sus dos dígitos. 5.
Suba el archivo al aula virtual de PLE en el portal web de la U.E.T.S. en la fecha establecida por el docente
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 2: Metodología de la programación
9. Los ciclos entro de un algoritmo puede haber acciones que necesiten repetirse más de una vez. Por ejemplo Imagina que tienes una caja de chocolates, un algoritmo informal para comerse todos los chocolates sería: ALGORITMO chocolates Inicio Abrir la caja. Tomar un chocolate de la caja. Sacar envoltura del chocolate. Ubicar el chocolate dentro de la boca. Saborear el chocolate hasta diluirlo en la boca. ALGORITMO chocolates Tomar un chocolate de la caja. Inicio Sacar envoltura del chocolate. Mientras haya chocolates en la caja repetir lo siguiente Ubicar el chocolate dentro de la boca. Tomar un chocolate de la caja. Saborear el chocolate hasta diluirlo en la boca. Sacar envoltura del chocolate. Tomar un chocolate de la caja. Ubicar el chocolate dentro de la boca. Sacar envoltura del chocolate. Saborear el chocolate hasta diluirlo en la boca. Ubicar el chocolate dentro de la boca. Fin de la Repetición. Saborear el chocolate hasta diluirlo en la boca. Fin …… Tomar último chocolate de la caja. Sacar envoltura del último chocolate. Ubicar el último chocolate dentro de la boca. Saborear el último chocolate hasta diluirlo en la boca. Fin
Claramente se puede observar que algunos pasos se repiten y cuando esto sucede se forman ciclos en los algoritmos y pseudocódigos. Las instrucciones que se repiten empiezan después de evaluar una condición, para el ejemplo es que la caja de chocolates esté vacía y puede escribirse como una proposición de la siguiente manera: p: La caja de chocolates ya está vacía Mientras sea falsa la proposición anterior, se ejecutarán los pasos dentro del ciclo y cuando sea verdadera, se ignorarán y se continuarán con los pasos siguientes.
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 2: Metodología de la programación
Los ciclos conocidos también como estructuras de repetición, bucles o ciclos consisten en un conjunto de instrucciones que se ejecutan repetidas veces dependiendo del cumplimiento de una condición. El conjunto de instrucciones se repite hasta que se cumpla la condición. Cuando en un algoritmo se forma un ciclo, debe indicarse donde empieza y donde termina el ciclo. En el caso del pseudocódigo empieza con la palabra clave Repetir y termina con la palabra Hasta Que y la condición que debe cumplirse. Repetir Bloque de instrucciones a realizar hasta que la CONDICIÓN sea VERDADERO. Hasta Que CONDICIÓN
Recuerde que en la condición debe tener tres elementos: QUÉ se compara, un operador de comparación y CON QUÉ valor se va comparar. Los ciclos puede ser de dos tipos: determinados e indeterminados. Ciclos Determinados: Son aquellos ciclos en los que las acciones se repiten un número conocido de veces. Ciclos Indeterminados: Son aquellos en los que no sabemos cuántas veces deben repetirse las acciones que están dentro de un ciclo. Ejemplo Ingresar desde el teclado números enteros, el ingreso debe realizarse hasta que el número que se está ingresado sea un cero, es decir, al ingresar el número cero debe terminar el programa.
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 2: Metodología de la programación
RESOLUCIÓN 1. Análisis del problema OBJETIVO (SALIDA): Ingresar varios números. ELEMENTOS BÁSICOS (DATOS): Se ingresarán varios números (Ciclo indeterminado). CONDICIONANTES: El ingreso se terminará cuando el dato ingresado sea cero. 2. Diseñar algoritmo y usar una técnica para representar el algoritmo
variable num
3.
Numérico Entero
Ejecutar el plan. Pasamos los pasos indicados en el pseudocódigo a PSeInt.
4. Verificar el plan. Presionar el botón con un triángulo verde
y verificar los
resultados:
Se puede comprobar que la solución sí funciona, se ha ingresado varios números y sólo cuando se ingresó un cero se termina el ingreso.
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 2: Metodología de la programación
9.1 Contadores Un contador es una variable cuyo valor se incrementa generalmente en uno para cada repetición de un ciclo, se utiliza para contabilizar el número de repeticiones de un ciclo. Todo contador debe ser inicializado antes del ciclo con un valor, generalmente se inicializa con cero. cont = 0 Dentro del ciclo la variable que va ser utilizada como contador debe incrementarse generalmente en uno a si misma de la siguiente manera: cont = cont + 1 Variantes de los contadores Dependiendo del problema, en la fórmula de un contador se puede utilizar cualquiera de los operadores aritméticos. Por ejemplo: A=A+1 B=B-1 C=C*1 D=D/1 Además del incremento en uno, es posible "incrementar", o las otras operacione, con cualquier otro valor. Por ejemplo: A=A+2 D = D /4 Una forma de controlar los bucles determinados es mediante un contador. El contador determinará el número de iteraciones a realizar por el bucle. Ejemplo Ingresar desde el teclado números enteros, el ingreso debe realizarse hasta que el número que se está ingresado sea cero, es decir, Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 2: Metodología de la programación
al ingresar el número cero debe terminar el programa. El programa debe mostrar en pantalla cuantos números fueron ingresados desde el teclado. RESOLUCIÓN 1. Análisis del problema OBJETIVO (SALIDA): Cantidad de números que fueron ingresados. ELEMENTOS BÁSICOS (DATOS): Se ingresarán varios números (Ciclo indeterminado). CONDICIONANTES: El ingreso se terminará cuando el dato sea cero. 2. Diseñar algoritmo y usar una técnica para representar el algoritmo
3. Ejecutar el plan. Pasamos los pasos indicados en el pseudocódigo a PSeInt.
4. Verificar el plan. Presionar el botón con un triángulo verde resultados:
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
y verificar los
Unidad de Trabajo 2: Metodología de la programación
Se puede comprobar que la solución sí funciona, se ha ingresado 7 números (incluido el cero). Actividad Formativa No. 10 (Bucles y contadores ) Resolver los cinco problemas en PSeInt. Se evaluará tabulación, uso de variables, cálculos para llegar al resultado y visualización correcta de resultados de acuerdo a lo que pide cada problema. 1. Ingresar desde el teclado un número entero. El programa mostrará los números que existen desde 1 hasta el número ingresado. 2. Ingresar desde el teclado un número entero. El programa mostrará los resultados de la tabla de multiplicar del 8, desde 1 hasta el número ingresado. 3. Ingresar desde el teclado dos números A y B. El programa mostrará los resultados de la tabla de multiplicar del 8, desde A hasta B. 4. Ingresar desde el teclado un número entero. El programa mostrará en pantalla cuántos dígitos tiene el número ingresado (utilice un ciclo y un contador). 5. Ingresar desde el teclado un número entero que representará cuántos mensajes se podrán enviar desde un celular; además, el programa podrá ingresar y mostrar mensajes de texto hasta que se terminen los mensajes. 6.
Suba el archivo al aula virtual de PLE en el portal web de la U.E.T.S. en la fecha establecida por el docente
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 2: Metodología de la programación
9.2 Acumuladores Un acumulador, conocidos también como totalizadores o sumadores, son aquellas variables que aumentan al tomar en cuenta su valor anterior. Todo acumulador debe ser inicializado antes del ciclo con un valor (generalmente se inicializa con cero). acumulador = 0 El acumulador realiza la misma función que un contador, con la diferencia de que el incremento de cada suma es variable en lugar de constante, entonces dentro del ciclo la variable que va ser utilizada como acumulador debe incrementarse a sí misma de la siguiente manera: acumulador = acumulador + N En ciertos ejercicios, para la fórmula de un acumulador se puede utilizar cualquiera de los operadores aritméticos: multiplica = multiplica * N divide = divide / N resta = resta - N Ejemplo Ingresar todas las colaboraciones para el DOMUND, el programa preguntará cada vez si hay todavía colaboraciones para continuar ingresando. Al final se mostrará en pantalla el total recolectado. RESOLUCIÓN 1. Análisis del problema OBJETIVO (SALIDA): Total recolectado para el DOMUND. ELEMENTOS BÁSICOS (DATOS): Las recolecciones individuales. CONDICIONANTES: El ingreso se terminará cuando se indique que NO hay más colaboraciones. Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 2: Metodología de la programación
2. Diseñar algoritmo y usar una técnica para representar el algoritmo
3. Ejecutar el plan. Pasamos los pasos indicados en el pseudocódigo a PSeInt.
4. Verificar el plan. Presionar el botón con un triángulo verde resultados:
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
y verificar los
Unidad de Trabajo 2: Metodología de la programación
Se puede comprobar que la solución sí funciona, se ha colaborado: 1,50+1+0,50+2= 5 dólares. Actividad Formativa No. 11 (Bucles y Acumuladores ) Resolver los cuatro problemas en PSeInt. Se evaluará tabulación, uso de variables, cálculos para llegar al resultado y visualización correcta de resultados de acuerdo a lo que pide cada problema. 1. Leer desde el teclado las notas de varios alumnos (el ingreso se terminará cuando la nota ingresada sea un cero); el programa debe mostrar el promedio de todas las notas ingresadas. 2. Ingresar dos números enteros X y Y, el programa debe promediar los X primeros múltiplos de 2 y determinar si ese promedio es mayor que los Y primeros múltiplos de 5. 3. Leer un número entero y determinar a cuánto es la suma de sus dígitos. 4. Se define la serie Fibonacci como la serie que comienza con los dígitos 1 y 0 y va sumando progresivamente los dos últimos elementos de la serie, así: 0 1 1 2 3 5 8 13 21 34…... Utilizando el concepto de ciclo generar la serie de Fibonacci mientras el número no sobrepase de 100. 7.
Suba el archivo al aula virtual de PLE en el portal web de la U.E.T.S. en la fecha establecida por el docente
10. La Prueba de Escritorio a prueba de escritorio es una herramienta muy útil para comprobar nuestros programas cuando se tiene diseñado el programa en papel, o incluso un programa ya escrito en un lenguaje determinado. Con lápiz y papel se realiza manualmente lo que se supone que hace el programa, se inventa datos y se hace las operaciones justo y como está el diseño, después se checa si los Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 2: Metodología de la programación
resultados coinciden con lo que pide el objetivo del problema planteado. La prueba de escritorio es una herramienta ventajosa para entender qué hace un determinado algoritmo, o para verificar que un algoritmo cumple con los requerimientos sin necesidad de ejecutarlo. Básicamente, una prueba de escritorio es una ejecución ‘a mano’ del algoritmo, por lo tanto se debe llevar registro en una tabla de los valores que va tomando cada una de las variables y condiciones involucradas en el mismo. Si se observa que lo que está en pantalla satisface el objetivo entonces el pseudocódigo estará bien. Si no es así entonces habrá que revisar el pseudocódigo para que pueda alcanzar el objetivo propuesto. Por ejemplo, dado el siguiente pseudocódigo:
Para comprobar si el pseudocódigo del ejemplo cumple con el objetivo procederemos a desarrollar la prueba de escritorio, para lo cual realizamos una tabla con todas las variables y condiciones que tiene el pseudocódigo. En la tabla creada se registra los valores que se supone va ir tomando cada una de las variables y condiciones involucradas en el pseudocódigo.
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 2: Metodología de la programación
Todas las variables y comparaciones del pseudocódigo
Al terminar la prueba de escritorio o sea cuando el pseudocódigo llegue a su fin entonces se puede observar lo que haya quedado en pantalla y comparar su coherencia, en éste caso se puede concluir que el pseudocódigo cumple con los requerimientos del problema planteado. Actividad en clases Utilizando la prueba de escritorio compruebe si el siguiente pseudocódigo cumple con el propósito de mostrar en pantalla cuantos dígitos tiene un número entero determinado. Compruebe con el número 634210. Programa cantidad_digitos Inicio Definir num Como Entero; Definir cont Como Real; Leer num; Asignar cont = 0; Repetir Asignar num = num / 10; Asignar cont = cont + 1 Hasta Que (num < 0); Escribir "El número de dígitos es " + cont; Fin
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 2: Metodología de la programación
11. Diagramas de Flujo l diagrama de flujo es una representación gráfica del algoritmo, es decir, un dibujo que utiliza símbolos en lugar de palabras clave como lo hace un pseudocódigo. Cada paso
del
algoritmo
se visualiza dentro de un símbolo
estandarizado. El orden en que los pasos se ejecutan se indica conectando los símbolos con flechas llamadas líneas de flujo. Los símbolos
utilizados
han
sido
normalizados
Norteamericano de Normalización (ANSI) y
por
el
Instituto
por la Organización
Estándar Internacional (ISO) Pseudocódigo Inicio o Fin
Inicio
Leer A
A
Asignar s=a+b
s=a+b
Escribir R
R
Si … Entonces
Descripción
Diagrama de Flujo
Condición NO
1
SI
Cuando se crea un diagrama de flujo, siempre se empieza y se termina con ésta figura, llamada de inicio o de fin. Esta figura significa que hay que introducir algún dato. En el caso del ejemplo la variable A. Los rectángulos representan procesos y son operaciones matemáticas o simplemente la asignación de un valor a una variable. Este símbolo indica que se presentará los resultados de manera impresa o algún otro dispositivo de salida. Los rombos indican que hay dos caminos por seguir dentro de ellos; se escribe una proposición lógica y el camino que se elija dependerá de que la proposición sea falsa o verdadera. El círculo representa un conector de página, se utiliza para continuar el diagrama en una página diferente. Las líneas de flujo indican hacia donde se dirigen las instrucciones en cada parte del diagrama de flujo.
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 2: Metodología de la programación
Ejemplo Ingresar desde el teclado dos números enteros y mostrar en pantalla el mayor de ellos. RESOLUCIÓN 1. Análisis del problema OBJETIVO (SALIDA): El mayor de dos números. ELEMENTOS BÁSICOS (DATOS): Dos números (a y b). CONDICIONANTES: Mostrar solo el mayor de los dos ingresados. 2. Diseñar algoritmo y usar una técnica para representar el algoritmo. La solución con pseudocódigo y su equivalente en diagrama de flujo podría ser:
3. Ejecutar el plan. Pasamos los pasos indicados en el pseudocódigo a PSeInt.
4. Verificar el plan. Presionar el botón con un triángulo verde resultados:
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
y verificar los
Unidad de Trabajo 2: Metodología de la programación
Se puede comprobar que la solución sí funciona, el mayor entre 51 y 14, evidentemente es el 51. 11.1 Los bucles en un diagrama de flujo Los bucles, así como las decisiones, utilizan rombos para las condiciones. La diferencia con una decisión es que la flecha regresa a una parte anterior del diagrama.
Actividad Formativa No. 12 (Diagramas de Flujo ) Desarrollar en Word los diagramas de flujo y pruebas de escritorio de los problemas número 4 de las Actividades Formativas 6, 7, 8, 9, 10 y 11.
8.
Suba el archivo al aula virtual de PLE en el portal web de la U.E.T.S. en la fecha establecida por el docente.
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 3: La programación
orientada a objetos
.
Unidad de Trabajo 3
1. Historia de la programación a historia y origen de los programas informáticos se remonta hasta el año 1842, cuando Lady Ada Lovelace20,
considerada
como
la
primera
programadora de la historia, creó el primer algoritmo diseñado para ser procesado por una computadora; luego estuvo la notable contribución de Herman Hollerith21 en la construcción de las máquinas internacionales de negocios, con las que logró procesar los censos de Estados Unidos de América a partir de 1890, y en las que se comenzó la automatización del procesamiento de la información, es de suma importancia destacar que uno de los aportes teóricos claves para el surgimiento de la
20
Augusta Ada King, Condesa de Lovelace, nacida Augusta Ada Byron, (Londres, 10 de diciembre de 1815 Londres, 27 de noviembre de 1852), fue una matemática y escritora británica conocida principalmente por su trabajo sobre la máquina calculadora mecánica de uso general de Charles Babbage, la Máquina analítica. Entre sus notas sobre la máquina se encuentra lo que se reconoce hoy como el primer algoritmo destinado a ser procesado por una máquina. Como consecuencia, se la describe a menudo como la primera programadora de ordenadores. 21 Herman Hollerith (Buffalo, Nueva York, 29 de febrero de 1860 — 17 de noviembre de 1929). Está dentro de los creadores de la primera computadora en el mundo. En el siglo XIX, los censos se realizaban de forma manual, con el retraso que ello suponía (hasta 10 ó 12 años). Ante esta situación, Hollerith comenzó a trabajar en el diseño de una máquina tabuladora o censadora, basada en tarjetas perforadas. Hollerith observó que la mayor parte de las preguntas contenidas en los censos se podían contestar con un SÍ o un NO. Entonces ideó una tarjeta perforada, una cartulina en la que, según estuviera perforada o no en determinadas posiciones, se contestaba este tipo de preguntas. Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 3: La programación
orientada a objetos
programación fueron los trabajos realizados por Alan Türing22, quien usó un dispositivo para definir matemáticamente lo que es un algoritmo y lo denominó Máquina de computación lógica que en su honor se conoce como máquina de Türing. De
allí
se
infirió
la
idea
de
programar utilizando un código binario.
Estas
aprovechadas
ideas por
John
fueron Von
Newman23 para crear un programa que permitiera instruir la máquina de Türing en 1950. Por primera vez, se vislumbró la posibilidad de que una computadora preparase y ejecutase sus propios programas. Desde que Newman comenzó a instruir las máquinas de Türing hasta nuestros días, la tarea de escribir programas ha ido creciendo y mejorándose cada vez más, en armonía con los avances tecnológicos a nivel computacional y con las necesidades de uso de la computadora en la resolución de problemas.
22
Alan Mathison Turing, OBE (Maida Vale, Londres, 23 de junio de 1912 - Wilmslow, Cheshire, 7 de junio de 1954), fue un matemático, lógico, científico de la computación, criptógrafo y filósofo británico. Es considerado uno de los padres de la ciencia de la computación siendo el precursor de la informática moderna. Proporcionó una influyente formalización de los conceptos de algoritmo y computación. 23 John von Neumann (registrado al nacer como Neumann János Lajos) (Budapest, Imperio austrohúngaro, 28 de diciembre de 1903-Washington, D.C., Estados Unidos, 8 de febrero de 1957) fue un matemático húngaro-estadounidense que realizó contribuciones fundamentales en física cuántica, análisis funcional, teoría de conjuntos, teoría de juegos, ciencias de la computación, economía, análisis numérico, cibernética, hidrodinámica, estadística y muchos otros campos. Von Neumann le dio su nombre a la arquitectura de von Neumann, utilizada en casi todos los computadores, por su publicación del concepto; aunque muchos piensan que este nombramiento ignora la contribución de J. Presper Eckert y John William Mauchly, quienes contribuyeron al concepto durante su trabajo en ENIAC.16 Virtualmente, cada computador personal, microcomputador, minicomputador y supercomputador es una máquina de von Neumann. Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 3: La programación
orientada a objetos
2. Técnicas de programación l diseño de un programa que se realiza sin seguir una metodología puede funcionar, pero se debe tener en cuenta que con el tiempo se convertirá en un conjunto de instrucciones. Es decir que las consecuencias de no utilizar un método determinado llevará a cometer errores que pueden costar el buen funcionamiento del mismo. Una técnica de programación es una metodología que debe de seguirse y tomarse en cuenta al momento de programar, es decir, deberán asumirse ciertas normas que permitan la estandarización de la programación, implicando una disminución de costos, independencia del
programador
y
seguridad.
Existen
algunas
técnicas
de
programación y cada una tiene sus propias características, y distintos métodos de resolución de problemas. 2.1 Enfoque Monolítico o Programación no Estructurada
Este era el método de diseño de facto en las décadas de los cincuenta, es decir, los primeros días de la programación, cuando no existían grandes adelantos en la teoría de desarrollo de software, y es la forma
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 3: La programación
orientada a objetos
como se empieza a aprender a programar. Consiste en organizar secuencialmente bloques de instrucciones y llamadas a otros bloques según la lógica de solución del problema, accesando y modificando datos globales a todo el programa. Aquí es común el uso de instrucciones de salto como goto que permite pasar el control a cualquier otra parte del programa. A este estilo de codificación se le denomina espagueti. Entre los lenguajes de programación que utilizaban éste mecanismo eran el ensamblador, FORTRAN, COBOL y BASIC. Con el advenimiento de las modernas técnicas de programación este método de programación se volvió obsoleto, y en la actualidad apenas es utilizado en la programación de drivers (manejadores de dispositivos) y chips de ROM, el llamado firmware. 2.2 La programación estructurada A finales de los años sesenta, surgió una nueva forma de programar que reduce a la mínima expresión el uso de la instrucción goto y la sustituye por otras más comprensibles. Esta forma de programar se basa en un famoso teorema, desarrollado por Edsger Dijkstra24, que demuestra que todo programa puede escribirse utilizando únicamente las tres estructuras básicas de control siguientes: Secuencia: el bloque secuencial de instrucciones, instrucciones ejecutadas sucesivamente, una detrás de otra.
24
Edsger Wybe Dijkstra (11 de mayo, 1930 - †6 de agosto, 2002) fue un científico de la computación de origen neerlandés. Entre sus contribuciones a la informática está el algoritmo de caminos mínimos; también conocido como Algoritmo de Dijkstra. Recibió el Premio Turing en 1972. Era conocido por su baja opinión de la sentencia GOTO en programación, que culminó en 1968 con el artículo Go To Statement Considered Harmful (La sentencia Goto considerada perjudicial), visto como un paso importante hacia el rechazo de la expresión GOTO y de su eficaz reemplazo por estructuras de control tales como el bucle while. Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 3: La programación
orientada a objetos
Selección: la instrucción condicional con doble alternativa, de la forma "Si condición Entonces instrucción-1 Sino instrucción-2". Iteración: el bucle condicional "Repetir instrucción Hasta condición Hacer ", que ejecuta la instrucción repetidamente hasta que la condición se cumpla.
Los programas que utilizan sólo estas tres instrucciones de control básicas o sus variantes, pero no la instrucción goto, se llaman estructurados. Una característica importante en un programa estructurado es que puede ser leído en secuencia, desde el comienzo hasta el final sin perder la continuidad de la tarea. 2.3 Programación modular El programa se divide en módulos (partes independientes), cada una de las cuales ejecuta una única actividad o tarea y se codifica independientemente de otros módulos. Cada programa contiene un módulo llamado programa principal, que controla todo lo que sucede; se transfiere el control a submódulos (posteriormente se denominarán subprogramas), de modo que ellos pueden ejecutar sus funciones; sin embargo, cada submódulo devuelve el control al módulo principal cuando se haya completado su tarea. Si la tarea asignada a cada
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 3: La programación
orientada a objetos
submódulo es demasiado compleja, éste deberá romperse en otros módulos más pequeños. Divide et Vinces
Dado que los módulos son independientes, diferentes programadores pueden trabajar simultáneamente en diferentes partes del mismo programa. Esto reducirá el tiempo de diseño del algoritmo y posterior codificación del programa. Además, un módulo se puede modificar radicalmente sin afectar a los otros módulos, incluso sin alterar su función principal. La descomposición de un programa en módulos independientes más simples se conoce también como el método «divide y vencerás». 2.4 Programación orientada a eventos El control del flujo de un programa orientado a eventos es extremadamente conducido por eventos externos. En vez de esperar por un comando el cual ordene que se procede determinada información, el sistema esta pre-programado para realizar un ciclo de forma repetida, para verla y realizar una función que desencadena en su procesamiento. Por lo tanto, cuando se desencadena la función previamente definida, corresponderá al comportamiento requerido.
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 3: La programación
orientada a objetos
2.5 Programación orientada a objetos Las tecnologías orientadas a objetos se han convertido desde la década de los noventa en uno de los motores clave de la industria del software Aunque algunos autores aseguran que dicha tecnología se remonta a los años sesenta. De hecho, Simula, uno de los lenguajes orientados a objetos más antiguos, fue desarrollado en 1967.
El mundo del problema se ve como objetos que interactúan, por lo tanto en ésta técnica la resolución del problema se realiza en términos
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 3: La programación
orientada a objetos
de objetos. Se fundamenta en tre s puntos: la abstracción, la herencia y el polimorfismo. Más adelante se te verá al detalle ésta técnica. 2.6 Programación Funcional Los lenguajes habituales se basan, en mayor o menor medida, en realizar una serie de pasos, en definir lo que las cosas hacen; esto se conoce como programación imperativa, en cambio ésta técnica se basa casi en su totalidad en funciones, entendiendo el concepto de función según su definición matemática.
El propio nombre nos da una pista de la característica fundamental de este paradigma: se basa fuertemente en un concepto de función algo diferente al que estamos acostumbrados, más cercano al matemático que su contraparte en los lenguajes imperativos. No hay variables, por lo que estas funciones sólo tratarán con sus valores de entrada y con constantes predefinidas; no tienen más posibilidad de acción. 2.7 Programación Lógica La programación lógica es aquel tipo de programación que permite al software “razonar”, esto es, hacer razonamientos, por ejemplo, de tipo deductivo o inductivo. El programador se enfoca en lo que quiere hacer, y la computadora se encarga del cómo. Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 3: La programación
orientada a objetos
Hace uso de patrones de invocaciones directas de procedimientos por afirmaciones y objetivos. Los conocimientos son representados en forma de regla del tipo antecedente consecuente, donde en el antecedente viene la descripción de un hecho y en el consecuente la acción a ejecutar la cual produce nuevos hechos. 2.8 Entonces... ¿Hay Técnicas de programación obsoletas? Cada una de las diferentes técnicas de programación pueden utilizarse y obtener lo mejor de cada una de ellas dependiendo del lenguaje de programación, por lo que debe de aprovecharse cada uno de los aspectos que más nos convenga. Cada una de las técnicas ha sido eficientada y creada para resolver determinadas situaciones, debemos de
conocerlas,
aprovecharlas
y
utilizarlas
en
el
lenguaje
de
programación de nuestra preferencia. Actividad en clases Desarrolle un programa que simule una ruleta del saber con 3 de los temas estudiados:
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 3: La programación
orientada a objetos
Requerimientos El programa pedirá que se escoja una de las opciones del menú, hasta que se escoja una correcta.
Al escoger una opción correcta el programa indicará que tema se ha escogido y mostrará la primera pregunta de opción múltiple sobre el tema, con cuatro opciones (3 incorrectas y una sola correcta). El usuario solo puede escribir A, B, C o D caso contrario se muestra un mensaje y vuelve a pedir que se ingrese hasta que sea una de las letras válidas.
Si la opción es correcta, el programa mostrará un mensaje >>>>>>CORRECTO<<<<<<, sino mostrará un mensaje de INCORRECTO, indicando además cual era la respuesta correcta y pasará a la siguiente pregunta (cuatro preguntas de cada tema). Al contestar la última pregunta el programa mostrará cuántas preguntas fueron contestadas correctamente y cuántas fueron incorrectas.
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 3: La programación
orientada a objetos
Actividad Formativa No. 13 (Crucigrama/Sopa de letras ) Realiza en Word un crucigrama o una sopa de letras con 10 conceptos que reflejen los aspectos más importantes sobre la introducción teórica y las técnicas de programación. Sube al aula virtual en el tiempo establecido. Se calificará en base a la siguiente rúbrica.
9.
1. Orden y herramientas adecuadas utilizadas. 2. Capacidad para relacionar significados y significantes. Capacidad de relación fonética 3. Exactitud y objetividad en las respuestas planteadas. Exactitud de las preguntas y palabras de respuesta 4. Niveles de dificultad en el crucigrama/sopa de letras 5. Calidad del documento final. Suba el archivo al aula virtual de PLE en el portal web de la U.E.T.S. en la fecha establecida por el docente
3. Características generales de la programación orientada a objetos (POO) urante años, los programadores se han dedicado a construir aplicaciones muy parecidas que resolvían una y otra vez los mismos problemas. Para conseguir que los esfuerzos de los programadores puedan ser utilizados por otras personas se creó la POO. Que es una serie de normas de realizar las cosas para que otras personas puedan utilizarlas y adelantar su trabajo, de manera que consigamos que el código se pueda reutilizar.
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 3: La programación
orientada a objetos
La idea es diseñar formatos de datos que se correspondan con las características esenciales de un problema. Los lenguajes orientados a objetos combinan en una única unidad o módulo, tanto los datos como las funciones que operan sobre esos datos. Tal unidad se llama objeto. Se puede definir programación orientada a objetos (POO) como una técnica de programación que utiliza objetos como bloque esencial de construcción. Dado que la POO se basa en la idea natural de la existencia de un mundo lleno de objetos y que la resolución del problema se realiza en términos de objetos, es un tipo de programación más cercana al razonamiento humano. La programación orientada a objetos es una “filosofía”, un modelo de programación, con su teoría y su metodología, que conviene conocer y estudiar antes de nada. Un lenguaje orientado a objetos es un lenguaje de programación que permite el diseño de aplicaciones orientadas a objetos. Dicho esto, lo normal es que toda persona que vaya a desarrollar aplicaciones orientadas a objetos aprenda primero la “filosofía” (o adquiera la forma de pensar) y después el lenguaje, porque “filosofía” sólo hay una y lenguajes muchos. En esta Unidad de Trabajo
veremos
brevemente
los
conceptos
básicos
de
la
programación orientada a objetos desde un punto de vista global, sin particularizar para ningún lenguaje de programación específico.
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 3: La programación
orientada a objetos
4. Pensar en objetos, una manera de ver la realidad ensar en términos de objetos es muy parecido a cómo lo haríamos en la vida real, pues si nos detenemos a pensar sobre cómo se nos plantea un problema cualquiera en la realidad podremos ver que lo que hay en la realidad son objetos. Estos objetos poseen un conjunto de propiedades o atributos, y un conjunto de métodos mediante los cuales muestran su comportamiento. Y no sólo eso, también podremos descubrir todo un conjunto de interrelaciones entre los objetos, guiados por el intercambio de mensajes; los objetos de un problema responden a estos mensajes mediante la ejecución de ciertas acciones. El siguiente ejemplo aclarará algunos conceptos y nos servirá como introducción para desarrollarlos con profundidad. Un domingo por la tarde estoy en casa conectado a la red social en mi computador.
Hijo, tengo un fuerte dolor de cabeza
De repente mi padre siente un fuerte dolor de cabeza.
Como es natural, lo primero que hago es tratar de encontrar una caja de aspirinas.
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 3: La programación
orientada a objetos
Vamos a ver la historia en clave de objetos: El objeto hijo ha recibido un mensaje procedente del objeto padre. El objeto hijo responde al mensaje o evento ocurrido mediante una acción: buscar aspirinas en el objeto botiquín. El padre no tiene que decirle al hijo dónde debe buscar, es responsabilidad del hijo resolver el problema como considere más oportuno. Al objeto padre le basta con haber emitido un mensaje.
Continuemos con la historia. Suponiendo que el hijo no encuentra aspirinas en el botiquín. Decide acudir a la farmacia de guardia más cercana para comprar las aspirinas. En la farmacia es atendido por una señorita que le pregunta qué desea, a lo que el hijo responde: "una caja de aspirinas, por favor". La farmacéutica desaparece para regresar al poco tiempo con una caja de aspirinas en la mano. El hijo
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 3: La programación
orientada a objetos
paga el costo, se despide y vuelve a su casa. Allí le da una pastilla a su padre, el cual al cabo de un rato comienza a experimentar una notable mejoría hasta la completa desaparición del dolor de cabeza. El hijo, como objeto responsable de un cometido, sabe lo que debe hacer hasta conseguir una aspirina. Para ello entra en relación con un nuevo objeto, la farmacéutica, quien responde al mensaje o evento de petición del objeto hijo con la búsqueda de la aspirina. El objeto farmacéutica es ahora el responsable de la búsqueda de la aspirina en el objeto bodega. El objeto farmacéutica lanza un mensaje al objeto hijo solicitando el pago del importe, y el objeto hijo responde a tal evento con la acción de pagar.
Como hemos podido ver, en esta situación nos hemos encontrado con objetos que se diferenciaban de los demás por un conjunto de características o propiedades, y por un conjunto de acciones que realizaban en respuesta a unos eventos que se originaban en otros objetos o en el entorno.
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 3: La programación
orientada a objetos
También podemos darnos cuenta de que, aunque todos los objetos tienen propiedades distintas, como el color del cabello, el grado de simpatía o el peso, algunos objetos tienen un conjunto de atributos en común por ser ejemplos de una entidad superior llamada “ser humano”. A este patrón de objetos (en nuestro caso “ser humano”) lo llamaremos clase, que más adelante lo estudiaremos más al detalle.
5. Los objetos n objeto del mundo real es cualquier cosa que vemos a nuestro alrededor.
Todo objeto del mundo real tiene 2 componentes: características y comportamiento. Por ejemplo, los automóviles tienen características (marca, modelo, color, velocidad máxima, etc.) y comportamiento (frenar, acelerar, retroceder, llenar combustible, cambiar llantas, etc.). Los Objetos en la POO, al igual que los objetos del mundo real, también tienen características y comportamientos. Un objeto en la POO mantiene sus características en una o más "variables o atributos", e implementa su comportamiento con "métodos".
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 3: La programación
orientada a objetos
Dentro de la POO, un objeto es cualquier cosa, real o abstracta, acerca de la cual almacenamos datos y los métodos que controlan dichos datos. Por ejemplo vamos a pensar en un auto para tratar de modelizarlo25 en un esquema de POO. Diríamos que el auto es el elemento principal que tiene una serie de características, como podrían ser el color, el modelo o la marca. Además tiene una serie de funcionalidades asociadas, como pueden ser ponerse en marcha, parar o estacionar. En un esquema orientado a objetos el auto sería el objeto, las propiedades serían las características como el color o el modelo y los métodos serían las funcionalidades asociadas como ponerse en marcha o parar. Por poner otro ejemplo vamos a ver cómo modelaríamos en un esquema POO una fracción, es decir, esa estructura matemática que tiene un numerador y un denominador que divide al numerador, por ejemplo 2/5. La fracción será el objeto y tendrá dos propiedades, el numerador y el denominador. Luego podría tener varios métodos como simplificarse, sumarse con otra fracción o número, restarse con otra fracción, etc. Estos objetos se podrán utilizar en los programas, por ejemplo en un programa de matemáticas harás uso de objetos fracción y en un programa que gestione un taller de autos utilizarás objetos auto. Los programas Orientados a objetos utilizan muchos objetos para realizar las acciones que se desean realizar y ellos mismos también son objetos,
25
Modelamiento: El modelamiento en la programación consiste en realizar una representación de la realidad que contenga las características generales de algo que se va a realizar. Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 3: La programación
orientada a objetos
es decir, el taller de autos será un objeto que utilizará objetos auto, herramienta, mecánico, recambios, etc.
6. Las clases n el punto anterior hemos definido de qué trata un objeto; pero en realidad el concepto más adecuado a la hora de definir las características de los objetos de un programa es el concepto de clase. Una clase es la descripción de una familia de objetos que tienen la misma estructura (atributos) y el mismo comportamiento (métodos). Entonces la clase es una especie de modelo o prototipo que define las variables y métodos comunes a todos los objetos de cierta clase, es decir, una clase es una especie de molde o plantilla del cual podemos extraer objetos que tendrán por supuesto la forma del molde pero que serán distintos unos de otros, con su propia identidad. Por ejemplo, la clase L sería el mole para crear un objeto L Amarillo o un objeto L Azul. Entonces los objetos se crean a partir de una clase, es decir, son ejemplares de una clase cualquiera. Cuando creamos un ejemplar tenemos que especificar la clase a partir de la cual se creará. Esta acción de crear un objeto a partir de una clase se llama instanciar. 6.1 ¿Cómo identifico a las clases? Una clase puede ser identificada como un sustantivo (del que se necesita guardar información) dentro del enunciado de un problema o
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 3: La programación
orientada a objetos
de la narración de un proceso de negocio dentro de una organización. Por ejemplo si tenemos la siguiente parte de un enunciado: “Los clientes compran productos por medio de un comprobante que es la factura”. En el ejemplo podemos encontrar tres clases: clientes, productos y factura, pues son sustantivos que tienen características propias que son necesarios guardar. Comprobante no se ha tomado en cuenta, pese a que también es un sustantivo, pues se refiere a la factura, que si ha sido considerada. Actividad en clases Identifique y haga un listado de las clases en el siguiente enunciado: “Los alumnos tienen materias nuevas en este año lectivo, los profesores dictarán las clases desde el día de hoy y pasaran notas al final de cada aporte.”
7. Análisis y diseño de sistemas, orientado a objetos ara el desarrollo de software orientado a objetos no basta usar un lenguaje orientado a objetos. También se necesitará realizar un análisis y diseño orientado a objetos, es decir, saber cuáles son las necesidades del cliente, identificar los requisitos, anotarlos, analizarlos, validarlos, necesitamos diseñar una solución, y hacer “los planos” del software, hay que asegurarse de que el software
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 3: La programación
orientada a objetos
funcione, realizar pruebas y finalmente hay que dar mantenimiento al software. El uso de Análisis y diseño orientado a objetos puede facilitar mucho la creación de software, las fases en que se descompone son: 1. Planificación y Especificación de Requisitos: Planificación, definición de requisitos, conocer los procesos del dominio, etc. 2. Construcción: La construcción del sistema. Se subdivide en las siguientes: Análisis: Se analiza el problema a resolver desde la perspectiva de los usuarios y de las entidades externas que van a solicitar servicios al sistema. Diseño: El sistema se especifica en detalle, describiendo cómo va a funcionar internamente para satisfacer lo especificado en el análisis (Los planos del software). Implementación: Se lleva lo especificado en el diseño a un lenguaje de programación. Pruebas: Se llevan a cabo una serie de pruebas para corroborar que el software funciona correctamente y que satisface lo especificado en la etapa de Planificación y Especificación de Requisitos. 3. Instalación: La puesta en marcha del sistema en el entorno previsto de uso. El modelamiento visual es la clave para realizar el análisis OO. Desde los inicios del desarrollo de software OO han existido diferentes metodologías para hacer esto del modelamiento, pero sin lugar a duda, el Lenguaje de Modelamiento Unificado (UML) puso fin a la guerra de metodologías.
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 3: La programación
orientada a objetos
7.1 Lenguaje Unificado de Modelado El Lenguaje Unificado de Modelado (UML) proporciona herramientas necesarias para poder obtener los planos del software equivalentes a los que se utilizan en la construcción, la mecánica o la industria aeroespacial. UML es un lenguaje de modelado visual que utiliza diagramas para la representación del comportamiento y estructura de los sistemas. Diagramas para modelar el Comportamiento del Sistema: Diagrama de Casos de Uso: Muestra un conjunto de casos de uso y actores y sus relaciones. Diagrama de Secuencia: Diagrama de interacción con la relación temporal de los mensajes y los objetos. Diagrama de Colaboración: Diagrama de interacción que resalta la organización estructural de los objetos que envían y reciben mensajes. Diagrama de Estados: Muestra una máquina de estados, que consta de estados, transiciones, eventos y actividades. Vista dinámica del sistema. Diagrama de Actividades: Muestra el flujo de actividades dentro de un sistema. Diagramas para modelar la Estructura del Sistema: Diagrama de Clases: Muestra un conjunto de clases, interfaces y colaboraciones, así como sus relaciones. Diagrama de Objetos: Muestra un conjunto de objetos y sus relaciones.
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 3: La programación
orientada a objetos
Diagrama de Componentes: Muestra la organización y las dependencias entre un conjunto de componentes. Diagrama de Despliegue: Representa la infraestructura de un sistema en tiempo de ejecución. Dado el alcance de éste curso se revisarán únicamente los diagramas de clases y de objetos que nos servirán para iniciar a modelar la estructura de un programa. 7.2 Diagrama de Clases El Diagrama de Clases es el diagrama principal de diseño y análisis para un sistema, muestra las diferentes clases que componen un sistema y cómo se relacionan unas con otras. Las clases en el diagrama están representadas por rectángulos, con el nombre de la clase, y también pueden mostrar atributos con su tipo de dato y los métodos de la clase en otros dos «compartimentos» dentro del rectángulo. Ejemplo Si tenemos la clase Presidente con los atributos foto, nombre, partido, inicio del período y fin del período; y además los comportamientos decreta y gobierna (métodos), la clase sería:
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 3: La programación
orientada a objetos
Relaciones entre clases Las relaciones existentes entre las distintas clases de un sistema, nos indican cómo se comunican los objetos de esas clases entre sí. Los mensajes navegan por las relaciones existentes entre las distintas clases. Existen tres tipos de relaciones: Asociación (conexión entre clases) Dependencia (relación de uso) Generalización/Especialización (relación de herencia) Las asociaciones Una asociación es una relación estructural que describe una conexión entre objetos, gráficamente se muestra como una línea continua que une las relaciones entre las clases. Generalmente se los reconoce como verbos en las especificaciones de un sistema. Por ejemplo: “Los alumnos pertenecen a un determinado curso”
Navegabilidad en las asociaciones Aunque las asociaciones suelen ser bidireccionales, en ocasiones es necesario hacerlas unidireccionales, gráficamente se dibuja una punta de flecha indicando el sentido de la navegación:
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 3: La programación
orientada a objetos
Actividad en clases Relacione las siguientes clases escogiendo la relación (asociación) que usted crea más adecuada:
Alumno - calificación
Personas – Barrio
Cliente – Factura
País – Ciudad
Se dice que los diagramas de clases son diagramas «estáticos» porque muestran las clases, junto con sus métodos y atributos, así como las relaciones estáticas entre ellas. Un diagrama de clases describe la estructura estática de un sistema en términos de clases y de relaciones entre estas clases, mostrando los atributos y operaciones que caracterizan cada clase de objetos.
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 3: La programación
orientada a objetos
Ejemplo En una concesionaria de automóviles, se venden autos de marcas Honda, Volvo y Mercedes Benz, si la venta se lleva a cabo el cliente recibe los documentos correspondientes que registran los datos del auto, estos documentos los emite el personal de la concesionaria.
7.3 Diagrama de objetos Lo primero que se debe hacer para dibujar el diagrama de objetos, es instanciar las clases, pues las objetos se crean a partir de las clases. Para instanciar simplemente escribimos los datos dentro de la clase. Por ejemplo:
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 3: La programación
orientada a objetos
Actividad en clases Para cada figura, dibuja la clase e instancia el objeto con sus atributos (por ahora no ponga métodos) con sus valores correspondientes.:
Una vez instanciado los objetos procedemos a dibujar la navegabilidad entre los objetos. Ejemplo Define un diagrama de objetos a partir del siguiente texto: “El presidente Jamil Mahuad viaja en un automóvil Volkswagen gris”
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 3: La programación
orientada a objetos
Actividad en clases Define un diagrama de objetos a partir del siguiente texto. Kate Windsor (de apellido original Middleton) y Guillermo (Windsor) de Gales están casados. Guillermo de Gales es hijo de Carlos (Windsor) de Gales y de Diana de Gales (de apellido original Spencer). Harry (Windsor) de Gales es hermano del principe Guillermo.
Actividad Formativa No. 14 (Diagramas de objetos y de clases ) Realiza en Word los siguientes ejercicios planteados:
1. ¿Qué cuadro es? ¿Galería o serie pictórica? ¿Quién lo pintó? ¿Qué año? ¿Qué técnica se usó? ¿Cuáles son sus dimensiones? ¿Dónde está ahora?
2. Un polígono es una porción de plano definida por al menos tres puntos. El diagrama de objetos que se muestra a continuación representa un ejemplo de polígono (un cuadrado
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 3: La programación
orientada a objetos
en este caso).
A partir de este diagrama de objetos, define un diagrama de clases suponiendo que un punto solo puede pertenecer a un único polígono. 3. Define las clases y el diagrama de objetos a partir del siguiente texto Cuenca, oficialmente Santa Ana de los Ríos de Cuenca, es una ciudad del centro sur de la República del Ecuador y es la capital de la provincia del Azuay. Según el último censo poblacional tiene 505805 habitantes. Su Centro Histórico fue declarado Patrimonio de la Humanidad por la Unesco en el año 1999; una de las razones por las que fue declarada Patrimonio Cultural de la Humanidad, son 16 las iglesias que rodean la parte urbana de la ciudad. La Catedral de la Inmaculada Concepción, su construcción comenzó en el año de 1880, y debido a sus dimensiones es considerada una de las más grandes de Sudamérica. La catedral está hecha de alabastro y mármol, posee un majestuoso altar de pan de oro. Los estilos presentes en la arquitectura de la nueva catedral de Cuenca (Ecuador), son romántico y barroco; está delimitado por las calles: Al norte la calle Simón Bolívar, al Sur la Mariscal Sucre, al Este la calle Benigno Malo y al Oeste la calle Padre Aguirre. La Iglesia de San Blas, su construcción se remonta al último tercio del siglo XVI. La actual iglesia fue construida en 1935 pero conserva la misma base que su predecesora, está construida con mármol y también piedras incaicas de lo que fuera la ciudad de Tomebamba. Existe en su interior un bello altar elaborado con mármol, además presenta una fachada de estilo románico que está totalmente recubierta de mármol rosa; está delimitado por las calles, Al norte la calle Simón Bolívar, al Sur la Mariscal Sucre, al Este la Avenida Huaynacápac y al Oeste la calle Manuel Vega.
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 3: La programación
8. Principios Fundamentales de Programación orientada a objetos
orientada a objetos
la
a programación orientada a objetos es una forma de programar que trata de encontrar una solución a los problemas que ocasionaba la programación estructurada. Introduce nuevos conceptos, que superan y amplían conceptos antiguos
ya
conocidos.
Entre
ellos
destacan
los
siguientes:
Encapsulamiento, abstracción y herencia. 8.1 Encapsulamiento Una de los pilares básicos de la POO es la encapsulación de los datos. Según los principios de este paradigma de programación, el acceso a los datos de una clase debe realizarse de forma controlada, protegiéndolos de accesos no deseados.
El objeto alumno muestra las atributos en el núcleo o centro del objeto y los métodos rodeando el núcleo y protegiéndolo de otros objetos del programa. Este hecho de empaquetar o proteger las atributos miembro con los métodos miembro se denomina encapsulación. Cuando se escriben clases, una buena práctica de programación orientada a objetos requiere que los programadores "encapsulen" Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 3: La programación
orientada a objetos
datos lejos de usuario del objeto. Esto significa que cualquier dato o función dentro de una clase no debe estar accesible para el usuario sin una modificación del programador. En la unidad de Trabajo 4, se verá este tema de forma práctica para que aclarar aún más el concepto de encapsulamiento. 8.2 Abstracción Un beneficio de la programación orientada a objetos es que retira al usuario del requisito de saber cómo funcionan otros códigos. Este beneficio, llamado abstracción, significa que el usuario implementando un objeto creado por otro programador para realizar una tarea en particular no necesita saber cómo completa ese objeto su tarea. De esta forma, el usuario se puede concentrar en sus propios problemas, en lugar de preocuparse por la implementación de un objeto que podría querer utilizar. Esto permite a los programadores construir software más grandes y más complejos sobre objetos más pequeños. La capacidad de abstracción es una característica deseable de los lenguajes de programación, pues cuanto mayor sea, mayor será su aproximación al lado humano. En este sentido, la introducción de las clases en los lenguajes orientados a objetos ha representado un importante avance respecto de la programación tradicional y dentro de ellas, las denominadas clases abstractas son las que representan el mayor grado de abstracción. De hecho, las clases abstractas presentan un nivel de "abstracción" tan elevado que no sirven para instanciar objetos de ellas, solo sirven para derivar otras clases, en las que se van implementando detalles y concreciones, hasta que finalmente presentan un nivel de definición suficiente que permita instanciar objetos concretos. Se suelen utilizar
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 3: La programación
orientada a objetos
en aquellos casos en que se quiere que una serie de clases mantengan una cierta característica o interfaz común.
Resulta evidente en el ejemplo de la figura que los diversos animales tienen características diferentes. Realmente tienen poco en común un mamífero y un ovíparo. Sin embargo, la construcción de una jerarquía en la que todos los animales desciendan de un ancestro común, la clase abstracta "Animal", presenta la ventaja de unificar la interfaz. Aunque evidentemente su definición será tan "abstracta", que no pueda ser utilizada para instanciar directamente ningún tipo de animal. Una clase abstracta es aquella que construimos para derivar de ella otras clases (subclases). 8.3 Herencia Otro beneficio de la programación orientada a objetos es la herencia, que también permite a los programadores construir programas más complejos desde partes más simples. La herencia es la forma en que los objetos "heredan" su funcionalidad de otros objetos, acomodándolas para sus necesidades. Por ejemplo, un objeto "Ovíparo" puede heredar su funcionalidad de un objeto "Animal", porque el Ovíparo es un Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 3: La programación
orientada a objetos
animal y requiere toda la funcionalidad del objeto animal (junto con las funciones adicionales de un ovíparo). De esta forma, el programador del objeto Ovíparo no tiene que volver a reescribir el objeto de Animal para utilizarlo, simplemente puede dejar que el objeto Ovíparo herede sus funciones del objeto de Animal.
La herencia es un mecanismo que nos permite crear clases derivadas a partir de una clase base, permitiendo compartir automáticamente métodos y datos entre clases subclases y objetos.
Actividad en clases 1. Los objetos se parecen mucho a los del mundo real, al igual que estos, poseen atributos (datos) y comportamiento (métodos). Cuál sería la clase para un celular. 2. Un ejemplo más próximo de los que se suelen tratar en la informática; cuál sería la clase para una ventana de Windows. 3. Cual sería una clase que permita realizar las cuatro operaciones básicas con dos números enteros.
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 3: La programación
orientada a objetos
Actividad Formativa No. 15 (Lenguaje Java ) Realiza en Word un mapa conceptual que refleje los aspectos más importantes expuestos en la Unidad de Trabajo 4 sobre los siguientes temas: Características del lenguaje Java. Fases o pasos para crear y ejecutar un programa en Java. JVM, JDK, JRE. API de Java. IDEs. Se evaluará en base a la siguiente rúbrica: 1. Orden y jerarquización de conceptos. 2. Comprensión adecuada de los conceptos. 3. Utilización oportuna de los conectores. 4. Calidad del contenido científico expuesto. 5. Calidad del documento final y herramientas utilizadas para la presentación. 6. Conclusiones y recomendaciones. 10. Suba el archivo al aula virtual de PLE en el portal web de la U.E.T.S. en la fecha establecida por el docente
RECUERDE: LA PRÓXIMA CLASE LECCIÓN DE LOS MISMOS TEMAS
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 4: Lenguaje de programación java
Unidad de Trabajo 4
.
1. Lenguajes de Programación os computadores no hablan nuestro idioma, son máquinas y como tales, necesitan un lenguaje específico pensado por el hombre
para
ellas.
Además,
necesitan
constantemente
interpretar todas las instrucciones que reciben. Dada la dificultad de comunicación insalvable entre el computador y el programador aparecieron los lenguajes de programación que hacen posible la comunicación con el microprocesador, utilizando términos y símbolos relacionados con el tipo de problema que se debe resolver, mediante el empleo de herramientas que brinda la informática.
Si decimos que los lenguajes naturales son aquellos con los cuales hablamos y escribimos en nuestras actividades cotidianas, entonces los lenguajes de programación ocuparían una posición intermedia entre los lenguajes naturales humanos y los precisos lenguajes de máquina. Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 4: Lenguaje de programación java
Un lenguaje de programación es un conjunto de reglas (sintaxis), normalmente llamadas instrucciones, las cuales se usan de una cierta manera (semántica) para hacer que la computadora realice una cierta tarea. Este conjunto de reglas es finito y tiene que aplicarse en una forma sistemática para obtener el efecto deseado. Cada año son varios los portales web que lanzan un estudio donde se muestran los lenguajes más utilizados por la comunidad de programadores a nivel mundial, una clasificación que sufre continuos e interesantes cambios. Uno de esos portales es codeeval.com, que lanzó a finales del 2013 una interesante infografía donde se nos presenta cuales son estos lenguajes más utilizados.
Según podemos ver los lenguajes más importantes son: Python, Java, C++, Ruby, PHP, C y JavaScript.
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 4: Lenguaje de programación java
Por muy compleja que sea la herramienta para confeccionar programas, el programa siempre se reduce a una serie de instrucciones en un archivo de texto, conocido como código fuente. 1.1 Código Fuente El código fuente de un programa informático es un conjunto de líneas de texto que son las instrucciones que debe seguir la computadora para ejecutar dicho programa. A menudo se utilizan expresiones como fuente, archivos fuente, ficheros fuente, etc. 1.2 Compilar Compilar significa traducir el código escrito en “Lenguaje entendible por humanos” (por ejemplo Java, C, Pascal, Fortran), a un código en “Lenguaje Máquina”, que entienden las máquinas, pero no entendible por nosotros. Es por eso por lo que usamos un lenguaje más asequible para nosotros (en nuestro caso java) y luego empleamos un traductor (compilador). 1.3 Intérprete Ejecuta una a una las instrucciones de un programa de alto nivel. La entrada es un archivo en un lenguaje de alto nivel, la diferencia con un compilador es que la salida es una ejecución.
2. ¿Qué es java? e puede decir que java es toda una tecnología orientada al desarrollo de software con el cual podemos realizar cualquier tipo de programa. Hoy en día, la tecnología Java ha cobrado mucha Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 4: Lenguaje de programación java
importancia en el ámbito de Internet. Pero Java no se queda ahí, ya que en la industria para dispositivos móviles también hay una gran acogida para este lenguaje. La tecnología Java está compuesta básicamente por 2 elementos: el lenguaje Java y su plataforma. Con plataforma nos referimos a la máquina virtual de Java (Java Virtual Machine).. 2.1 Breve Historia En 1991, la empresa Sun Microsystems crea en ocho meses el lenguaje Oak (de la mano del llamado proyecto Green). Mediante este lenguaje se pretendía crear
un
sistema
de
televisión
interactiva. Este lenguaje sólo se llegó a utilizar de forma interna. Su propósito era crear un lenguaje independiente de la plataforma y para uso en dispositivos electrónicos. La persona que encabezaba el equipo de creación fue James Arthur Gosling26, al que se considera el creador. Antes de la aparición de Java, existían otros importantes lenguajes (muchos se utilizan todavía). Entre ellos el lenguaje C++, que era probablemente el más popular debido a su versatilidad, sin embargo uno de los principales problemas del
26
James Gosling, (19 de mayo de 1955 cerca de Calgary, Alberta, Canadá) es un famoso científico de la computación conocido como el padre del lenguaje de programación Java. En 1977, Gosling se licenció en ciencias de la computación por la Universidad de Calgary. En 1983, se doctoró por la Universidad Carnegie Mellon, antes de unirse a Sun Microsystems, construyó una versión multi-procesador de Unix, así como varios compiladores y sistemas de correo. Desde 1984 James Gosling trabajó en la compañía estadounidense Sun Microsystems donde fue vicepresidente hasta que ésta fue comprada por Oracle. Abandonó esta compañía el 2 de abril de 2010. Posteriormente, empezó a trabajar en Google pero el 28 de marzo de 2011 anunció en su blog que había sido despedido, actualmente es Jefe de Arquitectura de Software en Liquid Robotics. Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 4: Lenguaje de programación java
lenguaje C++ consiste en que al compilar27 se produce un fichero ejecutable cuyo código sólo vale para la plataforma en la que se realizó la compilación. Sun deseaba un lenguaje para programar pequeños dispositivos electrónicos, la dificultad de estos dispositivos es que cambian continuamente y para que un programa funcione en el siguiente dispositivo aparecido, hay que rescribir el código; por eso Sun creó un lenguaje independiente del dispositivo. En 1995 pasa a llamarse Java y se da a conocer al público. Pasa a ser un lenguaje totalmente independiente de la plataforma y a la vez potente y orientado a objetos. Esa filosofía y su facilidad para crear aplicaciones para redes han hecho que sea uno de los lenguajes más utilizados en la actualidad. La primera versión pública de java es la 1.1 lanzada en Enero de 1996 con 59 paquetes y 212 clases, la actual versión de Java pertenece al llamado “Java 2” y su último lanzamiento es la versión 1.8.0_11 lanzada el 14 de Agosto de 2014. 2.2 La máquina virtual de java La creación de programas en muchos lenguajes se basa en el proceso: escribir código fuente --> compilar y obtener programa ejecutable. El compilador se encarga de evitar que se pueda traducir un programa con código fuente mal escrito y de hacer otras verificaciones previas. En este esquema, el archivo ejecutable no es válido para cualquier ordenador. Por ejemplo, si se ha
27
Compilar se refiere a la acción por medio de la cual, una serie de instrucciones escritas o codificadas en lenguaje de programación son convertidas a lenguaje máquina (binario) de tal forma que puedan ser ejecutadas por medio de un programa informático. Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 4: Lenguaje de programación java
generado el ejecutable para Windows, no podrá utilizarse en Macintosh. La novedad introducida de java es que se hizo independiente del hardware y del sistema operativo en que se ejecutaba, java se hizo independiente de la plataforma añadiendo un paso intermedio: los programas java no se ejecutan en nuestra máquina real (en nuestro ordenador o servidor) sino que java simula una “máquina virtual” con su propio hardware y sistema operativo. En resumen, el proceso se amplía en un paso: del código fuente, se pasa a un código intermedio o neutro denominado habitualmente “bytecode” entendible por la máquina virtual java. Y es esta máquina virtual simulada, denominada Java Virtual Machine o JVM, la encargada de interpretar el bytecode dando lugar a la ejecución del programa.
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 4: Lenguaje de programación java
Entonces la JVM interpreta este código neutro convirtiéndolo a código particular de la CPU o chip utilizado, de ésta manera se evita tener que realizar un programa diferente para cada CPU o plataforma. La JVM es el intérprete de Java y ejecuta los “bytecodes” (ficheros compilados con extensión *.class) creados por el compilador de Java (javac.exe). 2.3 Características de java Las características principales que nos ofrece Java respecto a cualquier otro lenguaje de programación, son: Multiplataforma: Lo que se conoce como "write once, run everywhere", escribe una vez y ejecuta cuando quieras. Es un lenguaje que funciona independiente del sistema operativo sobre el que se ejecuta. Esto se puede conseguir con una máquina virtual que hace de puente entre el lenguaje y el sistema operativo. Es el único lenguaje que tiene esta arquitectura, aunque existan otros lenguajes que también funcionan en varios sistemas operativos. Orientado a objetos: Es un lenguaje enteramente diseñado para programar con Orientación a objetos, es decir, usa clases, objetos, métodos y soporta las tres características propias del paradigma de la orientación a objetos: encapsulación, herencia y polimorfismo. Robusto: Java realiza verificaciones en busca de problemas tanto en tiempo de compilación como en tiempo de ejecución. Además la comprobación de tipos en Java ayuda a detectar errores, lo antes posible, en el ciclo de desarrollo. Seguro: Existe una preocupación lógica en Internet por el tema de la seguridad: virus, caballos de Troya, y programas similares navegan de forma usual por la red, constituyendo una amenaza palpable. Java ha
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 4: Lenguaje de programación java
sido diseñado poniendo un énfasis especial en el tema de la seguridad, y se ha conseguido lograr cierta inmunidad en el aspecto de que un programa realizado en Java no puede realizar llamadas a funciones globales ni acceder a recursos arbitrarios del sistema, por lo que el control sobre los programas ejecutables no es equiparable a otros lenguajes.
3. El entorno de desarrollo de Java ara escribir en Java hacen falta los programas que realizan el compilado y la interpretación del código, hay entornos que permiten la creación de los bytecodes y que incluyen herramientas con capacidad de ejecutar aplicaciones de todo tipo. El más famoso es el Java Developer Kit (JDK28) de Oracle. Es un conjunto de programas y librerías que permiten desarrollar, compilar y ejecutar programas en Java. En el JDK el compilador se llama javac.exe y el intérprete es java.exe.
28
JDK en español “Kit de desarrollo java”, puede descargar el JDK más actualizado en http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads1880260.html?ssSourceSiteId=otnes Tenga en cuenta que debe descargar el JDK acorde al sistema operativo del computador que se va instalar. Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 4: Lenguaje de programación java
Existe también una versión reducida del JDK, denominada JRE (Java Runtime Environment) destinada únicamente a ejecutar código Java (no permite compilar). Aunque el código fuente podría escribirse en un editor de texto como el bloc de notas, compilarse con javac.exe y luego utilizar el intérprete para probar el programa, actualmente tenemos los IDEs (Integrated Development Environment), tal y como su nombre indica, son entornos de desarrollo integrados. En un mismo programa es posible escribir el código Java, compilarlo y ejecutarlo sin tener que cambiar de aplicación. Algunos incluyen una herramienta para realizar Debug gráficamente (control de errores), frente a la versión que incorpora el JDK
basada
en
la
utilización
de
una
consola
(denominada
habitualmente ventana de comandos de MS-DOS, en Windows NT/95/98) bastante difícil y pesada de utilizar. Estos entornos integrados permiten desarrollar las aplicaciones de forma mucho más rápida, incorporando en muchos casos librerías con componentes ya desarrollados, los cuales se incorporan al proyecto o programa. Algunos de los IDE's más conocidos son:
NetBeans (http://www.netbeans.org) Open-Source. Eclipse (http://www.eclipse.org) Open-Source. Sun Java Studio (http://developers.sun.com/jsenterprise/index.jsp) de Sun.
JBuilder (http://www.codegear.com/products/jbuilder) de Borland. WebSphere Studio (http://www-306.ibm.com/software/awdtools/developer ) de IBM.
JDeveloper (http://www.oracle.com/technology/products/jdev/index.html) de Oracle.
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 4: Lenguaje de programación java
Como podemos ver existen varios entornos que han encontrado aceptación por profesionales y aficionados. Los más conocidos son probablemente Eclipse y NetBeans y resultan más interesantes por ser de código abierto, para este curso se ha escogido NetBeans por presentar una ventaja adicional: al ser desarrollado por la compañía Sun, la misma que creó Java, puede descargarse e instalarse en un mismo paquete con el kit de desarrollo JDK, lo cual simplificará su instalación a los alumnos. Actividad en clases Realiza en tu cuaderno un mapa conceptual que refleje los aspectos más importantes expuestos hasta ahora.
4. Entorno de NetBEANS
desarrollo
integrado
etBeans es una herramienta para programadores pensada para escribir, compilar, depurar y ejecutar programas. Es un proyecto de código abierto de gran éxito con una gran base de usuarios, una comunidad en constante crecimiento, y con cerca de 100 socios, nace como un proyecto estudiantil en la República Checa en 1996 con el nombre original de Xelfi. La instalación de NetBeans no presenta ninguna complicación, incluso si se escoge descargarlo por separado desde la web del programa. Al abrir NetBeans nos encontramos una pantalla de inicio (Start Page) con tres fichas: Learn & Discover para acceder a demos y tutoriales en línea, My NetBeans para abrir proyectos recientes y What’s New para noticias y actualizaciones nueva; si no desea volver a ver esta pantalla Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 4: Lenguaje de programación java
simplemente desactive la casilla de verificación ubicada en la parte superior izquierda.
Desactive la casilla de verificación si no desea volver a ver la pantalla de Inicio (Start Page)
4.1 Los proyectos en NetBEANS Un proyecto es la unidad básica de trabajo en el IDE de NetBEANS, incluye
todos
los
archivos
con
qué
está
trabajando
y
las
configuraciones de IDE que aplica a esos archivos. NetBeans IDE tiene un sistema de los proyectos muy claro, siempre tiene abierto un proyecto a la vez. Recuerde que NetBeans siempre trabaja sobre proyectos, no puede compilar ficheros que no estén integrados dentro de un proyecto. Ejemplo paso a paso Crear un nuevo proyecto en NetBEANS . 1. Escoja
el
comando
Barra
de
simplemente presione en el ícono
Menú|File|New
Project
o
de la barra de herramientas.
2. Inmediatamente aparecerá el asistente para creación de proyectos que consta de dos pasos.
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 4: Lenguaje de programación java
En el primer paso del asistente se indica de qué tipo va a ser el proyecto, escogemos la Categoría de Java y en Proyectos a Java Application, presionamos el botón de comando Next (Siguiente) con el botón izquierdo del mouse. 3. En la siguiente ventana del asistente escogeremos una ubicación en el disco para almacenarlo. Nombre del Proyecto
Ubicación y carpeta del proyecto
Nombre del paquete
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Nombre de la Clase Principal
Unidad de Trabajo 4: Lenguaje de programación java
También nos dará la opción para crear automáticamente una clase principal, la llamaremos Saludo. Una vez hecho esto, presionamos el botón de comando Finish (Finalizar) con el botón izquierdo del mouse. Una vez hecho esto inmediatamente aparecerá la ventana de trabajo nos resultará sin duda compleja, pero también familiar, pues al igual que la mayoría de ventanas de Windows, tiene barra de menú y barra de herramientas. La barra de herramientas tiene cierta similitud con algunos comandos usados en PseInt. 4.2 Ventana de trabajo de NetBEANS Barra de Herramientas Pestañas de archivos abiertos
Barra de Menú
Explorador de archivos
Ventana de edición
Botones para mostrar u ocultar fragmentos de código
Detalles sobre clases
Area para salida de resultados
Uno de los elementos importantes de la ventana de trabajo es el explorador de archivos, que consta de tres fichas: Projects, Files, Services y Profiler. Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 4: Lenguaje de programación java
Carpeta para los paquetes del proyecto
Paquetes del proyecto
La clase que contiene el método principal main está destacada con una flecha verde en su icono
4.3 Detalles sobre la clase La parte inferior izquierda es como un diagrama de clase: incluye toda la información sobre atributos y métodos de la clase que estemos editando.
Métodos de la clase
Atributos de la clase
4.4 Los paquetes en java Cuando escribimos un proyecto en el que se incluye un número considerable de clases que están relacionadas entre ellas, ya sea por su temática o por cualquier otro motivo que así lo decide el programador, se hace indispensable disponer de un método para organizarlas de
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 4: Lenguaje de programación java
alguna manera. Java proporciona ese método mediante los paquetes o packages. Los paquetes no son más que un conjunto de clases afines (y otros tipos de datos, como las interfaces). Al pertenecer a un determinado paquete, no sólo indicamos que se trata de clases relacionadas, sino que también creamos un espacio de nombres y una estructura en el sistema de archivos donde se almacenan dichas clases. Examinando en detalle la carpeta del proyecto podremos ver que se han creado algunas subcarpetas y archivos en el directorio de trabajo: Incluye la información del proyecto NetBeans y generalmente no debe modificarse
En ésta carpeta se guardan los archivos .java
En ésta carpeta se guardan los archivos .class
De ellas sólo nos van a interesar dos: en src se encuentran los archivos fuente de nuestro programa, mientras que en build es donde guarda NetBeans los archivos compilados (.class). Para añadir una nueva clase al proyecto sólo tienes que utilizar el botón New Class; si lo que quieres es agregar al proyecto clases ya existentes, la forma más rápida consiste en copiarlas directamente a la carpeta src.
5. Esquema básico de un programa en Java n toda aplicación de java se pueden identificar los siguientes elementos del lenguaje: comentarios, definiciones de clase, definiciones de método y sentencias.
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 4: Lenguaje de programación java
Definición del paquete: En esta primera línea de código se indica a qué paquete pertenece la clase creada. En el ejemplo la clase Saludo pertenece al paquete bienvenida. El nombre ya se lo definió en la segunda pantalla para la creación de un proyecto de NetBEANS, no debe cambiar o peor borrar ésta línea. Comentario: Los comentarios son ignorados por el compilador y son útiles para que el programador documente un programa. En java existen dos formas de escribir comentarios:
Comentarios de una línea. Si es de línea completa, ésta debe iniciarse con //. Si sólo parte de la línea es comentario, el separador // delimitará la frontera entre lo que es código a compilar (a la izquierda del separador) y lo que es comentario (a la derecha del separador y hasta el final de la línea).
Comentarios de varias líneas. Deben escribirse dentro de los separadores /* (para marcar el inicio) y */ (para marcar el final del comentario).
Definición del Paquete Comentarios de varias líneas
Comentario de una línea
Definición de clase: La definición de la clase comienza por la palabra inglesa public, es decir, la clase creada es pública, esto quiere decir que se tendrá acceso a dicha clase desde cualquier parte del código sin
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 4: Lenguaje de programación java
ningún tipo de complicaciones.
El nombre de la clase lo define el
programador en la segunda pantalla para la creación de un proyecto de NetBEANS, para seguir estándares debe empezar con una letra mayúscula. Inicio de la clase: La llave abriendo "{", quiere decir que todo lo que haya después de esta llave forma parte de la clase (en nuestro ejemplo Saludo) e indica el comienzo de las líneas de sentencia de ésta. Definición de método: Después de la definición de clase se escribe la definición del método main. Todos los programas java deben incluir un método main; éste método29 indica las sentencias a realizar cuando se ejecuta un programa. Las sentencias de un método quedan delimitadas por los caracteres { y } que indican el inicio y el fin del método, respectivamente.
29
Un método es una secuencia de sentencias ejecutables. Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 4: Lenguaje de programación java
El método main es público; la palabra inglesa static indica que el método es estático, es decir, propio de la clase, y puede ser invocado sin instanciar la clase. Además el método main es del tipo void, osea vacío (una función puede retornar valores del tipo entero, decimal, cadena de texto, entre otros) al poner void, estamos queriendo decir que la función main no retornará nada al finalizar. Fin de la clase: Una llave cerrando "}" nos indica que en ésta línea cierra la definición de nuestra clase y da por terminado el código de nuestro programa básico en Java. 5.1 ¿Cómo escribir mensajes en java? Para escribir un mensaje en la consola30 se utilizan los métodos System.out.print() y System.out.println(). Para escribir un mensaje sin saltar a la línea siguiente se utiliza System.out.print(),
System.out.println()
escribe
un
mensaje y da un salto de línea. Java es sensible a mayúsculas y minúsculas, es decir, no es lo mismo System.out.print() que SysteM.out.print(), pues el compilador generará un error que SysteM no existe; de la misma manera si se declaró una variable como notas y luego quiere usar la variable como Notas generará un error de variable inexistente. Ejemplo Desarrolle un programa para escribir el mensaje Bienvenidos a la UETS. 1. Análisis OBJETIVO (SALIDA): E l texto Bienvenidos a la UETS. 30
Consola: Ventana de NetBeans (Ouput) que nos permite ingresar datos desde el teclado, visualizar resultados en el monitor y mostrar mensajes de error en el caso de que el código los tenga. Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 4: Lenguaje de programación java
ELEMENTOS BÁSICOS (DATOS): No hay par éste programa. CONDICIONANTES: No hay par éste programa. 2. Diseño
3. Implementación. Pasamos los pasos indicados en el pseudocódigo a java en el IDE de NetBEANS. El Nombre del programa en éste caso sería el nombre de la clase; el inicio y el fin correspondería al inicio y fin del método main de la clase Saludo.
4. Pruebas. Presionar el botón Run Project (triángulo verde
) de NetBEANS en
la barra de herramientas o simplemente presione la tecla F6 para verificar los resultados:
Se puede comprobar que la solución sí funciona, pues en la consola aparece el mensaje pedido. Combinando
el
uso
de
los
métodos
System.out.print()
y
System.out.println() se puede escribir cualquier mensaje en la consola Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 4: Lenguaje de programación java
saltando de línea cuando sea necesario. Además, ambos métodos permiten utilizar el operador + para concatenar textos. Para mostrar por la consola un texto seguido del valor almacenado de una variable se puede ejecutar dos veces el método System.out.print(): System.out.print("El perímetro es "); System.out.print(perimetro);
Este código se puede simplificar utilizando el operador + para concatenar el texto “El perímetro es ” con el valor almacenado en la variable perimetro. System.out.print("El perímetro es " + perimetro);
En ambos casos el resultado es el mismo. Por ejemplo, si el valor almacenado en la variable perímetro fuera 157.08 la salida por la consola sería: El perímetro es 157.08 5.2 Tipos de datos y declaración de variables en java Descripción
Tipo
Valor mínimo y valor máximo
Numérico
byte
-128 a 127
entero
short
-32.768 a 32.767
int
-2.147’483.648 a 2.147’483.647
long
-922.117’036.854’775.808 a +922.117’036.854’775.807
Numérico
float
±3.40282347e+38 a ±1.40239846e-45
Real
double
±1.7976931348623157e+309 a ±4.94065645841246544e-324
Carácter
char
--
Lógico
boolean
true, false
Las variables de java pueden ser de un tipo primitivo de datos o una referencia a un objeto. Los tipos primitivos permiten representar valores
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 4: Lenguaje de programación java
básicos, tal como se estudió en la Unidad de Trabajo 2, entonces éstos tipos se clasifican en números enteros, números reales, caracteres y valores booleanos. Los valores de tipo caracter representan un carácter Unicode. Se escriben siempre entre comillas simples, por ejemplo 'a', 'A', '0', '9'. Los caracteres que tienen una representación especial se indican en la siguiente tabla. Caracter
Significado
\b
Retroceso
\t
Tabulador
\n
Salto de línea
\r
Cambio de línea
\"
Caracter comilla doble
\'
Caracter comilla simple
\\
Caracter barra hacia atrás
Por ejemplo si quisiéramos visualizar el texto “Bienvenidos a la UETS”, es decir, que el texto parezca entre comillas simples la sentencia sería: System.out.print(“\'Bienvenidos a la UETS\'”);
5.3 Declaración de variables Antes de poder utilizar una variable, ésta se debe declarar. Lo cual se debe hacer de esta forma: tipo nombrevariable;
Donde tipo es el tipo de datos que almacenará la variable (texto, números enteros,...) y nombrevariable es el nombre con el que se conocerá la variable. Ejemplos: int dias; boolean decision;
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 4: Lenguaje de programación java
También se puede hacer que la variable tome un valor inicial (inicializar) al momento de declarar: int dias=365;
Y también se puede declarar más de una variable a la vez, cuando son del mismo tipo: int dias=365, anio=23, semanas;
Los textos en java Un texto en Java pertenece a la clase String y como ya se estudió en la Unidad de Trabajo 2 se expresa como el texto entre comillas dobles. Un texto siempre debe aparecer en una sola línea. Para concatenar varios textos se debe utilizar el operador +. Los nombres de variables Para nombres de variables usaremos la notación aprendida en la Unidad 2, una de ellas es conocida como la notación Camello o Camel en inglés, consiste en escribir los identificadores con la primera letra de cada palabra en mayúsculas y el resto en minúscula: SumaNotaFinal, se llama notación “Camel” porque los identificadores recuerdan las jorobas de un camello. Existen dos variantes: UpperCamelCase, CamelCase o PascalCase: en esta variante la primera letra también es mayúscula. lowerCamelCase, camelCase o dromedaryCase: la primera letra es minúscula. En el lenguaje Java, se usa la notación CamelCase en identificadores para clases, y dromedaryCase para métodos y variables.
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 4: Lenguaje de programación java
La notación Camel se utiliza también en publicidad y marcas comerciales: PlayStation, easyJet, ….etc.
6. Instanciar clases en java
I
nstanciar una clase significa lo mismo que «crear un objeto». Cuando se crea un objeto, se crea una «instancia» de una clase, por lo tanto «se instancia» una clase.
Para instanciar (crear) objetos de una determinada clase (estándar de Java, creada por nosotros, o por un tercero) podemos encontrarnos con dos formas que podemos aplicar. 6.1 Declarar la variable y luego instanciar 1. Declarar la variable de forma similar a la declaración de las variables habituales. 2. Instanciar un objeto de la clase utilizando la palabra reservada new. Una vez creado el objeto, podemos guardarlo en una variable o utilizarlo dentro de cualquier expresión compatible con la clase del objeto creado. NombreDeLaClase nombreDeLaVariable; nombreDeLavariable = new NombreDeLaClase();
Por ejemplo para declarar la variable fido e instanciar un objeto que se le asigne a dicha variable y haga referencia
a la clase Animal las
instrucciones serían: Animal fido; fido = new Animal();
El operador new instancia una clase reservando memoria para un objeto nuevo y devolviendo una referencia a esa memoria.
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 4: Lenguaje de programación java
6.2 Declarar la variable e instanciar en una misma instrucción Es muy habitual que a la vez que se declara una variable, se cree un objeto de su misma clase y se le asigne a dicha variable, formando una sentencia completa en la misma línea de la siguiente forma: Animal fido = new Animal();
6.3 Constructores El constructor es un método que es llamado automáticamente al crear un objeto de una clase, es decir, al usar la instrucción new. Entonces un constructor no es más que un método que tiene el mismo nombre que la clase. Con lo cual para crear un constructor basta definir un método en el código de la clase que tenga el mismo nombre que la clase. Un objeto se crea utilizando el llamado constructor de la clase. El constructor es el método que permite iniciar el objeto. Por ejemplo si tenemos una clase llamada MiPunto que tiene los atributos x y y, si queremos que dichos valores se inicialicen con 5 y 10 respectivamente, los podemos inicializar en el constructor de la siguiente manera: public class MiPunto { //Inicio de la clase MiPunto int x, y; MiPunto()//<------ Constructor { //Inicio del Constructor x = 5; y = 10; } //Fin del Constructor } //Fin de la clase MiPunto
6.4 Invocar métodos que no tienen parámetros Un método se puede invocar dentro o fuera de la clase donde se ha declarado. Si el método se invoca dentro de la clase, basta con indicar Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 4: Lenguaje de programación java
su nombre y si el método se invoca fuera de la clase entonces se debe indicar el nombre del objeto y el nombre del método (separados por un punto). Los métodos que no tienen parámetros luego del nombre del método tienen paréntesis vacíos (), los métodos que no devuelven ningún resultado tienen la palabra reservada void antes del nombre. void comer()
Ejemplo La jirafa es un animal vivíparo que tiene una longevidad de hasta 21 años, la tortuga es un animal vivíparo y en ciertas especies vive hasta 180 años, las boas son animales ovivíparos y viven hasta 20 años, un gato es un animal vivíparo que tiene una longevidad de hasta 16 años. Todos los animales deben comer y dormir para sobrevivir. Todos los animales son heterótrofos, es decir, que se nutren de sustancias que han sido elaboradas por otros organismos (no poseen capacidad para sintetizar su propio alimento). Desarrolle una clase que refleje los datos y comportamiento de todos los animales, inicialice la clase con el valor que se repite para todos los animales; además instancie le clase con los datos de un animal cualquiera. El programa debe dar las características del animal instanciado y mostrar en pantalla que está haciendo. 1. Análisis OBJETIVO (SALIDA): Mostrar en pantalla las características de un animal y qué está haciendo. ELEMENTOS BÁSICOS (DATOS): Todos los animales (incluidos los del enunciado) tienen: un nombre, una clasificación de acuerdo a su tipo de reproducción y una expectativa de vida, estos serían los atributos de la clase; Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 4: Lenguaje de programación java
además se sabe que todo animal debe comer y dormir, éstos serían los métodos de la clase. CONDICIONANTES: La clase debe usarse en cualquier animal. 2. Diseño Diagrama de clases: Clase Animal Clase Animal nombre: String tipoReproduccion: String longevidad: byte alimentacion: String
comer() dormir()
Pseudocódigos y diagramas de flujo para cada método de la clase
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 4: Lenguaje de programación java
3. Implementación.
void significa que el método no devuelve ningún resultado
CONSTRUCTOR
() Los paréntesis vacíos significan que al método no ingresa ningún parámetro (dato)
MÉTODO PRINCIPAL
4. Prueba.
Se puede comprobar que se ha instanciado la clase Animal para la variable fido y se ha “heredado” el atributo alimentación para mostrar como parte del resultado. La ventaja de la programación orientada a objetos es la reusabilidad, es decir, así como se instanció para un solo animal se lo puede hacer para todos los animales que se necesiten.
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 4: Lenguaje de programación java
En éste ejemplo se ha instanciado en cuatro objetos la clase Animal, además se ha usado los métodos de la clase. El resultado sería:
Actividad en clases Realice el análisis, diseño, implementación (Crear en NETBEANS un proyecto con el nombre actividad16A) y pruebas de una clase Alumno para el enunciado: “Pablo Vidal es alumno del Segundo E2 de Aplicaciones Informáticas en la asignatura de Programación tiene 8.32 en el primer parcial, 5.11 en el segundo parcial y 7.44 en el tercer parcial y en el examen sumativo sacó 7.61. Rossy Galán es alumna del Primero F1 de Ciencias Básicas, en la asignatura de Química tiene 7.25 en el primer parcial, 9.09 en el segundo parcial y 8.74 en el tercer parcial, en el examen sumativo sacó 6.95. Pablo y Rossy son de la U.E.T.S., como otros jóvenes juegan y a veces estudian”. Recuerde que la clase debe usarse en cualquier alumno de la UETS.
6.5 ¿Cómo se hace la lectura de datos en java? La clase Scanner está disponible a partir de Java 5 y facilita la lectura de datos en los programas Java. Ésta es una forma para leer datos más
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 4: Lenguaje de programación java
fácil de entender que la que utiliza el InputStreamReader y el BufferedReader. Para utilizar Scanner en el programa tendremos que hacer los tres pasos siguientes: 1. Importar la clase Scanner Hay código que se puede utilizar en los programas que realicemos en Java, es decir, se puede importar clases de objetos que están contenidas, a su vez, en paquetes estándares. Por ejemplo la clase Date es una de las más utilizadas, sirve para manipular fechas. Si alguien quisiera utilizar en su código objetos de esta clase, necesita incluir una instrucción que permita utilizar esta clase. La sintaxis de esta instrucción es: import paquete.subpaquete.subsubapquete....clase
Esta instrucción se coloca en la parte superior de todo el código. Por ejemplo si queremos importa la clase Date sería: import java.util.Date;
Lo que significa, importar en el código la clase Date que se encuentra dentro del paquete util que, a su vez, está dentro del gran paquete llamado java. De la misma manera la clase Scanner que nos permite capturar datos desde donde se le especifique, esta se encuentra en el paquete java.util por lo cual será necesario importar ese paquete para poder utilizarla o bien, llamándola desde su dirección. import java.util.Scanner;
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 4: Lenguaje de programación java
2. Crear un objeto Scanner Tenemos que crear un objeto de la clase Scanner asociado al dispositivo de entrada. Si el dispositivo de entrada es el teclado escribiremos: Scanner lectura = new Scanner(System.in);
Se ha creado el objeto lectura asociado al teclado representado por System.in. Una vez hecho esto podemos leer datos por teclado. 3. Lectura de la variable con el objeto Scanner creado Los objetos Scanner tienen varios métodos que nos permiten capturar datos (Leer) según nuestras necesidades por ejemplo nextInt() para leer un entero, nextDouble() para leer un double, etc. Por ejemplo para hacer la lectura por teclado de un número entero: int n; System.out.print("Introduzca un número entero: "); n = lectura.nextInt();
Un ejemplo de lectura de un número de tipo double sería: double x; System.out.print("Introduzca número de tipo double: "); n = lectura.nextDouble();
Un ejemplo de lectura de una cadena de caracteres: String s; System.out.print("Introduzca texto: "); s = lectura.nextLine();
Ejemplo Usando el proyecto del ejemplo anterior (clase Animal) e instanciando la clase Scanner, modifique el programa de tal manera que se puedan ingresar los datos del animal desde el teclado. El
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 4: Lenguaje de programación java
programa debe dar las características del animal instanciado y mostrar en pantalla que está haciendo el animal. 1. Análisis El objetivo y los elementos básicos son los mismos del ejemplo anterior. CONDICIONANTES: La clase debe usarse en cualquier animal y los datos deben ingresarse desde el teclado. 2. Diseño El Diagrama de clases y pseudocódigos de los métodos son los mismos del ejemplo anterior. 3. Implementación
5. Prueba.
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Datos obtenidos por herencia de la clase Animal.
Unidad de Trabajo 4: Lenguaje de programación java
Actividad Formativa No. 16 (Estructura básica en Java ) 1. Usando el proyecto de La Actividad en clases (actividad16A) e instanciando la clase Scanner, modifique el programa de tal manera que se puedan ingresar los datos del alumno desde el teclado. Al final el programa debe dar las características del alumno instanciado y mostrar en pantalla que está haciendo. 2. En un supermercado las compras se hacen solo en efectivo y tienen los artículos clasificados en las categorías alimentos, medicina, ropa, tecnología y adornos; por ejemplo los teclados están dentro de la categoría Tecnología cuestan 14,25 y si compramos 3, el costo de los teclados sería 42,75. Por temporada a veces a los precios de los productos se hacen un descuento o suben su costo. Crear un proyecto actividad16B y haga una clase para los productos, instancie la clase Scanner de tal manera que se puedan ingresar los datos del producto desde el teclado. Al final el programa debe dar las características del producto, el precio final a pagar y debe mostrar en pantalla si esta en descuento o va subir (un método para cada uno). Por ejemplo una salida en consola podría ser:
Atributo calculado con el precio unitario y la cantidad comprada
Datos obtenidos por herencia de la clase.
11.Comprima las carpetas de los dos proyectos y suba al aula virtual de PLE en el portal web de la U.E.T.S. en la fecha establecida por el docente RECUERDE: EVITE LA DESHONESTIDAD ACADÉMICA Y PARA CUALQUIER DUDA ACERQUESE AL DOCENTE EN HORARIO DE TUTORIAS
7. Trabajar con varias clases en java
n Java podemos definir varias clases dentro de un mismo proyecto, con la única condición de que sólo una de esas clases sea declarada como "pública". La primera clase será la
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 4: Lenguaje de programación java
que tiene los atributos y métodos para resolver un problema determinado y la segunda clase servirá para “utilizar” la primera. Ejemplo Desarrolle un programa con dos clases que permita sacar el área y perímetro de un rectángulo dado. 1. Análisis OBJETIVO (SALIDA): Calcular área y perímetro de un rectángulo dado. ELEMENTOS BÁSICOS (DATOS): Base y altura del triángulo. CONDICIONANTES: El programa debe tener dos clases. 2. Diseño Diagrama de clases: Clase Rectángulo
Pseudocódigos y diagramas de flujo para cada método de las clases
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 4: Lenguaje de programación java
3. Implementación En NetBEANS creamos la primera clase, será la que va “usar”, le llamaremos UsaRectangulo.
Creamos la segunda clase, es decir, la que contendrá los atributos y métodos que resuelven el problema. Para lo cual daremos un clic derecho en el nombre del paquete y escogemos el comando New|Java Class.
Ahora nuestra clase se llamará Rectángulo:
El código de la clase Rectángulo será el que corresponde al diagrama de clases y a los pseudocódigos de los métodos:
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 4: Lenguaje de programación java
Esta clase contiene los atributos y métodos que resuelven el problema. No tiene el método main()
Esta clase solo “usa” la clase que resuelve el problema. Contiene la clase main().
4. Prueba.
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 4: Lenguaje de programación java
8. Paso de parámetros en Java y ámbito de las variables n parámetro es una variable que puede pasar su valor a un
método desde el método principal o desde otro método. Existen ocasiones en que es necesario mandar al método ciertos valores para que los use en algún proceso. Mientras cada método realiza una tarea específica, el método principal hace las veces de director determinando cuando llamar a cada uno de los métodos, es decir tiene la lógica general. Los valores que se pasan del cuerpo principal del programa al procedimiento se llaman parámetros. 8.1 Parámetros actuales Son los argumentos que aparecen en la llamada a un método. Contienen los valores (datos) que se le pasan al método. Un parámetro actual puede ser una variable, un objeto, un valor literal válido, etc.
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 4: Lenguaje de programación java
8.2 Parámetros formales Son los argumentos que aparecen en la cabecera del método. Reciben los valores que se envían en la llamada al método. Se utilizan como variables normales dentro del método.
Los parámetros actuales y los formales deben coincidir en número, orden y tipo.
Si el tipo de un parámetro actual no coincide con su correspondiente parámetro formal, el sistema lo convertirá al tipo de este último, siempre que se trate de tipos compatibles. Si no es posible la conversión, el compilador dará los mensajes de error correspondientes.
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 4: Lenguaje de programación java
Si el método devuelve un valor, la llamada al método puede estar incluida en una expresión que recoja el valor devuelto. 8.3 Ámbito de una variable El ámbito o alcance de una variable es la zona del programa donde la variable es accesible, el ámbito lo determina el lugar donde se declara la variable. En Java las variables se pueden clasificar según su ámbito en variables miembro de una clase o atributos de una clase, variables locales y variables de bloque Variables miembro o atributos de una clase Son las declaradas dentro de una clase y fuera de cualquier método. Aunque suelen declararse al principio de la clase, se pueden declarar en cualquier lugar siempre que sea fuera de un método. Son accesibles en cualquier método de la clase y pueden ser inicializadas. Si no se les asigna un valor inicial, el compilador les asigna uno por defecto: 0 para las numéricas '\0' para las de tipo char null para String y resto de referencias a objetos. Variables locales Son las declaradas dentro de un método y su ámbito comienza en el punto donde se declara la variable. Están disponibles desde su declaración hasta el final del método donde se declaran y no son visibles desde otros métodos.
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 4: Lenguaje de programación java
Distintos métodos de la clase pueden contener variables con el mismo nombre, pues se trata de variables distintas. El nombre de una variable local debe ser único dentro de su ámbito. Si se declara una variable local con el mismo nombre que una variable miembro de la clase, la variable local oculta a la miembro. La variable miembro queda inaccesible en el ámbito de la variable local con el mismo nombre, se crean en memoria cuando se declaran y se destruyen cuando acaba la ejecución del método. No tienen un valor inicial por defecto, el programador es el encargado de asignarles valores iniciales válidos. Variables de bloque Son las declaradas dentro de un bloque de instrucciones delimitado por llaves { } y su ámbito comienza en el punto donde se declara la variable. Están disponibles desde su declaración hasta el final del bloque donde se declaran y no son visibles desde otros bloques.
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 4: Lenguaje de programación java
9. Métodos con valor de retorno
os métodos con valor de retorno son métodos que pueden recibir datos de entrada por medio de variables locales (parámetros) y posteriormente retorna un resultado al punto
donde es llamado. Este tipo de métodos se utiliza para operar cualquier tipo de proceso que produzca un resultado. Antes de continuar es importante recordar que el formato de definición de un método es el siguiente: tipo_de_valor_devuelto nombre_del_método (lista de parámetros_formales) { Sentencias_del_método; }
Los métodos con valor de retorno se podrían clasificar en dos tipos: Métodos con valor de retorno sin parámetros y Métodos con valor de retorno con parámetros. 9.1 Métodos con valor de retorno sin parámetros Este tipo de métodos no reciben datos de entrada; pero de igual forma retornan un resultado al punto donde son llamados. Su definición es de la siguiente manera:
El método principal recibe el resultado
tipo nombreMetodo() { Declaracion de variables locales Cuerpo del método return valor; }
En tipo definimos el tipo de valor que queremos que nuestro método devuelva (int, float, boolean,
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Método Principal 3 r = nombreMétodo()
1
El método principal llama al método1
Método1 return resultado
2
El método1 devuelve un resultado
Unidad de Trabajo 4: Lenguaje de programación java
etc.). Una vez que se ha programado todo el código para resolver el problema, se tiene que devolver el resultado al lugar desde donde se invocó al método. Para eso vamos a utilizar la palabra reservada de Java return y la expresión o variable que queremos que devuelva. En el programa principal, se invoca (llama) al método asignando el método a una variable, para que “reciba” el resultado”. variable = nombreMetodo();
9.2 Métodos con valor de retorno con parámetros Este tipo de métodos reciben datos de entrada por medio de parámetros y retornan un resultado al punto de su llamado. Método Principal El método principal recibe el resultado
3
r = nombreMétodo( a , b )
1
El método principal llama al método1, y envía los datos
Método1 return resultado
2
El método1 devuelve un resultado
Su definición es de la siguiente manera: tipo nombreMetodo(tipo1 p, tipo2 q, tipo3 r, ...) { Declaración de variables locales Cuerpo del método return valor; }
Donde, tipo es el tipo de valor de retorno; p, q, r, ... son los nombres de los parámetros formales; tipo1, tipo2, tipo3, ... son los tipos de datos de los parámetros formales y valor es el valor de retorno.
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 4: Lenguaje de programación java
En el programa principal, se invoca (llama) al método asignando el método a una variable, para que “reciba” el resultado” y se envía los datos a través de los parámetros actuales. variable = nombreMetodo(v1, v2, v3, ...);
Donde v1, v2, v3, ... son los valores dados a los parámetros. Un error común de programación, es olvidar devolver un valor de un método que debe devolver un valor, dicho error es de sintaxis. Si se especifica un tipo de valor de retorno que no sea void, el método debe contener una instrucción return que devuelva un valor del tipo de valor de retorno del método. De manera similar, devolver un valor de un método cuyo tipo de valor de retorno se haya declarado void es un error de sintaxis. Ejemplo Desarrolle un programa con dos clases que permita sacar el área y perímetro de un triángulo dado. Los datos se leerán en la clase principal, la cual debe “enviar” dichos datos a los métodos correspondientes para que éstos a su vez devuelvan el resultado a la clase principal. Asígnele al proyecto el nombre de actClases16. 1. Análisis OBJETIVO (SALIDA): Calcular área y perímetro de un triángulo dado. ELEMENTOS BÁSICOS (DATOS): Tres lados y la altura del triángulo. CONDICIONANTES: El programa debe tener dos clases. 2. Diseño Diagrama de clases: Clase Triangulo Clase Triangulo lado1: float lado2: float base: float altura: float float calcularArea(base, altura) float calcularPerimetro(lado1, lado2, base, altura)
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 4: Lenguaje de programación java
Pseudocódigos y diagramas de flujo para cada método de la clase
3. Implementación
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 4: Lenguaje de programación java
4. Prueba.
Actividad en clases Dados las notas sobre 10, del primer parcial, segundo parcial, tercer parcial y examen quimestral, desarrolle un primer método en el que ha de promediar los tres parciales y además calcular la equivalencia a 8; en un segundo método calcular la equivalencia a 2 del examen quimestral. En el método principal se ingresarán los datos, los mismos que se enviarán como parámetros a los métodos. Cada método devolverá sus resultados al método principal, para que se calcule la nota final del quimestre, es decir, la suma de la equivalencia a 8 de los parciales más la equivalencia a 2 del examen quimestral. Resuelva en NETBEANS, en un proyecto con el nombre actividad17B, el proyecto debe tener dos clases.
10. Estructuras de control
odos los lenguajes poseen las mismas herramientas básicas de programación, estas herramientas básicas se conocen como estructuras de control, las mismas permiten tomar decisiones
y realizar un proceso repetidas veces. Java proporciona dos tipos de estructuras de control que permiten controlar el flujo de ejecución del programa: Estructuras de decisión y Estructuras de bucle. 10.1 Estructuras de Decisión En la metodología de la programación una estructura de decisión se la conoce como la instrucción Si Entonces; ésta instrucción evalúa una condición y, en función del resultado de esa condición, el programa se
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 4: Lenguaje de programación java
direcciona a
un determinado punto. Dependiendo el problema a
resolver se pueden usar las siguientes variantes: Si… Entonces (sin sino), en java se la conoce como if. Si… Entonces… sino, en java se la conoce como if… else. Estructura de decisión "Si… Entonces (sin sino)" ó if La estructura if comprueba una condición específica y, si es VERDADERA, ejecuta una o más sentencias. Si es FALSO no hace nada. A continuación podemos recordar cómo es la estructura en un pseudocódigo y cómo es su analogía en java. Así se utiliza en java
Así utilizamos en los pseudocódigos
Estructura de decisión "Si… Entonces… sino" ó if… else Así utilizamos en los pseudocódigos
Así se utiliza en java
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 4: Lenguaje de programación java
Ejemplo Realice un programa que permita ingresar desde el teclado la nota final de un estudiante; si la nota es 7 o más el programa mostrará en pantalla
APROBADO, caso
contrario
mostrará en pantalla
SUPLETORIO. Asígnele al proyecto el nombre de actividad17. 1. Análisis OBJETIVO (SALIDA): APROBADO o SUPLETORIO, dependiendo de la nota. ELEMENTOS BÁSICOS (DATOS): Nota final de un estudiante. CONDICIONANTES: Si la nota es 7 o más el programa mostrará en pantalla APROBADO, caso contrario mostrará en pantalla SUPLETORIO. 2. Diseño Diagrama de clases: Clase Condicional
Pseudocódigos y diagramas de flujo para cada método de la clase
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 4: Lenguaje de programaciĂłn java
3. ImplementaciĂłn
Actividad Formativa No. 17 (Estructuras de decisiĂłn bĂĄsicas en Java ) Desarrolle un programa que tenga un menĂş para los 6 ejercicios propuestos:
A. Programe una opciĂłn que permita ingresar desde el teclado la nota final de un estudiante, si la nota es 7 o mĂĄs el programa mostrarĂĄ en pantalla APROBADO, caso contrario mostrarĂĄ en pantalla SUPLETORIO. B. Programe una opciĂłn que permita ingresar desde el teclado la del examen quimestral de un estudiante, si la nota es 1.40 o menos el programa mostrarĂĄ en pantalla NO ALCANZA EL APRENDIZAJE, caso contrario mostrarĂĄ en pantalla la nota que fue ingresada. C. Programe una opciĂłn que permita ingresar cuatro nĂşmeros enteros: a, b, c, d. Si es que d es diferente a cero calcular la fĂłrmula A, caso contrario calcular la fĂłrmula B. đ?&#x2018;&#x17D;+đ?&#x2018;?
đ?&#x2018;?
đ?&#x2018;Ľ=
đ?&#x2018;&#x17D;+ đ?&#x2018;? đ?&#x2018;&#x17D; +đ?&#x2018;? đ?&#x2018;?
FĂłrmula A
đ?&#x2018;Ľ=đ?&#x2018;&#x17D;+
đ?&#x2018;&#x17D;+ đ?&#x2018;?+đ?&#x2018;&#x2018; đ?&#x2018;&#x17D;
đ?&#x2018;&#x17D;+ đ?&#x2018;?
FĂłrmula B D. Programe una opciĂłn que determine si un aĂąo es bisiesto. Un aĂąo es bisiesto si es mĂşltiplo de 4 (Por ejemplo 1984). E. Programe una opciĂłn que permita leer dos nĂşmeros enteros y determinar cuĂĄl es mĂşltiplo de cual.
Unidad Educativa TĂŠcnico Salesiano Primero de Bachillerato â&#x20AC;&#x201C; Aplicaciones InformĂĄticas Wilson Cedillo P.
Unidad de Trabajo 4: Lenguaje de programación java
F. Dado la duración (en minutos) de una llamada telefónica, calcular su costo, de la siguiente manera. Hasta 5 minutos el costo es 3.50. Por encima de 5 minutos el costo es 3.50 + 1.20 por cada minuto adicional a los 5 primeros minutos. 12. Comprima la carpetas del proyecto y suba al aula virtual de PLE en el portal web de la U.E.T.S. en la fecha establecida por el docente RECUERDE: EVITE LA DESHONESTIDAD ACADÉMICA Y PARA CUALQUIER DUDA ACERQUESE AL DOCENTE EN HORARIO DE TUTORIAS
4. Prueba.
10.2 Conectores lógicos en java Como se estudió en la metodología de la programación, los conectores lógicos son operadores que se utilizan para formar expresiones lógicas uniendo dos o más condiciones. En java principalmente, son dos: AND && OR || Actividad en clases En proyecto de NetBEANS realice un programa que resuelva los sigueintes problemas: 1. Desarrolle una opción que permita controlar el ingreso a juegos mecánicos con riesgo en un parque de distracciones; si el cliente tiene la edad mayor a 13 años o su estatura mayor a 1,60 el programa debe mostrar PUEDE INGRESAR, caso contrario LO SENTIMOS NO PUEDE INGRESAR. 2. Desarrolle una opción que facilite la organización de un baile; el programa permitirá ingresar la edad y el género del invitado. Si el invitado es de GENERO Femenino y la EDAD es mayor o igual a 14 años, se regalará un PASE DE CORTESIA (este texto debe aparecer en pantalla), caso contrario debe aparecer en pantalla el valor del boleto que debe pagar ($5).
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 4: Lenguaje de programación java
11. La clase String y variantes de las estructuras de decisión emos aprendido a diferenciar entre clase y objetos, a acceder
desde un objeto a los atributos miembro y a los métodos miembro, ahora vamos a utilizar clases importantes en el lenguaje Java y a crear objetos de dichas clases. Empezaremos por la clase String una de las más importantes del lenguaje Java. La clase String es una clase predefinida y especial de Java definida en la librería
o
paquete
java.lang y
orientada
a
manejar
cadenas
alfanuméricas constantes de caracteres, entonces la clase String incluye métodos que permiten examinar los caracteres individuales de una cadena para compararlos, ubicarlos extraerlos como sub cadenas y para crear copias de una cadena convirtiendo todos sus caracteres a mayúsculas o minúsculas. Entre los principales métodos de la clase String tenemos: 11.1 Método equals Su definición es de la siguiente manera: boolean equals(String s1)
El método equals retorna True (VERDADERO) si el contenido de caracteres del parámetro s1 es exactamente igual a la cadena de caracteres del objeto que llama al método equals. Por ejemplo para comparar si la variable genero es igual al texto femenino: if (genero.equals("Femenino")) { System.out.println("Es mujer"); }
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 4: Lenguaje de programación java
11.2 Método equalsIgnoreCase boolean equalsIgnoreCase (String s1)
El funcionamiento es casi exactamente igual que el método equals con la diferencia que no tiene en cuenta mayúsculas y minúsculas, es decir, si
comparamos
“Femenino“
y
“FEMENINO”
el
método
equalsIgnoreCase retornaría True. if (genero.equalsIgnoreCase("Femenino")) { System.out.println("Es mujer"); }
11.3 Método length int length()
Retorna la cantidad de caracteres almacenados en el String.
Por
ejemplo para saber cuántas letras tiene la variable genero. int num_letras = genero.length();
11.4 Métodos toUpperCase y toLowerCase String toUpperCase()
El método toUpperCase retorna un String con el contenido convertido todo a mayúsculas. String generoEnMayusculas = genero.toUppercase();
De la misma manera el método toLowerCase() retorna un String con el contenido convertido todo a minúsculas.
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 4: Lenguaje de programación java
Actividad Formativa No. 18 (Estructuras de decisión, la clase String y conectores lógicos en Java) Desarrolle un programa que tenga un menú para los 9 ejercicios propuestos:
A. Programe una opción que permita controlar el ingreso a juegos mecánicos con riesgo en un parque de distracciones; si el cliente tiene la edad mayor a 13 años o su estatura mayor a 1,60 el programa debe mostrar PUEDE INGRESAR, caso contrario LO SENTIMOS NO PUEDE INGRESAR B. Programe una opción que facilite la organización de un baile; el programa permitirá ingresar la edad y el género del invitado. Si el invitado es de GENERO Femenino y la EDAD es mayor o igual a 14 años, se regalará un PASE DE CORTESIA (este texto debe aparecer en pantalla), caso contrario debe aparecer en pantalla el valor del boleto que debe pagar ($5). C. Programe una opción en la que dados tres números enteros el programa muestre en pantalla el mayor de dichos números. D. Programe una opción que determine es del signo Aries dado el día y el mes de nacimiento. E. Programe una opción que permita ingresar el nombre y apellido de una persona, si la dimensión del nombre o la del apellido es mayor a 6 el programa mostrará en pantalla el nombre y apellido (unido) en mayúsculas, caso contrario mostrará en pantalla el nombre y el apellido (unido) en minúsculas. F. Dado UN NÚMERO entero, si tiene dos dígitos mostrar en pantalla la suma de sus dos dígitos, caso contrario mostrar en pantalla el número ingresado. G. Determinar el precio de un boleto para un viaje en tranvía, dando la distancia a recorrer y el número de días en el destino; sabiendo que si la estadía en el lugar es superior a 7 días y la distancia es superior a 800 Km, el boleto tiene un descuento del 30%. El precio por kilómetro es de 2,5 dólares. H. Dado el peso y estatura (en metros) de una persona, calcular su índice de masa corporal (IMC); si el dato del peso se ingresó en libras la fórmula es:
IMC = Caso contrario la fórmula es:
Peso en libras × 0,45359237 estatura2 IMC =
Peso en kilos estatura2
I. Dado el nombre de un mes, el programa determinará si tiene o no 31 días (considere el calendario del 2014). Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 4: Lenguaje de programación java
11.5 Estructura con decisiones en cascada Así se utiliza en java Así utilizamos en los pseudocódigos
Una forma más fácil que java proporciona para las decisiones en cascada, es la estructura if … else if.
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 4: Lenguaje de programación java
11.6Estructura con decisiones anidadas Así utilizamos en los pseudocódigos
Así se utiliza en java
Actividad Formativa No. 19 (Variantes de las estructuras de decisión) Desarrolle un programa que tenga un menú para los 8 ejercicios propuestos: A. Leer un número entero (máximo de 9 dígitos) y determinar si es de uno o dos o tres o cuatro dígitos. B. Leer un número entero y si es de un dígito y además es menor que 5 escribir su nombre en pantalla (El nombre del 1 es UNO, el nombre del 2 es DOS, etc.).. C. Leer un número entero y determinar si es positivo o negativo. Si es positivo determinar si tiene dos dígitos y si es negativo determinar si tiene tres dígitos. Asumir que no puede entrar el número cero. D. Leer un número entero de 2 dígitos y si termina en 1 mostrar en pantalla su primer dígito, si termina en 2 mostrar en pantalla la suma de sus dígitos y si termina en 3 mostrar en pantalla el producto de sus dos dígitos. E. Leer la nota final válida de PLE ( de 0 a 8 ), el programa debe mostrar la nota cualitativa de acuerdo a la siguiente tabla
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 4: Lenguaje de programación java
F. Leer un día (en letras) de la semana y mostrar que materia tiene la primera hora de ese día. G. Leer un día, hora y minutos y mostrar en pantalla que materia tiene en ese día hora, minutos (desarrolle sólo para el horario del día Lunes en la mañana) Comprima la carpeta del proyecto y suba al aula virtual de PLE en el portal web de la U.E.T.S. en la fecha establecida por el docente RECUERDE: EVITE LA DESHONESTIDAD ACADÉMICA Y PARA CUALQUIER DUDA ACERQUESE AL DOCENTE EN HORARIO DE TUTORIAS
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 5: Estructuras de control y ampliación del lenguaje java
.
Unidad de Trabajo 5
1. Introducción omo Usted se habrá dado cuenta, antes de escribir un programa que
dé solución a un
problema, es imprescindible tener una comprensión detallada de todo el problema, además
de
una
metodología
cuidadosamente plantada para resolver el problema. Al escribir un programa es igualmente esencial comprender las estructuras
de
construcción
disponibles
y
emplear
técnicas
comprobadas para construir programas. En ésta Unidad de Trabajo, hablaremos de nuevas estructuras e instrucciones que permitan a los programadores especificar la lógica requerida para que los métodos realicen sus tareas. Las estructuras de control permiten modificar el flujo de ejecución de las instrucciones de un programa y en java tenemos
dos, las
estructuras de decisión que ya se repasó en la Unidad de Trabajo anterior y las estructuras de repetición que las estudiaremos ahora.
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 5: Estructuras de control y ampliación del lenguaje java
Para la solución de problemas es necesario conocer otras herramientas que nos ofrece java es por eso que en ésta Unidad de trabajo se estudiarán nuevos métodos de la clase String, también se verá la clase Math y algunos de sus métodos; además se estudiarán las técnicas más comunes de los lenguajes de programación como son el uso de variables auxiliares, los centinelas, los acumuladores y contadores.
2. Conociendo otros métodos de la clase String a clase String tiene una gran variedad de métodos útiles31, en la Unidad de Trabajo anterior ya trabajamos con cinco de los métodos de dicha clase y en ésta Unidad de trabajo experimentaremos con nuevos métodos. 2.1 Método charAt char charAt (int pos)
Retorna un caracter del String, llega al método la posición del carácter (La primera letra tiene la posición 0, la segunda letra la posición 1, la tercera letra la posición 2 y así sucesivamente). Por ejemplo si tenemos una cadena de texto llamada frase, con el valor de Técnico Salesiano para mostrar la primera letra, o sea la T, la instrucción sería: char letra_1 = frase.charAt(0)
2.2 Método substring String
substring(int pos_inicial, int pos_final)
31
La lista completa puede encontrarse en la documentación oficial: http://docs.oracle.com/javase/7/docs/api/java/lang/String.html Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 5: Estructuras de control y ampliación del lenguaje java
Extrae una parte de la cadena de texto, desde pos_inicial hasta pos_final. Por ejemplo si tenemos una cadena llamado frase con el valor de Técnico Salesiano para extraer el texto Sales, la instrucción sería: String texto_nuevo = frase.substring(8, 12);
2.3 Método indexOf int
indexOf (String s1)
Devuelve un número entero que indica la posición donde aparece por primera vez el carácter o subcadena s1. Si el caracter o subcadena no aparece en todo el String, devuelve -1. La posición del primer caracter es cero. String texto = "¡Bienvenidos a int n = texto.indexOf(’v’); // int m = texto.indexOf(’ ’); // int p = texto.indexOf(“UETS”);
la La La //
UETS!"; respuesta será 5 respuesta será 12 La respuesta será 18
Actividad en clases En un proyecto de NetBEANS realice un programa que tenga un menú para resolver los siguientes problemas planteados: 3.
Ingresar un curso y paralelo de la UETS, el programa debe mostrar en
pantalla: Posición que tiene el caracter doble comilla “, Extraer el paralelo del curso ingresado. 4. Ingresar un nombre y apellido, el programa debe mostrar en pantalla: Posición que tiene el espacio que se escribe entre el nombre y apellido Nombre de la persona ingresada. Apellido de la persona ingresada
3. Estructura de selección múltiple sta estructura permite abreviar una serie de decisiones en cascada o en secuencia. La estructura de decisión múltiple toma el contenido de una misma expresión o variable y lo compara con varios posibles valores ejecutando lo que se le indique en Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 5: Estructuras de control y ampliación del lenguaje java
cada una de las opciones. En java la estructura de decisión múltiple es la sentencia switch, esta sentencia tiene la misma funcionalidad que la estructura if…else if pero de una forma mucho más fácil. La sintaxis empleada por una sentencia switch es la siguiente: switch variable_ ó_expresión_a_comparar {//Inicio del switch case valor_1 : Secuencia de acciones a realizar en el caso de que la variable_a_comparar sea valor_1 . [break;] case valor_2 : Secuencia de acciones a realizar en el caso de que la variable_a_comparar sea valor_2 . [break;] case valor_3 : Secuencia de acciones a realizar en el caso de que la variable_a_comparar sea valor_3 . [break;] case valor_n : Secuencia de acciones a realizar en el caso de que la variable_a_comparar sea valor_n . [break;] default: Secuencia de acciones a realizar en el caso de que la variable_a_comparar no sea ninguna de las opciones presentadas. }//Fin del switch
La instrucción switch es una instrucción de decisión múltiple, donde el compilador de java busca el valor contenido en una variable y compara contra una lista de valores, las variables que se utilizan en la condición solamente pueden ser de tipo char, byte, short o int. La ejecución salta todos los case hasta que encuentra uno con el valor de la variable, y ejecuta desde allí hasta el final del case o hasta que encuentre un break, en cuyo caso salta al final del case. El default es opcional y permite poner una serie de instrucciones que se ejecutan en caso de que la igualdad no se dé para ninguno de los case. La sentencia switch es la mejor forma para programar menús de opciones, por ejemplo para un menú con tres opciones el código sería: Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 5: Estructuras de control y ampliación del lenguaje java byte opcion; System.out.println("::::::: MENÚ DE OPCIONES :::::::"); System.out.println("1. Ejercicio A"); System.out.println("2. Ejercicio B"); System.out.println("3. Ejercicio C"); System.out.println("::::::::::::::::::::::::::::::::"); System.out.print("Elija una opción correcta [1] [2] ó [3] opcion = leer.nextByte; switch opcion {//Inicio del switch opcion case 1: System.out.println("Usted ha elegido el ejercicio break; case 2: System.out.println("Usted ha elegido el ejercicio break; case 3: System.out.println("Usted ha elegido el ejercicio break; default: System.err.println("ERROR: Opción incorrecta"); break; }//Fin del switch opcion
--> ");
A");
B");
C");
La sentencia break se utiliza para separar alternativas. Actividad Formativa No. 20 (La clase String y la estructura switch) Desarrolle un programa que tenga un menú para los 3 ejercicios propuestos: A. Leer dos números desde el teclado, el programa permitirá realizar una de las siguientes operaciones: multiplicación, división, suma, resta o residuo con los dos números ingresados. Para escoger la operación el programa debe permitir ingresar *, /, +, - ó %. (Utilice estructura switch) B. Leer un número entero mostrar a que día de la semana pertenece el número (1 es Lunes, 2 es Martes, 3 es Miércoles, etc.). (Utilice estructura switch) C. En 1978 se inició en Ecuador un retorno al sistema constitucional, desde entonces hemos tenido 13 presidentes de la república. Desarrolle un programa que permita ingresar un año determinado, y de acuerdo a ese año muestre en pantalla que presidente inició su período; por ejemplo si se ingresa 1979 el programa debe mostrar: El Ab. Jaime Roldós Aguilera inició su periodo presidencial en 1979. (Utilice estructura switch) Comprima la carpeta del proyecto y suba al aula virtual de PLE en el portal web de la U.E.T.S. en la fecha establecida por el docente
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 5: Estructuras de control y ampliación del lenguaje java
4. Estructuras de repetición en java as estructuras de repetición conocidas también como ciclos, bucles, iteraciones, lazos o loop’s son fundamentales en la programación y permiten gestionar distintas tareas repitiendo la ejecución de cierto código específico, se utilizan para realizar un proceso repetidas veces. En java el código incluido entre las llaves { } (opcionales si el proceso repetitivo consta de una sola línea), se ejecutará mientras se cumpla unas determinadas condiciones. Hay que prestar especial atención a los bucles infinitos, hecho que ocurre cuando la condición de finalizar el bucle no se llega a cumplir nunca. Se trata de un fallo muy típico, habitual sobre todo cuando se inicia en el arte de la programación, si esto nos ocurre es importante tener paciencia y revisar la condición del bucle. Java tiene tres sentencias para las estructuras de repetición: while, do while y for.
5. Bucle do while l bucle do while permite ejecutar un grupo de instrucciones mientras se cumpla una condición dada, es decir, evalúa una condición sencilla o combinada, en la que, si el resultado de ésta es verdadero (true) se ejecuta un bloque de instrucciones. Cuando terminan de realizarse se verifica nuevamente la expresión, si el resultado vuelve a ser verdadero se repite el proceso y así sucesivamente hasta que el resultado de la condición sea falso (false). La sintaxis general del bucle do while es: Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 5: Estructuras de control y ampliación del lenguaje java
do {//Inicio del while Bloque de instrucciones a realizar mientras la condición es VERDADERO. } while (condición) //Fin del while
Este bucle tiene la particularidad de que el control, es decir, la condición, está al final del bucle (lo que hace que el bucle se ejecute al menos una vez, independientemente de que la condición se cumpla o no).
6. Uso de variables especiales en la programación n la programación es muy usual cierto tipo de variables especiales que se usan para determinadas tareas, el nombre de las variables pueden ser el que nosotros queramos, lo especial de estas variables es la expresión y la función que desempeñan.
Las
variables
especiales
más
utilizadas
son
los
contadores, los acumuladores, los centinelas y las variables auxiliares. 6.1 Contadores Como ya se estudió en la Unidad de Trabajo 2, se denominan contadores a aquellas variables que son incrementadas o decrementadas con un valor constante para cada repetición de un bucle. Como su nombre lo dice, habitualmente se utilizan para contabilizar el número de repeticiones de un ciclo. Recuerde además que todo contador debe ser inicializado
antes
del
bucle
con
un
valor
(generalmente se inicializa con cero) y dentro del Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 5: Estructuras de control y ampliación del lenguaje java
bucle la variable que va ser utilizada como contador puede incrementarse o decrementarse en uno a sí misma. Java proporciona operadores incrementales y de asignación que son equivalentes a los contadores que ya se utilizaron en la Unidad de Trabajo 2. Usando operadores
Usando operadores
de asignación
incrementales
A= A+1
A+=1;
A ++;
B= B-1
B -=1;
B --;
C=C*1;
C *= 1;
…..
D=D/1;
D /= 1;
…..
E = E%1;
E%=1;
…..
Forma habitual
Además del incremento en uno, es posible "incrementar" (o las otras operaciones) con cualquier otro valor: A += 2; D /= 4; Bucles controlados por contadores Para el diseño correcto de un bucle es necesario un mecanismo que controle el número de veces que se ejecuta el mismo. Una de las formas de controlar los bucles determinados32 es mediante un contador, el cual determinará el número de iteraciones que realizará el bucle, para ello se utiliza una variable de control del bucle (conocido también como índice) que actúa como un contador. El control mediante contador se debe utilizar cuando se conoce el número de veces que se requiere repetir un conjunto de instrucciones. La variable que será evaluada como condición del ciclo, será comparada contra el valor límite, es decir, contra el número de repeticiones que deben ejecutarse. Por lo tanto, ésta requerirá ser incrementada dentro del propio ciclo para garantizar la salida de éste. 32
Bucles determinados: Aquellos bucles que se sabe cuántas veces se repetirá, ver Unidad de Trabajo 2. Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 5: Estructuras de control y ampliación del lenguaje java
Un bucle controlado por contador consta de tres partes, además del cuerpo o rango y de la condición de salida. 1. Inicialización de la variable de control. 2. Incremento de la variable de control. 3. Verificación de la variable de control. 6.2 Variables auxiliares Las variables auxiliares se utilizan para realizar el intercambio de valores entre dos variables. Por ejemplo si tenemos dos variables que se llaman a y b, si a contiene 3 y b contiene 5, después del intercambio a deberá contener 5 y b 3. En este ejemplo, para intercambiar el valor entre dos variables utilizaremos una variable auxiliar (aux) donde guardar el valor de una de ellas. Las instrucciones a realizar son: int a = 3; int b = 5; int aux = a; /* Asignamos a la variable auxiliar el valor de la variable a, para que no se pierda dicho valor */ a = b; //Intercambiamos el valores de a con b b = aux; //la variable b toma el valor de a
Estas variables generalmente se utilizan para determinar valores mínimos y valores máximos. Una variable para un valor máximo es una variable que guarda el máximo valor de un conjunto de valores. El máximo se inicializa a un valor muy pequeño para que tengamos la seguridad de que el primer valor que se almacene en esta variable sea el mayor. Una variable para un valor mínimo es similar al máximo solo que coge el valor más pequeño de una serie de valores. El mínimo se inicializa a un valor máximo. Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 5: Estructuras de control y ampliación del lenguaje java
Ejemplo Utilizando bucles ingresar desde el teclado 7 números enteros, el programa debe mostrar el valor máximo ingresado. 1. Análisis OBJETIVO (SALIDA): No hay para éste problema planteado. ELEMENTOS BÁSICOS (DATOS): Siete números enteros. CONDICIONANTES: Utilizar bucles. 2. Diseño Diagrama de clases Clase SieteNumeros
int ingresaNumeros()
Pseudocódigos
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Clase UsaSieteNumeros
main ()
Unidad de Trabajo 5: Estructuras de control y ampliación del lenguaje java
3. Implementación
Inicialización de la variable auxiliar para el máximo valor Inicialización de la variable de control (contador) Incremento de la variable de control (contador)
Cambio de valor en la variable auxiliar
Verificación de la variable de control
4. Prueba.
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 5: Estructuras de control y ampliación del lenguaje java
Actividad Formativa No. 21 (Bucles y contadores) Desarrolle un programa que tenga un menú para los 7 ejercicios propuestos: A. Utilizando bucles ingresar desde el teclado 7 números enteros, el programa debe mostrar el valor máximo ingresado. (Utilice bucle do while, contador y una variable auxiliar) B. Desarrolle un método en el que ingresa UN NÚMERO entero, el programa mostrará los resultados de la tabla de multiplicar del 8, desde 1 hasta el número ingresado. (Utilice bucle do while y un contador) C. Desarrolle un método en el que ingresan TRES NÚMEROS enteros A, B y C; el programa mostrará los resultados de la tabla de multiplicar de C, desde A hasta B. (Utilice bucle do while y contadores). D. Desarrolle un método en el que ingresa UN NÚMERO entero, el programa mostrará cuántos dígitos tiene. (Utilice bucle do while y contadores). E. Realizar un método para el control de acceso a una caja fuerte. La combinación será UETS2014, el programa nos pedirá la combinación para abrirla. Si no acertamos, se nos mostrará el mensaje “Lo siento, esa no es la combinación” y si acertamos se nos dirá “La caja fuerte se ha abierto satisfactoriamente”. El programa debe permitir únicamente cuatro oportunidades para abrir la caja fuerte. (Utilice bucle do while, un contador y los métodos de la clase String) F. Desarrolle un método que permita ingresar una palabra, el programa mostrará la palabra deletreada en líneas diferentes. Por ejemplo si ingresó TECNICO, el programa mostrará:
G. Ingresar desde el teclado un texto, el programa debe mostrar en pantalla cuantas vocales tiene el texto ingresado. (Utilice bucle do while, un contador y los métodos de la clase String) Comprima la carpeta del proyecto y suba al aula virtual de PLE en el portal web de la U.E.T.S. en la fecha establecida por el docente RECUERDE: EVITE LA DESHONESTIDAD ACADÉMICA Y PARA CUALQUIER DUDA ACERQUESE AL DOCENTE EN HORARIO DE TUTORIAS
6.3 Acumuladores Un acumulador o totalizador es un campo o zona de memoria cuya misión es almacenar cantidades variables resultantes de sumas Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 5: Estructuras de control y ampliación del lenguaje java
sucesivas. Realiza la misma función de un contador con la diferencia que el incremento o decremento de cada suma es variable en lugar de constante como es en el caso del contador. Recuerde que al igual que al contador a un acumulador se le inicializa antes del ciclo con un valor (generalmente se inicializa con cero). Dentro del ciclo el acumulador se incrementa con un valor variable en cada repetición del ciclo, lógicamente dependiendo el ejercicio en lugar de sumar se podría usar cualesquiera de las operadores binarios de java. Usando operadores
Forma habitual
de asignación
A= A+N;
A+=N;
B= B-N;
B -=N;
C=C*N;
C *= N;
D=D/N;
D /= N;
E = E%N;
E%=N;
6.4 Centinelas Los centinelas conocidos también como conmutadores, flags o banderas son variables que generalmente tienen dos únicos estados y cambian su estado durante la
ejecución
del
programa
o
según
el
programador vea la necesidad. Es recomendable que sean de tipo boolean para utilizar como un estado activado true
o desactivado false; algunos
programadores prefieren utilizar variables tipo entero, asignado 1 para el estado activado y 0 para el estado desactivado, es por ésta razón que también se les suele llamar interruptores porque cuando toman los
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 5: Estructuras de control y ampliación del lenguaje java
valores 0 ó 1 están simulando un interruptor abierto/cerrado o encendido/apagado. Al igual que contadores todo centinela debe ser inicializado con uno de los dos valores y en los puntos en que corresponda se cambia al valor contrario. Bucles controlados por centinelas Una forma de controlar los bucles indeterminados33 es mediante un centinela, el cual determinará el fin de la repetición de instrucciones. A la repetición controlada por centinela a menudo se le llama repetición indefinida, ya que el número de repeticiones no se conoce antes de que comience la ejecución del ciclo. Ejemplo Calcular el promedio de los números pares introducidos por el usuario. Terminar cuando introduzca el primer número impar. 1. Análisis OBJETIVO (SALIDA): Promedio de los números pares ingresados. ELEMENTOS BÁSICOS (DATOS): Varios números. CONDICIONANTES: Terminar cuando introduzca el primer número impar. 2. Diseño Diagrama de clases Clase PromediosImpares
double promedioImpares()
33
Clase UsaPromediosImpares
main ()
Bucles indeterminados: Aquellos bucles que se no sabe cuántas veces se repetirá, ver Unidad de Trabajo
2. Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 5: Estructuras de control y ampliación del lenguaje java
Pseudocódigos
3. Implementación
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 5: Estructuras de control y ampliación del lenguaje java
Inicialización del CENTINELA Inicialización del CONTADOR Inicialización del ACUMULADOR Incremento del CONTADOR Incremento del ACUMULADOR Cambia CENTINELA para finalizar bucle Verificación de la variable de control
4. Prueba.
Actividad Formativa No. 22 (Bucles contadores, acumuladores y centinelas) Desarrolle un programa que tenga un menú para los 7 ejercicios propuestos: A. Desarrollar un método que permita ingresar todas las colaboraciones para el DOMUND, el programa terminará cuando se haya ingresado 0 como colaboración. Al final se mostrará en pantalla el número de estudiantes que colaboraron y retornará al programa principal el total recolectado. (Utilice bucle, contador, acumulador y centinela) B. Desarrolle un método en el que ingresarán los datos de la base y el exponente. Utilizando bucles y operaciones sucesivas calcular la potencia, al final el método devolverá al programa principal el resultado de la potencia. (Utilice bucle, contador y acumulador)
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 5: Estructuras de control y ampliación del lenguaje java
C. Desarrolle un método en el que ingresará un número entero. Utilizando bucles y operaciones sucesivas calcular el factorial del número ingresado, al final el método devolverá al programa principal el resultado del factorial. Por ejemplo si se ingresó 8, el programa devolverá el resultado de calcular: 8 x 7 x 6 x 5 x 4 x 3 x 2 x1 es decir 40320 (Utilice bucle, contador y acumulador) D. Observe que la división entera (\) de n para 7 es igual al mayor número de veces que 7 cabe en n. Por ejemplo 38 \ 7 = 5, y 4 \ 7 = 0. Utilizando bucles y operaciones sucesivas calcular la división entera para 7 del número ingresado, al final el método devolverá al programa principal el resultado n \ 7. (Utilice bucles y restas sucesivas) E. Desarrolle un método para calcular n \ x. (Utilice bucles y restas sucesivas) F. El antiguo filósofo Zenón es posiblemente mejor conocido por su paradoja de Aquiles y la tortuga. Ésta consiste en que ambos disputan una carrera en la que Aquiles corre 10 veces más rápidamente que la tortuga, pero ésta se encuentra 100 metros adelante. Se supone, en la paradoja, que Aquiles nunca alcanzará a su contrincante puesto que cada vez que éste llegue al punto en que la tortuga estaba ésta se habrá movido una cierta distancia. Diseñar un método que utilice un ciclo para determinar el tiempo que tarda Aquiles en sobrepasar, a la tortuga. (Utilice bucle, contador y acumulador) G. Se define la serie Fibonacci como la serie que comienza con los dígitos 1 y 0, y va sumando progresivamente los dos últimos elementos de la serie, así: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377 …… Utilizando el concepto de ciclo desarrolle un método que genere la serie Fibonacci hasta llegar o sobrepasar 1000. Comprima la carpeta del proyecto y suba al aula virtual de PLE en el portal web de la U.E.T.S. en la fecha establecida por el docente RECUERDE: EVITE LA DESHONESTIDAD ACADÉMICA Y PARA CUALQUIER DUDA ACERQUESE AL DOCENTE EN HORARIO DE TUTORIAS
7. Encapsulamiento y Visibilidad na
de
las
programación
actividades orientada
comunes a
objetos
en
la
es
el
denominado encapsulamiento de las clases, esta actividad busca en forma general mostrar solo los aspectos
necesarios,
ocultando
todos
los
que
consideran internos y que no deben ser mostrados.
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
se
Unidad de Trabajo 5: Estructuras de control y ampliación del lenguaje java
Encapsular permite que una clase tenga muchos atributos y operaciones que solo la propia clase conoce y nadie más puede utilizar, de forma que solo muestra los elementos con los cuales es posible interactuar. Para lograr el encapsulamiento se utiliza la Visibilidad. La Visibilidad establece que básicamente hay 3 modificadores de acceso a los atributos y métodos de nuestras clases, estas son: Público, Protegido y Privado. 7.1 Modificadores de acceso Los modificadores de acceso determinan desde qué clases se puede acceder a un determinado elemento, permiten al diseñador de una clase determinar quién accede a los datos y métodos miembros de una clase. Los modificadores de acceso preceden a la declaración de un elemento de la clase (ya sea atributo o método), de la siguiente forma: [modificador] tipo_variable nombre; [modificador] tipo_devuelto nombre_metodo ( lista_Argumentos );
Existen los siguientes modificadores de acceso: private: El campo o método sólo es visible dentro de la clase donde se define. public: El campo o método es visible en cualquier clase. protected: El campo o método es visible en la clase en donde se define y en cualquiera de sus subclases.
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 5: Estructuras de control y ampliación del lenguaje java
Ninguna de las anteriores: El campo o método es visible en cualquiera de las clases pertenecientes al paquete en donde se define, se suele conocerse como default o package-private.
Los distintos modificadores de acceso quedan resumidos en la siguiente tabla:
public protected default private
REPRESENTACIÓN EN UML
LA MISMA CLASE
OTRA CLASE DEL MISMO PAQUETE
SUBCLASE DE OTRO PAQUETE
OTRA CLASE DE OTRO PAQUETE
+ # ~ -
X X X X
X X X
X X
X
En el diagrama de clases u objetos los modificadores de acceso se escriben antes de los atributos y métodos:
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 5: Estructuras de control y ampliación del lenguaje java
7.2 El modificador static Los atributos miembros de una clase pueden ser atributos de clase o atributos de instancia; se dice que son atributos de clase si se usa la palabra clave static. El modificador static sirve para crear miembros que pertenecen a la clase, y no a una instancia de la clase. Esto implica, entre otras cosas, que no es necesario crear un objeto de la clase para poder acceder a estos atributos y métodos, es decir, no es necesario instanciar.
Es importante tener en cuenta que si el método main es static, no se podrá utilizar métodos que no sean static.
8. La clase Math sta clase estándar de java está contenida en el paquete java.lang, es una clase utilitaria cuyos métodos (todos estáticos) nos permiten realizar algunos cálculos matemáticos comunes. El constructor de la clase es privado, por los que no se pueden crear instancias de la clase. Sin embargo, Math es public para que se pueda llamar desde cualquier sitio y static para que no haya que instanciarla. La
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 5: Estructuras de control y ampliación del lenguaje java
clase Math tiene miembros dato y métodos miembros estáticos, vamos a conocer algunas de estos métodos, cómo se llaman y qué tarea realizan. 8.1 Miembros dato constantes La clase Math tiene una referencia a las dos constantes más utilizadas en matemática con una precisión de 15 decimales: la constante Math.PI con valor 3.14159265358979323846 y Math.E, la base de los logaritmos naturales, con valor 2.7182818284590452354.
8.2 Método Math.toRadians public static double toRadians(double angGr)
Convierte la medida angGr de un ángulo de grados a radianes. Por ejemplo: double angGrados = 45; //grados double angRadianes = Math.toRadians(angGrados); System.out.println("Grados a Radianes: " + angGrados + "º = " + angRadianes + " rad");
8.3 Método Math.toDegrees public static double toDegrees(double angRadianes)
Convierte la medida angRadianes de un ángulo de radianes a grados. Por ejemplo: Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 5: Estructuras de control y ampliación del lenguaje java double angRadianes = 0,785398163; //radianes double angGrados = Math.toDegrees(angRadianes); System.out.println("Radianes a Grados:"+angRadianes+"rad"+angGrados+"o");
8.4 Métodos de la clase Math para funciones trigonométricas Las funciones trigonométricas aceptan y devuelven los ángulos en radianes por lo que siempre hay que previamente convertir desde/hacia grados. public static double cos(double a)
El método Math.cos calcula el coseno de a. Por ejemplo para calcular el coseno de 30º. double angRadianes = Math.toRadians(30); double coseno = Math.cos(angRadianes); System.out.println("El coseno de 30 grados es " + coseno);
De la misma manera los métodos Math.sin, Math.tan, Math.acos, Math.asin, Math.atan calculan el resto de funciones trigonométricas. 8.5 Método Math.pow public static double pow(double a, double b)
Devuelve el valor del primer argumento a elevado a la potencia del segundo argumento b, es decir, ab. Por ejemplo para calcular la potencia de 53: double potencia = Math.pow(5,3); System.out.println("La potencia de 5 elevado a la 3 es" + potencia);
8.6 Método Math.sqrt public static double sqrt(double a)
Devuelve el resultado de calcular la raíz cuadrada de a (Número positivo). Por ejemplo para calcular la raíz cuadrada de 4: Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 5: Estructuras de control y ampliaciĂłn del lenguaje java double raiz = Math.sqrt(4); System.out.println("La raĂz cuadrada de 4" + raiz);
Ejemplo Desarrollar un mĂŠtodo en el que se ingrese un nĂşmero par mayor a 4 (n), el mĂŠtodo devolverĂĄ el resultado de acuerdo a la siguiente serie: đ?&#x2018;&#x;=
1 â&#x2C6;&#x161;đ?&#x2018;&#x203A;
â&#x2C6;&#x2019;
1 â&#x2C6;&#x161;đ?&#x2018;&#x203A; â&#x2C6;&#x2019; 2
+
1 â&#x2C6;&#x161;đ?&#x2018;&#x203A; â&#x2C6;&#x2019; 4
â&#x2C6;&#x2019;
1 â&#x2C6;&#x161;đ?&#x2018;&#x203A; â&#x2C6;&#x2019; 6
+
1 â&#x2C6;&#x161;đ?&#x2018;&#x203A; â&#x2C6;&#x2019; 8
â&#x20AC;Śâ&#x20AC;Ś..
1 â&#x2C6;&#x161;2
Por ejemplo si n es igual a 10 el resultado serĂa: đ?&#x2018;&#x;=
1 â&#x2C6;&#x161;10
â&#x2C6;&#x2019;
1 â&#x2C6;&#x161;8
+
1 â&#x2C6;&#x161;6
â&#x2C6;&#x2019;
1 â&#x2C6;&#x161;4
+
1 â&#x2C6;&#x161;2
r= 0,578029447 1. AnĂĄlisis OBJETIVO (SALIDA): Resultado de la serie dada. ELEMENTOS BĂ SICOS (DATOS): Numero n para calcular la serie. CONDICIONANTES: NĂşmero debe ser par y mayor a 4. 2. DiseĂąo Diagrama de clases Clase SerieRaicesPares
double calcularSerie (double n)
PseudocĂłdigos
Unidad Educativa TĂŠcnico Salesiano Primero de Bachillerato â&#x20AC;&#x201C; Aplicaciones InformĂĄticas Wilson Cedillo P.
Clase UsaSerieRaicesPares
main ()
Unidad de Trabajo 5: Estructuras de control y ampliación del lenguaje java
3. Implementación
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 5: Estructuras de control y ampliación del lenguaje java
Inicialización del ACUMULADOR para la serie Inicialización del CENTINELA para alternar operaciones Inicialización del CONTADOR que decrementará de 2 en 2 Calculamos la fracción par air acumulando
Incrementa el ACUMULADOR con la fracción
Decremento del CONTADOR en 2 para usar en el denominador de la fracción
Cambia CENTINELA para en la siguiente vuelta del bucle realizar la otra operación (resta) Decrementa el ACUMULADOR con la fracción
Verificación de la variable de control
Cambia CENTINELA para en la siguiente vuelta del bucle realizar la otra operación (suma)
4. Prueba.
Actividad Formativa No. 23 (Bucles contadores, acumuladores, centinelas y la Clase Math) Desarrolle un programa que tenga un menú para los 4 ejercicios propuestos: A. Desarrollar un método al que ingresarán dos números x y n, x será el número con el que empieza la serie y n indicará la cantidad de números que se mostrará. Por ejemplo si x=21 y n=8 la serie sería: 21 24 32 36 44 49 57 63 B. Desarrollar un método en el que ingresarán dos números (a y n), el primer número será la base de las potencias a calcular, el segundo número será la cantidad de veces que se calculará una potencia e base a la siguiente serie: a1+a2+a3+a4+……….+an Por ejemplo si se ingresó a = 2 y n = 5 el resultado sería:
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 5: Estructuras de control y ampliación del lenguaje java
C. Desarrollar un método en el que ingresará un ángulo en grados (a), el número ingresado será el ángulo inicial de la serie (Recuerde pasar primero a radianes para calcular el coseno): Cos(a)+Cos(a+0,40)+Cos((a+0,40)+0,40)+Cos((a+0,80)+0,40)+… Esta serie calculará cosenos mientras el ángulo no pase de 360 grados Por ejemplo si se ingresó a = 300 el resultado sería:
D. Desarrollar un método en el que ingresará un ángulo en grados (a) y un número (n) que indicará cuántas veces se repetirá la serie:
Por ejemplo si se ingresó a = 72 y n = 100 el resultado sería:
Comprima la carpeta del proyecto y suba al aula virtual de PLE en el portal web de la U.E.T.S. en la fecha establecida por el docente RECUERDE: EVITE LA DESHONESTIDAD ACADÉMICA Y PARA CUALQUIER DUDA ACERQUESE AL DOCENTE EN HORARIO DE TUTORIAS
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 5: Estructuras de control y ampliación del lenguaje java
8.7 Método Math.floor public static double floor(double a)
Este método calcula el número real mayor de magnitud entera que es menor o igual que a. int x = Math.floor (5.6) //5.0 int y = Math.floor (5.0) //5.0 int z = Math.floor (-5.6) //-6.0
8.8 Método Math.random public static double random()
Con este método podemos generar un número double aleatorio entre 0 y 1. double nrand = Math.random() System.out.println(nrand); //por ejemplo: 0.1523523
Para generar un número entre 0 y el número que deseemos, debemos escribir
Math.random()*num_deseado,
por
ejemplo,
Math.random()*30, esto genera números entre 0 y 30, este último no se incluye, el máximo sería 29,9999… Para generar un número entre un número que deseemos a otro, debemos escribir Math.random() * (num_maximo -num_minimo ) + num_minimo,
por
ejemplo, Math.random()*(20-5)+5. Por último, haremos que el número generado sea un número entero en lugar de uno de coma flotante, para ello escribimos: (int) Math.floor(Math.random()*(num_maximo - num_minimo ) + num_minimo);
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 5: Estructuras de control y ampliación del lenguaje java
Por ejemplo para generar un número entero aleatorio entre 1 y 10 (incluyéndolos): int n; nrand =
(int)Math.floor( Math.random() *(1-11)+11);
java.util.Random Otra forma para generar números aleatorios en java es la clase Random dentro de la librería java.util. Dicha clase nos permite generar múltiples números aleatorios, independientemente de la naturaleza de estos: int, float, double, boolean, etc. Lo primero que tenemos que hacer es importar la clase Random y luego crear una instancia de dicha clase. import java.util.Random; …………… Random r = new Random();
Posteriormente deberemos de invocar al método nextInt()34. Este método ya nos devolverá un número aleatorio. System.out.println(r.nextInt());
El principal inconveniente de este método es que el número aleatorio dentro del rango comprendido entre 2-32 y 232. Si lo que queremos es acotar el rango, podemos pasar el límite como parámetro del método .nextInt(valor). En este caso se calculará en el rango desde 0, es por ello que si queremos trabajar con el valor igual al límite, entonces deberemos de pasar como parámetro valor+1. De esta manera el código será el siguiente: int limite=10; System.out.println(r.nextInt(limite+1)); 34
La clase Random tiene los mismos métodos de la clase Scanner: nexInt(), nextDouble(), nextByte(), next(), etc. Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 5: Estructuras de control y ampliación del lenguaje java
9. Bucle while l bucle while es muy similar al do while, también las instrucciones del bucle se ejecutan mientras la condición sea VERDADERO, y termina cuando la condición pasa a ser falsa. Como podemos ver en los diagramas de flujo de la figura, la diferencia es que en el bucle while la condición se evalúa antes de ejecutar las instrucciones; lo cual significa que las instrucciones que están dentro del bucle podrían no ejecutarse ni una sola vez. Bucle do while
Bucle while
Dependiendo los requerimientos del problema a resolver, habrá la necesidad de hacer la comparación al inicio del bucle o a veces al final del bucle. La estructura repetitiva do while se utiliza preferentemente cuando conocemos de antemano que por lo menos una vez se ejecutará el bloque repetitivo, en cambio la estructura repetitiva while se utiliza cuando no sabemos si se ejecutará por lo menos una vez el bloque repetitivo. La sintaxis general del bucle while es: while (condición) {//Inicio del while Bloque de instrucciones a realizar mientras la condición es VERDADERO. } //Fin del while
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 5: Estructuras de control y ampliación del lenguaje java
Actividad en clases Un número es primo solo si es divisible por si mismo y por la unidad. Desarrolle un programa para determinar si un número es primo. Analice la solución propuesta en el siguiente diagrama de flujo:
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 5: Estructuras de control y ampliación del lenguaje java
Ejemplo Desarrollar un programa para jugar piedra, papel o tijera. Previamente el programa debe preguntar cuántas veces se va jugar. 1. Análisis OBJETIVO (SALIDA): Quién gana ¿Computador o usuario? ELEMENTOS BÁSICOS (DATOS): ¿Qué elige usuario? ¿Qué elige Computadora? CONDICIONANTES: El programa preguntará cuántas veces se jugará. Piedra gana a tijera, papel gana a piedra y tijera gana a papel. 2. Diseño Diagrama de clases Clase PiedraPapelTijera
Clase UsaPiedraPapelTijera
String escogeUsuario () String escogeComputador () String comparar (String opcionUsuario, String opcionComputador)
main ()
Implementación
Usamos bucle while pues no sabemos cuántas veces escogerá jugar el usuario
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 5: Estructuras de control y ampliación del lenguaje java
Usamos bucle do while para repetir mientras no se ingrese correctamente, se sabe que el usuario intentará al menos una vez
El centinela “avisará” con true cuando se haya ingresado cualquiera de las opciones correctas El bucle se repetirá mientras centinela siga false, es decir, mientras no se haya ingresado correctamente Se genera un número aleatorio entre 0 y 2, si sale 0 se asumirá que es piedra, con 1 se asumirá que es papel y 2 tijera Utilizamos una estructura switch, para asignar piedra, papel o tijera, según el número aleatorio generado en la variable n Con una estructura if..else if comparamos lo escogido por el usuario con lo que tiene el computador : Si el usuario y computador escogen iguales, EMPATAN. Y si el usuario escogió PIEDRA, anidamos una estructura if..else para comparar si el computador tiene TIJERA ganaría PIEDRA, si tiene PAPEL ganaría PAPEL. Y si el usuario escogió PAPEL, anidamos una estructura if..else para comparar si el computador tiene PIEDRA ganaría PAPEL, si tiene TIJERA ganaría TIJERA. Y si el usuario escogió TIJERA, anidamos una estructura if..else para comparar si el computador tiene PAPEL ganaría TIJERA, si tiene PIEDRA ganaría PIEDRA. Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 5: Estructuras de control y ampliación del lenguaje java
3. Prueba.
Actividad Formativa No. 24 (Bucles) Desarrolle un programa que tenga un menú para los 4 ejercicios propuestos: A. Desarrollar una opción para jugar piedra, papel o tijera con el computador. Previamente el programa debe preguntar cuántas veces se va jugar. B. Pares o nones es un juego de manos, en el cual la probabilidad es un factor importante. Se juega por dos participantes, uno de ellos elige pares (un número par) o nones (un número impar). Los jugadores esconden las manos detrás de la espalda y a la de tres, deben sacar sus manos, mostrando los dedos que quieran. Se suman los dedos de los dos participantes, si el número es par gana quien dijo pares, si el número es impar gana quien dijo nones. Desarrollar una opción para pares o nones con el computador (El usuario elige que quiere; pares o nones, el computador se queda con la opción que el usuario no eligió). Previamente el programa debe preguntar cuántas veces se va jugar. C. Uno de los juegos más populares de azar es el juego de dados conocido como craps, el cual se juega en casinos y callejones de todo el mundo. Las reglas del juego son simples; Un jugador tira dos dados. Cada dado tiene seis caras, las cuales tiene uno, dos, tres, cuatro, cinco y seis puntos negros, respectivamente. Una vez que los dados dejan de moverse, se calcula la suma de los puntos negros en las dos caras superiores. Si la suma es 7 u 11 en el primer tiro, el jugador gana. Si la suma es 2, 3 o 12 en el primer tiro (llamado “craps”), el jugador pierde (es decir, la “casa” gana). Si la suma es 4, 5, 6, 8, 9 o 10 en el primer tiro, esa suma se convierte en el “punto” del jugador. Para ganar, el jugador debe seguir tirando los dados hasta que salga otra vez “su punto” (es decir, que tires ese mismo valor de punto). El jugador pierde si tira un 7 antes de llegar a su punto.
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 5: Estructuras de control y ampliación del lenguaje java
Desarrollar una opción para jugar Craps, luego del primer intento si el jugador tiene “punto”, el programa preguntará cada vez si desea seguir intentando hasta sacar el “punto”. Existen algunas formas de ganar o perder, a continuación ponemos solo algunos de las posibles salidas del programa.
Comprima la carpeta del proyecto y suba al aula virtual de PLE en el portal web de la U.E.T.S. en la fecha establecida por el docente RECUERDE: EVITE LA DESHONESTIDAD ACADÉMICA Y PARA CUALQUIER DUDA ACERQUESE AL DOCENTE EN HORARIO DE TUTORIAS
10. Bucle for n
la
sección
anterior
se
presentó las estructuras de repetición controlados por un contador, java también cuenta con la instrucción de repetición for, que especifica los detalles de la estructura de repetición controlada por contador en una sola línea de código.
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 5: Estructuras de control y ampliación del lenguaje java
Cuando si sabemos cuántas veces se van a ejecutar las sentencias (Bucles determinados), es mejor utilizar el bucle for. La sintaxis general del bucle for sería como la que sigue: for (expresión-de-inicialización; condición-final; expresión-iterativa) {//Inicio del for Bloque de instrucciones a a repetir }//Fin del for
La expresión-de-inicialización es una instrucción que se ejecuta una sola vez: al entrar por primera vez en el bucle for (normalmente esa expresión lo que hace es dar valor inicial al contador del bucle). La condición-final es cualquier expresión que devuelve un valor lógico. En el caso de que esa expresión sea verdadera se ejecutan las instrucciones. Cuando la condición pasa a ser falsa, el bucle deja de ejecutarse. La condición se valora cada vez que se terminan de ejecutar las instrucciones del bucle. Después de ejecutarse las instrucciones interiores del bucle, se realiza la expresión-iterativa que tiene lugar tras ejecutarse las instrucciones del bucle (que, generalmente, incrementa o decrementa al contador). Luego se vuelve a evaluar la condición y así sucesivamente hasta que la condición sea falsa. Es completamente legal en Java declarar una variable dentro de la cabecera de un bucle for. De esta forma la variable (local) sólo tiene ámbito dentro del bucle, por ejemplo para mostrar la tabla de multiplicar del 5, usando el bucle for: void tablaMultiplicar5( ) Declaración del tipo de dato del {//Inicio del método tablaMultiplicar5 contador dentro de la cabecera int r; System.out.println("Tabla de multiplicar del 5"); for (int i =0 ; i <= 10; i++) {//Inicio del for
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 5: Estructuras de control y ampliación del lenguaje java r = 5 * i; System.out.println(5 + " * " + i + " = " + r ); }//Fin del for }//Fin del método tablaMultiplicar5
10.1 Características del bucle for El argumento expresión-de-inicialización (contador para inicializar el bucle) puede ser de tipo numérico entero o caracter. La variable contador incrementa o decrementa su valor en cada repetición del bucle. Si incremento es positivo el valor inicial (en la expresión-deinicialización) debe ser menor o igual que valor final (en la expresióniterativa) o no se ejecutarán las sentencias del bucle. Si incremento es negativo, el valor inicial (en la expresión-deinicialización) debe ser mayor o igual que el valor final (en la expresióniterativa) para que se ejecute el cuerpo del bucle. 10.2 Bucle for anidado Es uno o más bucles for dentro de otro. Se pueden poner los que se consideren necesarios para el ejercicio planteado, El bucle que primero se abre, es el último en cerrarse for (expresión-de-inicialización1; condición-final1; expresión-iterativa1) {//Inicio del bucle for 1 for (expresión-de-inicialización2; condición-final2; expresión-iterativa2) {//Inicio del bucle for 2 for (expresión-de-inicialización3; condición-final3; expresión-iterativa3) {//Inicio del bucle for 3 Bloque de instrucciones a repetir }//Fin del bucle for 3 }//Fin del bucle for 2 }//Fin del bucle for 1
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 5: Estructuras de control y ampliación del lenguaje java
Por ejemplo para visualizar las tablas de multiplicar del 1 al 3, cuyos resultados se calculen desde el 1 hasta el 6, el método usando bucles for anidados sería: void tablas_1_al_3( ) {//Inicio del método tablas_1_al_3 int r; System.out.println("Tablas de multiplicar del 1, 2 y 3"); for(int i=1; i<=3; i++) {//Inicia bucle EXTERNO: Tablas del 1 al 3 System.out.println("Tabla de multiplicar del " + i); for (int j=1; j<=6; j++) {//Inicia bucle INTERNO: Tabla desde 1 hasta 6 r = i * j; System.out.println(j + " * " + i + " = " + r ); }//Fin del bucle INTERNO }//Fin del bucle EXTERNO } //Fin del método tablas_1_al_3
Actividad Formativa No. 25 (Bucle for) Desarrolle un programa que tenga un menú para los 7 ejercicios propuestos: A. Modifique el método iniciado en clases para que visualice la tabla de multiplicar de un valor numérico entero introducido como parámetro en el método. Visualizar el resultado con el multiplicando, el multiplicador y el producto. B. Modifique el método iniciado en clases para visualizar las tablas de multiplicar de a hasta b (multiplicando desde c hasta d).
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.
Unidad de Trabajo 5: Estructuras de control y ampliación del lenguaje java
C. Desarrollar un método para mostrar los números múltiplos del 5, desde 0 hasta 100 utilizando un bucle for. D. Desarrolle un método en el que se ingrese una lista de 5 notas de un estudiante, el método debe devolver el promedio del alumno. (Utilice bucle for). E. Desarrolle un método que devuelva como resultado el factorial de un número n ingresado como dato al método (Utilice el bucle for). F. Desarrolle un método en el que se ingrese una lista de diez números y determine cuántos son positivos, y cuántos son negativos. G. Un entrenador le ha propuesto a un atleta recorrer una ruta de cinco kilómetros durante 10 días, para determinar si es apto para la prueba de 5 Kilómetros o debe buscar otra especialidad. Para considerarlo apto debe cumplir por lo menos una de las siguientes condiciones:(Utilice bucle for) Que en ninguna de las pruebas haga un tiempo mayor a 16 minutos. Que al menos en una de las pruebas realice un tiempo menor a 12 minutos. Que su promedio de tiempos sea menor o igual a 15 minutos
Comprima la carpeta del proyecto y suba al aula virtual de PLE en el portal web de la U.E.T.S. en la fecha establecida por el docente RECUERDE: EVITE LA DESHONESTIDAD ACADÉMICA Y PARA CUALQUIER DUDA ACERQUESE AL DOCENTE EN HORARIO DE TUTORIAS
Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.