UNIVERSIDAD MAYOR DE SAN SIMÓN
FACULTAD DE CIENCIAS Y TECNOLOGÍA
DEPARTAMENTO DE INFORMÁTICA Y SISTEMAS
Curso de programación
con JAVA
Andy Daniel Ortiz Flores
Temario
● Introducción y fundamentos
● Estructuras de control y funciones
● Arreglos y matrices
● Programación orientada a objetos (POO)
● Interfaces y recursividad
ANDY D. ORTIZ F.
¿Qué es programar?
● Proceso de diseñar y escribir instrucciones que una computadora puede
ejecutar.
● Permite resolver problemas por medio de la computación y automatizar
tareas.
Programa: Serie de instrucciones escritas en un lenguaje de programación que
una computadora ejecuta para realizar una tarea específica.
● Un programa se construye a partir de algoritmos.
Algoritmo: conjunto de pasos ordenados, finitos y precisos que permiten
resolver un problema o realizar una tarea.
INTRODUCCIÓN Y FUNDAMENTOS ANDY D. ORTIZ F.
Programación imperativa
● Se centra en cómo resolver un problema.
● El programador indica paso a paso qué hacer.
● Usa variables, asignaciones y estructuras de control.
Programación secuencial y estructurada:
● Instrucciones ejecutadas en orden lineal.
● Divide el código en bloques con estructuras de control
● Facilita detectar errores y reutilizar fragmentos de código.
Programación orientada a objetos:
● Organiza el programa en objetos que representan entidades del mundo real.
INTRODUCCIÓN Y FUNDAMENTOS ANDY D. ORTIZ F.
Lenguajes de programación
● Son medios de comunicación entre humanos y computadoras.
● Alto nivel (más cercanos al humano) vs. bajo nivel (más cercanos a la
máquina).
Conjunto de reglas, símbolos y palabras clave (sintaxis y semántica) que se
utiliza para escribir instrucciones (código fuente) que una computadora puede
entender y ejecutar para realizar tareas específicas
INTRODUCCIÓN Y FUNDAMENTOS ANDY D. ORTIZ F.
Lenguaje Java
● Creado en 1995 por Sun Microsystems (hoy Oracle).
● Multiplataforma: “Write once, run anywhere” (WORA).
Frameworks en Java
● Spring / Spring Boot: Desarrollo web y APIs
● Hibernate: manejo de bases de datos y mapeo objeto-relacional.
● Apache Struts: Framework MVC para aplicaciones web.
INTRODUCCIÓN Y FUNDAMENTOS ANDY D. ORTIZ F.
Características de Java
● Tipado fuerte y seguro.
● Orientado a objetos.
● Soporta multihilo (concurrencia).
● Amplia comunidad y bibliotecas.
● Robusto y confiable
● Interpretado y compilado
● Portabilidad de código
INTRODUCCIÓN Y FUNDAMENTOS ANDY D. ORTIZ F.
Compiladores, IDEs
Compilador: Es un programa informático que traduce un código fuente escrito
en un lenguaje de programación de alto nivel (como C++ o Java) a código
máquina o un lenguaje de bajo nivel que la computadora pueda entender y
ejecutar directamente. (JDK)
IDE (Entorno de Desarrollo Integrado): es una aplicación que combina todas
las herramientas necesarias para el desarrollo de aplicaciones, como un editor
de texto, un depurador y un compilador, en una única interfaz gráfica para
aumentar la eficiencia del programador
[Link]
INTRODUCCIÓN Y FUNDAMENTOS ANDY D. ORTIZ F.
Sintaxis Java
● Es estrictamente tipado, lo que significa que cada variable debe declararse
con un tipo de dato.
● Su sintaxis se basa en el uso de clases y métodos como bloques principales
de código.
Estructura básica
● Definición de la clase: todo programa se organiza dentro de clases.
● Método principal (main): punto de entrada de la aplicación.
● Sentencias: cada instrucción termina con punto y coma ;
● Bloques de código: delimitados por llaves { }.
INTRODUCCIÓN Y FUNDAMENTOS ANDY D. ORTIZ F.
Convenciones de sintaxis
● Sensibilidad a mayúsculas/minúsculas: Variable ≠ variable.
● Nombres de clases: inician con mayúscula (MiClase).
● Nombres de variables y métodos: inician con minúscula (miVariable,
calcularTotal()).
● Comentarios: Empieza con dos barras //
CamelCase: Notación que se aplica a nombres de métodos y variables,
comienzan con minúscula y cada palabra posterior inicia con mayúscula.
INTRODUCCIÓN Y FUNDAMENTOS ANDY D. ORTIZ F.
Tipos de datos en Java
INTRODUCCIÓN Y FUNDAMENTOS ANDY D. ORTIZ F.
Variables
● Una variable es un espacio de memoria en el que se puede almacenar un
valor.
● Tiene un nombre, un tipo de dato y un valor.
● Sirven para guardar datos que serán usados en un programa.
● Es como una “caja” donde guardamos información que puede cambiar
durante la ejecución del programa.
Tipadas: cada variable debe declararse con un tipo (int, double, String …).
Nombradas: deben tener un nombre identificador (ej: edad, nombre)
Alcance: pueden ser locales (dentro de un método), globales (atributos de
clase) o parámetros de un método.
Inicialización: Si no se les da valor, algunas toman un valor por defecto según
el tipo
INTRODUCCIÓN Y FUNDAMENTOS ANDY D. ORTIZ F.
Operadores
Son símbolos especiales que indican al compilador que debe realizar una
operación matemática, lógica o de asignación sobre variables y valores.
Operadores aritméticos: + - * / %
Operadores de asignación: = += -= /= *= %=
Operadores relacionales: == != < > >= <=
Operadores lógicos: && (and) || (or) ! (not)
Operadores unarios y operador ternario
INTRODUCCIÓN Y FUNDAMENTOS ANDY D. ORTIZ F.
Introducción a las estructuras de control
● Permiten decidir qué instrucciones ejecutar y en qué orden.
● Alteran la secuencia lineal de un programa
Tipos principales:
● Condicionales (decisiones)
● Repetitivas(bucles)
ESTRUCTURAS DE CONTROL Y FUNCIONES ANDY D. ORTIZ F.
Condicionales
Una condicional es una estructura de control que permite que un programa tome
decisiones en función a una expresión lógica.
Todas las estructuras condicionales en Java dependen de una expresión lógica
(que devuelve true o false).
● if: ejecuta un bloque si la condición es verdadera.
● if- else: ejecuta un bloque si la condición es verdadera, otro si no lo es.
● if - else if - else: permite múltiples condiciones.
● switch: selecciona entre varias opciones según un valor.
if ( condición ) { } else if ( condición) { }
ESTRUCTURAS DE CONTROL Y FUNCIONES ANDY D. ORTIZ F.
Ejercicios de condicionales
● Dado la edad de un usuario mostrar si es mayor de edad (18 o más) o
menor de edad.
● Dado una nota de 0 a 100 muestra los siguientes mensajes si corresponde:
90 o más → “Excelente”
70 a 89 → “Aprobado”
50 a 69 → “Regular”
Menos de 50 → “Reprobado”
ESTRUCTURAS DE CONTROL Y FUNCIONES ANDY D. ORTIZ F.
Ejercicios de condicionales
● El usuario ingresa un número del 1 al 7 y el programa muestra el día
correspondiente: 1 = Lunes, 2 = Martes, …, 7 = Domingo. Si el número es
inválido, mostrar un mensaje de error.
● Un banco aprueba un préstamo si se cumplen todas estas condiciones:
El solicitante tiene edad entre 18 y 65 años.
Su ingreso mensual es mayor o igual a 1000.
No tiene deudas pendientes (booleano: true = sí tiene deuda, false = no
tiene).
Si alguna de estas condiciones no se cumple, el préstamo no se aprueba.
ESTRUCTURAS DE CONTROL Y FUNCIONES ANDY D. ORTIZ F.
Estructuras de repetición
Las estructuras de repetición nos permiten ejecutar un bloque varias veces.
● while: repite mientras la condición sea verdadera.
● do-while: igual que while, pero se ejecuta al menos una vez.
● for: ideal cuando se conoce el número de repeticiones.
while ( condición ) { } while ( numero > 10)
do { } while ( condición);
for ( inicialización, condición, incremento ) { }
for ( int i = 0; i < 10; i++) { }
ESTRUCTURAS DE CONTROL Y FUNCIONES ANDY D. ORTIZ F.
Ejercicios con repetición
● Escribe un programa que imprima los números del 1 al 50 usando
un ciclo for.
● Crea un programa que pida al usuario 10 números enteros y
muestre la suma total utilizando un ciclo while.
● Escribe un programa que imprima todos los números pares del 1 al
100 usando un ciclo for.
● Haz un programa que calcule el factorial de un número entero
positivo ingresado por el usuario usando un ciclo while.
● Escribe un programa que pida números al usuario y los sume hasta
que el usuario ingrese un 0. Usa un ciclo do-while.
ESTRUCTURAS DE CONTROL Y FUNCIONES ANDY D. ORTIZ F.
Ejercicios con repetición
● Escribe un programa para sumar los digitos de un número.
● Escribe un programa que imprima los primeros n números de la
serie de Fibonacci, donde n es ingresado por el usuario.
● Crea un programa que lea un número entero y lo imprima al revés
(por ejemplo, si ingresa 1234, debe mostrar 4321).
● Haz un programa que pida al usuario una contraseña y siga
pidiendo hasta que ingrese la correcta ("Java123"). Muestra un
mensaje de éxito al ingresar la contraseña correcta.
● Escribe un programa que lea una cadena y cuente cuántos
caracteres son letras, cuántos son dígitos y cuántos son otros
caracteres.
ESTRUCTURAS DE CONTROL Y FUNCIONES ANDY D. ORTIZ F.
Ejercicios con repetición
● Crea un juego donde la computadora “piense” un número entre 1 y
50 y el usuario tenga que adivinarlo. Después de cada intento,
indica si el número ingresado es mayor o menor hasta que acierte.
● Crea un programa que lea una palabra o frase y determine si es un
palíndromo (se lee igual de izquierda a derecha que de derecha a
izquierda).
● Crea un programa que lea un número entero positivo n y genere la
secuencia de Collatz:
Si el número es par dividirlo entre 2. Si es impar multiplicarlo por 3 y
sumar 1 Repetir hasta llegar a 1
Por ejemplo, para n = 6: 6, 3, 10, 5, 16, 8, 4, 2, 1
ESTRUCTURAS DE CONTROL Y FUNCIONES ANDY D. ORTIZ F.
Estructuras de control anidadas
● Un if dentro de otro.
● Un bucle dentro de otro.
● Se usan para problemas más complejos (ej: imprimir tablas, buscar en
matrices, recorridos).
for (int i = 1; i <= 3; i++) {
for (int j = 1; j <= 3; j++) {
sum += i + j;
ESTRUCTURAS DE CONTROL Y FUNCIONES ANDY D. ORTIZ F.
Introducción a las funciones
● Bloques de código
que realizan una
tarea específica.
● Mejoran la
organización y
modularidad.
● Se pueden llamar
varias veces desde
cualquier parte del
programa
ESTRUCTURAS DE CONTROL Y FUNCIONES ANDY D. ORTIZ F.
Definición y uso de funciones
Una función tiene:
● Nombre identificador: Para poder llamarlo.
● Parámetros (opcionales): Datos que recibe para trabajar.
● Tipo de retorno: El tipo de dato que devuelve, o void si no devuelve nada.
● Bloque de código: El conjunto de instrucciones entre { }.
Tipos de funciones
● Funciones sin parámetros y sin retorno. (void)
● Funciones con parámetros (reciben datos).
● Funciones con retorno (devuelven resultados).
ESTRUCTURAS DE CONTROL Y FUNCIONES ANDY D. ORTIZ F.
Estructura de una función
ESTRUCTURAS DE CONTROL Y FUNCIONES ANDY D. ORTIZ F.
Ejercicios con funciones
● Escribe un programa que pida al usuario dos números enteros a y b
y muestre todos los números primos entre a y b usando ciclos.
● Crea un método contarVocales que reciba un String y devuelva la
cantidad de vocales que contiene.
● Crea un método invertirCadena que reciba un String y devuelva el
mismo texto invertido.
ESTRUCTURAS DE CONTROL Y FUNCIONES ANDY D. ORTIZ F.