Apendice2_FreePascal

download Apendice2_FreePascal

of 12

Transcript of Apendice2_FreePascal

  • 7/25/2019 Apendice2_FreePascal

    1/12

    Catedra de ComputacionApendice Free Pascal IDE

    ndice del Apndice del IDE FPC

    IDE de Free Pascal (Integrated Development Environment).........................................2El ciclo de desarrollo de un programa en el entorno Free Pascal IDE........................2Consideraciones para el trabajo en este ambiente de desarrollo.................................2Permisos (para ejecucin de IDE Free Pascal bajo Linu)..........................................!"rc#ivos Ejecutables...................................................................................................$

    Comen%ar a trabajar en el IDE Free Pascal....................................................................$El teclado & el manejo de tetos en Free Pascal........................................................'

    ratamiento de arc#ivos en la ventana de edicin.....................................................''*ecuencia de teclas & otras combinaciones...............................................................''*itios de Inter+s.........................................................................................................'!

    Ejercicios adicionales...................................................................................................'!

    COMPUTACION,Apndice Free Pascal'

  • 7/25/2019 Apendice2_FreePascal

    2/12

    IDE de Free Pascal (Integrated Deelopment Enironment!

    -n IDE (ambiente integrado de programacin) es un programa ue contiene/ adem0s del compilador(lenguaje de programacin)/ utilidades & #erramientas. Estos elementos est0n integrados/ de modoue pueden llamarse 10cilmente a cualuiera de los mdulos/ durante el proceso de programacin.

    -n entorno de programacin tpico contiene3

    -n editor/ ue proporciona el medio de introducir el teto & smbolos para crear cdigo1uente.

    -n int+rprete o un compilador/ ue convierte el cdigo 1uente en instrucciones ue lacomputadora puede comprender & ejecutar.

    -n veri1icador de errores en tiempo de ejecucin/ ue reconoce errores no detectadosanteriormente en tiempo de compilacin.

    -n depurador (debugger)/ ue permite reali%ar seguimiento lnea a lnea de la ejecucin delprograma con el 1in de anali%ar & corregir errores de estructura &4o lgicos.

    El ciclo de desarrollo de un programa en el entorno Free Pascal IDE

    Free Pascal es un compilador Pascal portable/ libre & de cdigo abierto/ ue representa unaalternativa a los productos comerciales urbo Pascal & Delp#i. *u entorno en modo teto es mu&similar al de urbo Pascal de 5orland/ pero con m0s opciones.

    Free Pascal (en sus 6ltimas versiones3 2.2. & 2.2.2) es per1ectamente compatible con urbo Pascal7. Free Pascal es un compilador para m6ltiples aruitecturas de CP- & m6ltiples sistemasoperativos. El compilador implementa los dialectos de Pascal de 5orland urbo Pascal & Delp#i/adem0s de algunas construcciones de 8acPascal.Est0 disponible para la ma&ora de los sistemasoperativospopulares.

    El compilador produce cdigo m0uina ejecutable independiente/ es decir/ ue una ve% ue unprograma se #a compilado en disco/ puede transportarse el arc#ivo ejecutable a otra m0uina &ejecutarlo sin necesidad del IDE. El ciclo de desarrollo de un programa en este ambiente puederesumirse en los siguientes pasos3

    '. Edicin del programa 1uente.

    2. "lmacenamiento del programa en un arc#ivo. ("rc#ivo de etensin .P"*)!. Compilacin del programa. *i eisten errores de sintais/ se debe volver a la edicin del

    programa & corregirlos. En caso de no eistir errores/ tendremos un programa ejecutable.$. Ejecucin del programa (una ve% ue no #a&a errores de compilacin)9. :isuali%acin de resultados. *i eisten errores de lgica/ entonces volver a la edicin del

    programa 1uente para modi1icaciones.

    Consideraciones para el tra"a#o en este am"iente de desarrollo

    En la opcin de men6 Compile$Target/ se debe seleccionar la plata1orma adecuada. Porejemplo/ si est0 trabajando bajo ;indo

  • 7/25/2019 Apendice2_FreePascal

    3/12

    En la opcin de men6 Options . Compiler$/0nta,/ en la ventana correspondiente aCompiler Mode se debe seleccionar la opcin Tur"o Pascal compati"le- "u en esta opcintenemos tambien la posibilidad de seleccionar distintas compatibilidades a otros codigos como ser8cintos# Pascal/ =bject Pascal/ etc.

    En la opcin de men6 Code12eneration/ en la ventana optimi3ationspermite entre otrasseleccionar entre un cdigo m0s r0pido o uno m0s peue@o. (Aenerate 1aster code/ Aenerate smallercode).

    En la opcin de men6 Processor/ Donde se puede seleccionar los distintos 8icroBprocesadores. Ejemplo (Pentium tm/ i!>?4i$>$/ Pentium88/ etc. En la opcin 4er"ose/ En la ue se puede seleccionar distintos tipos in1ormacin ue retorne

    en la compilacin por ejemplo los ;arnings. ambi+n posee la opcin 5ro6ser&la opcin Assem"ler.

    Como se puede observar el entorno es adaptable a varias plata1ormas & con distintasparticularidades. Pero para el 1in de nuestras necesidades basta con seleccionar las indicadas.

    "l compilar programas bajo ;indo

  • 7/25/2019 Apendice2_FreePascal

    4/12

    Arc8ios E#ecuta"les

    Como pudimos ver/ una de las di1erencias de los ejecutables entre los entornos D=*/ ;in!2/ /etc. & Linu es ue en Linu no importa la etensin del arc#ivo para saber si el sistema lo debeejecutar. *i importan los permisos ue el arc#ivo contenga. El 1ormato interno ue genera para losejecutables es del tipoE+F.

    El 1ormato E+F (Eecutable and LinKable Format) es un 1ormato de arc#ivo para ejecutables/cdigo objeto/ librerias compartidas & volcado de memoria. Fue desarrollado por el -I *&stemLaborator& (-*L)/ en principio 1ue desarrollado para plata1ormas de !2 bits/ a pesar de ue #o& enda se usa en gran variedad de sistemas. El 1ormato ELF ejecutable es usado ma&oritariamente en lossistemas tipo -I como A-4LI-/ 5*D/ *olais/ Iri. Eisten otros 1ormatos soportados enalgunos de estos sistemas como C=FF o a.out/ pero ELF es sin duda el m0s usado.

    Por otra parte/ de la compilacin para arc#ivos ejecutables en D=*/ ;in!2/ etc. se puedengenerar tanto .EE como .C=8. La principal di1erencia es ue el 1ormato .EE no restringe eltama@o del ejecutable/ en cambio el .C=8 est0 restringido como m0imo a ocupar un slo segmentode memoria (un espacio de memoria de ?$ b).

    Cabe destacar ue para ataues de seguridad es m0s tedioso revisar las cabeceras de los arc#ivosue ver solamente su etensin.

    Comen3ar a tra"a#ar en el IDE Free Pascal

    TA9EA :

    :-: Editar del programa

    *e lleva a cabo en una ventana de edicin/ en ella se puede escribir el programa 1uente. Paracomen%ar a trabajar a la opcin de men6 File . Ne6- Escribir las siguientes lneas de teto. Mespetarla sintais propuesta

    Program primero;Begin Writeln (Este es mi primer programa ); Writeln (en el entorno de desarrollo para ); Writeln (FREE PASCAL);End.

    :-' Almacenar el programa editado en un arc8io

    Para almacenar el programa seleccionar la opcin de men6 File 11 /ae As---. Elegir comonombre PMI8EM=/ no colocar etensin/ &a ue la misma se asignar0 de 1orma autom0tica (.P"*).ClicK en =

    " continuacin podr0 observar ue el nombre asignado por de1ecto ="8E.P"* #a sidocambiado por PMI8EM=.P"*. Luego de cada cambio en el arc#ivo 1uente se recomienda suguardado accediendo a la opcin File 11 /ae o F'- Cada nueva versin se almacenar0reempla%ando la anterior.

    :-& Compilar el programa;Para compilar el programa seleccionar la opcin de men6Compile 11 Compile (Alt F

    &a se #a mencionado/ en esta etapa se veri1ica ue no eistan errores sint0cticos. Por cada error (la

    $

  • 7/25/2019 Apendice2_FreePascal

    5/12

    compilacin termina de 1orma no eitosa) se debe e1ectuar la correccin correspondiente &recompilar #asta ue la compilacin sea eitosa.

    :-= E#ecutar el programaPara obtener los resultados se ejecutar0 el programa mediante la opcin de men6 9un . 9un

    (Ctrl F

    :-> 4isuali3ar resultados-na ve% ue se ejecut el programa/ ocurrir0 ue se vuelve a la ventana de edicin sin #aber

    podido ver los resultados. Para visuali%ar los resultados es necesario acceder a la ventana delusuario para lo cual deber0 pulsar Alt F>

    :er0 en la pantalla3Este es mi primer programaen el entorno de desarrollo paraFMEE P"*C"L

    :-* Modiicaciones"gregar al 1inal del programa (antes del End) la instruccin Meadln. "lmacene los cambiosreali%ados (F'!- Para ejecutarlo nuevamente es necesario volver a compilarlo/ es decir se repiten los

    pasos '.! & '.$.

    "l reali%ar el paso '.$/ se observa ue a#ora para visuali%ar los resultados no es necesario pulsarAlt F>debido a la inclusin de la sentencia Meadln. -na ve% visuali%ados los resultados presioneEEM & vuelve a la ventana de Edicin

    TA9EA '

    Escribir el siguiente programa en otra ventana de edicin3 Para esto seleccione File$Ne6

    Program rectanglo;!ses Crt;Begin

    ClrScr;Writeln (""""""");Writeln (" ");Writeln (" ");Writeln (" ");Writeln (""""""");

    Readln;End.

    /entencia Uses

    La sentencia -ses permite identi1icar las -nidades (-nits3 son arc#ivos compilados ue pueden serutili%ados desde alg6n programa) ue el programa podr0 utili%ar & signi1ica ue a partir de esa lnease podr0n invocar todas las rutinas &4o tipos &4o constantes incluidas en dic#as -nidades. El tema deunidades est0 eplicado en el captulo 7 del apunte de la materia.

    Cada ve% ue se desee #acer uso de una -nit/ debe tenerse en cuenta ue +sta es un arc#ivoindependiente (no ejecutable)/ & como tal debe estar almacenado en alguna carpeta del disco rgido ounidad eterna. Dic#a carpeta o unidad debe estar eplicitamente indicada en la ventana Units ueaparece al seleccionar la opcin de men6 Options . Directories?

    9

  • 7/25/2019 Apendice2_FreePascal

    6/12

    Crtes una -nit prede1inida ue contiene rutinas b0sicas de gestin de la pantalla en modo teto.-na de ellas es Clr/cr. Este procedimiento limpia la pantalla del usuario/ es decir elimina todo loue #a&a sido impreso previamente en el monitor.

    *i slo se colocara la instruccin Clr/crsin poner la lnea Uses CrtN la compilacin dara error.

    =tras rutinas en la unidad Crtson3

    Nom"re Descripci7n

    e&Pressed Detecta la pulsacin de una tecla*ound *uena el altavo% interno

    AotoO Posiciona el cursor en las coordenadas de pantalla /O

    Cuando se emplee m0s de una unit se tendr0 ue separarlas en comas. La lnea siempre #a& ue1inali%arla en punto & coma. Por ejemplo3

    !ses Crt# $arios;

    La -nidad Printer1acilita la tarea del programador cuando #a de utili%ar una impresora comodispositivo de salida. Permite enviar la salida del programa a la impresora utili%ando Writeo Writeln& +/Tcomo variable de teto para la salida. Por ejemplo3

    Program E%emplo;!ses Printer;BeginWriteln(LSEste te'to aparece en la impresora);Writeln(Este te'to aparece en pantalla);

    End.

    Importante"l compilar una -nit llamada miunidad.pas en Free pascal para entornos ;in!2 se genera unmiunidad.tpuN en cambio/ en Linu genera un miunidad.ppu.Las unidades de P-/ son unidades PP-. *u 1uncionamiento es completamente id+nticoN es decir se

    desarrollan igual & se las re1erencia de la misma manera ue en urboPascal.

    Almacenar el programa editado en un arc8io-na ve% editado se graba con el nombre *EA-D=.P"*. En este momento se tienen abiertas dos

    ventanas al mismo tiempo.

    Mane#o de entanasPara alternar entre ventanas puede usarse la tecla F* o /8it F*. *i se conoce el n6mero de laventana a la ue se uiere acceder (el n6mero de cada ventana se encuentra en la esuina superiorderec#a)/ se puede acceder a ella mediante Alt Nro- = sea/ para acceder a la ventana ! se debe

    presionarAlt &.

    Para cerrar una ventana/ se la debe activar (mediante alguna de las 1ormas antes indicadas) & luegoAlt F&

    Compilaci7n 0 e#ecuci7n*e repiten los pasos '.! & '.$ de la Tarea :

    " continuacin se describen componentes del Editor de Free Pascal ue ser0n de utilidad para eltrabajo en la asignatura.

    Componentes del editor de Free PascalLa barra de men6s es el sistema principal de acceso a todas las opciones de los men6s. La barra de

    men6 esta siempre visible/ ecepto cuando se est0 visuali%ando la salida de un programa.

    ?

  • 7/25/2019 Apendice2_FreePascal

    7/12

    Los distintos men6s & sus opciones son las siguientes3File Edit /earc8 9un Compile De"ug Tools Options %indo6 @elp

    Compile De"ug Tools OptionsCompile =utput 8essages 8ode8aKe -ser *creen Aoto net Compiler...5uild "dd

  • 7/25/2019 Apendice2_FreePascal

    8/12

    *i bien eisten t+cnicas para la revisin sistem0tica del cdigo 1uente & se cuenta con medioscomputacionales para la deteccin de errores/ sigue siendo en buena medida una actividad manual/ue desa1a la paciencia/ la imaginacin & la intuicin del programador.

    "lgunas de las opciones de las ue el IDE FPC dispone son3

    F$ Mun R Aoto cursor Ejecuta #asta la posicin del cursor.F7 Mun R race Into Ejecucin del programa sentencia a sentencia

    F> Mun R *tep =ver Ejecucin del programa/ considerando las 1unciones o procedimientoscomo una sola sentenciaCML F2 Mun R Program Meset Corta el modo debugging

    Ejemplo3

    "l ejecutar el siguiente programa se detecta ue entra en un ciclo in1inito. La 1orma de encontrar elerror/ puede ser el debugging.

    Program E%emplo;$ar

    A# B nteger;

    *p C+ar;BeginWriteln(Bien,enido);*p-S;W+ile *p / 0doBeginWriteln(ngrese dos ,alores enteros);

    Readln(A#B); 1 (A / 2) and (B / 2) t+en

    Writeln( S3R&(A4B)56) Else

    Writeln(S3R(A4B)56)End

    End.

    8etodologa3

    Posicionarse en el rengln ue contiene la sentencia *p-S;. Hasta este punto el programa notiene problemas. Presionar F=. Desde all/ reali%ar un seguimiento sentencia a sentencia con FB(eneste caso/ al no #aber subprogramas/ FBes euivalente a F)). De este modo podremos ver cmo seejecuta el ciclo & deducir por u+ no sale del ;#ile.*i #aciendo este seguimiento no es su1iciente para reconocer el error/ es posible incluir en una:entana las variables utili%adas. Para esto seleccionar la variable (en nuestro caso Op& presionar

    CT9+ FB) & observar su contenido/ de este modo podremos ver ue el ciclo se ejecuta de modoinde1inido porue la variable Opnunca toma el valor .*i se desea cortar el Debugging antes de ue termine la ejecucin del programa/ se debe presionarCT9+ F'

    El teclado 0 el mane#o de te,tos en Free Pascal

    "ntes de comen%ar a escribir programas es conveniente aprender el m+todo de escritura de los mismos/ esdecir/ la manipulacin de tetos.Moimientos del cursor

    Orden Tecla Utili3adaPrincipio de lnea HomeFinal de lnea EndPrincipio del arc#ivo CML Home

    >

  • 7/25/2019 Apendice2_FreePascal

    9/12

    Final del arc#ivo CML End"van%ar una p0gina Page Do

  • 7/25/2019 Apendice2_FreePascal

    10/12

    Tratamiento de arc8ios en la entana de edici7n

    El men6 File contiene rdenes para crear/ abrir/ cerrar e imprimir arc#ivos. Para desplegar este men6/pulsar "L F. "lgunas de las rdenes m0s importantes son3

    Orden Descripci7ne< Crea un arc#ivo nuevo en una ventana de edicin. El arc#ivo tiene nombre

    ="8E.P"* ( representa una par de digitos). Para ue lo editadouede verdaderamente guardado es necesario usar la orden /aeo /ae As---

    =pen... "bre un arc#ivo eistente & lo carga en una ventana de edicin.*ave Auarda el arc#ivo actual con todos los cambios reali%ados & con el nombre

    actual. *i no 1ue almacenado previamente/ esta opcin es euivalente a /ae.*ave "s... Permite guardar el arc#ivo actual con otro nombre. Cuando se utili%a este

    comando los cambios reali%ados uedan almacenados en el nuevo arc#ivo & eloriginal mantendr0 el mismo contenido ue posea antes de ser abierto.

    *ave "ll Auarda todos los cambios reali%ados en todos los arc#ivos abiertos.C#ange dir... Permite cambiar el subdirectorio actualPrint Imprime el contenido de la ventana de edicin activa.Printer setup... Permite con1igurar la impresora.Command *#ell Meali%a una salida temporal #acia la linea de comandos. *e puede volver al IDE

    tipeando eit en la lnea de comandos.Eit *alida de1initiva del entorno Free Pascal.

    9ecomendamos ue con recuencia pulse la tecla F' durante la edici7n de los programas- Esta medida deprecauci7n le eitar prdidas accidentales de sus programas por cortes impreistos-+a tecla F' reali3a un guardado automtico del contenido de la entana de edici7n-

    /ecuencia de teclas 0 otras com"inaciones

    Teclas de unci7n"ecuencia de teclas Men! equivalente Funci#n

    F' Help :isuali%a una pantalla de a&uda.F2 File R *ave Auarda arc#ivo activo del editor.F! File R =pen "bre un arc#ivo.F9 ;indo< R Qoom Hace %oom de la ventana activa.F? ;indo

  • 7/25/2019 Apendice2_FreePascal

    11/12

    Otras Com"inaciones"ecuencia de teclas Men! equivalente Funci#n

    CML FJ Mun R Mun Ejecuta el programa ue se encuentra en la ventana activa"L F9 ;indo< R -ser screen :isuali%acin de la pantalla del usuario"L File R Eit *ale de Free Pascal"L ;indo

  • 7/25/2019 Apendice2_FreePascal

    12/12

    /itios de IntersB*e puede descargar Free Pascal de la siguiente direccin 3 R->) Readln( r); Write(>0->) Readln( n); Write(>Resltado>) Writeln( (r"?n@) di, (r@));end.

    b) "lmacenar en una carpeta adecuada el arc#ivo 1uente.c) Compilar el arc#ivo el arc#ivo 1uente.d) *i tiene errores de sintais/ modi1icarlo a 1in de eliminar los errores (au no importa

    el resultado)/ repitiendo los incisos b & c)e) Ejecutar el arc#ivo

    '2

    http://www.freeepascal.org/http://www.fing.edu.uy/inco/cursos/prog1/pm/field.php/Laboratorio/Compilador2008?from=Laboratorio.Compiladorhttp://www.fing.edu.uy/inco/cursos/prog1/pm/field.php/Laboratorio/Compilador2008?from=Laboratorio.Compiladorhttp://es.youtube.com/watch?v=LihWEUNJ25khttp://es.youtube.com/watch?v=LihWEUNJ25khttp://es.youtube.com/watch?v=R0HXdnj0weghttp://www.freeepascal.org/http://www.fing.edu.uy/inco/cursos/prog1/pm/field.php/Laboratorio/Compilador2008?from=Laboratorio.Compiladorhttp://www.fing.edu.uy/inco/cursos/prog1/pm/field.php/Laboratorio/Compilador2008?from=Laboratorio.Compiladorhttp://es.youtube.com/watch?v=LihWEUNJ25khttp://es.youtube.com/watch?v=R0HXdnj0weg