viernes, 25 de diciembre de 2009

Resolución de la Evaluación de Laboratorio II y Programación II de Diciembre

En el enunciado se destacaban las condiciones a cumplir, dando los casos base para la formación de una lista simplemente encadenada que representa un nivel de la triángulo de Tartaglia (o Pascal, o Binomio de Newton) para obtener algo como lo representado en la figura siguiente:


Para poder resolver el problema, primero definí la estructura que iba a soportar los datos en la lista:
Luego separé el problema en cuatro partes (se puede mejorar...):
- agregarNodo() será la función encargada de ir sumando un nodo por cada nivel, desde el primer hasta el nivel ingresado por el usuario.
- borrarLista() se encargará de eliminar la lista completa, para cuando queramos ver un triángulo de otro nivel.
- muestraLista() nos permitirá ver en pantalla toda la lista.
- calculaNivel() es la función que realizará las sumas sobre cada nodo.

En el programa principal, armé un menú con dos opciones:
1) Crear Triángulo.
2) Salir.

La opción 1) nos va a pedir el nivel del triángulo a formar, verifica que no exista una lista anterior, y en caso contrario, la elimina, para luego en una estructura de repetición que va desde el valor ingresado por el usuario hasta 0, realizando los sucesivos llamados a agregarNodo() y muestraLista().



Básicamente la función agregarNodo() inserta un nodo delante del primero existente, donde el dato almacenado es un uno (1), de esa manera cumple con la condición que habla de que empieza la lista siempre con un uno. Luego verifica que si no es el primer nodo o el segundo, entonces llama a la función encargada de realizar las sumas necesarias:


La función calculaNivel(), es la función recursiva que solicita el enunciado, y actúa de la siguiente manera:
- para cada ejecución de la función, crea una variable auxiliar que almacenará la dirección del siguiente a la dirección del parámetro. Haciendo esto siempre y cuando esa dirección sea distinta de NULL, y luego sumando los valores almacenados en el campo de dato. Y finalmente hace el llamado recursivo, pasando ahora como parámetro de la función, la dirección almacenada en el campo sig del parámetro recibido.


En el video se puede ver un seguimiento para nivel 4:


Para completar el código nos quendan las funciones borrarLista() y muestraLista().


Espero que les pueda ser de ayuda, para entender la forma de resolver el ejercicio.
Les dejo a Uds. la adaptación a Objetos de este código.

Salu2...///

domingo, 22 de noviembre de 2009

Configurando wxWidgets para Code::Blocks en Windows

Luego de instalar el wxPack, en la carpeta que sugiere el instalador, comenzamos con un proyecto wxWidgets:
 
seguimos los pasos acostumbrados para la puesta en marcha de un nuevo proyecto:

 

  
  
  
  
y en esta parte hay que seleccionar la carpeta donde se encuentran las librerías de wxWidgets:

 

  
  
  
  
  
  
  
  
Bien, espero que ayude a configurar todo.


lunes, 9 de noviembre de 2009

Instalando Code::Blocks en ubuntu karmic

Primero nos aseguramos de instalar los paquetes básicos para programar en C / C++

     sudo apt-get install build-essential libx11-dev libc6-dev


Luego instalamos los paquetes de herramientas para hacer debug


     sudo apt-get install gdb xgdb 


También instalamos los paquetes del necesarios para encontrar la ayuda del lenguaje con el man o xman


     sudo apt-get install libc6-doc manpages-dev


Y ahora si, instalamos el codeblocks

     sudo apt-get install codeblocks

Una vez instalado el codeblocks, agragamos a la lista de repositorios los siguientes:

     sudo gedit /etc/apt/sources.list
         ## Repositorio para Code::Blocks y wxWidgets
         deb http://lgp203.free.fr/ubuntu/ karmic universe
         deb http://apt.wxwidgets.org/ karmic-wx main

     sudo apt-get update


Para obtener las claves públicas de los repositorios


     wget -q http://lgp203.free.fr/public.key -O- | sudo apt-key add -

     wget -q http://apt.wxwidgets.org/key.asc -O- | sudo apt-key add -

Y terminamos de instalar las librerías para wxWidgets y sus herramientas


     sudo apt-get update

     sudo apt-get install libcodeblocks0 codeblocks libwxsmithlib0 codeblocks-contrib
     sudo apt-get install libwxgtk2.8-0 libwxgtk2.8-dev wx2.8-headers wx-common



Ya tenemos instalado y liso para funcionar C::B ahora falta instalar las librerias
necesarias para SDL.

 SDL es un conjunto de librerias para crear videojuegos, contiene las funcione


necesarias para manejar controles, graficos, sonido, video, red etc. algo analogo
 a directx de microsoft, SDL es multiplataforma. hay muy buenos libros sobre SDL
 y se pueden crear juegos muy buenos. bueno ahora veremos como instalarlos.

Para mayor facilidad buscamos en synaptic "libsdl" y nos saldran varos paquetes,
 los que debemos instalar es:

     * libsdl1.2debian "Librerias basicas"
    * libsdl1.2-dev "Librerias basicas"
    * libsdl-gfx1.2-dev "video"
    * libsdl-image1.2-dev "Soporte para formatos de imagen"
    * libsdl-mixer1.2-dev "Aporta mejoras al sonido"
    * libsdl-net1.2-dev "Soporte para red"
    * libsdl-sound1.2-dev "Manejo de sonido"
    * libsdl-ttf2.0-dev "Soporte de fuentes ttf"

Y listo...

domingo, 8 de noviembre de 2009

Poniendo a punto Debian Lenny (parte 1)

-------------------------------------------------------------------------------
 Historial de instalación de debian lenny
-------------------------------------------------------------------------------
- siempre como root
-------------------------------------------------------------------------------

-------------------------------------------------------------------------------
 Para Programar en C / C++
-------------------------------------------------------------------------------
- apt-get update
- apt-get install ssh gcc g++ make
- apt-get install build-essential

- nano /etc/apt/sources.list
    deb http://apt.jenslody.de/ any main
    deb-src http://apt.jenslody.de/ any main
    deb http://apt.wxwidgets.org/ lenny-wx main

- apt-get update
- apt-get install jens-lody-debian-keyring

- wget -q http://wxwidgets.org/key.asc -O- | sudo apt-key add -
- wget -q http://apt.wxwidgets.org/key.asc -O- | sudo apt-key add -

- apt-get install codeblocks libwxgtk2.8-0 libwxgtk2.8-dev wx2.8-headers wx-common libx11-dev

-------------------------------------------------------------------------------
 Seguridad
-------------------------------------------------------------------------------
- apt-get install nmap ssh mc

miércoles, 22 de julio de 2009

Tarjeta de referencia de ANSI C

Encontré un buen machete de funciones y complementos para ANSI C.