Apuntes, resúmenes, trabajos, exámenes y ejercicios de Informática de Otros cursos

Qué es un SGBD: características, arquitectura de tres niveles y criterios de selección

Informática3,75 KB

1. Definición y Características de un SGBD

Un SGBD (Sistema Gestor de Bases de Datos) es una herramienta software formada por una o más aplicaciones que permite definir, crear, administrar, manipular y mantener bases de datos con acceso controlado. Su característica principal es la abstracción de datos: el usuario no necesita conocer los detalles técnicos de cómo se almacenan físicamente los datos en el soporte físico. Ejemplos habituales en el mercado son PostgreSQL, MySQL, Microsoft SQL Server, MongoDB, MariaDB, SQLite y Oracle.

2. Arquitectura de Tres Niveles

Busca separar los datos de los programas de aplicación mediante tres niveles de abstracción que garantizan la independencia física y lógica:

  • Nivel Interno / Físico: Define
...
Continuar leyendo "Qué es un SGBD: características, arquitectura de tres niveles y criterios de selección" »

Programación de Autómatas en AWL: Control de Pistón Neumático, Maniobras y Tratamiento Analógico

Informática6,24 KB

1. Módulo de Maniobra General (Bloque de Función - FB MAN)

Este bloque implementa el control básico de maniobra para un actuador de doble efecto (expansión y compresión) con control de tiempos, errores y supervisión continua.

Declaración de Variables

  • VAR_INPUT: sini, sfin, RESET, Tempor_exp, Tempor_comp, tout, ON_exp, ON_comp (Sensores de inicio y fin de carrera, señal de reset, activación de acciones, consignas de tiempo y temporizadores).
  • VAR_OUTPUT / VAR_IN_OUT: EXP, COMP, bitfinOK, bitErrorExp, bitErrorComp (Salidas de acción, bits individuales de error por acción y confirmación de maniobra correcta OK).
  • VAR_STATIC: xini, xexp, xcomp, bitTrabajo, xerrorconfigExp, xerrortiempoExp, xerrorconfigComp, xerrortiempoComp, xfinOK (Bits internos
...
Continuar leyendo "Programación de Autómatas en AWL: Control de Pistón Neumático, Maniobras y Tratamiento Analógico" »

Redes de Computadoras: Problemas, Arquitectura, Modelos OSI y TCP/IP y Tecnologías de Comunicación

Informática7,69 KB

Problemas en la red de datos

  • Encaminamiento
  • Direccionamiento: identificación biunívoca entre un identificador y un equipo, incluso una aplicación dentro de un equipo.
  • Acceso al medio: caso especial de medio de comunicación de difusión.
  • Saturación del receptor: el emisor envía más rápido de lo que el receptor puede procesar. Provoca pérdida de datos.
  • Mantenimiento del orden: si los paquetes que forman un mensaje toman caminos distintos a través de la red para llegar al destino, al final se han de ordenar todos los paquetes.
  • Control de errores
  • Multiplexación: utilización del mismo medio para más de una comunicación.

Arquitectura de red

Resuelve los problemas planteados y permite que la comunicación sea lo más eficaz posible. Se define...

Continuar leyendo "Redes de Computadoras: Problemas, Arquitectura, Modelos OSI y TCP/IP y Tecnologías de Comunicación" »

Código en C para Dado Digital con LPC1768: Timer, Interrupciones y Display de 7 Segmentos

Informática4,27 KB

Código en C para un Dado Electrónico con LPC1768

A continuación se presenta el código fuente en lenguaje C para implementar un dado electrónico sobre el microcontrolador LPC1768, utilizando interrupciones, temporizadores y un display de 7 segmentos.

Variables globales

uint8_t Dado[]={0x79,0x24,0x30,0x19,0x12,0x02};
uint8_t Numero;
uint8_t Display[4] = {1, 2, 4, 8};
uint8_t Jugador = 0;
uint8_t Tirada;
uint8_t Inicio=1;
uint8_t indice =0;
uint8_t ValDado[4]={0x79,0x79,0x79,0x79};

Inicialización de puertos

void inicializa (void){
	//Configuración de puertos del display 0.0-0.6
	LPC_PINCON-> PINSEL0 &= ~(0x3FFF << 0);
	LPC_PINCON-> PINMODE0 &= ~(0x3FFF << 0);
	LPC_PINCON-> PINMODE0 |= (0x2AAA << 0);
	LPC_GPIO0-
...
Continuar leyendo "Código en C para Dado Digital con LPC1768: Timer, Interrupciones y Display de 7 Segmentos" »

Programación Orientada a Objetos en Python: Herencia, Polimorfismo y Referencias con Ejemplos Prácticos

Informática5,07 KB

Programación orientada a objetos en Python: herencia y polimorfismo

A continuación se presenta un ejemplo completo de programación orientada a objetos en Python, en el que se modelan personas, empleados, directivos y clientes de una empresa.

1. Clase base: Persona

La clase Persona es la clase base del ejemplo. Define los atributos nombre y edad, así como el método mostrar_datos(), que devuelve una cadena con los datos básicos.

class Persona:
    def __init__(self, nombre, edad):
        self.nombre = nombre
        self.edad = edad

    def mostrar_datos(self):
        """Devuelve una cadena con los datos básicos de la persona."""
        return f"Nombre: {self.nombre}, Edad: {self.edad}"

2. Herencia: clase Empleado

La clase Empleado hereda...

Continuar leyendo "Programación Orientada a Objetos en Python: Herencia, Polimorfismo y Referencias con Ejemplos Prácticos" »

Código Python para Cliente de Registro, Conexión y Transferencia de Archivos P2P

Informática10,62 KB

PYTHON

Función register

def register(user):
try:
# conectar, enviar REGISTER, nombre y leer la respuesta del servidor
s = client.connect_to_server()
client._send_str(s, "REGISTER")
client._send_str(s, user)
# leer la respuesta del servidor
cod = client._recv_byte(s)
s.close()
except Exception as e:
print("c> REGISTER FAIL")
print(f"Motivo real del fallo: {e}")
return client.RC.ERROR
# procesar el código de respuesta del servidor
if cod == 0:
client._registered_user = user # guarda el estado
print("c> REGISTER OK")
return client.RC.OK
elif cod == 1:
print("c> USERNAME IN USE")
return client.RC.USER_ERROR
else:
print("c> REGISTER FAIL")
return client.RC.ERROR

Función unregister

def unregister(user):
try:
s = client._connect_to_server()
client._send_str(s, "...

Continuar leyendo "Código Python para Cliente de Registro, Conexión y Transferencia de Archivos P2P" »

Ejemplos de Código Java para Lectura y Escritura de Ficheros

Informática4,01 KB

Ejemplos de Métodos Java para el Manejo de Ficheros

Lectura y Escritura Secuencial

El siguiente método permite realizar operaciones de lectura y escritura de manera secuencial utilizando DataOutputStream y DataInputStream:

public static void lecturayescriturasecuencial()
{
    DataOutputStream archivo = null;
    DataInputStream fich = null;
    String nombre = null;
    int edad = 0;
    try 
    {
        archivo = new DataOutputStream(new FileOutputStream("C:\\Ejemplo\\secuencial.dat", true));
        archivo.writeUTF("Cesar Alcantara Jorda    ");
        archivo.writeInt(25);
        archivo.close();
    } catch (IOException ex) {}
    try 
    {
        fich = new DataInputStream(new FileInputStream("C:\\Ejemplo\\secuencial.dat"));
...
Continuar leyendo "Ejemplos de Código Java para Lectura y Escritura de Ficheros" »

Matrices en C: Recorrido, Multiplicación, Simetría e Identidad con Código Explicado

Informática3,23 KB

Matrices

Recorrer una matriz

void recorrerMatriz(int mat[][2], int cantF, int cantC)
{
    int i, j;
    for(i=0; i<cantF; i++){
        for(j=0; j<cantC; j++){
            printf("%d ", mat[i][j]);
        }
        printf("\n");
    }
}

Multiplicación de matrices

void multiMatriz(int mat[][5], int fil, int col, int mat2[][2], int fil2, int col2, int mat3[][2])
{
    int i,j,k;
    int acum;
    if(col!=fil2)
        return;
    for(i=0; i<fil; i++){
        for(k=0; k<col2; k++){
            acum=0;
            for(j=0; j<col; j++){
                acum+=mat[i][j]*mat2[j][k];
            }
            mat3[i][k]=acum;
        }
    }
}

Matriz simétrica

int matSimetrica(int mat[][TAM], int fil, int col)
{
    int sim = 1, i, j;
...
Continuar leyendo "Matrices en C: Recorrido, Multiplicación, Simetría e Identidad con Código Explicado" »

Programa Arduino con for y while: secuencia de LEDs controlada por botón

Informática3,01 KB

Programa con for

int leds[] = {10, 11, 2, 3, 4, 5, 8, 7, 6};
int boton = 9;
int numLeds = 9;
int presionado = 0;

void setup() {
  for (int i = 0; i < numLeds; i++) {
    pinMode(leds[i], OUTPUT);
  }
  pinMode(boton, INPUT_PULLUP);
}

void loop() {
  int lectura = digitalRead(boton);

  // Espera a que se presione el botón
  if (lectura == LOW && presionado == 0) {
    presionado = 1;

    // Secuencia individual (uno encendido a la vez)
    for (int i = 0; i < numLeds; i++) {
      for (int j = 0; j < numLeds; j++) {
        digitalWrite(leds[j], LOW);
      }
      digitalWrite(leds[i], HIGH);
      delay(500);
    }

    // Encendido final de todos los LEDs
    for (int i = 0; i < numLeds; i++) {
      digitalWrite(leds[
...
Continuar leyendo "Programa Arduino con for y while: secuencia de LEDs controlada por botón" »

Ejemplos de JavaScript: formulario de pedidos JSON y clasificación XML con fetch y DOMParser

Informática3,63 KB

✅ palillos.js correcto JavaScript

// Variables
let formPalillos = document.getElementById("formularioPalillos");
let txtCliente = document.getElementById("cliente");
let txtEmpresa = document.getElementById("empresa");
let selTipoPalillo = document.getElementById("tipoPalillo");
let numCantidad = document.getElementById("cantidad");
let selUnidadesCaja = document.getElementById("unidadesCaja");
let numPrecio = document.getElementById("precio");
let selEstado = document.getElementById("estado");
let salidaJSON = document.getElementById("salidaJSON");

// Evento
formPalillos.addEventListener("submit", generarJSON);

function generarJSON(event) {
    event.preventDefault();
    let pedido = {
        cliente: txtCliente.value.trim(),
...
Continuar leyendo "Ejemplos de JavaScript: formulario de pedidos JSON y clasificación XML con fetch y DOMParser" »