Para convertir Codigo fuente de pascal a Codigo de lenguaje C necesitaremos un paquete llamado "p2c"
En arch lo instalamos con pacman -S p2c , ubuntu/mint aptitude install p2c y si usan otras distribucion pues tendran que averiguar.
usar el convertidor es muy sencillo:
Abrimos una terminal y hacemos lo siguiente:
$ p2c /rutadelarchivo.pas (no es necesario hacerlo como root)
Por ejemplo si tenemos el archivo guardado en la carpeta "Descargas" abrimos una terminal y nos ubicamos en esa carpeta:
$cd /home/<TuNombredeUsuario>/Descargas
y convertimos el archivo
$p2c archivo.pas
o sino directamente
$p2c /home/<TuNombredeUsuario>/Descargas/archivo.pas
y listo con eso transformas tu codigo, tiene que aparecerte un archivo con el mismo nombre pero con extension " .c"
CONSIDERACIONES:
1. Es conocido que en ubuntu hay un problema con este paquete, por lo menos lo habia ubuntu 10.04. hasta donde tengo entendido ya arreglaron el bug.
2. Si el codigo que tienes es el original creado en turbo pascal no has terminado aun, tenemos que hacer unos ajustes.
3. Si vas a compilar Algunos de estos Codigos debes tener el compilador de pascal instalado y el de C.
4. El codigo de Pascal y C puedes correrlo en geany siempre y cuando el codigo lo hayas guardado con formato UNIX/LINUX. Tambien puedes utilizar el compilador FreePascal en linux. Son libres de escoger. Despues de todo ¿Usamos software Libre, recuerdan?
Si tienes el codigo original o lo escribiste en un editor de texto con Windows debes copiar el codigo, crear un archivo nuevo y guardarlo con formato UNIX/LINUX,
sino te mandara un monton de mensajes de errores que no son agradables. (puedes hacerlo con GEDIT).
Ahora un ejemplo de un codigo de pascal.
Program Comparacion;
uses crt;
var
a,b,c: integer;
Begin
clrscr;
write('Introduzca el primer numero: ');
readln(a);
write('Introduzca el segundo numero: ');
readln(b);
write('Introduzca el tercer numero: ');
readln(c);
if a>b then
begin
if a>c then
writeln('El primer numero es el mayor');
end
else
if b>a then
if b>c then
writeln('El Segundo numero es el mayor');
if c>a then
if c>b then
writeln('El tercero es el mayor');
Readkey;
End.
Yo lo guarde como prueba.pas en mi directorio personal
Una vez guardado ejecutamos el comando:
$p2c prueba.pas
Y con eso se deberia ser suficiente para tener archivo llamado "prueba.c"
/* Output from p2c 1.21alpha-07.Dec.93, the Pascal-to-C translator */
/* From input file "prueba.pas" */
#include <p2c/p2c.h>
main(argc, argv)
int argc;
Char *argv[];
{
long a, b, c;
PASCAL_MAIN(argc, argv);
clrscr();
printf("Introduzca el primer numero: "
;
scanf("%ld%*[^n]", &a);
getchar();
printf("Introduzca el segundo numero: "
;
scanf("%ld%*[^n]", &b);
getchar();
printf("Introduzca el tercer numero: "
;
scanf("%ld%*[^n]", &c);
getchar();
if (a > b) {
if (a > c)
printf("El primer numero es el mayorn"
;
} else {
if (b > a) {
if (b > c)
printf("El Segundo numero es el mayorn"
;
}
}
if (c > a) {
if (c > b)
printf("El tercero es el mayorn"
;
}
getch();
exit(EXIT_SUCCESS);
}
/* End. */
Ahora debemos hacer una pequeña modificacion:
Debemos quitar las lineas que dicen:
" PASCAL_MAIN(argc, argv);"
"clrscr();"
" getch();"
Quedando finalmente:
#include <p2c/p2c.h>
main(argc, argv)
int argc;
Char *argv[];
{
long a, b, c;
printf("Introduzca el primer numero: "
;
scanf("%ld%*[^n]", &a);
getchar();
printf("Introduzca el segundo numero: "
;
scanf("%ld%*[^n]", &b);
getchar();
printf("Introduzca el tercer numero: "
;
scanf("%ld%*[^n]", &c);
getchar();
if (a > b) {
if (a > c)
printf("El primer numero es el mayorn"
;
} else {
if (b > a) {
if (b > c)
printf("El Segundo numero es el mayorn"
;
}
}
if (c > a) {
if (c > b)
printf("El tercero es el mayorn"
;
}
exit(EXIT_SUCCESS);
}
Ahora pueden compilar el codigo Ya escrito en C. Yo uso geany. Si estas en ubuntu necesitas el paquete build-essentials, si usas arch instala base-devel, si usas otra distro busca que necesitas para compilar en C.
Si usas geany o terminas instalandolo le das construir>construir. En la parte de abajo tiene que decirte que la compilacion termino con exito. despues: Construir>Ejecutar.
Eso deberia ser todo.
Saludos Desde Venezuela.
PD: Me disculpan que no agregue ninguna imagen. Tenia 7 imagenes que subi hace dos dias, hoy las puse en el post y ya me las habian en eliminado en tinypic. Eso Rompio mis bolas y no creo que vuelva a subirlas si van a durar tan poco. Pero creo que di suficiente informacion incluso un ejemplo para empezar a trabajar con esta herramienta.
En arch lo instalamos con pacman -S p2c , ubuntu/mint aptitude install p2c y si usan otras distribucion pues tendran que averiguar.
usar el convertidor es muy sencillo:
Abrimos una terminal y hacemos lo siguiente:
$ p2c /rutadelarchivo.pas (no es necesario hacerlo como root)
Por ejemplo si tenemos el archivo guardado en la carpeta "Descargas" abrimos una terminal y nos ubicamos en esa carpeta:
$cd /home/<TuNombredeUsuario>/Descargas
y convertimos el archivo
$p2c archivo.pas
o sino directamente
$p2c /home/<TuNombredeUsuario>/Descargas/archivo.pas
y listo con eso transformas tu codigo, tiene que aparecerte un archivo con el mismo nombre pero con extension " .c"
CONSIDERACIONES:
1. Es conocido que en ubuntu hay un problema con este paquete, por lo menos lo habia ubuntu 10.04. hasta donde tengo entendido ya arreglaron el bug.
2. Si el codigo que tienes es el original creado en turbo pascal no has terminado aun, tenemos que hacer unos ajustes.
3. Si vas a compilar Algunos de estos Codigos debes tener el compilador de pascal instalado y el de C.
4. El codigo de Pascal y C puedes correrlo en geany siempre y cuando el codigo lo hayas guardado con formato UNIX/LINUX. Tambien puedes utilizar el compilador FreePascal en linux. Son libres de escoger. Despues de todo ¿Usamos software Libre, recuerdan?
Si tienes el codigo original o lo escribiste en un editor de texto con Windows debes copiar el codigo, crear un archivo nuevo y guardarlo con formato UNIX/LINUX,
sino te mandara un monton de mensajes de errores que no son agradables. (puedes hacerlo con GEDIT).
Ahora un ejemplo de un codigo de pascal.
Program Comparacion;
uses crt;
var
a,b,c: integer;
Begin
clrscr;
write('Introduzca el primer numero: ');
readln(a);
write('Introduzca el segundo numero: ');
readln(b);
write('Introduzca el tercer numero: ');
readln(c);
if a>b then
begin
if a>c then
writeln('El primer numero es el mayor');
end
else
if b>a then
if b>c then
writeln('El Segundo numero es el mayor');
if c>a then
if c>b then
writeln('El tercero es el mayor');
Readkey;
End.
Yo lo guarde como prueba.pas en mi directorio personal
Una vez guardado ejecutamos el comando:
$p2c prueba.pas
Y con eso se deberia ser suficiente para tener archivo llamado "prueba.c"
/* Output from p2c 1.21alpha-07.Dec.93, the Pascal-to-C translator */
/* From input file "prueba.pas" */
#include <p2c/p2c.h>
main(argc, argv)
int argc;
Char *argv[];
{
long a, b, c;
PASCAL_MAIN(argc, argv);
clrscr();
printf("Introduzca el primer numero: "

;
scanf("%ld%*[^n]", &a);
getchar();
printf("Introduzca el segundo numero: "

;
scanf("%ld%*[^n]", &b);
getchar();
printf("Introduzca el tercer numero: "

;
scanf("%ld%*[^n]", &c);
getchar();
if (a > b) {
if (a > c)
printf("El primer numero es el mayorn"

;
} else {
if (b > a) {
if (b > c)
printf("El Segundo numero es el mayorn"

;
}
}
if (c > a) {
if (c > b)
printf("El tercero es el mayorn"

;
}
getch();
exit(EXIT_SUCCESS);
}
/* End. */
Ahora debemos hacer una pequeña modificacion:
Debemos quitar las lineas que dicen:
" PASCAL_MAIN(argc, argv);"
"clrscr();"
" getch();"
Quedando finalmente:
#include <p2c/p2c.h>
main(argc, argv)
int argc;
Char *argv[];
{
long a, b, c;
printf("Introduzca el primer numero: "

;
scanf("%ld%*[^n]", &a);
getchar();
printf("Introduzca el segundo numero: "

;
scanf("%ld%*[^n]", &b);
getchar();
printf("Introduzca el tercer numero: "

;
scanf("%ld%*[^n]", &c);
getchar();
if (a > b) {
if (a > c)
printf("El primer numero es el mayorn"

;
} else {
if (b > a) {
if (b > c)
printf("El Segundo numero es el mayorn"

;
}
}
if (c > a) {
if (c > b)
printf("El tercero es el mayorn"

;
}
exit(EXIT_SUCCESS);
}
Ahora pueden compilar el codigo Ya escrito en C. Yo uso geany. Si estas en ubuntu necesitas el paquete build-essentials, si usas arch instala base-devel, si usas otra distro busca que necesitas para compilar en C.
Si usas geany o terminas instalandolo le das construir>construir. En la parte de abajo tiene que decirte que la compilacion termino con exito. despues: Construir>Ejecutar.
Eso deberia ser todo.
Saludos Desde Venezuela.
PD: Me disculpan que no agregue ninguna imagen. Tenia 7 imagenes que subi hace dos dias, hoy las puse en el post y ya me las habian en eliminado en tinypic. Eso Rompio mis bolas y no creo que vuelva a subirlas si van a durar tan poco. Pero creo que di suficiente informacion incluso un ejemplo para empezar a trabajar con esta herramienta.