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;
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


0