Programación General > Pascal
Buscar en un array
(1/1)
pegui:
Me dan un fichero binario (.dat) con los datos correspondientes a unas imagenes.
tImagenV=RECORD
Cod_Ima:Integer;
Precio:Real;
Cod_Autor:1..30;
Autor:String[20];
Cliente:String[20];
END;
tFich=File of tImagenV;
el fichero contiene 50 registros y solo hay 30 autores diferentes.
primero los paso a un array como me dicen.
pero luego me piden que le recorra y pase a otro array solo los 30 autores distintos que hay, y aqui empiezan mis problemas.
yo me he hecho esta declaración de tipos:
PROGRAM Pintores;
CONST
Max=30;
N=50;
TYPE
tImagenV=RECORD
Cod_Ima:Integer;
Precio:Real;
Cod_Autor:1..30;
Autor:String[20];
Cliente:String[20];
END;
tNuevo=RECORD
Cod_Autor:1..30;
Autor:String[20];
Pinturas:Integer;
Total:Real;
END;
tFich=File of tImagenV;
tArray=ARRAY[1..Max]OF tNuevo;
tVector=ARRAY[1..N]OF tImagenV;
VAR
F1:tFich;
F2:Text;
Nuevo:tNeuvo;
Vector:tVector;
ImagenV:tImagenV;
salida:tArray;
I:Integer;
Mi idea es recorrer el array con un for FOR I:=1 TO N DO. Pero como hago para que solo me pase los no repetidos???
Tambien me pide que pase a un fichero de texto el nombre del autor, el número de imagenes que vendio y el precio total.
recorrer el array y pasarlo a un fichero de texto tb lo tengo hecho, pero como hago para almacenar esos datos en el array??
Por favor necesito ayuda!!!
Muchas gracias
Enko:
Hola, mientras estas recorriendo el primer array con el for, antes de agregar un autor al segudno array, chequeas si contiene ya a este autor usando otro for, si no está lo agregas.
--- Código: Text --- k:= 1;for i:=1 to 50 dobegin for j:=1 to 30 do if array_2[j] = array_1[i] then AutorExiste := true; if not AutorExiste then begin array_2[k] := array_1[i]; k := k+1; AutorExite := false; end;end; Saludos
Navegación
Ir a la versión completa