Pascal/Turbo Pascal - reducir case

 
Vista:

reducir case

Publicado por reducir case (9 intervenciones) el 15/09/2008 10:01:24
Un CASE como este se podria reducir de extensión de alguna manera


CASE color[i] OF

1: BEGIN
IF (seleccion[1]=colores[1]) OR (seleccion[2]=colores[1])
OR (seleccion[3]=colores[1]) OR (seleccion[4]=colores[1])
OR (seleccion[5]=colores[1]) THEN
BEGIN
WRITELN('Ese color ya esta seleccionado');
i:=i-1;
READLN;
END ELSE
seleccion[i] := colores[1]
END;
2: BEGIN
IF (seleccion[1]=colores[2]) OR (seleccion[2]=colores[2])
OR (seleccion[3]=colores[2]) OR (seleccion[4]=colores[2])
OR (seleccion[5]=colores[2]) THEN
BEGIN
WRITELN('Ese color ya esta seleccionado');
i:=i-1;
READLN;
END ELSE
seleccion[i] := colores[2]
END;

3: BEGIN
IF (seleccion[1]=colores[3]) OR (seleccion[2]=colores[3])
OR (seleccion[3]=colores[3]) OR (seleccion[4]=colores[3])
OR (seleccion[5]=colores[3]) THEN
BEGIN
WRITELN('Ese color ya esta seleccionado');
i:=i-1;
READLN;
END ELSE
seleccion[i] := colores[3]
END;
4: BEGIN
IF (seleccion[1]=colores[4]) OR (seleccion[2]=colores[4])
OR (seleccion[3]=colores[4]) OR (seleccion[4]=colores[4])
OR (seleccion[5]=colores[4]) THEN
BEGIN
WRITELN('Ese color ya esta seleccionado');
i:=i-1;
READLN;
END ELSE
seleccion[i] := colores[4]
END;

5: BEGIN
IF (seleccion[1]=colores[5]) OR (seleccion[2]=colores[5])
OR (seleccion[3]=colores[5]) OR (seleccion[4]=colores[5])
OR (seleccion[5]=colores[5]) THEN
BEGIN
WRITELN('Ese color ya esta seleccionado');
i:=i-1;
READLN
END ELSE
seleccion[i] := colores[5]
END;
6: BEGIN
IF (seleccion[1]=colores[6]) OR (seleccion[2]=colores[6])
OR (seleccion[3]=colores[6]) OR (seleccion[4]=colores[6])
OR (seleccion[5]=colores[6]) THEN
BEGIN
WRITELN('Ese color ya esta seleccionado');
i:=i-1;
READLN;
END ELSE
seleccion[i] := colores[6]
END;

END;
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder