Sunteți pe pagina 1din 2

Algoritmos y Estructuras de Datos

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

E program clasifica3tres(input, output) ;


c1 , c2 , c3 var c1 , c2 , c3 : char ;
begin if c1>c2 then begin aux := c1 ;
c1 > c2 c1 := c2 ;
V F c2 := aux
aux c1 end ;
if c1>c3 then begin aux := c1 ;
c1 c2 c1 := c3 ;
c3 := aux
c2 aux end
if c2<c3 then write(c1,c2,c3)
else write(c1,c3,c2)
c1 > c3 end.
V F
aux c1

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

S-ar putea să vă placă și