ANSI C                  Turbo Pascal            FreeBASIC               XPL0
----------------------  ----------------------  ----------------------  ----------------------
+  -  *         All four languages use these fundamental arithmetic operators.
/                       div (integer) / (real)  /                       /
%                       mod                     Mod                     Rem(Y/3);  rem(0);
<<  >> (signed)         shl  shr                Shl  Shr (signed)       <<  >>  ->> (signed)

>  >=  <  <=    All use these comparison symbols.
==                      =                       =                       =
!=                      <>                      <>                      #

~  !                    not                     Not                     ~  not
&  &&                   and                     And                     &  and
|  ||                   or                      Or                      !  or
^  -                    xor                     Xor                     |  xor

(...)           All use parentheses in expressions and for passing arguments to subroutines.


#include <stdio.h>      program Fac; uses Crt;                          include c:\cxpl\codes;
int main() {            var N0, N, F: integer;  dim as integer N0, N, F int     N0, N, F;
int n0, n, f;           begin                                           begin
scanf("%d", &n0);       Read(N0);               input N0                N0:= IntIn(0);
f = 2;  n = n0;         F:= 2;  N:= N0;         F = 2 : N = N0          F:= 2;  N:= N0;
do /* show factors */   repeat {show factors}   do 'show factors        repeat \show factors
  if (n%f == 0)           if N mod F = 0 then     if N mod F = 0 then     if Rem(N/F) = 0 then
    {                       begin                   if N <> N0 then         begin
    if (n != n0)            if N <> N0 then           print "*";            if N # N0 then
      putchar('*');           Write('*');           end if                    ChOut(0, ^*);
    printf("%d", f);        Write(F);               print F;                IntOut(0, F);
    n = n/f;                N:= N div F;            N = N/F                 N:= N/F;
    }                       end                   else                      end
  else f++;               else Inc(F);              F = F+1               else F:= F+1;
while (f <= n);         until F > N;              end if                until F > N;
if (f == n0)            if F = N0 then          loop until F > N        if F = N0 then
  printf(" is prime");    Write(' is prime');   if F = N0 then            Text(0, " is prime");
printf("\n");           Writeln;                  print " is prime";    CrLf(0);
return 0; }             end.                    end if : print          end;


_NAME2 != _name2        _NAME2 = _name2         _NAME2 = _name2         _NAME2 = _Name2
double x,y,z;           var x,y,z: Double;      Dim As Double x,y,z     real X,Y,Z;
char str[10];           var Str: array [0..9]   Dim str (0 To 9)        char Str(10), Tbl;
                         of char;                As UByte               Tbl:= Reserve(20);
#define K 20            const k=20; Pi=3.14;    #define K 20            def K=20, Pi=3.14;
const double PI=3.14;                           Const As Double pi=3.14

void wait(void)         procedure wait;         Sub wait                proc Wait;
                                                End Sub
double d2r(double d)    function D2R(D:double): Function D2R(d As       func real D2R(D);
{                        double;  begin          Double) As Double      real D;
return d*PI/180;        D2R := D*Pi/180;        Return d*pi/180         return D*Pi/180.;
}                       end;                    End Function

wait();                 wait;                   wait                    Wait;

x=d2r(30);              x := D2R(30);           x = D2R(30)             X:= D2R(30.0);

0xA3e5                  $A3e5                   &hA3e5  &B01101         $A3e5  %01101
1  0                    True  False  (= 1, 0)   1  0                    true  false  (= -1, 0)
&i                      addr(i)  @i             @i                      addr I @I


z = (x==20) ? 25 : 30;  if x=20 then z:= 25     If x=20 Then z=25       Z:= if X=20 then 25
                                else z:= 30;            Else z=30                   else 30;
                                                End If
switch (i) {            case I of               Select Case i           case I of
 case 1: x=1; break;     1: X:=1;                Case 1 x=1              1: X:=1;
 case 2: x=2; break;     2: X:=2;                Case j x=2              J: X:=2
 default: x=0;          else X:=0;               Case Else x=0          other X:=0;
}                       end;                    End Select

