I have never learned like that. I can not just learn the syntaxes I am physically unable to do that. I learn the syntaxes by writing programs.
Now I got the most interesting error ever. So the main program looks like this:
Code:
BEGIN
Assign(ships,'C:\ships.dat');
    GenerateShips;
    ReadShips;
    DrawBoard;
    New(AI);
    ReadShot;
        Readln;
    {parts not written yet}
    SDL_FREESURFACE(screen);
    SDL_FREESURFACE(boardpict);
    SDL_FREESURFACE(hitpict);
    SDL_FREESURFACE(misspict);
    SDL_QUIT;
    Readln;
END.
Now the error is a simple runtime error #201 it should be a range check error. But if I place a Breakpoint ANYWHERE in the program and by this I mean the subprocedures, a function, or the main program, even just before the last END, the program does not return this error. I'm wondering why is it doing that since in the main program there isn't any loop that should overload a variable or anything like that and the procedures should be okay as the program runs just until the last Readln; line if I put the breakpoint there. However if I do that, the program seems to skip some procedures(especially the ReadShot procedure) and just freezes. It might be a wrong code(with the ReadShot procedure) but since I couldn't solve inputing strings with SDL I had to read the coordinates with mouse and it creates a whole bunch of complications. Besides. I've been having an error with SDL ever since I got it: The SDL screen simply freezes irreversibly if I change to another window. This is a big problem as I can not use F7 to find the exact source of errors and I have to restart the whole IDE after every breakpoint check and inputing things becomes very complicated too.