Hola Diego:
Estoy de vuelta. Mira este código. Es parecido a lo que me indicaste. No lo hice con registros y, coloque una matriz regular para probar sin mayores complicaciones. Como verás consigo las combinaciones de los dos primeros dígitos. De allí no he podido pasar.
Puedes ayudarme?
Saludos JoséG
Program PanelTelefono;
uses crt;
const
Panel:Array [1..4,2..9] of CHAR= (('A','D','G','J','M','P','T','W'),
('B','E','H','K','N','Q','U','X'),
('C','F','I','L','O','R','V','Y'),
(' ',' ',' ',' ',' ','S',' ','Z'));
VAR
tel:string;
f,ind,cant,i,j,a,error:integer;
v:array[1..8] of integer;
Procedure Telefono;
Var
Cadena:string;
i:integer;
Begin
Cadena:='';
If f=4 then
Begin
End
Else
Begin
For i:=1 to length(tel) do
Cadena:=Cadena+panel[f,v[i]];
Begin
For j:=1 to 4 do
begin
Cadena[length(tel)]:=panel[j,v[length(tel)]];
Write(cadena);
Writeln;
end;
End;
inc(f);
Telefono;
end;
End;
Begin
clrscr;
ind%3