Si, è un pò bruttino.
Comunque per gli inizi è un ottimo modo per imparare gli if e i select case.
Comunque ti scrivo lo stesso programma in meno righe, utilizzando due array, uno per i mesi, l'altro per i giorni:
codice:
Program prova;
Uses
  crt;
Const
  mesi : array [1 .. 12] of String [9] = ('Gennaio', 'Febbraio', 'Marzo', 'Aprile', 'Maggio', 'Giugno', 'Luglio', 'Agosto', 'Settembre', 'Ottobre', 'Novembre', 'Dicembre');
  gg : array [1 .. 12] of Integer = (31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
Var
  x : Integer;
Begin
  clrscr;
  write ('Inserisci il mese: ');
  readln (x);
  writeln ('Il mese è ', mesi [x] ,' ed ha ', gg [x] ,' giorni. ');
readln;
End.
Saluti :quipy: