"Hombres y mujeres para los demás"

SDL Teoria Básica

¿Mencione al menos 2 ventajas de utilizar la librería gráfica SDL
1) Su implementación optimizada brinda buenos tiempos de respuesta del hardware.
2) versatilidad y control sobre el hardware de la computadora.
¿Cuáles son los pasos básicos para utilizar en un programa la librería SDL?
1) Agregar en el encabezado del programa la siguiente directiva de compilación (#include "SDL/SDL.h")
2) Inicializar y finalizar la librería. Manejadores de video,audio,event handling(ratón-teclado), etc.
3) Inicializar el modo de video. SDL_SetVideoMode()
4) Crear un ciclo de detección y manejo de eventos SDL_WaitEvent() ò SDL_PollEvent()
¿Cuáles son los pasos para manejar fuentes en SDL?
1) Activación o desactivación de la librería (TTF_Init()).
2) abriendo o cerrando fuentes TTF_OpenFont(),
3) Crear un texto en una superficie temporal SDL_Surface()
4) Copiar el texto de la superficie temporal a la superficie donde se desea el objeto SDL_BlitSurface()
5)Actualizar (Refrescar) la superficie modificada SDL_UpdateRect()

3er Examen Parcial + Solucion EDD 2009

He aqui un parcial del año 2009 de la materia Estructura de Datos y Analisis de algoritmos. Espero que sea de su interes.

Solucion parcial final PE2010, en SDL

Construya un programa con interfaz grafica que dibuje 9 cuadrados en una pantalla:
Para la primera Fila: Rosado, verde y amarillo
Para la segunda Fila: Amarillo, verde y rosado
Para la tercera Fila: Verde,amarillo y rosado
Al dar click en 3 cuadrados de un mismo color el programa terminara, si se da click fuera del area
de los cuadrados se reiniciaran las banderas que controlan el pulsado sobre cada color

Tercer parcial EDD

Solución del 2do parcial EDD

1. Existen tres tipos especialers de listas lineales simples las cuales son: 1)Listas Ordenadas, 2)Pilas 3)Colas.

2.Cuáles son los pasos generales que se usan al insertar un nodo en una lista (sin tomar en cuenta la búsqueda): 1)Crear un bloque de memoria temporal, 2)Verificar que no falle la asignación de memoria 3)Colocar los datos en el nuevo nodo 4)Conectar el nodo a la lista 5)Conectar la lista al nodo.

3.Existen tres clases de ordenamiento interno las cuales son: 1)Inserción 2)Selección 3)Intercambio.

4.Describa al menos dos desventajas al utilizar listas doblemente enlazadas contra utilizar listas simples: 1)Código más largo 2)Código más complejo 3)Mayor consumo de memoria 4)Mayor ineficiencia.

5.Cuantos bytes a lo sumo debe tener la sección de datos de un nodo, en una lista doblemente enlazada, para que los intercambios se puedan hacer por contenido y no por posición: 18 bytes.
6.Nos dan dos algoritmos: uno denota un comportamiento natural y otro denota un comportamiento antinatural, ¿Cúal de estos algoritmos utilizaría para ordenar una colección completamente desordenada de valores, si todos los demás criterios de comparación resultasen iguales? El que tiene comportamiento antinatural.

Problema 1
int eliminaNulas(Nodo *L){
    Nodo *Q=L, *temp=NULL;
    int cont=0;
    while(Q->sig!=L){
        if(Q->sig->nombre[0]=='\0'){
            cont++;
            temp=Q->sig;
            temp->sig->ant=temp->ant;
            temp->ant->sig=temp->sig;
            free(temp);
        }
        else Q=Q->sig;
    }
    return cont;
}
Problema 2
void mostrar(Nodo *L,char car){
    Nodo *Q=L;
    int band=0;
    while(Q->ant!=L){
        if(Q->ant->nombre[0]<car) break;
        if(Q->ant->nombre[0]==car){
            printf("%s\n",Q->ant->nombre);
            if(!band) band=1;
        }
        Q=Q->ant;
    }
    if(!band) printf("No hay nombres que empiecen con ese caracter\n");
}

Características de listas lineales simples, listas lineales doblemente enlazadas, pilas y colas.

Listas lineales simples: El recorrido solo puede realizarse en una dirección.
Listas lineales doblemente enlazadas: El recorrido puede hacerse en ambas direcciones; es decir, en cualquier extremo de la lista.
Desventajas:
1- El enlace extra incrementa el espacio requerido.
2- Se duplica el costo de las inserciones y supresiones, ya que es necesario manejar el doble de punteros.
3- El manejo es más complejo.
Pilas
1. La inserción y supresión solo ocurren en un extremo de la pila.
2. La eliminación es una operación que, es posible, quita el último elemento agregado.
3. El tope de una pila es el último elemento agregado, que no haya sido eliminado.

Colas

