Some advice: Do not waste time checking the same value more than once... and do not bother storing values in a program that you are just going to discard. Your three boolean test condition variables likely are not being used, and it is generally as fast to test a condition as it is to test a boolean...

What I mean to say, is I'd get rid of the three 'pos, neg and zero' variables, AND I'd not run all three if's every time.

The reason for this is you are executing code you don't have to, and checking values you may already know the status of -- which means you have more code running than neccessary! You're running three conditional evaluations, three variables and three if statements to do the job of two conditionals INSIDE two if's.

Code:
if (numCheck>0) then begin
	writeln('This is a positive number');
end else if (numcheck<0) then begin
	writeln('This is a negative number');
end else writeln('This number is zero');
Is all you really need to be doing there. If the first check is true, it writes and ignores the rest of the code. If it's fals, we check the opposite direction, if so write the result, if not -- we know it's not >0, we know it's not <0, so it HAS to be zero, so there's no reason to put an IF there on that.

Basically, if it's >0 there is NO reason to check for <0 or 0. If it's <0 and we've eliminated >0, there's no reason to check for 0... if neither state is true, it has to be zero.