GUÍA - Hosting Miarrobala clase Scanner. La explicación de cada una de las instrucciones en Java...

15
T GUÍA DE TRABAJO Tecnología en Sistemas de Información Código FDE 048 Versión 03 Fecha 2009-06-09 1. IDENTIFICACIÓN Asignatura Laboratorio Lógica y Programación Guía No. 1 Área Básica de la Ingeniería Nivel II Código LLI22 Pensum 10 Correquisito(s) LPI24 Prerrequisito(s) Créditos 2 TPS 2 TIS 4 TPT 32 TIT TRABAJO INDEPENDIENTE TRABAJO PRESENCIAL Trabajo Teórico Trabajo Práctico X Trabajo Teórico Trabajo Práctico 2. IDENTIFICACIÓN COMPETENCIAS CONTENIDO TEMÁTICO INDICADOR DE LOGRO Desarrollar programas con el uso de herramientas de desarrollo de software para dar solución a problemas de información desde un enfoque algorítmico. Conceptos básicos de Algoritmos y programación: Definición de algoritmo Tipos de algoritmos Características de los Algoritmos Tipos de Datos y Operadores Definición de variable Clasificación de las variables o Por su contenido o Por su uso Reglas para dar nombre a un identificador Aplicación de algoritmos en un lenguaje de programación. Sintaxis de seudocódigo orientado a objetos Conceptos Básicos de Programación orientada por objetos 1. Utiliza un lenguaje de programación para representar y ejecutar un algoritmo básico.

Transcript of GUÍA - Hosting Miarrobala clase Scanner. La explicación de cada una de las instrucciones en Java...

T

GUÍA DE TRABAJO Tecnología en Sistemas de

Información

Código FDE 048

Versión 03

Fecha 2009-06-09

1. IDENTIFICACIÓN

Asignatura Laboratorio Lógica y Programación Guía No. 1

Área Básica de la Ingeniería Nivel II

Código LLI22 Pensum 10

Correquisito(s) LPI24 Prerrequisito(s)

Créditos 2 TPS 2 TIS 4 TPT 32 TIT

TRABAJO INDEPENDIENTE TRABAJO PRESENCIAL Trabajo Teórico

Trabajo Práctico

X Trabajo Teórico

Trabajo Práctico

2. IDENTIFICACIÓN

COMPETENCIAS

CONTENIDO TEMÁTICO INDICADOR DE

LOGRO

Desarrollar programas con el uso de herramientas de desarrollo de software para dar solución a problemas de información desde un enfoque algorítmico.

Conceptos básicos de Algoritmos y programación:

Definición de algoritmo

Tipos de algoritmos

Características de los Algoritmos

Tipos de Datos y Operadores

Definición de variable

Clasificación de las variables

o Por su contenido o Por su uso

Reglas para dar nombre a un identificador

Aplicación de algoritmos en un lenguaje de programación.

Sintaxis de seudocódigo orientado a objetos

Conceptos Básicos de Programación orientada por objetos

1. Utiliza un lenguaje de programación para representar y ejecutar un algoritmo básico.

GUÍA DE TRABAJO Tecnología en Sistemas de

Información

Código FDE 048

Versión 03

Fecha 2009-06-09

2. RECURSOS REQUERIDOS

Un computador con el software de JCreator instalado y el JDK respectivo de Java.

Material bibliográfico, ejemplos realizados en sala de cómputo y

documentación de apoyo del sitio

3. PROCEDIMIENTO

Los algoritmos son secuencias de pasos lógicos y ordenados que le dan solución a un problema, estos deben ser bien definidos y no tener ambigüedades. Existen tres formas de representar un algoritmo, estas son: diagramas de flujo, diagramas estructurados y pseudocódigo. Generalmente el pseudocódigo es la forma mas utilizada para escribir algoritmos, ya que estos facilitan su posterior codificación a un lenguaje de programación.

El pseudocódigo es una forma de escribir algoritmos utilizando una mezcla de lenguaje común, con instrucciones de programación, palabras claves, etc. El objetivo es que el programador se centre en la solución lógica del algoritmo y no en la implementación en un lenguaje de programación concreto (con las posibles

complicaciones en las reglas sintácticas), o en otras palabras, sólo ayudan a "pensar" un programa antes de escribirlo en un lenguaje de programación formal. Existen diferentes formas de escribir algunas instrucciones en pseudocódigo, ya que no existe un estándar, en cualquier caso, dichas instrucciones escritas en una forma u otra deben siempre expresar lo mismo al codificarlas en un lenguaje de programación.

