prova a mettere un semplice write prima della lettura del nome
Grazie ma non funziona lo stesso

Riposto il codice nella speranza che qualcuno riesca a darmi una mano

codice:
Program altezze;
uses crt;
var n,i:integer;
    bassi:real;
    nome:array [1..300] of string;
    altezza:array[1..300] of real;
 procedure nstud;
 begin
 Writeln('Di quanti studenti vuoi inserire l''altezza?');
 read(n);
 end;
 procedure dati;
 begin
 for i:= 1 to n do
 begin
 Writeln('Come si chima il ',i,' studente?');
 Readln(nome[i]);
 Writeln('Quanto e'' alto ',nome[i],'?');
 read(altezza[i]);
 end;
 end;
 Procedure piubassi;
 begin
 writeln('Di che altezza vuoi sapere i più bassi?');
 read(bassi);
 writeln('I più bassi di ',bassi,' sono:');
 for i:= 1 to n do
 if altezza[i] < bassi then writeln(nome[i],': ',altezza[i]);
 repeat until keypressed
 end;
 begin
 nstud;
 dati;
 piubassi;
 end.