Archivo de la etiqueta: Algoritmos

Fases del Desarrollo de Software y Conceptos Básicos de Programación en C

Fases del Desarrollo de Software

Fase de definición

Analizamos el problema a resolver.

  1. Análisis del problema.
  2. Diseño y verificación del algoritmo.

Fase de desarrollo

Creamos el/los programas y la documentación asociada a ellos.

  1. Codificación en un lenguaje de programación.
  2. Compilación y enlazado.
  3. Pruebas y depuración.
  4. Documentación.

Detalles de las Fases

1. Análisis del Problema

El objetivo es determinar qué ha de hacer el programa. En esta fase se estudiarán los datos de entrada necesarios, el tratamiento Seguir leyendo “Fases del Desarrollo de Software y Conceptos Básicos de Programación en C” »

Conceptos Clave de Informática: Hardware, Software, Sistemas Operativos y Bases de Datos

Conceptos Clave de Informática

• Los controladores de dispositivos (drivers) son software.

• En la arquitectura Von Neumann, la CPU dispone de un registro denominado contador de programa (PC), que almacena la dirección (posición) de memoria de la siguiente instrucción a ejecutar.

• Los registros de la CPU son unidades de memoria situadas dentro de la CPU, de acceso mucho más rápido que la memoria principal.

• Los dispositivos periféricos de almacenamiento necesitan un software de control Seguir leyendo “Conceptos Clave de Informática: Hardware, Software, Sistemas Operativos y Bases de Datos” »

Desarrollo de Programas y Algoritmos: Fases, Representación y Estructuras de Control

Fases de creación de un programa

El proceso de resolución de problemas en un ordenador conduce a la escritura de un programa y su ejecución. Las fases en el desarrollo de un programa pueden resumirse de la siguiente forma:

  1. Analizar el problema: consiste en conocer perfectamente en qué consiste y qué resultados se desean obtener.
  2. Planificación de la resolución del problema, dividiéndolo, si es complicado, en una secuencia de etapas más simples. Esta fase se lleva a cabo EN UN PAPEL, estableciendo Seguir leyendo “Desarrollo de Programas y Algoritmos: Fases, Representación y Estructuras de Control” »

Fundamentos de la Arquitectura de Computadores y Sistemas Operativos

Arquitectura de Computadores

Clasificación de los Buses

Los buses se clasifican en: serie, paralelo, multiplexados, dedicados, centralizados, distribuidos, síncronos y asíncronos. Dos buses serán compatibles si son eléctricamente idénticos.

Arquitectura Von Neumann

La arquitectura Von Neumann se caracteriza por disponer de una sola memoria principal donde se almacenan datos e instrucciones. La CPU está formada por:

Programación: Pseudocódigo, Diagramas de Flujo y Lenguajes

Pseudocódigo

Consiste en escribir el programa con un lenguaje intermedio entre el lenguaje natural y los lenguajes de programación. En general, se escribe una «orden» en cada línea. Se utilizan una serie de palabras clave, generalmente en inglés, que suelen coincidir con las estructuras de programación que se repiten en todos los lenguajes. El pseudocódigo permite describir tanto el programa principal como las subrutinas.

Diagramas de Flujo

Es una técnica que se utiliza para describir cualquier Seguir leyendo “Programación: Pseudocódigo, Diagramas de Flujo y Lenguajes” »

Implementación de una Lista Doblemente Enlazada en C

Introducción

Este código implementa una lista doblemente enlazada en C, permitiendo la inserción, borrado y otras operaciones como la verificación de palíndromos. Incluye funciones para mostrar la lista en orden ascendente y descendente.

Código

#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <conio.h> //Para usar getch() y system("pause")
#include <string.h> //Para usar strlen()

#define ASCENDENTE 1
#define DESCENDENTE 0
#define TRUE 1

typedef  Seguir leyendo “Implementación de una Lista Doblemente Enlazada en C” »

Optimización de Procesos: Planificación y Gestión de Memoria

Planificación de Procesos

La planificación es la técnica que indica qué procesos deben ejecutarse. Con los algoritmos de planificación se decide qué proceso se ejecuta y por qué. Cuando hacemos doble clic en un proceso para lanzarlo, el sistema operativo lo introduce en planificación y ahí empieza el proceso.

Instrucciones y Procesamiento

¿Cuántas instrucciones puede procesar en un instante de tiempo la UCP?

Una instrucción, a no ser que el ordenador sea multiproceso/multiprocesador o tenga Seguir leyendo “Optimización de Procesos: Planificación y Gestión de Memoria” »

Algoritmos de Reemplazo de Páginas: FIFO, LFU, MFU y Segunda Oportunidad

Algoritmos de Reemplazo de Páginas

1. FIFO (First-In, First-Out)

Descripción:

El algoritmo FIFO reemplaza la página que llegó primero a la memoria. Es simple y fácil de implementar, ya que solo necesita recordar el orden de llegada.

Función:

Cuando llega una nueva página y la memoria está llena, FIFO reemplaza la página que ha estado allí más tiempo, sin importar si se ha usado recientemente.

Ejemplo de Implementación:

Secuencia de referencias: [3, 2, 4, 1, 3, 2, 5]
Número de marcos: 3

PasoReferenciaMarcos Seguir leyendo “Algoritmos de Reemplazo de Páginas: FIFO, LFU, MFU y Segunda Oportunidad” »

Funciones Esenciales para Árboles Binarios en Java

// Ejercicio 1
public static int numNodos(ArbolBinario arbol) {
if (arbol.esVacio())
return 0;
else
return 1 + numNodos(arbol.hijoIzq()) + numNodos(arbol.hijoDer());
}

// Ejercicio 2
public static int numHojas(ArbolBinario arbol) {

if (arbol.esVacio())
return 0;
else

if (arbol.hijoIzq().esVacio() && arbol.hijoDer().esVacio())
return 1;
else
return numHojas(arbol.hijoIzq()) + numHojas(arbol.hijoDer());
}
// Ejercicio 3
public static boolean esDegenerado(ArbolBinario arbol) {
if (arbol.esVacio( Seguir leyendo “Funciones Esenciales para Árboles Binarios en Java” »

Introducción a la Informática: Conceptos Fundamentales

Introducción a la Informática

Conceptos Básicos

Algoritmo

Los algoritmos son procedimientos específicos que señalan paso a paso la solución de un problema y que garantizan el logro de una solución siempre y cuando sean relevantes al problema.

Dato

Es toda aquella representación de una entidad y que es susceptible de tratamiento ya sea en un programa o proceso informático. Por ejemplo, nombre, apellido y edad son datos de una persona (entidad). En otras palabras, un dato es la representación Seguir leyendo “Introducción a la Informática: Conceptos Fundamentales” »