Programación de Sistemas
Lenguaje de Programación: Java
Parte 1
¿Qué es un lenguaje de programación?
Podríamos decir que un lenguaje de programación es un conjunto de símbolos, palabras clave,
códigos y reglas semánticas que son utilizados para crear una secuencia o serie de instrucciones
algorítmicas, las cuales serán utilizadas para crear un programa que pueda controlar el
comportamiento tanto físico como lógico de la computadora, con el objetivo de obtener un
determinado resultado.
Podría definirse en muy pocas palabras que el lenguaje de programación es un sistema
estructurado de comunicación que permite el nexo entre el programador y el dispositivo que está
programando.
Proceso de compilación y ejecución en Java
EDITOR: Esta herramienta permite escribir el código del programa de computadora. Existe una
sintaxis establecida para este fin. Es tan básico el editor, que puede utilizarse el bloc de notas de
Windows o en linux cualquiera de sus editores de texto básico. El único requisito importante
aquí es anexar la extensión .java al final del nombre del archivo. Es decir, si mi archivo se llama
suma, debe guardarse como [Link]
COMPILADOR: El compilador es una herramienta que toma el código .java que fue escrito en el
editor y lo convierte a un formato que será comprendido por la máquina. El programa se
ejecutará en una computadora virtual llamada JVM (Java Virtual Machine).
INTERPRETE: El proceso de compilación genera un nuevo archivo con el mismo nombre del .java,
pero con extensión .class. Este último es el que pasamos a la JVM (Máquina Virtual de Java) y
este componente producirá la salida que manipulará el usuario final del programa que hemos
escrito.
1
Programación de Sistemas
Repaso de conceptos
Existen dos puntos de vista desde los cuales debe ser considerado un algoritmo:
• Por un lado está la especificación del algoritmo. La especificación comprende precisamente
al conjunto de acciones que permiten resolver una clase de problemas. Desde este punto de
vista un algoritmo se puede pensar como una entidad estática.
• Por otro lado, debemos considerar la ejecución del algoritmo. Cuando alguien lleva a cabo
las directivas indicadas por el algoritmo, hablamos de ejecución. Durante la ejecución
estamos hallando la solución de un problema específico o de una instancia de la clase de
problemas. La ejecución es un proceso dinámico.
Las propiedades de un algoritmo incluyen:
(1) Recibe una entrada y genera una salida. (2) Precisión: Cada paso esta precisamente
explicitado.
(3) Determinismo: Los resultados intermedios de cada paso de ejecución son únicos y
determinados
solo por las entradas y resultados del paso anterior. (4) Correctitud: Un algoritmo es correcto, si
cumple con los tres puntos siguientes: a. El algoritmo resuelve el problema para el cual fue
diseñado: efectividad. b. Para cada entrada, el algoritmo produce la salida deseada. c. El
algoritmo termina en un tiempo finito: finitud. (5) Generalización: Un algoritmo es aplicable a un
conjunto de entradas.
2
Programación de Sistemas
ESTRUCTURAS DE CONTROL
El teorema de Bohem-Jacopini Bohm and Jacopini (1966) establece que todo programa puede ser
implementado en un lenguaje de programación combinando sólo tres estructuras de control.
Esas tres formas (también llamadas estructuras de control) específicamente son:
SECUENCIA: ejecución de una instrucción tras otra.
ALTERNATIVA: ejecución de uno de dos conjuntos de instrucciones, según el valor de una
expresión booleana.
REPETITIVA: ejecución de un conjunto de instrucciones mientras una expresión booleana sea
verdadera.
La programación estructurada es una técnica desarrollada por Dijsktra cuyo objetivo es elaborar
programas, de una manera clara, mediante la utilización de estas tres estructuras básicas
de control.
Actividad N°1
1. Realizar una red o mapa conceptual con los conceptos dados.
Para tener en cuenta:
La lectura de un mapa conceptual es, entonces, de arriba hacia abajo. Las redes conceptuales, en cambio,
no requieren jerarquía gráfica vertical; por lo tanto, las conexiones entre nodos, en vez de líneas, son
flechas que orientan el sentido de la lectura (Galagovsky, 1993a, b, 1996;Galagovsky y Ciliberti, 1994).
Ejemplo de mapa conceptual:
3
Programación de Sistemas
Lenguaje de Programación: Java
Parte 2
¿Qué es Java?
Java es el lenguaje de programación y su plataforma de desarrollo es una de la más utilizada .
¿Qué un IDE?
Un IDE es el entorno digital empleado para desarrollar cualquier tipo de software cuyo objetivo es
agilizar todo el proceso de diseño de software, ofreciendo un servicio integral al programador .
IDE Eclipse
Podrán descargar el programa desde [Link]
Lenguaje
Tipos de datos
Java está tipado estáticamente y es fuertemente tipado porque en Java, cada tipo de datos (como
entero, carácter, hexadecimal, decimal empaquetado, etc.) está predefinido como parte del
lenguaje de programación y todas las constantes o variables definidas para un programa dado
debe describirse con uno de los tipos de datos.
Java tiene dos categorías de datos:
• Datos Primitivos (p. Ej., int, char)
• Datos Objeto (tipos creados por el programador)
Los tipos de datos utilizados con más frecuencia en las declaraciones de variables Java se
enumeran en la siguiente tabla, junto con una breve descripción:
4
Programación de Sistemas
5
Programación de Sistemas
Salida de Datos
6
Programación de Sistemas
Entrada de Datos
7
Programación de Sistemas
Expresiones
Práctico N°2
1. Analizar los siguientes tipos de identificadores. (validos/ no validos)
1) registro1: válido.
2) 1registro: No válido. Un identificador no puede comenzar por un dígito.
3) archivo_3: válido.
4) while: No válido. Es una palabra reservada del lenguaje.
8
Programación de Sistemas
5) $impuesto: válido.
6) año: válido.
7) primer apellido: no válido, un identificador no puede contener espacios en blanco. En todo
caso serían dos identificadores.
8) primer_apellido: válido.
Escribe la declaración para cada una de las variables y asígnales un valor inicial en la propia
declaración de variable.
Ejemplo: Variable de tipo cadena de caracteres nombre
String nombre = “Ana” ; .
a) Variables enteras: p, q
b) Variables float: x, y, z
c) Variables carácter: a, b, c
d) Variables double: raiz1, raiz2
e) Variables carácter: car1, car2
f) Variables lógicas: primero, ultimo
2. Escribe la declaración más apropiada para cada una de las siguientes variables. El nombre de
cada una indica el tipo de dato que contendrá y servirá para determinar el tipo de dato más
adecuado en la declaración de la variable.
a) edad k) alumnoRepetidor (valores: SI/NO)
b) códigoPostal l) mensaje
c) altura m) letra
d) genero (valores: H: hombre, M: mujer) n) mayorEdad
e) nombre o) minutos
f) númeroDeHijos p) días
g) iva (valores: % a aplicar) q) matriculaCoche
h) tallaCamisa (valores numéricos) r) contador
i) peso s) mayorDeEdad (valores: verdadero/falso)
j) precio t) tallaCamiseta (valores: S, L, XL...)
3. Si a, b y c son variables enteras con valores a=8, b=3, c=-5, determina el valor de las siguientes
expresiones aritméticas:
a) a + b + c h) a * (b / c)
b) 2 * b + 3 * (a – c) i) (a * c) % b
c) a / b j) a * (c % b)
d) a % b k) (3 * a – 2 * b) % (2 * a – c)
e) a / c l) 2 * ( a / 5 + (4 - b * 3)) % (a + c - 2)
f) a % c m) (a - 3 * b) % (c + 2 * a) / (a - c)
g) a * b / c n) a - b - c * 2
9
Programación de Sistemas
Lenguaje de Programación: Java
Parte 3
MODULARIZACIÓN
Modularizar es una estrategia de resolución de problemas y de ingeniería de software que consiste
en dividir el problema original en un conjunto de subproblemas. Consiste en aplicar una estrategia
heurística fundamental: descomposición y recombinaciónPolya (1973). Esta heurística consiste en
poder descomponer un todo en partes y poder recombinar las partes en un todo.
En programación y en el diseño de algoritmos, un buen diseño estructurado persigue elaborar
algoritmos que cumplan la propiedad de modularidad, esto es, dado un problema que se pretende
resolver mediante la utilización de una computadora, se busca dividir dicho programa en módulos
independientes.
El diseño estructurado incluye la descomposición, para lo cual se requiere un adecuado análisis de
dicho problema, siendo necesario definir primeramente el problema. Merece la pena el esfuerzo de
dividir un problema grande en subproblemas más pequeños.
Ahora la cuestión es ¿cómo realizar la descomposición?. Una manera es realizando un estudio
descendente (top-down) que nos lleve desde la concepción del problema (programa o algorítmo)
global hasta identificar sus partes (módulos). Esta técnica se repite una y otra vez refinando el
problema hasta obtener subproblemas suficientemente pequeños, que puedan ser resueltos por
módulos que cumplan, en la medida de lo posible, las características deseables en un módulo en el
ámbito de la programación.
En cada paso del refinamiento, una o varias instrucciones del programa dado, se descomponen en
instrucciones más detalladas.
¿Cuándo parar el refinamiento? Un refinamiento excesivo podría dar lugar a un número tan grande
de módulos que haría poco práctica la descomposición. Se tendrá en cuenta el siguiente criterio
para dejar de descomponer: Cuando el MÓDULO definido realice una única tarea, lo
suficientemente simple y entendible, y no existan subtareas que requieran descomposición.
VENTAJAS DE MODULARIZAR
El uso apropiado de la modularización tiene importantes ventajas:
1. Cada módulo debe hacer una única cosa (y de manera genérica).
2. Cada módulo oculta algo (encapsulamiento).
El uso apropiado de la modularización tiene importantes ventajas:
1. Facilita el desarrollo del software, dado que los subproblemas son más fáciles de resolver.
2. Facilita la reutilización del software, dado que un módulo se puede usar en muchos programas.
3. Facilita el mantenimiento. Los errores son más fáciles de localizar, ya que están aislados en
un módulo. Aumenta la mantenibilidad.
10
Programación de Sistemas
Los módulos se pueden ver como cajas que tiene datos de entrada, que realizan alguna acción y
devuelven (o no) algún valor.
DEFINICIÓN DE UN MÓDULO
Todo módulo tiene un encabezado y un cuerpo. Un elemento central del encabezado lo compone
el nombre del módulo. El nombre debe estar definido de acuerdo a la notación infixCaps. El
nombre de un módulo es muy importante porque será utilizado para invocar al módulo. Debe ser
un nombre significativo. A continuación, mostramos las partes que componen un encabezado de
un método en JAVA: Las palabras encerradas entre paréntesis en el encabezado del módulo se las
llama parámetros formales. Los parámetros formales se definen con un identificador y su tipo. Los
parámetros se utilizan para definir el módulo, e introducen un punto de variación del módulo.
Un módulo puede tener ninguno, uno o más parámetros formales. En el caso de tener más de uno,
se separan por comas tanto en la declaración del módulo como en la invocación. Es importante
definir el tipo del identificador que viene como parámetro, de la misma manera que se definen los
tipos de cualquier identificador.
El encabezado que define un módulo también incluye el tipo retornado por un módulo. El módulo
puede no retorna nada (indicado con en Pseudocódigo) o algún valor de algún tipo. En el caso
que un módulo retorna un valor, este valor debe ser asignado convenientemente a una variable en
el punto donde el módulo sea invocado. Por ejemplo, en la siguiente figura, como métodoSuma es
un módulo que retorna un valor, cuando métodoSuma es invocado el valor retornado es asignado
en la variable sum.
11
Programación de Sistemas
Los módulos pueden imprimir mensajes para comunicarlos al usuario, y/o devolver valores.
Cuando una función realice un cálculo o una operación con sus parámetros, es recomendable que
devuelva el resultado en lugar de calcularlo e imprimirlo, permitiendo realizar otras operaciones
con ese resultado.
No es posible acceder a las variables definidas dentro de un módulo desde el algoritmo principal,
si se quiere utilizar algún valor calculado en la función, será necesario devolverlo.
Si un módulo retorna algún valor, la última primitiva del módulo debe mostrar el valor retornado.
12
Programación de Sistemas
Práctico N°3 (Parte 3)
1) Una vez instalado el programa Eclipse:
Abrir el programa, indicar el lugar donde se guardará nuestro proyecto.
1. Crear un proyecto.
En este caso será ProgramaciónDeSistemas.
13
Programación de Sistemas
2. Crear nuestro paquete.
En este caso será Utiles
14
Programación de Sistemas
3. Crear una clase
En este caso será TecladoIn
15
Programación de Sistemas
4. Una vez creada la clase, vamos a borrar todo lo que tiene la clase
5. Pegar en la clase todo lo que tiene el archivo de TecladoIn.
6. Para comenzar a trabajar en eclipse.
Tenemos que tener en cuenta que tendremos un solo proyecto, que ya fue creado. Dentro de él
podremos tener distintos paquetes que serán nuestras “carpetas de trabajos prácticos”. En éstas
podremos tener las clases en las que desarrollaremos cada ejercicio (por ahora).
Una vez creado el paquete Utiles, generaremos un paquete en el que desarrollaremos las
actividades de ejemplos. Para ello seleccionar el proyecto (programaciónDeSistemas) clic derecho
y crear un paquete nuevo (Ejemplos). Luego crear una clase (LecturasYescrituras).
16
Programación de Sistemas
17
Programación de Sistemas
Desarrollar la actividad dentro de las llaves, marcado en celeste en la siguiente imagen.
Así nos quedará la estructura.
18
Programación de Sistemas
Práctico N°3 (Parte 3)
1) Crear un Paquete con el nombre Prácticos y en él una clase llamada Practico_3.
2) Realizar en código java los métodos para resolver los siguientes problemas.
No olvidar usar el encabezado del método.
a) Realizar un programa que declare cuatro variables (numérica entera, booleana, carácter y
cadena) y asignarle algún valor.
b) Realizar un programa en el que se declare cuatro variables (numérica entera, booleana,
carácter y cadena) y asignarle algún valor leído por teclado.
c) Realizar un programa que realice la siguiente salida por pantalla(consola).
d) Realizar un programa que realice la siguiente salida por pantalla(consola) utilizando una
sola línea de código por cada *.
e) Realizar un programa en el que se puedan ingresar datos personales y se muestren los
mismos de manera que simule una ficha. Por ejemplo:
f) Analizar el siguiente código para identificar los errores. Modificarlo de manera que pueda
cumplir con su fin, mostrar los valores finales de A,B,C. ¿Cuáles son esos valores?
19
Programación de Sistemas
Trabajo Practico N° 4:
Realizar los métodos para:
1) Leer una letra e identificar si es igual que A.
2) Escriba un algoritmo para leer un número entero, doblarlo y multiplicarlo
por 25.-Muestre el resultado en pantalla.
3) Realizar la carga de dos números enteros por teclado e imprimir su suma y su
producto.
4) Escribir un programa en el cual se ingresen cuatro números, calcular e
imprimir:
a. la suma de los dos primeros
b. el producto del tercero y el cuarto.
5) Realizar un programa que lea cuatro valores numéricos e imprimir su suma y
promedio.
6) Construir un programa que capture(lea por teclado) una temperatura en
Celsius y la convierta en Fahrenheit. 1 °C 33.8 °F .
7) Elaborar un algoritmo que lea un número y que escriba su cuadrado y que
determiné su potencia al cubo. Imprimir los resultados.
8) Escribir un programa en el cual el usuario ingrese una cantidad determinada
en centímetros, y luego convertir dicho valor (realizar conversión) a su
equivalente en:
20
Programación de Sistemas
Lenguaje de Programación: Java
Parte 4
Sentencias Control en Java
Un programa en Java se ejecuta en orden desde la primera sentencia hasta la última.
Si bien existen las sentencias de control de flujo las cuales permiten alterar el
fujo de ejecución para tomar decisiones o repetir sentencias.
Dentro de las sentencias de control de flujo tenemos las siguientes:
• Sentencias de decisión
• Sentencias de bucle
• Sentencias de ramificación
Sentencias de Decisión
Son sentencias que nos permiten tomar una decisión para poder ejecutar un bloque de
sentencias u otro.
Las sentencias de decisión son: if-then-else y switch.
Mediante if-then-else podremos evaluar una decisión y elegir por un bloque u otro.
21
Programación de Sistemas
Expresión en java.
if (expresión) {
// Bloque then
} else {
// Bloque else
}
Ejemplo:
22
Programación de Sistemas
Trabajo Practico N° 5: Estructura Alternativa -Java
Realizar los métodos para:
1) Leer una letra e identificar si es igual que A.
2) Leer un nombre y comparar si es igual al mío (su nombre).
3) Leer un número y mostrar por pantalla si es mayor que 5.
4) Realizar un programa que lea una nota y escriba si está aprobado o
desaprobado. La nota de aprobación es un 7.
5) Realizar un programa que lea dos notas y escriba si está aprobado o
desaprobado. Se considerará aprobado si el promedio de las notas es mayor o
igual que 7.
6) Realizar un programa que lea un número y escriba si es par o impar.
7) Realizar un programa que lea un número y analice si es par o impar. Si es
número es par multiplicarlo por 2 y escribir su resultado. Si es impar
multiplicarlo por 3 y escribir su resultado.
8) Realizar un programa que lea un número y analice si es par o impar. Si es
número es par multiplicarlo por 2 y escribir su resultado. Si es impar
multiplicarlo por 3 y escribir su resultado. Antes de terminar el programa
que escriba “actividad verificada”.
Trabajo Practico N° 6 : Estructura Alternativa – Secuencial -Java
1. Realizar un programa que simule una compra en el que se pida el ingreso por
teclado de Nombre de cliente y forma de pago (tarjeta o contado). Mostrar
por pantalla en cada caso el modo de pago.
2. Realizar un programa que simule una compra en el que se pida el ingreso por
teclado de Nombre de cliente y el monto de la compra. Si la compra supera
los 9 mil le realizará un descuento del 15% sino pagará en monto total.
Mostrar por pantalla el monto a pagar y si fuera el caso también el
descuento obtenido.
3. Realizar un programa que simule una compra. Donde se ingrese el monto de la
misma y la forma de pago (T o C). Si la forma de pago fue de contado
realizarle un descuento del 10% y en caso contrario un incremento del 5%.
Mostrar por pantalla el monto que se ingresa, descuento/aumento, y el total
a pagar.
4. Realizar un programa que simule una compra. Se debe ingresar el monto de la
compra y forma de pago (T o C). Si la compra supera los 10 mil y paga de
contado se realizará un descuento del 20%. Caso contrario pagará el monto
ingresado. Mostrar por pantalla el total a pagar y si se hizo un descuento
también.
23
Programación de Sistemas
Trabajo Practico N° 7 : Estructura Alternativa – Secuencial -Java
1) Realizar un programa en el que calcule porcentajes. Deberán ingresar el
número y el porcentaje a calcular.
2) Realzar un programa en el que se ingresen cuatro palabras y realice una
sola muestra por pantalla donde se pueda observar todas las palabras
ingresadas. Ejemplo:
primer palabra: palabra1 segunda palabra: palabra2 tercera palabra: palabra3 cuarta palabra:
palabra4
3) Realizar un programa de verificador de contraseña. Deberá tener
previamente una contraseña y leer una nueva. Si ambas coinciden, mostrar
mensaje sesión iniciada y en caso contrario contraseña incorrecta.
4) Realizar un programa de actualizador de contraseña. Deberá tener
previamente una contraseña y leer una nueva. Si ambas coinciden, se
deberá pedir la nueva contraseña y guardarla. Mostrar los mensajes de
cambio de contraseña o en caso contrario contraseña incorrecta.
24