Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program pregunta1;
- type TArrPersonas = array [1..1000] of String;
- TArrEnteros = array [1..1000] of Integer;
- procedure LeerArchivo(var personas: TArrPersonas;var dni,telef: TArrEnteros;
- var numPersonas: Integer);
- var archPersonas: Text;
- i,aux1,aux3: Integer;
- aux2: String;
- begin
- assign(archPersonas,'personas.txt');
- numPersonas:=0;
- for i:=1 to 1000 do begin
- personas[i]:=#0;
- dni[i]:=0;
- telef[i]:=0;
- end;
- reset(archPersonas);
- while not eof(archPersonas) do begin
- inc(numPersonas);
- readln(archPersonas,aux1);
- readln(archPersonas,aux2);
- readln(archPersonas,aux3);
- dni[numPersonas]:=aux1;
- personas[numPersonas]:=aux2;
- telef[numPersonas]:=aux3;
- end;
- close(archPersonas);
- end;
- procedure HacerArchivoSR(var personas,personasSR: TArrPersonas;var dni,dniSR,telef,telefSR: TArrEnteros;
- numPersonas: Integer; var numPersonasSR: Integer);
- var archPersonasSR:Text;
- i,v,u: Integer;
- repetido: Boolean;
- begin
- for i:=1 to 1000 do begin
- personasSR[i]:=#0;
- dniSR[i]:=0;
- telefSR[i]:=0;
- end;
- assign(archPersonasSR,'personasSR.txt');
- rewrite(archPersonasSR);
- personasSR[1]:=personas[1];
- dniSR[1]:=dni[1];
- telefSR[1]:=telef[1];
- u:=1;
- for i:=2 to numPersonas do begin
- v:=i-1;
- repetido:=false;
- while (v>=1) and (repetido=false) do begin
- if dni[i]=dni[v] then repetido:=true;
- v:=v-1;
- end;
- if not repetido then begin
- inc(u);
- dniSR[u]:=dni[i];
- telefSR[u]:=telef[i];
- personasSR[u]:=personas[i];
- end;
- end;
- numPersonasSR:=u;
- //Imprimir
- for i:=1 to numPersonasSR do begin
- writeln(archPersonasSR,dniSR[i],personasSR[i]:20,telefSR[i]:20);
- end;
- close(archPersonasSR);
- end;
- procedure HacerArchivoCR(var personas,personasSR: TArrPersonas;var dni,dniSR,telef,telefSR: TArrEnteros;
- numPersonas,numPersonasSR: Integer);
- var repetidos: TArrEnteros;
- v,i:Integer;
- archPersonasCR: Text;
- begin
- for i:=1 to 1000 do begin
- repetidos[i]:=-1;
- end;
- assign(archPersonasCR,'personasCR.txt');
- rewrite(archPersonasCR);
- for i:=1 to numPersonasSR do begin
- for v:=1 to numPersonas do begin
- if dniSR[i]=dni[v] then inc(repetidos[i]);
- end;
- end;
- //Imprimir
- for i:=1 to numPersonasSR do begin
- writeln(archPersonasCR,dniSR[i],personasSR[i]:10,telefSR[i]:15,repetidos[i]:4);
- end;
- close(archPersonasCR);
- end;
- var personas,personasSR: TarrPersonas;
- dni,telef,dniSR,telefSR: TArrEnteros;
- numPersonas,numPersonasSR: Integer;
- begin
- LeerArchivo(personas,dni,telef,numPersonas);
- HacerArchivoSR(personas,personasSR,dni,dniSR,telef,telefSR,numPersonas,numPersonasSR);
- HacerArchivoCR(personas,personasSR,dni,dniSR,telef,telefSR,numPersonas,numPersonasSR);
- end.
Advertisement
Add Comment
Please, Sign In to add comment