uses crt,unit_bo; {Dise¤ador: Juan Eladio S nchez Rosas - 20020519} const msj_b1=' [1] M‚todo de b£squeda SECUENCIAL'; msj_b2=' [2] M‚todo de b£squeda BINARIA'; msj_o1=' [1] M‚todo de ordenaci¢n SECUENCIAL SIMPLE'; msj_o2=' [2] M‚todo de ordenaci¢n SECUENCIAL CON INTERCAMBIO'; msj_o3=' [3] M‚todo de ordenaci¢n BURBUJA SIN VERIFICACIàN'; msj_o4=' [4] M‚todo de ordenaci¢n BURBUJA CON VERIFICACIàN'; msj_o5=' [5] M‚todo de ordenaci¢n SHAKER SORT'; msj_o6=' [6] M‚todo de ordenaci¢n INSERCIàN LINEAL'; msj_o7=' [7] M‚todo de ordenaci¢n INSERCIàN BINARIA'; msj_o8=' [8] M‚todo de ordenaci¢n SHELL METHOD'; msj_o9=' [9] M‚todo de ordenaci¢n QUICK SORT'; msj_o10=' [10] M‚todo de ordenaci¢n ORDENAMIENTO POR INDICES'; msj_o11=' [11] M‚todo de ordenaci¢n SELECCIàN CUADRµTICA'; var arreglo:vector; archBin:archReg; elemento,op:integer; {INICIO de impresion de menues} procedure imprime_titulo; begin clrscr; textcolor(10); writeln; writeln(' ºÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»'); writeln(' º Algoritmos de º'); writeln(' º B£squeda y Ordenaci¢n º'); writeln(' ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͺ'); writeln; textcolor(11); end; procedure imprime_menu; begin imprime_titulo; writeln(' Menu Principal del Programa: '); writeln(' ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ '); writeln; writeln(' À Operaciones con arreglos unidimensionales ¿'); writeln(' [1] Busqueda'); writeln(' [2] Clasificacion'); writeln; writeln(' À Operaciones con archivos directos ¿'); writeln(' [3] Busqueda'); writeln(' [4] Clasificacion'); writeln; writeln(' [0] Fin del programa '); writeln; textcolor(14); write(' Elija opcion: ') end; procedure imprime_op1(var n:integer); begin imprime_titulo; writeln(' [1] Busqueda en arreglos'); write(' Numero de elementos: '); readln(n); writeln; writeln(' [1] Busqueda secuencial'); writeln(' [2] Busqueda binaria'); writeln; writeln(' [0] Salir al menu'); writeln; textcolor(14); write(' Opci¢n : '); end; procedure imprime_op2(var n:integer); begin imprime_titulo; writeln(' [2] Ordenamiento en arreglos'); write(' Numero de elementos: '); readln(n); writeln; writeln(' [1] Seleccion lineal simple'); writeln(' [2] Seleccion lineal con intercambio'); writeln(' [3] Burbuja sin verificacion'); writeln(' [4] Burbuja con verificacion'); writeln(' [5] Shaker Sort'); writeln(' [6] Insercion lineal'); writeln(' [7] Insercion binaria'); writeln(' [8] Shell Method'); writeln(' [9] Quick Sort'); writeln(' [10] Ordenamiento por indices'); writeln(' [11] Selecci¢n cuadr tica'); writeln; writeln(' [0] Salir al menu'); writeln; textcolor(14); write(' Opci¢n : '); end; procedure imprime_op3(var n:integer); begin imprime_titulo; writeln(' [3] Busqueda en archivos binarios'); write(' Numero de elementos: '); readln(n); writeln; writeln(' [1] Busqueda secuencial'); writeln(' [2] Busqueda binaria'); writeln; writeln(' [0] Salir al menu'); writeln; write(' Opci¢n : '); end; procedure imprime_op4(var n:integer); begin imprime_titulo; writeln(' [4] Ordenamiento en archivos binarios'); write(' Numero de elementos: '); readln(n); writeln; writeln(' [1] Seleccion lineal simple'); writeln(' [2] Seleccion lineal con intercambio'); writeln(' [3] Burbuja sin verificacion'); writeln(' [4] Burbuja con verificacion'); writeln(' [5] Shaker Sort'); writeln(' [6] Insercion lineal'); writeln(' [7] Insercion binaria'); writeln(' [8] Shell Method'); writeln(' [9] Quick Sort'); writeln(' [10] Ordenamiento por indices'); writeln(' [11] Selecci¢n cuadr tica'); writeln; writeln(' [0] Salir al menu'); writeln; write(' Opci¢n: '); end; {FIN de impresion de menues} procedure busq_arreglo; var opc:byte; n,elemento:integer; arreglo:vector; begin imprime_op1(n); readln(opc); writeln; case opc of 1: begin allena_aleatorio(arreglo,n); imprime_titulo; writeln(msj_b1); writeln; muestra_vector(arreglo,n); write(' Elemento buscado: '); readln(elemento); ba_secuencial(arreglo,n,elemento); end; 2: begin allena_ordenado(arreglo,n); imprime_titulo; writeln(msj_b2); writeln; muestra_vector(arreglo,n); write(' Elemento buscado: '); readln(elemento); ba_binaria(arreglo,n,elemento); end; end; readkey; delay(1000); end; procedure clas_arreglo; var opc:byte; n:integer; begin imprime_op2(n); allena_aleatorio(arreglo,n); readln(opc); imprime_titulo; {Impresi¢n de mensajes} case opc of 1 : writeln(msj_o1,#10,#13); 2 : writeln(msj_o2,#10,#13); 3 : writeln(msj_o3,#10,#13); 4 : writeln(msj_o4,#10,#13); 5 : writeln(msj_o5,#10,#13); 6 : writeln(msj_o6,#10,#13); 7 : writeln(msj_o7,#10,#13); 8 : writeln(msj_o8,#10,#13); 9 : writeln(msj_o9,#10,#13); 10: writeln(msj_o10,#10,#13); 11: writeln(msj_o11,#10,#13); end; {Realizaci¢n del proceso de ordenaci¢n} case opc of 1 : oa_slinealsim(arreglo,n); 2 : oa_slinealint(arreglo,n); 3 : oa_burbuja(arreglo,n); 4 : oa_bubble(arreglo,n); 5 : oa_shaker(arreglo,n); 6 : oa_insertlin(arreglo,n); 7 : oa_insertbin(arreglo,n); 8 : oa_shell(arreglo,n); 9 : oa_quicksort(arreglo,n); 10: oa_ordindices(arreglo,n); 11: oa_scuadrat(arreglo,n); end; delay(1000); end; procedure busq_binario; var opc:byte; n:integer; begin imprime_op3(n); assign(archBin,'bin-int.bin'); readln(opc); case opc of 1: begin bllena_aleatorio(archBin,n); imprime_titulo; writeln(msj_b1); writeln; muestra_archivo(archBin); write(' Elemento buscado: '); readln(elemento); bb_secuencial(archBin,n,elemento); end; 2: begin bllena_ordenado(archBin,n); imprime_titulo; writeln(msj_b2); writeln; muestra_archivo(archBin); write(' Elemento buscado: '); readln(elemento); bb_binaria(archBin,n,elemento); end; end; readkey; erase(archBin); delay(1000); end; procedure clas_binario; var opc:byte; n:integer; begin imprime_op4(n); assign(archBin,'bin-int.txt'); bllena_aleatorio(archBin,n); readln(opc); imprime_titulo; {Impresi¢n de mensajes} case opc of 1 : writeln(msj_o1,#10,#13); 2 : writeln(msj_o2,#10,#13); 3 : writeln(msj_o3,#10,#13); 4 : writeln(msj_o4,#10,#13); 5 : writeln(msj_o5,#10,#13); 6 : writeln(msj_o6,#10,#13); 7 : writeln(msj_o7,#10,#13); 8 : writeln(msj_o8,#10,#13); 9 : writeln(msj_o9,#10,#13); 10: writeln(msj_o10,#10,#13); 11: writeln(msj_o11,#10,#13); end; {Realizaci¢n del proceso de ordenaci¢n} case opc of 1 : ob_slinealsim(archBin,n); 2 : ob_slinealint(archBin,n); 3 : ob_burbuja(archBin,n); 4 : ob_bubble(archBin,n); 5 : ob_shaker(archBin,n); 6 : ob_insertlin(archBin,n); 7 : ob_insertbin(archBin,n); 8 : ob_shell(archBin,n); 9 : ob_quicksort(archBin,n); 10: ob_ordindices(archBin,n); 11: ob_scuadrat(archBin,n); end; close(archBin); delay(1000); end; begin repeat imprime_menu; readln(op); case op of 1: busq_arreglo; 2: clas_arreglo; 3: busq_binario; 4: clas_binario end; until op=0; delay(1000); end.