NetBeans

Uso de NetBeans

 

 

NetBeans es un entorno de desarrollo muy completo y profesional. Contiene muchas funcionalidades, para distintos tipos de aplicaciones y para facilitar al máximo la programación, la prueba y la depuración de las aplicaciones que se desarrollan. También incorpora un editor propio.

Para iniciar NB debes seleccionar NetBeans IDE 6.9 (6.9 o una versión posterior) en el grupo de programas NetBeans. Tras un cuadro de presentación aparecerá la ventana de la aplicación con una página de inicio en forma de ficha:

La página de inicio ofrece información sobre el entorno. Podemos hacer que no se abra esa página cada vez que se inicie VC++.

Puedes ver que se trata de una aplicación típica de Windows, con sus menús, sus herramientas y su área de trabajo. Dentro del área de trabajo (todo lo que hay entre las barras de herramientas y la barra de estado) habrá paneles y documentos abiertos.

Cierra la página de inicio pulsando sobre la X que hay en la pestaña. Ahora verás algo así:

Ahora, en el área de trabajo hay un panel con tres fichas: Proyectos, Archivos y Prestaciones. El área a su derecha será el área de edición. Las fichas del panel se pueden replegar en el margen izquierdo pulsando la flecha a la izquierda en la pestaña:

Para abrir una ficha, simplemente ponemos el puntero del ratón sobre su nombre en el margen. Se pueden reorganizar las fichas para tener otras disposiciones (arrastrando las pestañas).

A medida que trabajemos con el entorno aparecerán más fichas y paneles.

El área de la derecha será donde realizaremos la edición de los archivos fuente.

Los demás paneles los iremos explicando a medida que los vayamos necesitando. De momento, lo que necesitamos saber es cómo son las aplicaciones que se desarrollan en NB.

Las aplicaciones en NB se denominan proyectos. Cada proyecto contiene uno o varios elementos. Un elemento puede ser, entre otras cosas, un archivo de código fuente. O un formulario que use la aplicación. U otras cosas necesarias. Para nosotros los únicos elementos que usaremos serán archivos de código fuente en C++.

El primer paso para desarrollar una aplicación es elegir el tipo de proyecto. Usa la orden de menú Archivo >>> Proyecto Nuevo. Aparecerá este cuadro con los distintos tipos de proyectos:

Como podrás ver, algunas partes de la interfaz de NB no están del todo traducidas al castellano. Selecciona C/C++ Application y pulsa el botón Siguiente. Escribe el nombre que quieres para el proyecto (Hola en este caso) y establece la ubicación en la carpeta que desees. Quita la marca a "Create Main File" para que no se cree ningún archivo fuente:

Pulsa Terminar. Aparecen más fichas en el panel de la izquierda. No necesitamos ni la ficha Navegar ni la ficha Clases, por lo que repliégalos a la izquierda. Deja el panel de la izquierda así:

La ficha Proyectos contiene cinco categorías de archivos. Para ver los archivos de las categorías pulsa el +. NB ha creado algunos archivos, aunque no hay todavía ningún archivo fuente. Creemos uno. Pulsa con el botón derecho del ratón sobre la categoría Source Files de la ficha Proyectos. Elige Nuevo... y luego C++ Source File.

Dale el nombre Hola al archivo (la extensión .cpp se añade automáticamente). A continuación aparecerá abierto en el editor (vacío).

Vamos a copiar el código de nuestro programa "Hola mundo!". Usa el siguiente vínculo para acceder al código del programa:

Programa Hola Mundo!

Selecciona y copia el texto del programa. Ve a NB y pulsa Ctrl + V para copiar ese texto:

Puedes comprobar que el editor de NB también entiende la sintaxis del lenguaje, coloreando los distintos tipos de elementos.

No te olvides de pulsar el botón Guardar todo (o Archivo >>> Guardar) a menudo.

