LordKusa

ordenamiento seleccion

Aug 22nd, 2019
102
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. program ordenamiento;
  2.  
  3. uses
  4.     crt, dos;
  5.    
  6. type
  7.     vector = array [1..50000] of integer;
  8.    
  9. var
  10.     X:vector;
  11.     programa:boolean;
  12.     opcion:integer;
  13.    
  14.    
  15. procedure carga(var X:vector);
  16.  
  17.     var
  18.         I:Int64;
  19.  
  20.     begin
  21.    
  22.         Randomize;
  23.        
  24.         For I := 1 to Length(X) do
  25.        
  26.             X[I] := Random(30000);
  27.    
  28.     end;
  29.    
  30. procedure mostrar(X:vector);
  31.  
  32.     var
  33.         I:Int64;
  34.  
  35.     begin
  36.    
  37.         For I := 1 to Length(X) do
  38.        
  39.                 write(X[I], ' ');
  40.                
  41.         writeln('');
  42.    
  43.     end;
  44.    
  45. procedure ordenamiento(var X:vector);
  46.  
  47.     var
  48.         I, J, menor, pos, aux:int64;
  49.         hour1, min1, sec1, hsec1, hour2, min2, sec2, hsec2, hour, min, sec, hsec:word;
  50.        
  51.     begin
  52.        
  53.         writeln('Ordenando vector...');
  54.        
  55.         gettime(hour1, min1, sec1, hsec1);
  56.        
  57.         For I := 1 to Length(X) do
  58.             Begin
  59.                 menor := X[I];
  60.                 For J := I+1 to Length(X) do
  61.                     if(X[J]<menor)then
  62.                         begin
  63.                             menor := X[J];
  64.                             pos := J;
  65.                         end;
  66.                 aux := X[I];
  67.                 X[I] := menor;
  68.                 X[pos] := aux;
  69.             end;
  70.                                
  71.         gettime(hour2, min2, sec2, hsec2);
  72.         hour := hour2-hour1;
  73.         min := min2-min1;
  74.         sec := sec2-sec1;
  75.         hsec := hsec2-hsec1;
  76.         writeln('Vector ordenado en ', hour, ':', min, ':', sec, ':', hsec);
  77.         readkey;
  78.    
  79.     end;
  80.  
  81. begin
  82.    
  83.     programa := true;
  84.    
  85.     carga(X);
  86.     writeln('Vector cargado');
  87.     readkey;
  88.    
  89.     while(programa)do
  90.         begin
  91.            
  92.             writeln('1. Ordenar vector');
  93.             writeln('2. Mostrar vector');
  94.             writeln('0. Cerrar programa');
  95.             readln(opcion);
  96.            
  97.             case opcion of
  98.            
  99.                 1: ordenamiento(X);
  100.                 2: mostrar(X);
  101.                 0: programa := false;
  102.            
  103.             end;
  104.            
  105.         end;
  106.    
  107. end.
RAW Paste Data