Está en la página 1de 24

Día, Fecha: Jueves, 03/08/2023

Hora de inicio: 09:03

Introducción a la Computación y
Programación 1 [E]
Rodrigo Antonio Porón De León
Clase 3
Agenda
● Práctica 1
● Input y Output
● Ciclos
● Arreglos y listas dinámicas
● Procedimientos y Funciones
● Recursividad
● Métodos de ordenamiento
Input y Output
Entrada (Input):

La entrada en Java se refiere a la forma en que un programa recibe datos del usuario o de
una fuente externa, como un archivo. Utilizamos métodos de entrada para capturar
información. Por ejemplo, podemos usar la clase Scanner para leer números y texto que el
usuario escriba en la consola, lo que permite que el programa interactúe con las personas.

Salida (Output):

La salida en Java es la manera en que un programa muestra resultados, mensajes o datos


procesados al usuario o los almacena en un archivo. Se utiliza principalmente para comunicar
información del programa al mundo exterior. El método System.out.println() es una forma
común de imprimir mensajes y resultados en la consola, lo que hace que los programas sean
interactivos y comprensibles para los usuarios.
Ciclos
Ciclos (Bucles):

Los ciclos, también conocidos como bucles, son estructuras de control en programación que
permiten repetir un bloque de código varias veces de manera automatizada. Son
fundamentales para ejecutar tareas repetitivas sin tener que escribir el mismo código una y
otra vez.

Existen principalmente tres tipos de ciclos en Java.

For, while, do-while.


Bucle for: Como mencionamos anteriormente, el bucle for ejecuta un bloque de código un
número específico de veces, controlado por una inicialización, una condición y una expresión
de actualización.

Bucle while: El bucle while ejecuta un bloque de código mientras una condición dada sea
verdadera. La condición se verifica antes de cada iteración. Es importante asegurarse de que
la condición en algún momento se vuelva falsa para evitar bucles infinitos.

Bucle do-while: Similar al bucle while, el bucle do-while también ejecuta un bloque de código
mientras una condición sea verdadera. La diferencia es que en el bucle do-while, la condición
se verifica después de cada iteración, lo que garantiza que el bloque de código se ejecute al
menos una vez.
Arreglos y Listas
Dinámicas
Arreglos:

Un arreglo es una estructura de datos que almacena una colección de elementos del mismo
tipo. Cada elemento se accede a través de un índice numérico, comenzando desde 0. Los
arreglos tienen un tamaño fijo que se establece al crearlos, lo que significa que se puede
cambiar su tamaño una vez creado.

int[] arregloEnteros = new int[5];

Acceder a elementos en un arreglo:

arregloEnteros[0] = 10; // Asignar valor 10 al primer elemento

int primerElemento = arregloEnteros[0]; // Acceder al primer elemento


Listas Dinámicas (ArrayList):

Una lista dinámica, en Java representada por la clase ArrayList, es similar a un arreglo pero
tiene la ventaja de poder cambiar su tamaño de manera dinámica. Puedes agregar o eliminar
elementos fácilmente sin preocuparte por el tamaño subyacente.

import java.util.ArrayList;

// Declaración e inicialización de una lista dinámica de cadenas

ArrayList<String> listaCadenas = new ArrayList<>();

Agregar elementos a una lista dinámica:

listaCadenas.add("Manzana");

listaCadenas.add("Banana");
Procedimientos y
Funciones:
Tanto los procedimientos como las funciones son bloques de
código reutilizables que realizan una tarea específica. La
diferencia principal entre ellos radica en su manejo del valor de
retorno.
Procedimientos: Los procedimientos son bloques de código que realizan una serie de
instrucciones sin devolver un valor específico al lugar donde fueron llamados. Se utilizan para
realizar acciones y operaciones, como mostrar un mensaje en pantalla o actualizar datos.
Funciones: Las funciones también son bloques de código que realizan tareas específicas,
pero tienen la capacidad de devolver un valor calculado al lugar donde fueron llamadas.
Pueden ser utilizadas para cálculos matemáticos, procesamiento de datos y más.
Recursividad
La recursividad es un concepto en programación en el que una función se llama a sí misma
para resolver un problema. Es como un bucle que se realiza dentro de la propia función. Se
utiliza en situaciones en las que un problema se puede dividir en casos más pequeños y
resolubles de la misma naturaleza.

Un ejemplo clásico de recursividad es el cálculo del factorial de un número:


Manejo de memoria
Memoria Estática en Java:

La memoria estática en Java se refiere a la asignación de memoria durante la carga y


compilación del programa. Los objetos y variables estáticas se crean una vez y persisten
durante toda la vida del programa. Estos elementos son compartidos por todas las instancias
de la clase y son almacenados en el segmento de memoria conocido como "pila" o "heap".

Memoria Dinámica (Heap) en Java:

La memoria dinámica en Java se refiere a la asignación de memoria en tiempo de ejecución


para objetos cuya vida útil puede variar. Los objetos creados en el heap son gestionados
automáticamente por el recolector de basura (Garbage Collector) de Java, que se encarga de
liberar la memoria de los objetos que ya no son referenciados.
Métodos de
ordenamiento
Los métodos de ordenamiento son algoritmos utilizados para reorganizar elementos en una
colección de datos, como un arreglo o una lista, en un orden específico, como ascendente o
descendente. Estos algoritmos juegan un papel importante en la optimización de búsquedas
y mejoran el rendimiento en la manipulación de datos.
Ordenamiento Burbuja

Este método compara cada par de elementos adyacentes y los intercambia si están en el
orden incorrecto. Repite este proceso hasta que toda la colección esté ordenada. Aunque es
simple, no es muy eficiente para colecciones grandes.
Ordenamiento por Inserción

En este método, los elementos se insertan uno a uno en su posición correcta mientras se
recorre la colección. Es eficiente para colecciones pequeñas o casi ordenadas.
Ordenamiento por Selección

El método de ordenamiento rápido selecciona un elemento llamado "pivote", reorganiza los


elementos de manera que los elementos menores que el pivote estén a su izquierda y los
mayores a su derecha. Luego, repite este proceso para las subcolecciones hasta que toda la
colección esté ordenada. Es eficiente para colecciones grandes y es ampliamente utilizado
en la práctica.

También podría gustarte