[ Foro de Pascal ]

Compilar Pascal

20-Apr-2013 20:47
Invitado (Emiliano)
6 Respuestas

<p>Tengo un problema con el programa, lo instalo, voy a la carpeta bin y cuando abro el programa aparece lo siguiente:</p>

[<a href="http://i35.tinypic.com/1znpfzd.jpg">Captura de pantalla</a>]

<p>Y no se que hacer para hacerlo andar, lo necesito para verificar los problemas que resuelvo a mano.</p>

<p>Lo que hago es escribir el ejercicio en NotePad, lo guardo en la carpeta ejercicios del Pascal pero no se como abrirlo.</p>

<p>Gracias.</p>


21-Apr-2013 00:33
Nacho Cabanes (+31)

Mira bien el mensaje que obtienes: aparece algo como

ppc386 [options] <inputfile> [options]

que te indica que tienes que poner el nombre del compilador y luego el fichero de entrada (el nombre de tu programa), quizá con opciones antes o después.

Lo más habitual es que estés tecleando "fpc" sin indicar el nombre de tu programa, o incluso que estés haciendo doble clic y nada más.

Hay dos posibles soluciones:

- Si lanzas el compilador desde línea de comandos, teclea después un espacio y el nombre de tu fuente.

- Si haces doble clic, no lo hagas en "fpc", que es el compilador de línea de comandos, sino en "fp", que es el entorno integrado, que te permitirá cargar tu programa y probarlo.


21-Apr-2013 02:10
Invitado (Emiliano)

Muchisimas gracias por la respuesta.
Te cuento que no pude solucionar el problema, tengo la version 2.4.2 y no puedo usar otra.
En esta versión no me aparece "fp", me aparecen cuatro .exe que son los que se ven en la captura que mande arriba.
Lo que si pude hacer es arrastrar el archivo .pas hacia el fpc.exe y me lee, pero me lo cierra automaticamente en un segundo (tengo que imprimir la pantalla en esa milesima de segundo y abrirla en paint para ver los errores).
Si no tengo errores me crea bien el .exe pero cuando lo abro, me pasa lo mismo, se cierra automaticamente y tengo que volver a capturar la pantalla para ver si la respuesta es la correcta.


21-Apr-2013 12:40
Nacho Cabanes (+31)

OK, problema entendido.

Se me ocurren cuatro opciones:

1) Compilar desde línea de comandos: abres el intérprete de comandos, que normalmente está accesible en Inicio / Todos los programas / Accesorios en un Windows XP y Windows 7. En la "pantalla negra" tecleas

CD \FPC\BIN
FPC PROGRAMA.PAS

donde "PROGRAMA.PAS" es el nombre de tu programa, que habrás copiado antes a la carpeta "FPC\BIN"

Así verás los mensajes de error (si los hay), y cuando no los haya, podrás lanzar tu ejecutable y comprobarlo tecleando su nombre:

PROGRAMA.EXE


2) Si no tienes permisos para escribir en la carpeta FPC\BIN, la solución de arrastrar el fichero fuente sobre FPC.EXE seguirá siendo válida para intentar compilar, pero:

Para comprobar que tu programa se comporta correctamente puedes añadirle un "ReadLn;" al final, de modo que haga una pausa y puedas leer todo (recuerda quitar ese "ReadLn" antes de entregar el programa a tu profesor/corrector).

Para ver los errores de compilación, la mejor forma es crear un fichero BAT: creas con el bloc de notas (o cualquier otro editor de texto mejorado, como Notepad++ o Geany) un fichero que contenga

c:\FPC\BIN\FPC PROGRAMA.PAS
PAUSE

y que se llame "compilar.bat": Lo dejas en la carpeta que contiene tu programa fuente. Al hacer doble clic, llamará al compilador pero luego hará una pausa, de modo que podrás ver los errores en pantalla.


3) Usa el editor Geany. Te permite editar tus fuentes con sintaxis en colores, compilar desde el propio Geany, y te marcará en rojo las líneas que contengan errores.

Es gratuito, lo puedes encontrar en

http://www.geany.org


4) Usa otro "sistema operativo" para tus programas en Pascal:

Puedes instalar un emulador de MsDOS, como DosBox, e instalar en él Turbo Pascal o una versión antigua de Free Pascal. Hay una versión portable de DosBox (capaz de funcionar en cualquier carpeta, o incluso en un pendrive) en:

http://portableapps.com/apps/games/dosbox_portable

Más lento y con más necesidad de espacio, pero más versátil: puedes usar VirtualBox para instalarte cualquier versión de Linux en una máquina virtual. Yo uso Linux Mint, que se basa en Ubuntu pero es más "al estilo Windows" y lo puedes encontrar en

http://www.linuxmint.com

Y VirtualBox (gratuito) lo tienes en

http://www.virtualbox.org


21-Apr-2013 21:19
Invitado (Emiliano)

Ahora si, el paso 1 anduvo de diez, ahorro mucho tiempo.
Gracias!
De paso te muestro un problema muy basico en el que no logro encontrar el error:
-Suponiendo la existencia de una pila MODELO (vacia o no), eliminar de la pila DADA todos los elementos que existan en MODELO.

Lo que hice fue:

 
Program P1E12;
uses Estructu;
var modelo,dada,aux,aux2,eliminar:pila;
begin
readpila(modelo);
readpila(dada);
inicpila(aux,'');
inicpila(aux2,'');
inicpila(eliminar,'');
While (not pilavacia(modelo)) and (not pilavacia(dada)) do
begin
if tope(modelo)=tope(dada) then
apilar(eliminar,desapilar(dada));
apilar(aux,desapilar(modelo));
else
apilar(aux2,desapilar(dada))
apilar(aux,desapilar(modelo));
End;
While not pilavacia (aux) do
apilar(modelo,desapilar(aux));
While not pilavacia (aux2) do
apilar(dada,desapilar(aux2));
writepila(modelo);
writepila(dada);
writepila(eliminar);
End.
 



Me tira error
(15,3)Fatal: Syntax error, ";" expected but "ELSE" found.


21-Apr-2013 22:38
Nacho Cabanes (+31)

Por una parte, si ya no es un problema de cómo compilar, sino una duda sobre un programa, mejor abre un nuevo hilo, con un título más adecuado.

Por otra parte... claro que no compila: tanto en el "if" como (aparentemente) en el "else" tienes dos órdenes seguidas. Como no está tabulado, no sé seguro si es eso lo que pretendes, o si el "else" está descolocado, pero... recuerda que si un "if" va a dar varios pasos, deberás encerrarlos entre "begin" y "end" (lo mismo se podría aplicar al "else").


29-Apr-2013 18:47
Fulanito de Tal

Hola.Además, en Pascal nunca puede ir un punto y coma antes de un Else.






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)