while (I<10)            while I<10 do           While i<10              while I<10 do
 I++;                    Inc(I);                 i=i+1                   I:=I+1;
                                                Wend
for (i=0; i<=10; i++)   for i := 0 to 10 do     For i=0 To 10           for I:= 0 to 10 do
 x+=i;                   x := x+i;               x=x+I                   X:=X+I;
                                                Next i
for (i=10; i>=0; i--)   for i:= 10 downto 0 do  For i=10 Downto 0       for I:= 10 downto 0 do
 x+=i;                   x:= x+i;                x=x+i                   X:= X+I;

for(;;)                 while true do           Do                      loop
 if x==10 then break;    if x=10 then break      If x=10 Then Exit Do   if X=10 then quit;
continue;               continue                Continue                --

exit(0);                halt                    Stop n                  exit N;

                        label L210;
goto L210;              goto L210;              Goto L210               --
L210:                   L210:                   L210:

printf("%11.5lf",x);    write(x:11:5);          Print Using "##.##"; x  Format(5,5); RlOut(0,X);
printf("%X",i);         --                      Print Hex(i,8);         HexOut(0,I);
printf("I'm %d\n",i);   writeln('I''m ',i);     Print "I'm "; i         Text(0,"I'm ");
                                                                        IntOut(0,I); CrLf(0);
c=getchar();            c := ReadKey;           Input c                 C:= ChIn(0);
scanf("%lf",&x);        read(x);                Input x                 X:= RlIn(0);

abs(i); fabs(x);            Abs(x);             Abs(x)                  Abs(I); RlAbs(X); abs(X)
i=rand()%10;                i:=Random(10);      i=Rnd*10                I:=Ran(10);
printf("\x1b[%d;%dH",y,x);  GotoXY(1,1);        Locate 1,1              Cursor(0,0);

sqrt sin acos atan2     Sqrt Sin -- ArcTan      Sqr Sin Acos Atan2      Sqrt Sin ACos ATan2
                                                                        SoftInt
i = y;                  i := round(y);          i = CInt(y)             I:= Fix(Y);
y = i;                  y := i;                                         Y:= Float(I);

x[5] = y[6];            x[5] := y[6];           x(5) = y(6)             X(5):= Y(6);
x[i][j]                 x[i,j]                  x(i,j)                  X(I,J)

int rpm[]={33,45,78};   const RPM: array[0..2]  Dim RPM(0 To 2) As      int RPM;
                        of integer=(33,45,78);  Integer => {33,45,78}   RPM:= [33,45,78];

struct coord            type Coord = record     type Coord              real Vel_X,Vel_Y,Vel_Z;
{ double x, y, z;       X, Y, Z: double;         x as double            real Pos_X,Pos_Y,Pos_Z;
};                      end;                     z as double 
struct coord vel, pos;  var Vel, Pos: Coord;    end type

vel.x = 44.5;           Vel.X:= 44.5;           dim Vel as Coord        Vel_X:= 44.5;
pos.z = 10.8;           Pos.Z:= 10.8;           Vel.x = 44.5            Pos_Z:= 10.8;


Data Types     Bytes
--               1      Boolean                 --                      --
char             1      Shortint                Byte                    --
int, short       2      Integer                 Short                   int (16-bit version)
long             4      Longint, LongBool       Integer, Long           int (32-bit version)
unsigned char    1      Char, Byte              UByte                   char (array)
unsigned int     2      Word, WordBool          UShort                  --
unsigned long    4      Pointer                 UInteger, ULong         --
--               8      --                      LongInt                 --
--               6      Real                    --                      --
--               8      --                      ULongInt                --
float            4      Single                  Single                  short (segments)
double           8      Double                  Double                  real
--              10      Extended                --                      --
--               8      Comp                    --                      --

Last update: 3-Jun-2012
