Anexo Unidad 5 Introduccin a las Herramientas de Desarrollo Pgina 1/12
Universidad Nacional del Litoral
Facultad de Ingeniera y Ciencias Hdricas Departamento de Informtica
FUNDAMENTOS DE PROGRAMACIN Asignatura correspondiente al plan de estudios de la carrera de Ingeniera Informtica ANEXO 1 Intr!ducci"n a las Herra#ientas de Desarr!ll! Ing. Pablo Novara - 19/0/!010 Anexo Unidad 5 Introduccin a las Herramientas de Desarrollo Pgina 2/12 Intr!ducci"n a las Herra#ientas de Desarr!ll! Herramientas a utilizar Para desarrollar un prorama utilizando !"" s#lo se re$uiere un editor de te%tos para poder escri&ir el c#dio fuente 'por e(emplo el )loc* de Notas de +indo,s- . un compilador 'en el sentido amplio de la pala&ra/ suele conformarse por varios proramas- para poder enerar el e(ecuta&le0 Es decir/ el compilador toma un arc1ivo de te%to con un c#dio fuente/ verifica si la sinta%is es correcta . realiza los pasos necesarios para enerar el arc1ivo e(ecuta&le correspondiente a dic1o c#dio 'traducir de !"" a lenua(e de m$uina-0 2in em&aro/ en la prctica se suele utilizar aluna 1erramienta $ue intere un editor . un compilador/ (unto con muc1as caracter3sticas adicionales destinadas a &rindar comodidad . velocidad al proramador0 Estas 1erramientas se denominan IDEs 'del inl4s5 Interated Development Enviroment 6 Entorno Interado de Desarrollo-0 Un IDE inclu.e una interfaz visual/ $ue permite tra&a(ar con comodidad . $ue se encara de dialoar internamente con el compilador/ el enlazador . dems 1erramientas0 De esta forma/ el proramador nunca de&e llamarlas directamente/ sino $ue con solo 1acer un clic*/ la IDE enera . e(ecuta todos los comandos necesarios para la compilaci#n . presenta los resultados de forma adecuada0 Esto/ adems de ser ms rpido/ evita al proramador la necesidad de recordar los numerosos parmetros $ue el compilador . el enlazador reci&en . los reemplaza por un cuadro de diloo muc1o ms simple0 De iual manera/ simplifica otras tareas como la depuraci#n 'e(ecuci#n paso a paso/ inspecci#n de varia&les/ etc0-/ o la edici#n/ . suele presentar adems/ diferentes asistencias para la escritura del prorama/ como suerencias de autocompletado/ coloreado de la sinta%is del c#dio fuente/ a.uda acerca del lenua(e/ etc0 "igura 1# I$%uierda# estructura de un I&'. &erec(a# e)emplo de I&' *+in)aI, Es com7n para el usuario ine%perto confundir un IDE con un compilador/ .a $ue en la ma.or3a de los productos de desarrollo todo el con(unto de 1erramientas necesarias se proveen e instalan (unto con la IDE/ . puede $ue el proramador (ams necesite entrar en contacto directo con estas0 Anexo Unidad 5 Introduccin a las Herramientas de Desarrollo Pgina 3/12 8enta(as . desventa(as del uso de una IDE !uando el alumno realiza su primeros pasos en un lenua(e de proramaci#n es altamente recomenda&le $ue utilice una IDE0 De no 1acerlo/ de&er lidiar con cuestiones relacionadas al proceso de compilaci#n . al mane(o de la linea de comandos para el uso de un compilador en particular0 Es conveniente/ en una primer etapa/ concentrarse en las cuestiones relacionadas al lenua(e . a la l#ica de los pro&lemas a resolver0 2in em&aro/ un proramador avanzado de&e conocer con cierto detalle $u4 ocurre detrs de su IDE/ . c#mo se estiona internamente el proceso de compilaci#n0 Estos conocimientos le a.udan a entender con ma.or rado de profundidad el lenua(e/ . le permiten a&ordar pro.ectos de ma.or enveradura donde intervenan distintos lenua(es/ &i&liotecas e%ternas/ se re$uiera soporte para m7ltiples plataformas/ etc0 En esta primer u3a relacionada a las 1erramientas para la proramaci#n en !""/ nos centraremos s#lo en la primer parte 'el uso de una IDE-0 El conocimiento adicional so&re el proceso de compilaci#n ser tema de otro ane%o ms adelante cuando el alumno dispona de cierto rado de e%periencia con el lenua(e0 En este curso/ cada alumno es li&re de utilizar el IDE $ue desee0 2in em&aro/ en esta u3a se presentar uno de ellos '9in(aI-/ $ue tiene la venta(a de estar desarrollado dentro de la ctedra . pensando para su uso en el aula por parte de estudiantes/ adems de ser de li&re distri&uci#n0 Introducci#n al uso de 9in(aI 9in(aI es un IDE para proramar en !"" inicialmente desarrollado para el dictado de clases . para ser utilizado por estudiantes0 Invoca internamente al compilador :!! para enerar los e(ecuta&les . se encuentra disponi&le/ como 2oft,are Li&re/ tanto para +indo,s como para :NU;Linu%0 !uenta con numerosas facilidades de edici#n . asistencias para la codificaci#n/ as3 como un sistema de depuraci#n interado . a.uda en castellano0 2e puede descarar desde <http://zinjai.sourceforge.net- 1 0 1 ZinjaI es un sot!are en constante desarrollo" #or lo $ue es actuali%ado recuentemente& 'e recomienda $ue (isite el sitio aun$ue )a dis#onga de una (ersin anterior de este ID* #ara (eriicar si no existen nue(as actuali%aciones& Anexo Unidad 5 Introduccin a las Herramientas de Desarrollo Pgina +/12 "igura !# Pgina de descarga de +in)aI El proceso de instalaci#n en +indo,s es similar a la instalaci#n de cual$uier otro prorama0 Para una instalaci#n normal se de&e e(ecutar el instalador/ aceptar la licencia . presionar siuiente tres veces0 El instalador copiar los arc1ivos del IDE/ as3 como tam&i4n de =in:+ 'compilador/ depurador/ etc0-0 En :NU;Linu%/ no es necesario un proceso de instalaci#n del IDE0 2#lo se de&e descomprimir el arc1ivo/ . lanzar el e(ecuta&le zin(ai dentro de la carpeta con el mismo nom&re $ue se crear al descomprimir0 Para descomprimirlo/ puede utilizar aluna 1erramienta rfica 'como ar* o file>roller-/ o desde una consola 'escri&iendo por e(emplo <tar >%zvf zin(ai>l?@>AB1BB@1C0tzD-0 El pa$uete no inclu.e al compilador '""- ni al depurador 'd&-0 Los mismos/ de&ern ser instalados con el estor de pa$uetes $ue corresponda se7n la distri&uci#n 'aptitude/ sinaptics/ installp*/ .um/ etc0-0 9in(aI presenta dos modos de tra&a(o5 !uando se inicia 9in(aI se encuentra en un modo pensado para desarrollar rpidamente e(ercicios simples0 A$u3/ cada pestaEa 'cada arc1ivo a&ierto- ser considerado un prorama diferente/ al compilar . e(ecutar/ se considera s#lo la pestaEa actual0 Permite tra&a(ar sin necesidad de crear un pro.ecto ni realizar confiuraci#n aluna0 Fampoco es necesario 'aun$ue si recomenda&le- $ue ra&e su c#dio fuente0 !uando se crea un prorama simple/ se crea un 7nico arc1ivo0 El e(ecuta&le de un prorama simple/ ser un arc1ivo con su mismo nom&re/ pero con e%tensi#n 0&in o 0e%e 'se7n se utilice :NU;Linu% o +indo,s- en el mismo directorio 'carpeta- $ue el fuente0 El otro modo/ $ue se utiliza cuando se a&re un pro.ecto/ no permite tener ms de un prorama a&ierto al mismo tiempo/ . todos los fuentes con $ue se tra&a(e pertenecern a un mismo pro.ecto0 El proceso de compilaci#n tendr en cuenta todos los arc1ivos $ue pertenecen al pro.ecto/ . las posi&ilidades de confiuraci#n del mismo sern muc1o ms amplias $ue en el caso anterior0 !uando se crea un pro.ecto/ se crea un nuevo directorio/ en el cual se uardarn el arc1ivo de Anexo Unidad 5 Introduccin a las Herramientas de Desarrollo Pgina 5/12 confiuraci#n del pro.ecto/ los arc1ivos o&(etos . el e(ecuta&le/ . todos los fuentes/ ca&eceras . otros arc1ivos $ue el usuario cree dentro de su pro.ecto0 A continuaci#n se desarrollar paso a paso un e(emplo para crear un prorama simple0 Este e(emplo est &asado en uno de los tutoriales de 9in(aI0 Puede encontrar ms . conocer otras caracter3sticas accediendo a los mismos a trav4s del men7 de a.uda del prorama0 Primer prorama con 9in(aI 8amos a resolver un pe$ueEo e(ercicio para e(emplificar el mane(o &sico de la interfaz0 El enunciado del e(ercicio ser3a5 .ealice un programa %ue permita calcular las races de una funci/n cuadrtica. Pas! $% Lo primero $ue de&e 1acer/ es crear un nuevo prorama0 Para ello seleccione la opci#n Nuevo... del men7 Arc(ivo0 2e desplear inmediatamente el Asistente para Nuevo Arc1ivo0 All3 seleccione la opci#n 0tili$ar Plantilla . 1aa clic* en el &ot#n !ontinuar0 Anexo Unidad 5 Introduccin a las Herramientas de Desarrollo Pgina ,/12 A continuaci#n seleccione la plantilla Prorama 122 en 3lanco . presione 1rear0 Esta acci#n cerrar el asistente . le a&rir una nueva pestaEa con el es$ueleto de un prorama !"" 'inclu.e la ca&ecera iostream . define la funci#n main-/ . le posicionar el cursor en la primer l3nea de la funci#n main para $ue comience a escri&ir A 0 2 Puede configurar ZinjaI para que al presionar Ctrl+N se cree automticamente un nue!o programa utilizando la plantilla por defecto sin mostrar ninguno de los cuadros del asistente. Anexo Unidad 5 Introduccin a las Herramientas de Desarrollo Pgina -/12 Pas! &% Lo siuiente $ue 1aremos ser escri&ir el prorama0 Una forma de resolver el e(ercicio se presenta a continuaci#n5 #include <iostream> using namespace std; int main(int argc, char *argv[]) { float a,b,c; cout<<"Ingrese los coeficientes A, B y C: "; cin>>a>>b>>c; float det = b*b-4*a*c; if (det<0) { float p_real = -b/(2*a); float p_imag = sqrt(-det)/(2*a); cout<<"Las raices son: " <<p_real<<"+"<<p_imag<<"i y " <<p_real<<"-"<<p_imag<<"i"<<endl; } else { float raiz1 = (-b+sqrt(det))/(2*a); float raiz2 = (-b-sqrt(det))/(2*a); cout<<"Las raices son: "<<raiz1<<" y <<raiz2<<endl; } return 0; } =ientras escri&e/ no se preocupe por el sanrado de las lineas/ o&serve como +in)aI acomoda el cursor en el luar adecuado cada vez $ue presiona enter 4 0 " Indentar el c#digo es una costum$re altamente recomenda$le% &a que facilita enormemente la legi$ilidad del mismo. Anexo Unidad 5 Introduccin a las Herramientas de Desarrollo Pgina ./12 Pas! '% Para intentar e(ecutar el prorama presione "9/ o seleccione la opci#n ')ecutar del men7 ')ecutar0 Esta acci#n uarda el arc1ivo 'si a7n no tiene nom&re la 1ar en un directorio temporal-/ lo compila/ . si la compilaci#n es e%itosa lo e(ecuta0 Aparecer en la parte inferior de la ventana principal el Panel de Gesultados del !ompilador/ en el cual se muestra el estado de la compilaci#n . los resultados de la misma0 Anexo Unidad 5 Introduccin a las Herramientas de Desarrollo Pgina //12 De&ido a $ue el c#dio copiado contiene un error 'no se 1a incluido la li&rer3a cmat( para poder utilizar la funci#n s$rt-/ el r&ol de dic1o panel desplear la secci#n 'rrores mostrando un error similar a H'sqrt' was not declared in this scopeH 'Is$rtI no est declarado en este m&ito-0 Notar $ue adems de errores 'de sinta%is-/ pueden aparecer advertencias en el panel de resultados de la compilaci#n0 Las advertencias '5arnings- no impiden la compilaci#n del prorama '.a $ue la sinta%is no es incorrecta-/ pero indican posi&les fuentes de error 'como usar una varia&le sin inicializarla-/ malas prcticas 'como no cumplir parcialmente el estndar/ o declarar varia&les $ue no se utilizan-/ u otras construcciones dudosas0 Pueden resultar 7tiles para encontrar errores de l#ica0 Pas! (% Haa do&le clic* so&re el error en el panel de compilaci#n . o&serve como en el editor el cursor se desplaza 1acia la linea $ue lo provoc#/ . su&ra.a con ro(o la funci#n a la cual el mensa(e de error 1ace referencia0 Anexo Unidad 5 Introduccin a las Herramientas de Desarrollo Pgina 10/12 Para solucionar el error de&er3a incluir la ca&ecera cmat1 al principio del arc1ivo0 +in)aI puede 1acer esto automticamente0 Presione 1trl26 . o&serve como +in)aI aEade la linea0 Otra forma de resolver el pro&lema ser3a presionar 7(ift2"1 para a&rir el panel de a.uda rpida/ el cual &rinda informaci#n so&re los elementos estndar del lenua(e/ as3 como e(emplos de uso . enlaces a elementos relacionados0 Pas! )% Presione nuevamente "9 para correr el prorama0 Esta vez se compilar . e(ecutar correctamente en una nueva ventana0 Lueo de finalizar la e(ecuci#n/ +in)aI informar el c#dio de retorno de su prorama 'el B de la l3nea final Hreturn 0;H/ el cual sirve para sa&er si se e(ecut# correctamente- . esperar a $ue presione enter una vez ms antes de cerrar la ventana/ para permitirle o&servar los resultados0 Anexo Unidad 5 Introduccin a las Herramientas de Desarrollo Pgina 11/12 Otras consideraciones Ata*!s de teclad! de utilidad Es importante $ue el proramador se sienta c#modo con las facilidades de edici#n $ue le &rinda la IDE $ue utiliza0 !onocer los ata(os de teclado para acciones mu. frecuentes aumenta muc1o la velocidad de escritura del c#dio evitando destinar tiempo a tareas tediosas o repetitivas $ue nada tienen $ue ver con la l#ica del pro&lema0 A continuaci#n se listan alunas com&inaciones de teclas para aprovec1ar me(or alunas facilidades de edici#n 9in(aI5 JK5 Este ata(o realiza todos los pasos necesarios para pro&ar un prorama 'uardar/ compilar . e(ecutar-0 2i se presiona 21ift"JK/ se evita el 7ltimo pasoL es decir/ s#lo se compila0 Esto sirve para sa&er si el c#dio es sintcticamente correcto0 !trl"M5 2i la compilaci#n arro(a errores o advertencias/ con esta com&inaci#n se pueden recorrer los mismos0 Al utilizarla/ se selecciona un error . el cursor se posiciona en la l3nea $ue ocasion# el mismo0 El error $ue se selecciona va variando en cada pulsaci#n0 !trl"H5 !omo se vio en el e(emplo/ esta com&inaci#n &usca la ca&ecera $ue contiene la declaraci#n de una determinada clase/ funci#n/ varia&le o macro e inserta al principio del arc1ivo el Ninclude $ue corresponda para poder utilizarla0 La pala&ra $ue se &usca es siempre la seleccionada o la so&re la cual est el cursor de te%to0 !trl"L/ !trl"21ift"L5 La primera duplica la linea actual o las l3neas seleccionadas0 Es 7til en muc1os casos en $ue el c#dio inclu.e l3neas casi id4nticas 'por e(emplo/ en el clculo de las dos raices del e(emplo anterior-/ e$uivale a copiar . pear esas l3neas0 La seunda com&inaci#n elimina la l3nea actual o las l3neas seleccionadas0 !trl"F/ !trl"21ift"F5 estas com&inaciones desplazan la l3nea actual o las l3neas seleccionadas una posici#n ms arri&a en el c#dio0 2irven para mover framentos de c#dio lineas arri&a o a&a(o0 Anexo Unidad 5 Introduccin a las Herramientas de Desarrollo Pgina 12/12 !trl"D/ !trl"21ift"D5 Estas com&inaciones sirven para comentar;descomentar respectivamente una o ms l3neas0 !trl"I5 Este ata(o corrie el indentado 'los espacios al principio de cada l3nea- de un con(unto de l3neas para facilitar la lectura del c#dio0 21ift"J15 Estando posicionado con el cursor de te%to so&re una pala&ra clave o identificador/ este ata(o invoca al panel de a.uda rpida presentando un te%to de a.uda relacionado al mismo0 De+uraci"n c!n ,in*aI !asi todos los IDEs e%istentes interan en ma.or o menor rado facilidades para la depuraci#n0 Esto es/ permiten interrumpir la e(ecuci#n de un prorama para evaluar varia&les o e%presiones/ modificarlas/ o&servar las llamadas a funciones realizadas/ continuar paso por paso/ etc0 Para iniciar una sesi#n de depuraci#n en 9in(aI se de&e e(ecutar el prorama de forma especial/ con la tecla JC en luar de JK0 Fodo lo $ue se puede 1acer durante la depuraci#n est disponi&le en el men7 <Depuraci#nD o en los paneles $ue aparecen al presionar JC0 2i un alumno posee e%periencia en la utilizaci#n de 1erramientas de depuraci#n con otras IDEs/ puede e%plorar esta opciones0 En cual$uier caso/ una descripci#n ms detallada de las posi&ilidades . c#mo aprovec1arlas ser motivo de otro ane%o cuando el alumno se encuentre ms familiarizado con lo &sico presentado anteriormente . el lenua(e0
Java para Principiantes - Instanciación de Una Clase - Referencia A Objeto - Métodos, Declaración de Métodos, Mensajes, Paso de Parámetros, Retorno de Valores, Constructores y Destructores