Para que se compile y enlace el programa debemos generar el proyecto. Usa la orden de menú Ejecutar >>> Generar Main Project. Se pone en marcha la compilación y el enlace (usando un archivo Makefile generado automáticamente por el entorno). Aparece un panel Salida debajo, donde se va viendo cómo avanza el proceso, así como cualquier error que se produzca. Si no se produce ningún error, se creará el ejecutable:

Nos dice es que todo ha ido bien (SUCCESSFUL) y se ha generado el ejecutable, en este caso el archivo Hola.exe, que se habrá creado en la carpeta del proyecto. ¿Qué carpeta exactamente?

Al igual que VC++, NB tiene dos modos de funcionamiento: modo de depuración (Debug) y modo de lanzamiento (Release). Comenzamos siempre en el modo de depuración, en el que se incluyen más facilidades para la depuración de errores. Una vez que estamos seguros de que la aplicación se comporta suficientemente bien, pasaremos al modo de lanzamiento para generar la aplicación definitiva, la que distribuiremos a nuestros clientes ;-)

Cuando decimos a NB que nuestro proyecto se encontrará en una determinada carpeta (D:\FP\Tema1\nb\), NB crea una subcarpeta con el nombre del proyecto (D:\FP\Tema1\nb\Hola\). Dentro de esa carpeta se crea otras subcarpetas: build\Debug\MinGW-Windows, donde se colocan los archivos de código objeto, dist\Debug\MinGW-Windows, donde se coloca el archivo ejecutable (hola.exe) y nbproject, con archivos auxiliares del entorno. El ejecutable, por tanto, se encuentra en D:\FP\Tema1\nb\Hola\dist\Debug\MinGW-Windows en nuestro caso:

Pero no es necesario ir a esa carpeta para ejecutar el programa. Podemos ejecutar el programa con la opción de menú Ejecutar >>> Ejecutar Main Project (o el botón Play de la barra de herramientas). Se abrirá una ventana de consola donde se lleva a cabo la ejecución del programa:

Puedes ver que antes de terminar por completo la ejecución, el entorno añade un mensaje que nos permite ver lo que ha ocurrido en la ventana y espera a que pulsemos la tecla Intro (Enter) para cerrar la ventana.

Introducción a la depuración con NB

En ocasiones, nuestros programas no harán lo que deben y será necesario analizar paso a paso lo que ocurre, con el fin de intentar detectar dónde se encuentra(n) el(los) error(es).

Durante la depuración podemos hacer que el programa se ejecute paso a paso y ver los valores que toman las variables. Veamos cómo.

Crea un nuevo proyecto (Archivo >>> Proyecto Nuevo; C/C++ Application; nombre: Prueba; deja que cree el archivo main.cpp automáticamente; ubicación: \FP\Tema1\nb). Pulsa dos veces sobre el archivo main.cpp para abrirlo (en el panel Proyecto >>> Source Files o en el panel Archivos). main.cpp ya tiene un código predeterminado:

Vamos a colocar nuestro propio código en main.cpp. Copia el siguiente texto de programa (selecciónalo y pulsa Ctrl+C, o usa el menú contextual):

#include <iostream>
using namespace std;

int main()
{
   double numerador, denominador, resultado;
   cout << "Numerador: "; cin >> numerador;
   cout << "Denominador: "; cin >> denominador;
   resultado = numerador / denominador;
   cout << "Resultado: " << resultado << endl;

   return 0;
}

Luego, pulsa sobre el editor de NB y pulsa Ctrl+A para seleccionar todo el texto. Si pulsas ahora Ctrl+V quedará reemplazado el texto por el nuevo:

Ya tenemos todo listo para generar el ejecutable y depurar el proyecto. Esta vez, en lugar de utilizar Ejecutar >>> Generar Main Project, usa Depurar >>> Debug Main Project, que genera el ejecutable también, pero con facilidades añadidas para la depuración.

Si todo va bien (debería), se genera el ejecutable y se comienza la ejecución del programa. Se abre la ventana de consola, pero la ejecución se interrumpe al principio de la función main():

Sabremos cuál es la siguiente línea que se va a ejecutar porque aparece una flecha verde a la izquierda (donde el número de línea). Debajo ha aparecido un panel con varias fichas. Entre ellas, Salida, que es la que se ve, y donde hay dos subfichas, la que muestra los mensajes de compilación y enlace, y la consola de depuración, que es la que está a la vista.

Ahora estamos al principio de la función main(). En la barra de herramientas han aparecido unos controles específicos para la ejecución en depuración:

Los botones tienen sus correspondientes órdenes en el menú Depurar. A la derecha del botón Debug Main Project, que nos permite iniciar el programa en modo depuración, lo que ya hemos hecho, tenemos botones para detener la ejecución , pausarla (desactivado ahora), continuarla (F5; hasta el siguiente punto de ruptura), continuar ejecución (F8; ejecutar hasta la siguiente línea, ejecutando de golpe las llamadas a funciones o los operadores), ejecutar paso a paso (F7; entrando en las llamadas a funciones), ejecutar y salir (hasta el final del programa) y ejecutar hasta la posición del cursor. En algunos casos se indica la tecla de función equivalente.

Si pulsamos la tecla F8 para ejecutar la siguiente instrucción, veremos que la flecha pasa a apuntar a la primera instrucción cout << ... Se ejecutará a continuación el código de esa línea. Las declaraciones se pasan por alto, ya que no figuran como instrucciones en el código objeto. Sirven, durante la compilación, para determinar las necesidades de memoria y comprobar posibles errores tipológicos en el uso de las variables y constantes.

Si pulsáramos ahora F7, la ejecución pasaría al código del operador << de cout, que se encuentra en la biblioteca iostream. Como confiamos plenamente en las bibliotecas del sistema, no necesitamos analizar la ejecución de sus códigos. En estos casos debemos pulsar el botón Continuar ejecución (o seleccionar Depurar >>> Continuar ejecución, o pulsar F8). Esto hace que las funciones y operadores se ejecuten de una vez, sin entrar en su código concreto.

Si has pulsado ya F7 y has llegado al código de la biblioteca iostream, cierra esa ficha y selecciona Depurar >>> Finalizar sesión de depuración (o el botón Parar de la barra de herramientas). Volverás al estado inicial (vuelve a iniciar en modo depuración).

Pulsa F8 hasta que le llegue el turno de ejecutarse a la instrucción cout << ... Se activará la ventana de consola, al ejecutarse las instrucciones de esa línea, que incluye la lectura del valor del numerador. Cambia a esa ventana e introduce un valor para el numerador. El indicador de ejecución (flecha verde) pasará a la siguiente línea.

Si ahora pulsas sobre la pestaña Variables en el panel inferior, podrás ver cómo la variable numerador ha adquirido el valor que has introducido:

También puedes ver los valores que tienen denominador y resultado: un valor que había aleatoriamente en sus celdas de memoria. Puedes comprobar que C++ no inicializa las variables a cero.

Sigue ejecutando el programa paso a paso pulsando F8 hasta que termine. Observa los valores que van tomando las variables. Inspeccionando las variables podemos comprobar si el programa realiza los cálculos adecuadamente o si usamos una variable no inicializada, por ejemplo.

¡Ah! Y al igual que en Visual C++ puedes colocar puntos de ruptura en las líneas que quieras, pulsando sobre su margen izquierdo (en el número de línea). La ejecución se detendrá antes de ejecutar esa línea de código.

Ya te iremos contando más cosas de NB a medida que las vayamos necesitando.

Y si quieres más ayuda sobre NB, puede acudir a los recursos de aprendizaje de NetBeans para el desarrollo en C++:

Pulsa aquí para ir a la página de NetBeans con documentos sobre desarrollo de aplicaciones en C++ (en inglés)