Para adentrar al estudiante en el campo de la lógica y la programación, se planteará a continuación un problema sencillo con su respectivo análisis y solución, luego se realizar el algoritmo en pseudocódigo y la codificación en el lenguaje de programación Java.

Problema1

De un empleado se tiene el nombre y el salario anterior, se requiere hacer un algoritmo que ingresando el porcentaje del aumento que obtuvo para el nuevo año, imprima el nombre del empleado, el valor del aumento y el nuevo salario.

Análisis: Antes de proceder a resolver el problema, primero hay que entenderlo, en este entendimiento se debe recoger la mayor cantidad de información y realizar los siguientes pasos antes de pasar al algoritmo:

1. Determinar los datos de estrada: Los datos de entrada son todos aquellos que el usuario deberá ingresar, son generalmente la alimentación del algoritmo. Para el problema son: El nombre del empleado, el salario anterior y el porcentaje que aumentó.

2. Determinar el proceso: aquí se debe tener claro cuales son los cálculos u operaciones que se deben realizar para obtener la salida deseada. En este caso existen varias formas, una de ellas es calcular primero el valor del aumento multiplicando el salario anterior por el porcentaje que aumentó, luego calcular el nuevo salario sumando el salario anterior con el aumento.

3. Determinar la salida: La salida son los datos o la información que se desea visualizar, en este caso es muy explicita: el nombre del empleado, el valor del aumento y el nuevo salario.

Vale la pena recordar que una variable es un espacio de memoria que se reserva para almacenar un dato o una información, y que el contenido de dicha variable cambia en la ejecución del programa o del algoritmo. Las variables deben de ser definidas o declaradas según el tipo de dato que se desea almacenar.

GUÍA DE TRABAJO Tecnología en Sistemas de

Información

Código FDE 048

Versión 03

Fecha 2009-06-09

