ðH www.oocities.org/ar /moni2201/ordenar1.htm www.oocities.org/ar/moni2201/ordenar1.htm .delayed x x€ÕJ ÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ –ˆ {` OK text/html `3÷ {` ÿÿÿÿ b‰.H Sun, 28 Sep 2003 15:20:58 GMT V Mozilla/4.5 (compatible; HTTrack 3.0x; Windows 98) en, * x€ÕJ {`
Programa escrito en C++,que permite la ordenacion de numeros con subindice de menor a mayor.
Es una sucesión ordenada de acciones
elementales (sumas, restas ... y mas claro) que se han de realizar para
conseguir la solución al problema planteado.
1 – En la etapa de análisis se trata de definir con la
mayor precisión posible el problema que se ha de resolver, generándose un
enunciado o especificación del problema.
Por
ejemplo dada una serie de numeros que se entran al computador,ordenarlos de
menor a mayor y presentarlos en pantalla,
a(0)=10 ,a(1)=2 ,a(2)=50 ,a(3)=1 (1)
el programa debera ordenarlos de menor
a mayor,
a(0)=1 ,a(1)=2 ,a(2)=10 ,a(3)=50
2 - A partir de
este documento, se debe diseñar un algoritmo
que resuelva el problema, y que representaremos en lenguaje algorítmico, dando
lugar a un programa.
El siguiente es el diagrama del
algoritmo para realizar dicha operacion,
C : define la cantidad de numeros a ordenar,por ejemplo en la ordenacion
(1) ,la cantidad es C=4
k : se utiliza para verificar que al llegar al valor (C-1) que se busco en toda la ordenacion y se
encontro que sus valores estan ordenados.
En azul se representa las lineas de codigo correspondientes al do,en
rojo al for y en violeta al if.
Inicialmente se entra en el lazo del do y se asigna a
k el valor de cero,luego se genera un for de n=1 a un valor menor que C,en el
caso de la ordenacion (1) es C=4 y n sera 1,2 ,3 ,con estos valores de n se
compara (2)
N[0] > N[1] ,para n=1
N[1] > N[2] ,para n=2
N[2] > N[3] , para n=3
Es decir si C=4 es necesario un for
hasta n<C ,dentro del for hay
un if ,que compara los valores ,como se indica en (2),en el caso de ser mayor
se produce la inversion,con el bloque de inversion,sino es mayor no se produce
la inversion entre los valores comparados y se aumenta k en 1,luego como hay
tres comparaciones,si k< (C-1) ,vuelve a realizar el ciclo,solo cuando k=3
los numeros estam ordenados.
en siguiente
es el codigo fuente escrito en C++,notar que las lineas donde se presenta
algunas variables como n,k ,N[0],N[1],N[2] y N[3] no son necesarias y se pueden
eliminar.
do {
k = 0;
for (n=1 ;n<(C) ;n++)
}
cout << "para n="
<< n << " ,siendo k=" << k << "\n";
{
if ( N[n-1] > N[n])
{
NX[n-1]= N[n] ;
NX[n] = N[n-1];
N[n-1] = NX[n-1];
N[n]= NX[n];
cout <<
"N[0]=" << N[0]<< " " << "N[1]=" << N[1]<<
" " <<
"N[2]="<<N[2]<< " "
<<"N[3]=" <<N[3] << “ “ ;
cout << “\n”;
}
else
k=k+1 ;
}
}
}while ( k <
(C-1)) ;
El programa completo se puede leer en este
enlace .
Eduardo Ghershman ,28.9.03 enlace a PROGRAMANDO