|
EQUIVALENCIAS BÁSICAS ENTRE PASCAL Y C
A continuación se presentan algunas equivalencias básicas entre estos 2 lenguajes de programación :
Operador |
Descripción |
|---|---|
% |
Módulo |
= |
Asignación |
= = |
Comp. de igualdad |
!= |
Com. de desigualdad |
<= |
Comp. menor o igual |
>= |
Comp. mayor o igual |
&& |
AND lógico |
|| |
OR lógica |
! |
Negación lógica |
| ++ | Post-incremento
a++ Pre-incremento ++a |
| -- | Post-decremento
a-- Pre-decremento --a |
Operador |
Descripción |
|---|---|
MOD |
Módulo |
:= |
Asignación |
= |
Comp. de igualdad |
<> |
Com. de desigualdad |
<= |
Comp. menor o igual |
>= |
Comp. mayor o igual |
AND |
AND lógico |
OR |
OR lógica |
NOT |
Negación lógica |
| + | Post-incremento a:=a+1 |
| - | Post-decremento a:=a-1 |
Tipos de datos en Turbo Pascal:
| DATOS DE TIPO ENTERO | |
Tipo |
Rango |
| Byte | 0..255 |
| Shortint | -128..127 |
| Integer | -32768..32767 |
| Word | 0..65535 |
| Longint | -2147483648..2147483647 |
| DATOS DE TIPO REAL | |
Tipo |
Rango |
| Real | 2.9*10E-39..1.7*10E38 |
| Single | 1.5*10E-45..3.4*10E38 |
| Double | 5.0*10E-324..1.7*10E308 |
| Extended | 1.9*10E-4951..1.1*10E4932 |
| Comp | -2E+63+1..2E+63-1 |
| DATOS DE TIPO CARACTER Y CADENAS | |
Tipo |
Rango |
| String | Hasta 255 caracteres |
| Char | Un único caracter |
| DATOS DE TIPO LOGICO | |
Tipo |
Rango |
| Boolean | Almacena verdadero o falso |
Tipos de datos en Turbo C
| DATOS DE TIPO ENTERO | |
Tipo |
Rango |
| Short int | -128..127 |
| Int | -32768..32767 |
| Unsigned int | 0..65535 |
| Long gint | -2147483648..2147483647 |
| DATOS DE TIPO REAL | |
Tipo |
Rango |
| Float | 3.4*10E-38..3.4*10E38 |
| Double | 1.7*10E-308..1.7*10E308 |
| DATOS DE TIPO CARACTER Y CADENAS | |
Tipo |
Rango |
| Char | Hasta 255 caracteres |
| DATOS DE TIPO LOGICO | |
Tipo |
Rango |
| No dispone de este tipo de dato |
Comentarios en Turbo Pascal
{ Esta es una forma de colocar comentarios}
(* Esta es otra forma de colocar comentarios*)
Comentarios en Turbo C
//Este es una forma de colocar comentarios
/*Esta es otra forma de colocar comentarios*/
Inicio y fin de bloque en Turbo Pascal
Begin {Este es el inicio}
{Bloque de código}
End; {Este es el fin}
Inicio y fin de bloque en Turbo C
{ //Este es el inicio
/*Bloque de código*/
}//Este es el fin
Vectores y matrices en Turbo Pascal
Todos los vectores y matrices en Turbo Pascal comienzan en índice "1";por ejemplo:
Vector : array [1..10] of integer;
Matriz : array [1..10,1..10] of integer;
Vectores y matrices en Turbo C
Todos los vectores y matrices en Turbo Pascal comienzan en índice "0";por ejemplo:
Int Vector[10];
Int Matriz[10][10];
Estructuras en Turbo Pascal
En la sección de declaración de tipos
Type
Tipo_fecha = record
Dia : integer;
Mes: integer;
Anyo:integer;
End;
Después en la sección de declaración de variables :
Var
Fecha : tipo_fecha;
Para acceder a un componente de la estructura
Fecha.mes:=5;
Fecha.anyo:=1999;
Estructuras en Turbo C
typedef struct {
int dia;
int mes;
int anyo;
} tipo_fecha;
A partir de este momento se pueden declarar variables:
tipo_fecha hoy, ayer, manana;
La forma de acceder a los campos de una estructura es igual para las dos formas de declarar variables compuestas, e igual que en PASCAL:
hoy.dia=5;
hoy.anyo=1999;
Condiciones
En "C" no existe el tipo de datos BOOLEAN. En "C" se dice que una expresión es cierta si el resultado de evaluarla es cualquier cosa distinta de cero, y falsa si es cero. Hay que tener mucho cuidado con esto, por dos motivos:
No podemos preguntar si algo es cierto comparandolo con "1". Pues 2 y 3 ... también es CIERTO.
Estructuras de control
Bucle for en Turbo Pascal
En Turbo Pascal se incrementa o decrementa de 1 en 1.
Forma incremental
For variable_inicio:= valor inicio to tope do
Begin
{Bloque de instrucciones}
End;
Ejemplo:
For i:=1 to 20 do
Begin
Gotoxy(1,i);
Write(i);
End;
Forma decremental
For variable_inicio:= valor inicio downto tope do
Begin
{Bloque de instrucciones}
End;
For i:=20 downto 1 do
Begin
Gotoxy(1,i);
Write(i);
End;
Bucle for en Turbo C
En Turbo C se incrementa o decrementa en cualquier valor.
for ( inicializacion ; codicion ; incremento )
instrucciones
Por ejemplo:
For(i=1;i<=20; i++)
{ Gotoxy(1,i);//En este ejemplo se incrementa de 1 en 1
printf("%d",i);
}
For(i=1;i<=20; i+=3)
{ Gotoxy(1,i);//En este ejemplo se incrementa de 3 en 3
printf("%d",i);
}
El siguiente ejemplo es similar al Downto de Turbo Pascal
For(i=20;i>=1; i--)
{ Gotoxy(1,i);//En este ejemplo se decrementa de 1 en 1
printf("%d",i);
}
Bucle While - do en Turbo Pascal
Este evalúa primero la condición y después ejecuta el bloque de instrucciones
inicialización
While ( condición) do
Begin
{Bloque de instrucciones}
End;
Ejemplo:
i:=0;
While (i<=100) do
Begin
I:=i+1; {Aquí se incrementa de 1 en 1}
Writeln(i);
End;
i:=0;
While (i<=100) do
Begin
I:=i+3; {Aquí se incrementa de 3 en 3}
Writeln(i);
End;
Bucle While - do en Turbo C
Esta estructura funciona de manera similar a Turbo Pascal:
Inicialización;
while (condicion)
{
instrucciones;
}
Ejemplo:
i=0;
While (i<=100)
{
i++;//Aquí se incrementa de 1 en 1
printf("%d",i);
}
i=0;
While (i<=100)
{
i+=3;//Aquí se incrementa de 3 en 3
printf("%d",i);
}
Bucle Repeat Until en Turbo Pascal
Este tipo de bucle, ejecuta el bloque de código y después evalúa, no lleva ni begin ni end:
Inicialización
Repeat
{bloque de instrucciones}
until condicion;
Ejemplo:
Modo incremental
I:=0;
Repeat
I:=i+1; {Se incrementa de 1 en 1}
Writeln(i);{Imprime el resultado de la operación}
Until i>=100;
Modo decremental
I:=100;
Repeat
I:=i-1;{Se decrementa de 1 en 1}
Writeln(i);{Se imprime el resultado de la operación}
Until i>=0;
Bucle do - while de Turbo C
Este es el equivalente del Repeat Until de Turbo Pascal, aunque a diferencia de este la terminación del bucle se produce cuando la condición es falsa (en el repeat - until se termina cuando se cumple la condición)
do
{
//Bloque de instrucciones
while (condición)
Ejemplo :
Modo incremental
i=0;
do
{ i++;//Aquí se incrementa de 1 en 1
printf("%d",i);
} while(i>=100);
Modo decremental
i=100;
do
{ i--;//Aquí se decrementa de 1 en 1
printf("%d",i);
}while(i<=100);
Sentencia Condicionales
Sentencia IF THEN ELSE de Turbo Pascal
If (Condición) then
Begin
{En caso de que sea verdadero}
{Bloque de instrucciones}
end {No lleva punto y coma}
Else
Begin
{En caso de que sea falso}
{Bloque de instrucciones}
end;
Ejemplo:
A:=10;
B:=20;
if (A>B) then
begin
writeln(A es mayor que B);
readln;
end
else
begin
writeln(B es mayor que A);
readln;
end;
Sentencia if else de Turbo C
If (Evaluación)
{ //En caso de que sea verdadero
//Bloque de instrucciones
}
else
{//En caso de que sea falso
//Bloque de instrucciones
}
Ejemplo:
A=10;
B=20;
If(A>B)
{printf("A es mayor que B");
getch();
}
else
{printf("B es mayor que A");
getch();
}
Sentencias de evaluación múltiple
Sentencia CASE de Turbo Pascal
Case (expresión a evaluar) of
Evaluación1: begin
{Bloque de instrucciones}
End;
Evaluación2: begin
{Bloque de instrucciones}
End;
Evaluación3: begin
{Bloque de instrucciones}
End;
.
.
.
EvaluaciónN: begin
{Bloque de instrucciones}
End;
End; {Final del case}
Ejemplo:
A:=3;
Case (A) of
4:begin
writeln(Cuatro);
readln;
end;
3: begin
writeln(Tres);
readln;
end;
2: begin
writeln(Dos);
readln;
end;
1: begin
writeln(Uno);
readln;
end;
end; {Final del case}
Sentencia Switch de Turbo Pascal
Su sintaxis es:
switch (variable)
{
case const1: sentencias1;
case const2: sentencias2;
case const3,const4: sentencias3;
}
El funcionamiento es el siguiente: se compara el valor de variable con cada una de las constantes que aparecen después de la palabra reservada case. Cuando se encuentra una igual, se ejecutan las sentencias que siguen a los dos puntos (:) y todas las demás sentencias hasta llegar al final de la sentencia switch. Por ejemplo:
x=3;
switch (x) {
case 4: print("cuatro");
case 3: print("tres");
case 2: print("dos");
case 1: print("uno");
}
El resultado de la ejecución es: "tres dos uno". Si queremos que sólo se ejecute la entrada asociada al número correspondiente, tendremos que utilizar la sentencia break:
x=3;
switch (x) {
case 4: print("cuatro"); break;
case 3: print("tres"); break;
case 2: print("dos"); break;
case 1: print("uno");
}
Aquí se incluye una práctica herramienta que traduce programas hechos en Turbo Pascal a Turbo C, al final al código hay que hacerle algunos ajustes, pero no cabe duda de la potencia de esta.
La forma de manejo es muy sencilla, solo debes digitar el nombre de la herramienta y el archivo de Turbo Pascal que quieras traducir a Turbo C; por ejemplo si deseas traducir el archivo trigonom.pas a Turbo C, se digitará lo siguiente : pas2c trigonom.pas
Como resultado de la operación se produce el archivo trigonom.c.