Se restringe que los elementos se supriman por un lado de la lista llamado frente.
2. La inserción se hace por el extremo de la lista llamado fondo.

Ejemplo de asignación dinámica (en ANSI C)

/*Construya un programa que dado un conjunto de notas de estudiante, obtenga  la media aritmética y luego muestre cuantas notas están por encima de ella */

#include "stdio.h" 
#include "stdlib.h"

float media(float *A, int N);
int sobresalientes (float *A, int N, float media);
void leerNotas(float *A, int N);

int main (void){
    float *notas=NULL,med; //notas es el arreglo al que se
                             asignará memoria dinámicamente
    int N, cont; //N es la cantidad de notas, cont: para el número
                   de alumnos sobresalientes
    printf("¿Cuántas notas van a ser ingresadas?\n N= ");
    scanf("%d",&N);
    notas=(float *)malloc(N*sizeof(float));//asignación dinámica
                                             mediante malloc!
    if (notas==NULL){
        printf("No se pudo asignar memoria \n");
        return 0;
    }
    leerNotas(notas, N);
    med=media(notas,N);
    printf("La media aritmética es: %.2f \n", med);
    cont=sobresalientes(notas,N,med);
    printf("Número de alumnos por encima de la media: %d\n", 
           cont);
    free(notas);
    return 0;
}
void leerNotas(float *A, int N){
    int i;
    float nota;
    for(i=0;i<N;i++){
        do{
            printf("Nota[%d]: ",i+1);
            scanf("%f",&nota);
            if(nota<0.0||nota>10.0)
              printf("Sólo se aceptan notas entre 0 y 10...\n");
            A[i]=nota;
        }while(nota<0.0 || nota>10.0);
    }
}   
int sobresalientes (float *A, int N, float media){
    int i,cont=0;
    for(i=0;i<N;i++){
        if(A[i]>=media) cont++;
    }
    return cont;
}
float media(float *A, int N){
    float suma=0,mediaAr;
    int i;
    for(i=0;i<N;i++){
        suma=suma+A[i];
    }
    mediaAr=suma/N;   
    return mediaAr;
}   

Pasos básicos para...


Pasos básicos para trabajar con listas:

      1. Incluir el archivo de cabecera “stdlib.h” (para poder hacer uso de malloc y free).
      2. Definir las estructuras de los datos y de los bloques la lista.
      3. Escribir los prototipos de las funciones que manipularán la lista: prototipos de primitivas y de funciones de aplicación.
      4. Implementar las funciones.

5 pasos para insertar en una lista:

Paso alternativo (0): Búsqueda del nodo (si se aplica).
  1. Crear un nuevo bloque temporal (asignación dinámica).
  2. Validar la asignación dinámica de memoria.
  3. Introducir los datos deseados en el bloque temporal.
  4. Conectar el nodo temporal a la lista.
  5. Conectar la lista al nodo.

4 pasos para eliminar

  1. Búsqueda del nodo a eliminar.
  2. Colocar un puntero al nodo que se quiere eliminar.
  3. Desconectar la lista del nodo.
  4. Liberar de memoria el nodo.

[TUTORIAL] Instalando Modem ZTE MF626 en Open Suse 11.2


he aqui un tutorial sencillo de como configurar el problematico modem usb que proveen las empresas locales de internet:

vale recalcar que solamente ha sido probado con ese modelo explicitamente. habria que probar con el resto de modelos existentes para verificar si los mismos parametros funcionan:

DESCARGAR TUTORIAL

Análisis Estructurado de Sistemas

-Teoría segundo parcial (con diagramas...)

Software para crear diagramas de flujo




Edraw Max es un software versatil de gráficas, con características que lo hacen perfecto no sólo para diagramas de flujo de aspecto profesional, organigramas, diagramas de red y tablas de negocios, sino también para planos de construcción, mapas mentales, flujogramas, diseños de moda, diagramas UML, diagramas de ingeniería eléctrica, mapas direccionales, estructuras de programas, diagramas de bases de datos… ¡y eso es sólo el principio!
Con más de 4600 símbolos vectoriales incluidos, ¡diseñar nunca ha sido tan fácil! Puedes crear una variedad de gráficas de negocios y presentaciones basadas en plantillas y ejemplos, al tiempo que trabajas en un ambiente intuitivo y familiar parecido al office.

Datos Técnicos

Edraw Max v5.0
English | Medicina Incl. | 25 MB

Download

Manual de SDL

Aqui les dejo un manual de SDL, saquenle provecho xD
para descargar da clic aqui

Juego en SDL "BreakOut"

El siguiente código es el de un juego llamado "break out". El código fue proporcionado por Gaby, la instructora (si hay alguna queja, que sea con ella por favor). Aunque tiene algunos fallos, puede servir como una especie de plantilla para trabajar en SDL.
Para descargar: haz clic Aqui