eduardovp97

Pregunta1- PC3 - 2015-1

Oct 29th, 2015
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 2.34 KB | None | 0 0
  1. program project1;
  2. Type ArrStr = array[1..1200] of String;
  3.   ArrInt = array[1..1200] of Integer;
  4.  
  5. procedure prepararArchivos(var archIn,archOut1,archOut2:Text);
  6. begin
  7.   assign(archIn,'personas.txt');
  8.   assign(archOut1,'personasSR.txt');
  9.   assign(archOut2,'personasCR.txt');
  10.   reset(archIn);
  11.   rewrite(archOut1);
  12.   rewrite(archOut2);
  13. end;
  14.  
  15. procedure cerrarArchivos(var archIn,archOut1,archOut2:Text);
  16. begin
  17.   close(archIn);
  18.   close(archOut1);
  19.   close(archOut2);
  20. end;
  21.  
  22.  
  23. procedure imprimirArchivos2(nd,nd2:Integer; var dnis,telfs,dniSR,telfSR : ArrInt;
  24.   var nombs,nombSR : ArrStr; var archOut2 : Text);
  25. var repetidas:ArrInt;
  26.   i,j,count:Integer;
  27. begin
  28.   for i:=1 to nd2 do begin
  29.     count := -1;
  30.     for j:=1 to nd do begin
  31.       if (dniSR[i] = dnis[j]) then inc(count);
  32.     end;
  33.     repetidas[i] := count;
  34.   end;
  35.  
  36.   // a partir de este punto solo faltaria ordenar los arreglos
  37.   //  dniSR,telfSR,nombSR,repetidas y de ahi imprimirlos en el segundo archivo :v
  38.  
  39.  
  40.  
  41. end;
  42.  
  43. procedure imprimirArchivos(nd:Integer;var dnis,telfs :ArrInt; var nombs : ArrStri;
  44.   var archOut1,archOut2 : Text);
  45. var dniSR,telfSR : ArrInt;   //SR: Sin repetir
  46.   nombSR: ArrStr;
  47.   i,j,nd2:Integer;
  48.   repetido : Boolean;
  49. begin
  50.   nd2 := 1;
  51.   dniSR[1] := dnis[1];
  52.   telfSR[1] := telfs[1];
  53.   nombSR[1] := nombs[1];
  54.   writeln(archOut1,dnis[1],'     ',nombs[1]:40,'     ',telfs[1]);
  55.   for i:=2 to nd do begin
  56.     repetido := false;
  57.     for j:=1 to (i-1) do
  58.       if (dnis[j]= dnis[i] ) then repetido := true;
  59.  
  60.     if repetido = false then begin
  61.       inc(nd2);
  62.       dniSR[nd2] := dnis[i];
  63.       telfSR[nd2] := telfs[i];
  64.       nombSR[nd2] := nombs[i];
  65.       writeln(archOut1,dniSR[nd2],'     ',nombSR[nd2]:40,'     ',telfSR[nd2]);
  66.     end;
  67.   end;
  68.   imprimirArchivos2(nd,nd2,dnis,telfs,dniSR,telfSR,nombs,nombSR,archOut2);
  69. end;
  70.  
  71.  
  72. procedure emitirReporte(var archIn,archOut1,archOut2:Text);
  73. var dnis,telfs : ArrInt;
  74.   nombs : ArrStr;
  75.   i : Integer;
  76. begin
  77.   i:= 0;
  78.   while not eof(archIn) do begin
  79.     inc(i);
  80.     readln(archIn,dnis[i]);
  81.     readln(archIn,nombs[i]);
  82.     readln(archIn,telfs[i]);
  83.   end;
  84.   imprimirArchivos(i,dnis,telfs,nombs,archOut1,archOut2);
  85. end;
  86.  
  87. var archIn,archOut1,archOut2 : Text;
  88. begin
  89.   prepararArchivos(archIn,archOut1,archOut2);
  90.   emitirReporte(archIn,archOut1,archOut2);
  91.   cerrarArchivos(archIn,archOut1,archOut2);
  92.  
  93. end.
Add Comment
Please, Sign In to add comment