Если перед вводом символов используется оператор READ, то первые два символа "забиваются" кодами 13 и 10.
При использовании оператора READLN ввод символов происходит нормально:
writeln('vvedi veschesstvennye chisla X,Y'):
read(X,Y);
writeln(' ':25,'veschesstvennye chisla');
writeln(' ':5,'standartny fopmat',' ':25,'zadannaya shirina polya');
writeln(' ':2,X,' ',Y,' ':10,'X=',X:8:2, 'Y=',Y:6:3);
writeln('vvedi simvoly S1,S2,S3');
read(S1,S2,S3);
writeln(' ':20,'simvolnaya peremennaya','S1=',S1, 'S2=',S2, 'S3=',S3);
write('pechat simvolnyh peremennyh s shirinoj polya 5:',S1:5,S2:5,S3:5);
В этом случае s1=#13, s2=#10, s3 принимает значение, которое должно было принять s1.
Если заменить оператор read(X,Y) на readln(X,Y), то переменные s1,s2,s3 принимают верные значения.
Кто знает, в чем дело?