Beruflich Dokumente
Kultur Dokumente
Mtodo 2 : Otra forma sera poner tres IF, uno a continuacin de otro buscando cual es el menor
de los tres caracteres (sin poner nada en la bifurcacin por FALSO), de esta manera uno de los
tres tomar la situacin y a los otros se los pasar de largo. Despus, ya dentro del IF
correspondiente se buscar cual de los restantes dos caracteres es el menor, y se imprimir en
consecuencia. Tal vez esta otra solucin sea mas fcil de comprender. Vemosla
E
c1 , c2 , c3
(B1)
c1 < c2 y c1 < c3
V F
(B2)
c2 < c3
V F
S S
c1 , c2 , c3 c1 , c3 , c2
(B3)
c2 < c1 y c2 < c3
V F
(B4)
c1 < c3
V F
S S
c2 , c1 , c3 c2 , c3 , c1
(B5)
c3 < c1 y c3 < c2
V F
(B6)
c1 < c2
V F
S S
c3 , c1 , c2 c3 , c2 , c1
program clasifica3bis(input,output);
var c1,c2,c3:char;
begin read(c1,c2,c3);
if c1<c2 and c1<c3 then if c2<c3 then write(c1,c2,c3)
else write(c1,c3,c2);
if c2<c1 and c2<c3 then if c1<c3 then write(c2,c1,c3)
else write(c2,c3,c1);
if c3<c1 and c3<c2 then if c1<c2 then write(c3,c1,c2)
else write(c3,c2,c1)
end.
13
Algoritmos y Estructuras de Datos
c1 c3
c3 aux
c2 < c3
V F
E E
c1,c2,c3 c1,c3,c2
Por si desean probarlos en la computadora hemos juntado los tres mtodos en un solo programa
y ejecutamos cada uno para las seis posibilidades de orden en que hubiesen podido entrar, y en
vez de leer las ternas seis veces, las hemos asignado utilizando un case (se ver en el punto
siguiente), formando las seis permutaciones posibles. Hemos supuesto que las tres letras a
comparar son P Q R.
Las seis posibilidades son PQR , PRQ , QPR , QRP , RPQ y RQP
program TresOrd3(output);
var c1, c2, c3, rta, aux: char; h, m, s, hund: word; indi: integer;
begin
for indi:=1 to 6 do
begin
case indi of
1: begin c1 := 'P' ; c2 := 'Q' ; c3 := 'R' end ;
2: begin c1 := 'P' ; c2 := 'R' ; c3 := 'Q' end ;
3: begin c1 := 'Q' ; c2 := 'P' ; c3 := 'R' end ;
4: begin c1 := 'Q' ; c2 := 'R' ; c3 := 'P' end ;
5: begin c1 := 'R' ; c2 := 'P' ; c3 := 'Q' end ;
6: begin c1 := 'R' ; c2 := 'Q' ; c3 := 'P' end
end;
write('Metodo 1 - ',c1,c2,c3,' ');
if ((c1<c2) and (c1<c3)) then
if c2<c3 then writeln(c1,c2,c3)
15