Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Guia Introductoria para Empezar A Programar V 1.2
Guia Introductoria para Empezar A Programar V 1.2
de Datos
Guía de estudio
Mtra. Beatriz Arias Espinoza
ESTRUCTURA DE DATOS
GUÍA DE INICIO A LA ASIGNATURA
M. BEATRIZ ARIAS ESPINOZA
Índice
INTRODUCCIÓN A JAVA....................................................................................................................... 3
INSTALACIÓN DEL ENTORNO DE PROGRAMACIÓN ............................................................................ 5
PRIMEROS PROGRAMAS ..................................................................................................................... 7
Crear un proyecto ........................................................................................................................... 7
Hola mundo ................................................................................................................................... 10
Solicitar un número entero, guardarlo y mostrarlo en consola .................................................... 11
Solicitar un número flotante, guardarlo y mostrarlo en consola .................................................. 11
Solicitar una cadena de caracteres, guardarla y mostrarla en consola ........................................ 12
Mostrar un mensaje en modo gráfico (Ventana) .......................................................................... 12
Solicitar una variable en una ventana y después desplegarla en modo gráfico ........................... 13
SENTENCIAS DE CONTROL ................................................................................................................. 14
IF .................................................................................................................................................... 14
IF.. ELSE.......................................................................................................................................... 15
Switch ............................................................................................................................................ 18
Ciclo while ..................................................................................................................................... 20
Ciclo do while ................................................................................................................................ 21
Ciclo for ......................................................................................................................................... 25
ARREGLOS ......................................................................................................................................... 28
Declaración de arreglos................................................................................................................. 29
Inicialización de arreglos ............................................................................................................... 29
Definir tamaño de arreglos: .......................................................................................................... 30
Asignación de valores a elementos del array ................................................................................ 30
¿Cómo insertar desde consola, elementos en un arreglo?........................................................... 32
¿Cómo muestran en consola los elementos de un arreglo? ......................................................... 32
Notas adicionales: ......................................................................................................................... 33
Recorrido de arreglos .................................................................................................................... 35
CREACIÓN DE ARCHIVOS ................................................................................................................... 39
ORDENACION .................................................................................................................................... 41
Burbuja .......................................................................................................................................... 41
1
ESTRUCTURA DE DATOS
GUÍA DE INICIO A LA ASIGNATURA
M. BEATRIZ ARIAS ESPINOZA
QuickSort ....................................................................................................................................... 43
2
ESTRUCTURA DE DATOS
GUÍA DE INICIO A LA ASIGNATURA
M. BEATRIZ ARIAS ESPINOZA
INTRODUCCIÓN A JAVA
Java, el lenguaje orientado a objetos diseñado para ser multiplataforma y poder ser empleado el
mismo programa en diversos sistemas operativos.
Como cualquier lenguaje de programación, el lenguaje Java tiene su propia estructura, reglas de
sintaxis y paradigma de programación1. El paradigma de programación del lenguaje Java se basa
en el concepto de programación orientada a objetos (POO), que las funciones del lenguaje
soportan. En la POO, el comportamiento del programa es llevado a cabo por objetos, entidades
que representan elementos del problema a resolver y tienen atributos y comportamiento.
El lenguaje Java es un derivado del lenguaje C, por lo que sus reglas de sintaxis se parecen mucho a
C: por ejemplo, los bloques de códigos se modularizan en métodos y se delimitan con llaves ({ y })
y las variables se declaran antes de que se usen.
El compilador Java
Cuando programas para la plataforma Java, escribes el código de origen en archivos .java y luego
los compilas. El compilador verifica el código con las reglas de sintaxis del lenguaje, luego escribe
los códigos byte en archivos .class. Los códigos byte son instrucciones estándar destinadas a
ejecutarse en una Java Virtual Machine (JVM). Al agregar este nivel de abstracción, el compilador
Java difiere de los otros compiladores de lenguaje, que escriben instrucciones apropiadas para el
chipset de la CPU en el que el programa se ejecutará.
La JVM
Al momento de la ejecución, la JVM lee e interpreta archivos .class y ejecuta las instrucciones del
programa en la plataforma de hardware nativo para la que se escribió la JVM. La JVM interpreta
los códigos byte del mismo modo en que una CPU interpretaría las instrucciones del lenguaje del
conjunto. La diferencia es que la JVM es un software escrito específicamente para una plataforma
particular. La JVM es el corazón del principio "escrito una vez, ejecutado en cualquier lugar" del
1
Un paradigma de programación puede ser entendido como una forma o un estilo de programar. Podemos
hablar de un paradigma como un conjunto de creencias, prácticas y conocimientos que guían el desarrollo
de una disciplina durante un período de tiempo.
3
ESTRUCTURA DE DATOS
GUÍA DE INICIO A LA ASIGNATURA
M. BEATRIZ ARIAS ESPINOZA
lenguaje Java. Su código se puede ejecutar en cualquier chipset para el cual una implementación
apropiada de la JVM está disponible. Las JVM están disponibles para plataformas principales como
Linux y Windows y se han implementado subconjuntos del lenguaje Java en las JVM para teléfonos
móviles y aficionados de chips.
Cuando descargas un kit de desarrollo de Java (JDK), obtienes (además del compilador y otras
herramientas), una librería de clase completa de programas de utilidad preconstruidos que lo
ayudan a cumplir cualquier tarea común al desarrollo de aplicaciones. El mejor modo para tener
una idea del ámbito de los paquetes y bibliotecas JDK es verificar la documentación API JDK
(https://docs.oracle.com/javase/7/docs/api/).
El Java Runtime Environment (JRE, también conocido como el Java Runtime) incluye las bibliotecas
de códigos de la JVM y los componentes que son necesarios para programas en ejecución escritos
en el lenguaje Java. Está disponible para múltiples plataformas. Puede redistribuir libremente el
JRE con sus aplicaciones, de acuerdo a los términos de la licencia del JRE, para darles a los usuarios
de la aplicación una plataforma en la cual ejecutar su software. El JRE se incluye en el JDK.
4
ESTRUCTURA DE DATOS
GUÍA DE INICIO A LA ASIGNATURA
M. BEATRIZ ARIAS ESPINOZA
Después deberás realizar la descarga del JDK de java (Java Development Kit), que no es más que
un conjunto de herramientas (librerías y programas) que permiten desarrollar programas en
lenguaje Java. Cuando hablamos de desarrollar esto incluye compilar, ejecutar, generar
documentación, etc.
5
ESTRUCTURA DE DATOS
GUÍA DE INICIO A LA ASIGNATURA
M. BEATRIZ ARIAS ESPINOZA
Te redirigirá a un apartado donde deberás elegir el JDK más adecuado para tu computadora
personal.
Para verificar características de tu equipo, puedes abrir cualquier explorador de archivos, dar clic
derecho en equipo y seleccionar propiedades:
Esto te ayudará a obtener una ventana como la siguiente. En la ventana de propiedades del
Sistema lo que nos interesa es conocer el tipo de sistema (aunque la mayoría de las computadoras
ya trabajan a 64 bits).
6
ESTRUCTURA DE DATOS
GUÍA DE INICIO A LA ASIGNATURA
M. BEATRIZ ARIAS ESPINOZA
Si tu computadora coincide con el ejemplo de la imagen, deberás dar clic en Aceptar Licencia y
seleccionar jdk-8u201-windows-x64.exe.
Ya que tengas descargados los dos ejecutables en tu computadora deberás iniciar con el jdk y
después instalar el NetBeans.
PRIMEROS PROGRAMAS
Crear un proyecto
En NetBeans se trabaja
Lo primero que debes hacer será dirigirte al menú File y seleccionar New Project.
Aparecerá una pantalla como la siguiente. Selecciona los elementos como lo muestra la imagen:
7
ESTRUCTURA DE DATOS
GUÍA DE INICIO A LA ASIGNATURA
M. BEATRIZ ARIAS ESPINOZA
Deberás nombrar al proyecto que vayas a realizar e identificar la ruta donde se guardará tus
programas:
Si en algún momento quisieras guardar en usb el programa. Deberás ir a la ruta que marca y copiar
toda la carpeta que tiene el nombre del proyecto. Por ejemplo:
8
ESTRUCTURA DE DATOS
GUÍA DE INICIO A LA ASIGNATURA
M. BEATRIZ ARIAS ESPINOZA
Toda aplicación de consola en Java básica, contiene una clase principal con un método main. El
método main es lo primero que se ejecuta cuando se inicia la aplicación desde la línea de
comandos, es decir que la ejecución del programa comienza desde allí. De esta forma podemos
deducir que cualquier llamado, declaración o método que no sea utilizado de manera directa o
indirecta desde el método main nunca se ejecutará.
9
ESTRUCTURA DE DATOS
GUÍA DE INICIO A LA ASIGNATURA
M. BEATRIZ ARIAS ESPINOZA
Hola mundo
10
ESTRUCTURA DE DATOS
GUÍA DE INICIO A LA ASIGNATURA
M. BEATRIZ ARIAS ESPINOZA
11
ESTRUCTURA DE DATOS
GUÍA DE INICIO A LA ASIGNATURA
M. BEATRIZ ARIAS ESPINOZA
12
ESTRUCTURA DE DATOS
GUÍA DE INICIO A LA ASIGNATURA
M. BEATRIZ ARIAS ESPINOZA
13
ESTRUCTURA DE DATOS
GUÍA DE INICIO A LA ASIGNATURA
M. BEATRIZ ARIAS ESPINOZA
SENTENCIAS DE CONTROL
Los ejemplos de esta sección se enfocan en el proceso de desarrollo de programas. Se exponen los
tipos primitivos de instrucciones de control para la tomas de decisiones (if, else, if… else, while,
do…while, for, switch, etc.). Los ejemplos también muestran el manejo de la repetición controlada
por contador y por centinela, y se introducen los operadores de incremento, decremento y
asignación de Java y las instrucciones break y switch.
IF
Es la instrucción condicional más usada en los diversos lenguajes de programación, su formato de
trabajo en JAVA es :
if (condición)
Ejemplo: El siguiente programa solicita una calificación y después indica si ésta es reprobatoria
14
ESTRUCTURA DE DATOS
GUÍA DE INICIO A LA ASIGNATURA
M. BEATRIZ ARIAS ESPINOZA
IF.. ELSE
Es la instrucción condicional más usada en los diversos lenguajes de programación, su formato
completo y de trabajo en JAVA es :
//cargar o asignar la variable de condición;
if (condición)
else
15
ESTRUCTURA DE DATOS
GUÍA DE INICIO A LA ASIGNATURA
M. BEATRIZ ARIAS ESPINOZA
Ejemplo:
Continuando con el ejemplo anterior, se puede agregar otra posible respuesta al ingreso de una
calificación.
La ejecución sería:
16
ESTRUCTURA DE DATOS
GUÍA DE INICIO A LA ASIGNATURA
M. BEATRIZ ARIAS ESPINOZA
Supongamos que se desea escribir un programa que clasifique según el contenido de una variable
valor, asigne una letra a una variable clasificación:
B de 90-81,
C para 80-71 y
El resultado sería:
17
ESTRUCTURA DE DATOS
GUÍA DE INICIO A LA ASIGNATURA
M. BEATRIZ ARIAS ESPINOZA
Switch
switch( condición)
case 1:
instrucción(es);
break;
case 2:
instrucción(es);
break;
default:
instrucción(es);
18
ESTRUCTURA DE DATOS
GUÍA DE INICIO A LA ASIGNATURA
M. BEATRIZ ARIAS ESPINOZA
19
ESTRUCTURA DE DATOS
GUÍA DE INICIO A LA ASIGNATURA
M. BEATRIZ ARIAS ESPINOZA
Ciclo while
En este ciclo el cuerpo de instrucciones se ejecuta mientras una condición permanezca como
verdadera, en el momento en que la condición se convierte en falsa el ciclo termina.
Su formato general es :
while(condición)
};
Observa que se inicializa una variable j en uno y después viene la condición while, es decir,
mientras la variable j sea menor que diez, se imprimirá en pantalla el valor de dicha variable.
20
ESTRUCTURA DE DATOS
GUÍA DE INICIO A LA ASIGNATURA
M. BEATRIZ ARIAS ESPINOZA
Ciclo do while
Su diferencia básica con el ciclo while es que la prueba de condición es hecha al finalizar el
ciclo, es decir las instrucciones se ejecutan cuando menos una vez, porque primero ejecuta las
instrucciones y al final evalúa la condición;
Su formato general es :
do {
} while (condición);
Esta estructura repetitiva se utiliza cuando conocemos de antemano que por lo menos una vez se
ejecutará el bloque repetitivo.
La condición de la estructura está abajo del bloque a repetir, a diferencia del while o del for que
está en la parte superior.
Representación gráfica:
21
ESTRUCTURA DE DATOS
GUÍA DE INICIO A LA ASIGNATURA
M. BEATRIZ ARIAS ESPINOZA
Ejemplo: Escribir un programa que solicite la carga de un número entre 0 y 999, y nos muestre un
mensaje de cuántos dígitos tiene el mismo. Finalizar el programa cuando se cargue el valor 0.
No hay que confundir los rombos de las estructuras condicionales con los de las estructuras
repetitivas do while.
22
ESTRUCTURA DE DATOS
GUÍA DE INICIO A LA ASIGNATURA
M. BEATRIZ ARIAS ESPINOZA
En este problema por lo menos se carga un valor. Si se carga un valor mayor o igual a 100 se trata
de un número de tres cifras, si es mayor o igual a 10 se trata de un valor de dos dígitos, en caso
contrario se trata de un valor de un dígito. Este bloque se repite hasta que se ingresa en la variable
valor el número 0 con lo que la condición de la estructura do while retorna falso y sale del bloque
repetitivo finalizando el programa.
El programa sería:
Observa la salida del programa anterior, nota que el programa termina en el momento en el que el
usuario ingresa un número cero, mientras no lo haga, el programa solicita un valor entre 0 y 999
una y otra vez.
23
ESTRUCTURA DE DATOS
GUÍA DE INICIO A LA ASIGNATURA
M. BEATRIZ ARIAS ESPINOZA
El ciclo do while lo podemos utilizar cuando requerimos de la repetición de una tarea, por ejemplo
un menú (switch). Observa el siguiente ejemplo:
24
ESTRUCTURA DE DATOS
GUÍA DE INICIO A LA ASIGNATURA
M. BEATRIZ ARIAS ESPINOZA
Ciclo for
Cualquier problema que requiera una estructura repetitiva se puede resolver empleando la
estructura while. Pero hay otra estructura repetitiva cuyo planteo es más sencillo en ciertas
situaciones.
En general, la estructura for se usa en aquellas situaciones en las cuales CONOCEMOS la cantidad
de veces que queremos que se ejecute el bloque de instrucciones. Ejemplo: cargar 10 números,
ingresar 5 notas de alumnos, etc. Conocemos de antemano la cantidad de veces que queremos
que el bloque se repita. Veremos, sin embargo, que en el lenguaje Java la estructura for puede
usarse en cualquier situación repetitiva, porque en última instancia no es otra cosa que una
estructura while generalizada.
Representación gráfica:
25
ESTRUCTURA DE DATOS
GUÍA DE INICIO A LA ASIGNATURA
M. BEATRIZ ARIAS ESPINOZA
En su forma más típica y básica, esta estructura requiere una variable entera que cumple la
función de un CONTADOR de vueltas. En la sección indicada como "inicialización contador", se
suele colocar el nombre de la variable que hará de contador, asignándole a dicha variable un valor
inicial. En la sección de "condición" se coloca la condición que deberá ser verdadera para que el
ciclo continúe (en caso de un falso, el ciclo se detendrá). Y finalmente, en la sección de
"incremento contador" se coloca una instrucción que permite modificar el valor de la variable que
hace de contador (para permitir que alguna vez la condición sea falsa)
Cuando el ciclo comienza, antes de dar la primera vuelta, la variable del for toma el valor indicado
en la sección de de "inicialización contador". Inmediatamente se verifica, en forma automática, si
la condición es verdadera. En caso de serlo se ejecuta el bloque de operaciones del ciclo, y al
finalizar el mismo se ejecuta la instrucción que se haya colocado en la tercer sección.
Seguidamente, se vuelve a controlar el valor de la condición, y así prosigue hasta que dicha
condición entregue un falso.
Si conocemos la cantidad de veces que se repite el bloque es muy sencillo emplear un for, por
ejemplo si queremos que se repita 50 veces el bloque de instrucciones puede hacerse así:
La variable del for puede tener cualquier nombre. En este ejemplo se la ha definido con el nombre
f.
Analicemos el ejemplo:
26
ESTRUCTURA DE DATOS
GUÍA DE INICIO A LA ASIGNATURA
M. BEATRIZ ARIAS ESPINOZA
La variable f puede ser modificada dentro del bloque de operaciones del for, aunque esto podría
causar problemas de lógica si el programador es inexperto.
La variable f puede ser inicializada en cualquier valor y finalizar en cualquier valor. Además, no es
obligatorio que la instrucción de modificación sea un incremento del tipo contador (f++).
Cualquier instrucción que modifique el valor de la variable es válida. Si por ejemplo se escribe
f=f+2 en lugar de f++, el valor de f será incrementado de a 2 en cada vuelta, y no de a 1. En este
caso, esto significará que el ciclo no efectuará las 50 vueltas sino sólo 25.
//instrucciones;
}
Las tres partes del ciclo se encuentran separadas por ; (punto y coma)
La primer parte del ciclo especifica valores previos a su inicio.
La segunda parte indica la condición de terminación para el ciclo, la cual está directamente
relacionada con los valores iniciales.
Finalmente, la última parte especifica cómo serán manipulados los valores iniciales en
cada iteración del ciclo.
Cada parte del ciclo debe incluir al menos un elemento, a la cual es posible agregar otros
elementos a partir de una , (coma).
Ejemplo: A continuación se utiliza un ciclo for para mostrar los números pares comprendidos
entre el 1 y el 10.
27
ESTRUCTURA DE DATOS
GUÍA DE INICIO A LA ASIGNATURA
M. BEATRIZ ARIAS ESPINOZA
ARREGLOS
Los arreglos (arrays) son estructuras de datos que guardan datos del mismo tipo. Cada uno de los
elementos del array tiene asignado un índice numérico de acuerdo con su posición, siendo 0 el
índice del primero.
Por ejemplo:
A 12 2 3 5 77 4
0 1 2 3 4 5
G a e i o u
0 1 2 3 4
28
ESTRUCTURA DE DATOS
GUÍA DE INICIO A LA ASIGNATURA
M. BEATRIZ ARIAS ESPINOZA
0 1
0
Nombres Diana Juan
1
Maria Rosy
2
Edgar Luis
3
Diego Aldo
El arreglo se llama Nombres y guarda 8 elementos de tipo String en 4 filas y 2
columnas.
Existen varios tipos de arreglos, en los que encontramos: una dimensión (vectores), dos
dimensiones (matrices) y multidimensionales (3, 4 o más dimensiones)
Declaración de arreglos
La declaración de un arreglo, significa crear casillas en “blanco”, esperando a que se llenen con
datos. Para poder declarar un arreglo existen dos formas:
Inicialización de arreglos
Inicializar un arreglo significa que se le darán valores por default al arreglo.
29
ESTRUCTURA DE DATOS
GUÍA DE INICIO A LA ASIGNATURA
M. BEATRIZ ARIAS ESPINOZA
Los arreglos se pueden definir como objetos en los que podemos guardar más de una variable, es
decir, al tener un único arreglo, este puede guardar múltiples variables de acuerdo a su tamaño o
capacidad, es importante recordar que las variables guardadas deben ser del mismo tipo, por
ejemplo: Si tenemos un arreglo de tipo Numérico que puede almacenar 10 variables, solo podrá
almacenar 10 números diferentes, no otras variables como caracteres o Strings.
Ejemplo:
Para realizar una declaración de un arreglo y definir su tamaño en una misma línea se puede usar
la siguiente estructura:
arreglo[indicador]=valor;
Ejemplos:
30
ESTRUCTURA DE DATOS
GUÍA DE INICIO A LA ASIGNATURA
M. BEATRIZ ARIAS ESPINOZA
Es importante recordar que para accesar a los datos guardados en un arreglo se utilizan
indicadores iniciando desde el "0", si un arreglo tiene un tamaño de 10 variables, entonces se
puede accesar a sus elementos con los indicadores del 0 al 9.
31
ESTRUCTURA DE DATOS
GUÍA DE INICIO A LA ASIGNATURA
M. BEATRIZ ARIAS ESPINOZA
Nota: Obsérvese que para leer datos o insertar datos en un arreglo, forzosamente debemos
recorrerlo posición por posición haciendo uso del ciclo for.
32
ESTRUCTURA DE DATOS
GUÍA DE INICIO A LA ASIGNATURA
M. BEATRIZ ARIAS ESPINOZA
Notas adicionales:
33
ESTRUCTURA DE DATOS
GUÍA DE INICIO A LA ASIGNATURA
M. BEATRIZ ARIAS ESPINOZA
34
ESTRUCTURA DE DATOS
GUÍA DE INICIO A LA ASIGNATURA
M. BEATRIZ ARIAS ESPINOZA
Recorrido de arreglos
Recorrer un arreglo significa que se pasará posición por posición y se realizarán operaciones con
cada elemento. Las operaciones a realizar pueden ser:
35
ESTRUCTURA DE DATOS
GUÍA DE INICIO A LA ASIGNATURA
M. BEATRIZ ARIAS ESPINOZA
a. Lectura
b. Escritura
c. Ordenación
d. Búsqueda
El siguiente bloque de código utiliza un ciclo for que va desde la posición 0 del arreglo hasta la
posición tamaño-1, para recorrer un arreglo y después con número pares enteros positivos
(empezando por el cero).
Salida:
36
ESTRUCTURA DE DATOS
GUÍA DE INICIO A LA ASIGNATURA
M. BEATRIZ ARIAS ESPINOZA
Salida:
37
ESTRUCTURA DE DATOS
GUÍA DE INICIO A LA ASIGNATURA
M. BEATRIZ ARIAS ESPINOZA
Salida:
38
ESTRUCTURA DE DATOS
GUÍA DE INICIO A LA ASIGNATURA
M. BEATRIZ ARIAS ESPINOZA
CREACIÓN DE ARCHIVOS
El paquete java.io contiene casi todas las clases que podamos necesitar para llevar a cabo la
entrada y salida (I/O) de datos en Java. En el caso de la lectura y escritura de archivos, se usan los
llamados streams para poder leer y escribir datos.
Un stream puede ser definido como una secuencia de datos. El InputStream se utiliza para leer
datos de una fuente y el OutputStream se utiliza para escribir datos en un destino.
ESCRITURA
39
ESTRUCTURA DE DATOS
GUÍA DE INICIO A LA ASIGNATURA
M. BEATRIZ ARIAS ESPINOZA
En el caso de que se quisiera enviar los elementos de un arreglo al archivo, el código sería:
40
ESTRUCTURA DE DATOS
GUÍA DE INICIO A LA ASIGNATURA
M. BEATRIZ ARIAS ESPINOZA
ORDENACION
Burbuja
El funcionamiento del algoritmo de ordenación burbuja, únicamente va recorriendo los elementos
del arreglo comparando si es más grande o más chico un elemento que el de al lado, dependiendo
si queremos ordenar de forma ascendente o descendente, se realizan las cantidad de vueltas
necesarias hasta tener todos los elementos ordenados.
41
ESTRUCTURA DE DATOS
GUÍA DE INICIO A LA ASIGNATURA
M. BEATRIZ ARIAS ESPINOZA
Salida:
42
ESTRUCTURA DE DATOS
GUÍA DE INICIO A LA ASIGNATURA
M. BEATRIZ ARIAS ESPINOZA
QuickSort
Resituar los demás elementos de la lista a cada lado del pivote, de manera que a un lado
queden todos los menores que él, y al otro los mayores. En este momento, el pivote ocupa
exactamente el lugar que le corresponderá en la lista ordenada.
La lista queda separada en dos sublistas, una formada por los elementos a la izquierda del
pivote, y otra por los elementos a su derecha.
Repetir este proceso de forma recursiva para cada sublista mientras éstas contengan más
de un elemento. Una vez terminado este proceso todos los elementos estarán ordenados.
Como se puede suponer, la eficiencia del algoritmo depende de la posición en la que
termine el pivote elegido.
43
ESTRUCTURA DE DATOS
GUÍA DE INICIO A LA ASIGNATURA
M. BEATRIZ ARIAS ESPINOZA
44
ESTRUCTURA DE DATOS
GUÍA DE INICIO A LA ASIGNATURA
M. BEATRIZ ARIAS ESPINOZA
Ejercicios:
Entregar los ejercicios escritos en hojas blancas (usar por ambas caras) el día del examen.
45