- WORD
- FORMATO AUTOMATICO Y ESTILOS
- INSERTAR CUADRO DE TEXTO Y ECUACION
- REFERENCIASTABLA DE CONTENIDO Y BIBLIOGRAFIA
- Ir a Prácticas
- EXCEL
- FORMULAS I y II
- TABLAS Y GRAFICOS DINAMICOS
- SUBTOTALES Y BASE DE DATOS
- MACROS
- Ir a Prácticas
- AUTOCAD
- 2D:DIBUJO Y ACOTAR
- INSERTAR BLOQUES Y PLOT
- 3D: MODELADO Y EDICION DE SOLIDOS
- RENDER Y ANIMACIONES
- Ir a Prácticas
viernes, 13 de febrero de 2026
miércoles, 11 de febrero de 2026
java: arrays 2
ARRAYS
2
La clase java.util.Arrays en Java es una herramienta fundamental que proporciona métodos estáticos para manipular matrices (arrays), como ordenar, buscar, rellenar y convertir a cadenas. Es de utilidad directa y no requiere instanciación; se importa con import java.util.Arrays; para facilitar tareas comunes de gestión de datos.
- sort(): Ordena el array de forma ascendente.
- binarySearch(): Busca un elemento en un array ordenado.
- equals(): Compara si dos arrays son iguales.
- fill(): Asigna un valor específico a todos los elementos.
- toString(): Convierte el array en una cadena legible.
- copyOf() / copyOfRange(): Copia un array o una parte
de él.
CODIGO:
package javaapplication5;
import
java.util.Arrays;
import
java.util.Scanner;
public class JavaApplication5 {
public static void main(String[]
args) {
Scanner teclado=new
Scanner(System.in);
int[] numeros =
{5, 2, 8, 1, 9};
// Ordenar el array
Arrays.sort(numeros);
System.out.println(Arrays.toString(numeros)); // [1, 2, 5, 8, 9]
// Buscar un elemento (debe estar ordenado)
int pos = Arrays.binarySearch(numeros, 5);
System.out.println("Posicion de 5: " + pos); // 2
// Verificar si dos arrays son iguales
int[] copia = {1, 2, 5, 8, 9};
boolean iguales = Arrays.equals(numeros, copia);
System.out.println("Iguales? " + iguales); // true
String[] frutas = {"Manzana", "Pera",
"Uva"};
for(int i = 0; i
< frutas.length; i++) {
System.out.println(frutas[i]);
}
//ordenar en letras
String[] palabras = {"Zebra", "apple",
"Banana", "casa", "perro"};
Arrays.sort(palabras, String.CASE_INSENSITIVE_ORDER);
System.out.println("Orden alfabético (sin distinguir
mayúsculas):");
for (String palabra : palabras) {
System.out.println(palabra);
}
//ejemplo notas de alumnos
String[]
alumnos={"jose","pedro","denis","karla"};
int[] notas={14,20,15,17};
System.out.println("ingresa el alumno:");
String
estudiante=teclado.nextLine();
for(int i=0;i<4;i++){
if(alumnos[i].equals(estudiante)){
System.out.println("estudiante "+estudiante+" su nota es
"+notas[i]);
}
}
}
}
viernes, 6 de febrero de 2026
C#: MATRICES
ARREGLOS(MATRICES)
INTRODUCIR UNA MATRIZ:
using System;
class Program
{
static void Main()
{
Console.Write("¿Cuántas
FILAS? ");
int filas =
int.Parse(Console.ReadLine());
Console.Write("¿Cuántas
COLUMNAS? ");
int columnas =
int.Parse(Console.ReadLine());
int[,] matriz = new int[filas,
columnas];
Console.WriteLine("\n---
INGRESAR DATOS ---");
for (int i = 0;
i < matriz.GetLength(0); i++) //
GetLength(0) = FILAS
{
for (int j = 0;
j < matriz.GetLength(1); j++) //
GetLength(1) = COLUMNAS
{
Console.Write($"matriz[{i},{j}] = ");
matriz[i, j] =
int.Parse(Console.ReadLine());
}
}
// 4. MOSTRAR matriz
Console.WriteLine("\n--- MATRIZ LLENA ---");
for (int i = 0;
i < matriz.GetLength(0); i++)
{
for (int j = 0;
j < matriz.GetLength(1); j++)
{
Console.Write($"{matriz[i,
j],4}");
}
Console.WriteLine();
}
}
}
BUSQUEDA DE MATRICES DESORDENADAS CON
BUSQUEDA ,LINEAL
using System;
class Program
{
public static int[]
BuscarLineal(int[,] matriz, int valor)
{
int filas =
matriz.GetLength(0);
int columnas = matriz.GetLength(1);
// Recorrer
TODA la matriz elemento por elemento
for (int i = 0; i < filas; i++)
{
for (int j = 0; j < columnas; j++)
{
if (matriz[i, j] == valor)
{
return new int[] { i, j }; // ¡Encontrado!
}
}
}
return new int[] { -1, -1 }; //
No encontrado
}
static void ImprimirMatriz(int[,]
matriz)
{
int filas = matriz.GetLength(0);
for (int i = 0; i < filas; i++)
{
for (int j = 0;
j < matriz.GetLength(1); j++)
Console.Write($"{matriz[i,
j],4}");
Console.WriteLine();
}
}
static void Main()
{
// Matriz DESORDENADA
int[,] matrizDesordenada = {
{ 5, 1, 9 },
{ 3, 8, 2 },
{ 7, 4, 6 }
};
Console.WriteLine("Matriz DESORDENADA:");
ImprimirMatriz(matrizDesordenada);
Console.WriteLine();
// Probar búsquedas
int[] resultado1 = BuscarLineal(matrizDesordenada, 8);
Console.WriteLine($"Buscar 8 → [{resultado1[0]},
{resultado1[1]}]"); // [1,1]
int[] resultado2 = BuscarLineal(matrizDesordenada, 10);
Console.WriteLine($"Buscar 10 → [{resultado2[0]},
{resultado2[1]}]"); // [-1,-1]
}
}
Ordenar una matriz conviertiendola en un
array
using System;
class Program
{
static void Main()
{
// Matriz DESORDENADA inicial
int[,] matriz = {
{ 5, 1, 7 },
{ 3, 8, 2 },
{ 7, 4, 6 }
};
Console.WriteLine("MATRIZ ORIGINAL:");
ImprimirMatriz(matriz);
// ORDENAR TODA LA MATRIZ
OrdenarMatriz(matriz);
Console.WriteLine("\nMATRIZ ORDENADA:");
ImprimirMatriz(matriz);
}
static void OrdenarMatriz(int[,] matriz)
{
int filas =
matriz.GetLength(0);
int cols = matriz.GetLength(1);
int[] temp = new int[filas * cols];
int index = 0;
for (int i = 0; i < filas; i++)
for (int j = 0; j < cols; j++)
temp[index++] = matriz[i, j];
Array.Sort(temp);
index = 0;
for (int i = 0; i < filas; i++)
for (int j = 0; j < cols; j++)
matriz[i, j] = temp[index++];
}
static void ImprimirMatriz(int[,]
matriz)
{
for (int i = 0;
i < matriz.GetLength(0); i++)
{
for (int j = 0;
j < matriz.GetLength(1); j++)
Console.Write($"{matriz[i,
j],4}");
Console.WriteLine();
}
}
}
Busqueda de elementos en matrices
Método GetLength(0)->filas
Método GetLength(1)->columnas
using System;
class Program
{
// Método estático debe estar dentro de la clase
public static int[] BuscarEsquinas(int[,] matriz, int valor)
{
int fila = 0;
int col =
matriz.GetLength(1) - 1;
while (fila < matriz.GetLength(0)
&& col >= 0)
{
if (matriz[fila, col] == valor)
{
return new int[] { fila, col };
}
else if (valor < matriz[fila, col])
{
col--; // Descartar columna
}
else
{
fila++; // Descartar fila
}
}
return new int[] { -1, -1 };
}
static void Main()
{
// Uso para matriz ordenada:
int[,] matrizOrdenada = {
{ 1, 4, 7 },
{ 2, 5, 8 },
{ 3, 6, 9 }
};
int[] resultado = BuscarEsquinas(matrizOrdenada, 5);
Console.WriteLine($"Encontrado en [{resultado[0]},
{resultado[1]}]"); // [1, 1]
}
}
miércoles, 4 de febrero de 2026
JAVA:SWITCH Y ARRAYS
SWITCH
La estructura switch en
Java es una sentencia de control que evalúa una expresión y ejecuta un bloque
de código específico según el valor coincidente en sus case. Es más
eficiente y legible que múltiples if-else para comparar un valor
contra varias opciones constantes, usando break para salir y default para
casos no previstos.
SINTAXIS:
switch (expresión) {
case valor1:
// código para valor1
break;
case valor2:
// código para valor2
break;
default:
// código si no coincide ningún case
}
EJEMPLO:
public
class SwitchSimple {
public static void main(String[] args) {
int numero = 2;
switch (numero) {
case 1:
System.out.println("Uno");
break;
case 2:
System.out.println("Dos");
break;
case 3:
System.out.println("Tres");
break;
default:
System.out.println("Otro");
}
}
}
ARRAYS
Los arrays en Java son
estructuras de datos que almacenan una colección fija de elementos del mismo
tipo en posiciones indexadas, comenzando desde 0. Permiten acceder rápidamente
a los datos mediante su índice y son ideales para listas de tamaño conocido.
Declaración
Para declarar un array,
usa corchetes después del tipo de dato, como int[] numeros; o String[]
frutas;. Luego, créalo con new int[5] para asignar tamaño, o
inicialízalo directamente con valores.
Creación e Inicialización
text
int[] numeros = {10, 20,
30, 40, 50}; // Inicialización directa
String[] frutas = new
String[]{"manzana", "plátano", "cereza"}; // Con new
El tamaño se fija al
crearlos; usa numeros.length para obtenerlo (ej: 5).
Acceso y Modificación
Accede con
corchetes: numeros[0] es 10; modifícalo con numeros[2] = 35;.
Evita índices fuera de rango para prevenir ArrayIndexOutOfBoundsException.
Recorrido
Usa un bucle for tradicional
o mejorado:
text
for (int i
= 0; i < numeros.length; i++) {
System.out.println(numeros[i]);
}
for (int
num : numeros) { // For-each
System.out.println(num);
}
EJEMPLO:
import
java.util.Scanner;
public
class BusquedaArray {
public static void main(String[] args) {
Scanner scanner = new
Scanner(System.in);
// Declarar y tamaño del array
int[] numeros = new int[5];
// Ingreso de números por teclado
System.out.println("Ingrese 5
números:");
for (int i = 0; i < numeros.length; i++) {
System.out.print("Número
" + (i+1) + ": ");
numeros[i] = scanner.nextInt();
}
// Mostrar array
System.out.println("\nArray
ingresado:");
for (int num : numeros) {
System.out.print(num + "
");
}
// Pedir número a buscar
System.out.print("\n\nIngrese el
número a buscar: ");
int buscar = scanner.nextInt();
// Búsqueda lineal
int posicion = -1;
for (int i = 0; i < numeros.length;
i++) {
if (numeros[i] == buscar) {
posicion = i;
break;
}
}
// Resultado de la búsqueda
if (posicion != -1) {
System.out.println("¡Encontrado! El número " + buscar + "
está en la posición " + posicion);
} else {
System.out.println("El número
" + buscar + " NO se encuentra en el array.");
}
scanner.close();
}
}
domingo, 1 de febrero de 2026
java: Estructuras Repetitivas
ESTRUCTURAS REPETITIVAS
Los bucles for, while y
do-while en Java son fundamentales para controlar la repetición de código,
permitiendo iteraciones eficientes según el número de repeticiones conocidas o
condiciones dinámicas. A continuación, amplío cada concepto con sintaxis
detallada, ejemplos prácticos y casos de uso.
Bucle For
El bucle for es el más
estructurado y se usa cuando conoces exactamente cuántas veces quieres repetir
el código, como recorrer arreglos o contar hasta un límite. Su sintaxis
completa es for (inicialización; condición; actualización) { código; },
donde la inicialización (ej. int i=0) ocurre una sola vez al inicio, la
condición se evalúa antes de cada iteración (si es falsa, sale del bucle) y la
actualización (ej. i++) se ejecuta al final de cada ciclo.
for (int i = 0; i < 5;
i++) {
System.out.println("Iteración: "
+ i);
}
Esto imprime del 0 al 4. También existe
el for-each (mejorado desde Java 5) para colecciones: for
(String nombre : nombres) { ... }, ideal para recorrer sin índices.
Bucle While
El while verifica la
condición antes de ejecutar el bloque, por lo que si es falsa
desde el principio, el código ni siquiera se ejecuta una vez.
Sintaxis: while (condición) { código; }. Es perfecto para bucles
indefinidos donde esperas un cambio externo, como procesar entradas hasta que
el usuario escriba "salir".
Ejemplo:
int contador = 0;
while (contador < 5) {
System.out.println("Contador: " +
contador);
contador++;
}
Si inicializas contador en 10, no
imprime nada. Requiere cuidado para evitar bucles infinitos;
usa break para salir prematuramente.
Bucle Do-While
El do-while es único
porque ejecuta el bloque al menos una vez y verifica la
condición después: do { código; } while (condición);. Esto
garantiza una ejecución inicial, ideal para menús o validaciones donde primero
actúas y luego decides repetir.
int numero;
do {
System.out.print("Ingresa un número positivo: ");
numero = scanner.nextInt();
} while (numero <= 0);
Aquí, siempre pide al menos una entrada,
incluso si el usuario ingresa 0 de inmediato. El punto y coma final es
obligatorio.
EJEMPLOS
package javaapplication4;
import java.util.Scanner;
public class
JavaApplication4 {
public static void main(String[] args) {
// Imprime del 1 al 5
for (int i = 1; i <= 5; i++) {
System.out.println("Iteracion: "
+ i);
}
int j = 1;
while (j <= 5) {
System.out.println("Valor: " +
j);
j++; // Incremento para evitar bucle
infinito
}
int w = 1;
do {
System.out.println("Valor: " +
w);
w++;
} while (w <= 5);
String amigo="hola";
for(int z=0;z<amigo.length();z++){
char caracter=amigo.charAt(z);
System.out.println(caracter);
}
System.out.println(amigo);
int suma = 0;
for (int t = 1; t <=
100; t++) {
suma += t;
}
System.out.println("Suma:
" + suma); // Muestra 5050
for (int q = 10; q >=
1; q--) {
System.out.println(q);
}
System.out.println("tabla del
5");
int num1=5;
int resu=1;
for(int
e=0;e<=10;e++){
resu=e*num1;
//resu*=num1;
System.out.printf("%d"+"x"+"%d"+"="+"%d",num1,e,resu);
System.out.println();
}
Scanner sc = new Scanner(System.in);
int opcion;
do {
System.out.println("1.
Saludar");
System.out.println("2.
Salir");
System.out.print("Elija una
opcion: ");
opcion = sc.nextInt();
} while (opcion != 2);
System.out.println("Programa
finalizado.");
Scanner scan = new Scanner(System.in);
String input = "";
while (!input.equals("exit"))
{
System.out.println("Escribe algo
(escribe 'exit' para salir): ");
input = scan.nextLine();
}
scan.close();
int miNumero = 1;
while (miNumero <= 10) {
if (miNumero % 2 == 0) {
System.out.println(miNumero + " es
par");
}
miNumero++;
}
}
viernes, 30 de enero de 2026
C#: FUNCIONES Y MATRICES
APLICATIVO
VISUAL EN C#
ELEGIR:
WINDOWS FOR APP
PODEMOS PONER EL SIGUIENTE CODIGO EN EL
BOTON GRABAR
private void
button1_Click(object sender, EventArgs e)
{
String texto = textBox1.Text;
MessageBox.Show("este es el mensaje" + texto);
textBox2.Text = texto.ToUpper();
}
}
}
FUNCIONES EN C#
Las funciones en C# (comúnmente llamadas
métodos) son bloques de código reutilizables que realizan tareas específicas,
se definen dentro de clases y se invocan para ejecutar su lógica, aceptando
parámetros (entradas) y retornando un valor (salida) opcionalmente, como void
(nada) o un tipo de dato (int, string, etc.). Son cruciales para organizar el
código en unidades manejables, facilitando la lectura, mantenimiento y
reutilización, y siguen convenciones como PascalCase (ej: CalcularTotal) para
su nombre
Métodos con retorno
Un método con returnestá diseñado para
calcular y devolver un valor al código que lo llamó. Especifica el tipo de dato
que devuelve (como int, stringo double) y usas returnpara enviar ese resultado.
public int
Sumar(int a, int b)
{
int resultado = a + b;
return resultado; // O
directamente: return a + b;
}
// Uso: int total = Sumar(5, 3); // total vale 8
• Siempre
debes devolver algo (o lanzar excepción).
• Útil
para cálculos que reutilizas.
Métodos void
Un método void no devuelve nada , solo
realiza como imprimir, cambiar variables globales o guardar archivos. Termina
automáticamente al final del bloque.
public void ImprimirMensaje(string texto)
{
Console.WriteLine(texto);
// No hay return con valor
}
// Uso:
ImprimirMensaje("Hola"); //
Solo imprime, no guarda resultado
• Puedes
usar return;solo para salir antes (ej: si hay error).
• Ideal
para "hacer algo" sin devolver datos.
Piensa en returncomo "responder una
pregunta" y voidcomo "hacer un trabajo". Así eliges cuál usar
según necesites el resultado o no.
ALCANCE DE LAS VARIABLES
En C#, las variables se clasifican por su
alcance (scope) y duración (lifetime) : locales (dentro de un método), globales
(accesibles desde cualquier parte de la clase o programa) y estáticas
(pertenecen a la clase, no a instancias). Te explico cada una con ejemplos
simples de nivel universitario
Se declara dentro de un método o bloque
(como ifo for). Solo existen mientras ese método se ejecuta y no son accesibles
fuera de él.
public void MiMetodo()
{
int local = 10; // Variable
local: solo vive aquí
Console.WriteLine(local); // OK:
imprime 10
}
// Console.WriteLine(local); // ERROR: no existe fuera del método
Variables Globales (de Clase/Instancia)
Se declara en el nivel de la clase (fuera
de métodos). Son accesibles desde cualquier método de esa clase. Si no son
static, pertenece a cada objeto (instancia).
public class Calculadora
{
int globalInstancia = 100; //
Global de instancia: cada objeto tiene su copia
public void Sumar()
{
globalInstancia += 5; // OK:
modifica la de esta instancia
Console.WriteLine(globalInstancia);
// 105
}
}
Variables estáticas
Se declara con staticen el nivel de la
clase. Comparten un solo valor entre todas las instancias de la clase y viven
mientras se ejecuta el programa. Accesibles sin crear objetos.
public class Contador
{
public static int globalEstatica = 0;
// Una sola para toda la clase
public void Incrementar()
{
globalEstatica++; // Todas las
instancias modifican la misma
}
}
// Uso:
var c1 = new Contador();
var c2 = new Contador();
c1.Incrementar(); // globalEstatica = 1
c2.Incrementar(); // globalEstatica = 2 (compartida)
Console.WriteLine(Contador.globalEstatica); // 2
EJEMPLOS:
EJEMPLO SALUDO VOID
using System;
public class Tienda
{
internal class Programa
{
static void
Main(string[] args)
{
saluda("jonas",45);
Console.ReadKey();
}
static void
saluda(string nombre, int edad)
{
nombre = nombre.ToUpper();
Console.WriteLine("hola mundo " + nombre+"tu edad
es"+edad);
}
}
}
EJEMPLO RETURN
using System;
public class Tienda
{
internal class Programa
{
static void
Main(string[] args)
{
int resultado = sumar(5, 7);
string texto = nombre("ezequiel");
Console.WriteLine(resultado);
Console.WriteLine(texto);
Console.ReadKey();
}
static int
sumar(int a, int b)
{
return a + b;
}
static string
nombre(string nombre)
{
return "hola" + nombre;
}
}
}
EJEMPLO PALINDROMA
using
System;
public class
Tienda
{
internal class Programa
{
static void Main(string[] args)
{
int resultado = sumar(5, 7);
string texto =
nombre("ana");
Console.WriteLine(resultado);
Console.WriteLine(texto);
Console.ReadKey();
}
static int sumar(int a, int b)
{
return a + b;
}
static string nombre(string palabra)
{
string revez = "";
for (int i = palabra.Length-1;i>=0; i--)
{
revez += palabra[i];
}
if (palabra == revez)
{
Console.WriteLine("es
palindroma");
}
else
{
Console.WriteLine("no es
palidroma");
}
Console.WriteLine(revez);
return revez + palabra;
}
}
}
EJEMPLO CON STRING:
using System;
class Program
{
static void Main()
{
Console.Write("¿Cuántos números quieres ingresar? ");
int tamano = int.Parse(Console.ReadLine());
int[] numeros = new int[tamano];
for (int i = 0; i < tamano; i++)
{
Console.Write($"Ingresa el número {i + 1}: ");
numeros[i] = int.Parse(Console.ReadLine());
}
var resultado = CalcularSumaYProducto(numeros, tamano);
Console.Write("Array ingresado: [");
for (int i = 0; i < tamano; i++)
{
Console.Write(numeros[i]);
if (i < tamano - 1) Console.Write(", ");
}
Console.WriteLine("]");
Console.WriteLine($"Suma total: {resultado.suma}");
Console.WriteLine($"Producto total: {resultado.producto}");
}
static (int suma, int producto) CalcularSumaYProducto(int[] array, int
tamano)
{
int suma = 0;
int producto = 1;
for (int i = 0; i < tamano; i++)
{
suma += array[i];
producto *= array[i];
}
return (suma, producto);
}
}
MATRICES
En C#, las matrices (arrays
multidimensionales) se manejan así de breve:
Declaración básica
int[,]
matriz = new int[3, 4]; // 3 filas x 4
columnas
Acceso:[fila, columna]
matriz[0, 0] = 5; // Fila 0, Columna 0
int valor = matriz[1, 2]; // Lee posición
BUCLES:
for (int fila = 0; fila < 3; fila++)
{
for (int col = 0; col < 4; col++)
{
Console.Write(matriz[fila, col] + " ");
}
Console.WriteLine(); // Nueva
línea por fila
}
EJEMPLO DE SUMA DE MATRICES
using System;
class Program
{
static void Main()
{
Console.WriteLine("=== MATRIZ 3x3 - INGRESO Y SUMA ===");
// Crear matriz 3x3
int[,] matriz = new int[3, 3];
int sumaTotal = 0;
// FOR 1: INGRESAR datos
for (int fila = 0; fila < 3; fila++)
{
for (int col = 0; col < 3; col++)
{
Console.Write($"Posición
[{fila},{col}]: ");
matriz[fila, col] =
int.Parse(Console.ReadLine());
}
}
// FOR 2: MOSTRAR matriz
Console.WriteLine("\nTu matriz:");
for (int fila = 0; fila < 3; fila++)
{
for (int col = 0; col < 3; col++)
{
Console.Write(matriz[fila, col]
+ " ");
}
Console.WriteLine();
}
// FOR 3: SUMAR todos los elementos
for (int fila = 0; fila < 3; fila++)
{
for (int col = 0; col < 3; col++)
{
sumaTotal += matriz[fila, col];
}
}
Console.WriteLine($"\nSuma total de elementos: {sumaTotal}");
}
}
