Recorrida circular
Publicado por Mathi (6 intervenciones) el 11/11/2015 01:54:21
Que tal, necesito realizar una recorrida circular de char, de largo N,
AAAA, AAAB, AAAC... AAAZ -> AABA y asi, es en ordenación lexicográfica.
mi problema es el siguiente
AAZZ -> deberia dar ABBA, cuestion que me terminando dando ABA[
tipocodigo = array[1..N];
AAAA, AAAB, AAAC... AAAZ -> AABA y asi, es en ordenación lexicográfica.
mi problema es el siguiente
AAZZ -> deberia dar ABBA, cuestion que me terminando dando ABA[
tipocodigo = array[1..N];
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
procedure SiguienteCodigo(codigo: TipoCodigo; var siguiente: TipoCodigo);
type
Conjunto = set of char;
var
i: integer;
Conj: Conjunto;
begin
i:=1;
siguiente:=codigo;
Conj:=[PRIMERA_LETRA..ULTIMA_LETRA];
while (i <> LargoCodigo) and (codigo[i] in Conj) do
begin
if (codigo[i] <> ULTIMA_LETRA) and (codigo[i] in Conj) then
siguiente[LargoCodigo]:=Succ(codigo[LargoCodigo]);
if codigo[i]=ULTIMA_LETRA then
begin
siguiente[i-1]:=succ(codigo[i-1]);
siguiente[i]:=PRIMERA_LETRA;
end;
inc(i)
end;
Valora esta pregunta


0