De acuerdo a lo anterior es necesario determinar las variables necesarias para almacenar los datos que requiere el algoritmo, tanto los datos de entrada como los datos que resultan de las operaciones matemáticas y otros que se consideren necesarios. Recordar que cada variable debe de ser definida o declarada según el tipo de dato que se desea almacenar (números enteros o reales, cadenas de caracteres o datos lógicos.

GUÍA DE TRABAJO Tecnología en Sistemas de

Información

Código FDE 048

Versión 03

Fecha 2009-06-09

Solución del problema en Pseudocódigo

Clase publica Ejem1 Metodo principal ( ) es vacio

Texto nombre Reales salarioAnterior, nSalario, aumento Real porAumento

Imprima “Ingrese el nombre del empleado” Lea nombre Imprima “Ingrese el salario anterior” Lea salarioAnterior Imprima “Ingrese el porcentaje de aumento” Lea porAumento

Aumento = salarioAnterior * porAumento / 100 nSalario = salarioAnterior + aumento

Imprima nombre Imprima “Tiene un aumento de ”, aumento Imprima “ Su nuevo salario es “, nSalario

Tipos de Instrucciones

Declaración de Variables

Lectura o ingreso de datos

Instrucciones de asignación

Salida de información

Fin Metodo principal Fin clase

Explicación

1. Las líneas que hay resaltadas corresponden los encabezados y cierres de la clase y del método principal. Esto para facilitar la posterior codificación en el lenguaje Java. El nombre Ejem1 es el nombre de la clase.

2. Declaración de variables: las variables almacenan la información necesaria

del problema, estas generalmente se declaran anteponiendo el tipo de dato que se desea almacenar y luego el nombre de las variables separadas por coma. Los nombres de las variables siempre deben empezar por una letra y no deben tener caracteres especiales ni espacios en blanco.

3. Lectura o ingreso de datos: Existen varias formas de hacer la lectura o

ingreso de datos en pseudocódigo, estas instrucciones que son llamadas

GUÍA DE TRABAJO Tecnología en Sistemas de

Información

Código FDE 048

Versión 03

Fecha 2009-06-09

“LEA” generalmente van acompañadas de un texto que le indica al usuario el dato que se debe ingresar.

4. Instrucciones de asignación: A una variable se le pueden asignar valores ya

sea por una instrucción de ingreso de datos o por una instrucción de asignación directa que se hace con el signo igual “=”, en este caso la variable a la cual queremos asignarle un valor debe estar a la izquierda del igual, como se puede ver en el ejemplo. Cabe anotar que en algunos libros utilizan una flecha en cambio del igual.

5. Salida de información: las instrucciones de salida de información

corresponde a lo que el usuario quiere visualizar, en estas instrucciones se pueden utilizar las palabras “IMPRIMA”, “MUESTRE” o “ESCRIBA” acompañadas de un texto entre comillas y las variables donde está la información que se quiere mostrar separadas con comas.

GUÍA DE TRABAJO Tecnología en Sistemas de

Información

Código FDE 048

Versión 03

Fecha 2009-06-09

Solución del problema en lenguaje Java

GUÍA DE TRABAJO Tecnología en Sistemas de

Información

Código FDE 048

Versión 03

Fecha 2009-06-09

En los lenguajes de programación al igual que en el pseudocódigo existen diferentes formas de hacer ciertas instrucciones, como es el caso del ingreso de datos. En el lenguaje Java se puede hacer uso de las clases que fueron creadas para este fin o implementar una forma propia. En la solución que se le dio a este problema se utilizó la clase Scanner. La explicación de cada una de las instrucciones en Java se puede ver en el siguiente cuadro:

Línea(s) Explicación

1 Se importa la librería Scanner para el ingreso de datos

3 Encabezado de la clase y Ejem1 es el nombre de la clase

4 Llave que abre la clase

5 Encabezado del método principal.

6 Llave que abre el método principal

7 Aquí se crea el objeto “leer” de tipo Scanner para el ingreso de datos

9, 10 y 11

Declaración de variables: Se pone en el lado izquierdo el tipo de dato y en la parte derecha el nombre de las variables separadas por comas, respetando las normas del lenguaje.

13 a 18 Ingreso de datos: primero se muestra al usuario un mensaje indicándole el dato que se debe ingresar utilizando la clase System con la sintaxis correspondiente y en la siguiente línea se usa el objeto “leer” para el ingreso de datos siguiendo la sintaxis de Java según el tipo de dato que se desea ingresar. Cabe recordar que “leer” es el nombre del objeto y puede ser cualquier otro.

20 y 21 Líneas de asignación directa: se hace colocando al lado izquierdo la variable a la cual se le va a asignar el valor u operación matemática utilizando el signo igual “=”.

23, 24 y 25

Salida de información: en estas instrucciones generalmente van mensajes concatenados con una o más variables con la sintaxis correspondiente. Lo que está entre comillas son mensajes y el signo mas “+” es el que concatena o une el mensaje con el contenido de la variable.

28 Llave que cierra el método principal

29 Llave que cierra la clase

OBSERVACIONES Y BUENAS PRACTICAS AL PROGRAMAR EN JAVA

Por convención, el identificador del nombre de una clase siempre debe comenzar con una letra mayúscula, y la primera letra de cada palabra subsiguiente del identificador también debe ir en mayúscula.

Seleccionar nombres de variables significativos ayuda a que un programa se

autodocumente (es decir, que sea más fácil entender con sólo leerlo, en lugar de leer manuales o ver un número excesivo de comentarios).

Por convención, los identificadores de nombre de variables empiezan con una

letra minúscula, y cada una de las palabras en el nombre, que van después de la

primera, deben empezar con una letra mayúscula. Por ejemplo, el identificador primerNumero tiene una N mayúscula en su segunda palabra, Numero.

Java es sensible a mayúsculas y minúsculas. No utilizar la combinación

apropiada de letras minúsculas y mayúsculas para un identificador, generalmente produce un error de compilación.

Siempre que escriba una llave izquierda de apertura ({) en su programa, escriba

inmediatamente la llave derecha de cierre (}), esta práctica ayuda a evitar errores debido a la omisión de una de las llaves.

El uso de paréntesis en las expresiones aritméticas complejas, incluso cuando

éstos no sean necesarios, puede hacer que las expresiones aritméticas sean más fáciles de leer.

Aplique sangría en todo el cuerpo de la clase, métodos y en las estructuras de

control como condicionales y estructuras repetitivas. Esto le da más claridad al código y permite identificar errores con mayor facilidad.

Familiarizarse con los mensajes de error de sintaxis que arroja el compilador le

ayudará a no cometer o corregir con mayor facilidad los errores posteriormente.

Cuando el compilador reporta un error de sintaxis, éste tal vez no se encuentre en el número de línea indicado por el mensaje. Primero lea a que se refiere el error; segundo verifique la línea en la que se reportó el error; tercero si esa línea no contiene errores de sintaxis, verifique las líneas anteriores. Puede ser que en la línea donde se reportó el error necesite de otra instrucción antes que aún no se ha incluido.

Cuando se está iniciando en la programación, es aconsejable agregar un

comentario de fin de línea después de la llave derecha de cierre (}), que indique a qué método o clase pertenece.

Todas las declaraciones import se deben hacer antes de la declaración de la

clase. Colocar una declaración import dentro del cuerpo de la declaración de una clase, o después de la declaración de la misma, es un error de sintaxis.

Por lo general, si olvida incluir una declaración import para una clase que utilice

en su programa, se produce un error de compilación que contiene el mensaje: “cannot resolve symbol”. Cuando esto ocurra, verifique que haya proporcionado las declaraciones import apropiadas y que los nombres en las mismas estén escritos correctamente, incluyendo el uso apropiado de las letras mayúsculas y minúsculas.

EJERCICIOS PROPUESTOS

Realice el algoritmo en Pseudocódigo implementando dos o más métodos a cada

uno de los ejercicios propuestos y codifíquelos en el lenguaje de programación

Java.

GUÍA DE TRABAJO Tecnología en Sistemas de

Información

Código FDE 048

Versión 03

Fecha 2009-06-09

1. Haga un algoritmo que permita ingresar dos números enteros e imprima la suma y la

multiplicación de ambos.

2. Haga un algoritmo que lea un número e imprima su raíz cuadrada, su raíz cuarta y su raíz quinta.

3. Haga un algoritmo que permita ingresar una medida en metros e imprima su equivalencia en centímetros, pulgadas, pies y kilómetros. Sabiendo que: un metro tiene 100 centímetros, una pulgada tiene 2.54 centímetros, un kilómetro tiene 1000 metros y un pie tiene 12 pulgadas

4. En una bodega cuyas medidas de largo, ancho y alto en metros son conocidas se desea almacenar un producto que viene empacado en cajas que tienen forma de cubo cuya medida de un lado es 40 centímetros. Sabiendo que un metro tiene 100 centímetros y que un cubo tiene todos los lados iguales, haga un algoritmo que imprima cuantas cajas se pueden almacenar en dicha bodega.

5. Leer tres números e imprimir el máximo y el mínimo de estos tres números sin utilizar condicionales. Utilice la clase Math.

6. Haga un algoritmo que calcule la pendiente de la recta que pasa por los puntos A y B.

Consultar.

7. De una esfera se conoce su diámetro. Haga un algoritmo que imprima su volumen. Consultar.

8. De un triángulo rectángulo se conocen las medidas de su hipotenusa y de uno de

sus catetos. Haga un algoritmo que permita calcular e imprimir la medida del segundo

cateto.

9. En una caneca de forma cilíndrica cuyas medidas de alto y radio en metros son

conocidas se desea preparar una mezcla con tres componentes en las siguientes

proporciones: componente A 30%, componente B 50% y componente C 20%.

Sabiendo que: un litro tiene 1000 centímetros cúbicos, una pulgada tiene 2.54

centímetros y un metro tiene 100 centímetros. Haga un algoritmo que imprima la

cantidad de litros que se requieren para llenar la caneca. Recuerde que el volumen

del cilindro es V = Π h r². (Pi, altura, radio).

10. Todos los lunes, miércoles y viernes, una persona corre la misma ruta y cronometra

los tiempos obtenidos. Determinar el tiempo promedio que la persona tarda en recorrer la ruta en una semana cualquiera.

11. Calcular el número de pulsaciones que una persona debe tener por cada 10 segundos

de ejercicio, si la fórmula es: Número de pulsaciones = (220 - edad) / 10

12. Se quiere realizar un programa que informe el consumo medio de combustible de un auto. Diseñe un algoritmo que lea el kilometraje antes de realizar un recorrido, el kilometraje actual, el volumen (litros) del tanque de gasolina antes de realizar el recorrido y el volumen actual. El algoritmo debe sacar como salida el consumo medio por kilómetro recorrido y el consumo medio cada 50 kilómetros.

13. Teniendo en cuenta la prioridad de operadores resuelva cada una de las siguientes

expresiones aritméticas sin usar la calculadora:

a) 5 + 8 * 2 – 8 mod 5 * 3 – 6 * 2 / 3 b) 2**3 + 5 – 4 * 2 + 7 mod 5 – 4 * 2 c) 3^3 + 6 – 2 + 7 * 3 + (6 + 2 * 3 mod 4) + 4 d) (7 * (10 - 5) mod 3) * 4 + 9 e) 7 * 10 - 5 mod 3 * 4 + 9 f) - 4 * 7 + 2 ^ 3 / 4 - 5

14. Una empresa de servicios públicos cobra por metro cúbico de agua $1.500 y por kilovatio/hora de consumo de energía cobra $130. Haga un algoritmo para determinar el valor a pagar de una vivienda con base en la diferencia de la lectura anterior y la lectura actual tanto de agua como de energía.

