Generating a Sampled Square Wave in Matlab
The word "points" means "samples." Product fs*T is fs samples/second times T seconds. That's a signal duration of 40*5 = 200 samples (or points). This means your Matlab code for vector t should have been:

t = [0:1/fs:T-1/fs];

You wrote tau = 1/100, so (1–tau) = 0.99. Ratio fsT(1-tau)/2 = 40*5*0.99/2 = 99 samples (points). You cannot have a square wave sequence of length 200 samples (points) if the first and last 99 samples (points) are zero-valued. Your fs, T, and tau variables are incompatible with each other!

Note: Your x = square(2*pi*t); Matlab command is equivalent to:

x = square(2*pi*1*t); % Note the "1"

which produces square wave that repeats every one second. If you want just one cycle of a square wave over 200 samples use the commend:

x = square(2*pi*t/5);