15. Haga un algoritmo para leer la velocidad de un auto expresada en metros por segundo e imprima la velocidad del auto expresada en kilómetros por hora.

16. Conociendo el diámetro de una circunferencia, haga un algoritmo que permita obtener el área y su longitud.

17. Un empleado gana 3.5 salarios mínimos mensuales vigentes y le deducen el 10% por

un préstamo y el 3% de retención en la fuente. Haga un algoritmo que imprima; el nombre del empleado, el salario bruto, el valor del descuento por préstamo, valor del descuento por retención y el salario neto del trabajador.

18. Suponga que en una empresa hay tres tipos de empleados: ejecutivos, administrativos

y operarios. La empresa tiene un salario básico de X dólares mensuales. El ejecutivo gana el doble del administrativo, el operario gana dos terceras partes del administrativo más un 30% y el administrativo gana un salario básico más un 20%. Haga un algoritmo que imprima el salario en pesos de cada uno de los tipos de empleados.

19. La nota final de un estudiante se calcula con base en los siguientes aspectos: Un examen parcial del 15% Un examen final del 30% Y tres talleres que conforman un 55% Haga un algoritmo que imprima el número de documento del estudiante, el nombre y la nota final.

20. Una persona dejó una herencia en dólares y su voluntad fue de repartirla entre sus tres hijos proporcionalmente a la edad de cada uno. Haga un algoritmo que imprima el nombre de cada hijo y el valor le corresponde en pesos.

21. Una inmobiliaria vende terrenos a $1.000.000 el metro cuadrado. El cliente debe dar una inicial del 15% y el resto lo paga en 12 cuotas a cero interés. Determine el valor total a pagar y el valor de cada cuota conociendo el largo y el ancho del terreno.

22. Haga un algoritmo que permita ingresar un número entero, suponga que el número siempre es de tres cifras, el algoritmo debe imprimir: La suma de todos los dígitos y el número invertido. Ejemplo si se ingresa 423, la salida es: 9 y 324

23. In ancient times, communication was not as swift as it is today. When a kingdom was at war,it could take months to muster all the armed forces. But by using fire-lit beacons at strategic locations, it was still possible to quickly send emergency signals. When the first beacon is lit, all other beacons within sight from it are also lit. All beacons within sight of these are then lit, and so on until all beacons are lit - assuming of course that all beacons are within sight of each other, directly or indirectly. If they are not, the dire news must be carried by riders between some beacons.Write an algorithm that determines the distance between the armed forces For simplicity, we model the country in the following way: an armed force is represented as a point in the xy-plane and another armed force is represented as another point in the xy plane.

4. BIBLIOGRAFIA Weiss, Mark Allen: "Estructuras de datos y algoritmos", Addison-Wesley Iberoamericana, 1995. •Kruse, Robert Leroy; Tondon, Clovis L.; Leung, Bruce P: "Data structures and program design in C'', Prentice-Hall, 1997. •Brassard, Gilles; Bratley, Paul: "Algorithmics: theory and practice", Prentice-Hall, 1988. •Sedgewick, Robert: "Algorithms in C++", Addison-Wesley, 1992. •Osorio Rivera, Fray León. Lógica y programación orientada a objetos: un inicio al desarrollo de software. - 1. ed. Publicación Medellín : Instituto Tecnológico Metropolitano, 2008. 375 p •Osorio Rivera, Fray León. Introducción a la programación en Java : un enfoque práctico. - 1. ed. Publicación Medellín : Instituto Tecnológico Metropolitano, 2007. 196 p •OVIEDO REGINO, Efraín M. Lógica de programación. 2 ed. Bogotá: Ecoe Ediciones, 2005. 316 p. •JOYANES AGUILAR, Luis. Fundamentos de programación: algoritmos y estructuras de datos. 3 ed. Madrid: McGraw-Hill, 2003. 1004 p. •TUCKER, Allen B et al. Fundamentos de informática: lógica, resolución de problemas, programas y computadoras. Madrid: McGraw-Hill, 1994. 392 p.

•JO ANN Smith. C++ Desarrollo de proyectos. México: Thomson, 2001. 234 p. •VÁSQUEZ, L., Lógica para programación de computadores: fundamentos y aplicaciones. 3 ed. Medellín: Ediciones Gráficas, 1986. 215 p.

Elaborado por: Area de lógica

Versión: 3

Fecha: Febrero 13 de 2020

Aprobado por: