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

[0] Índice de Mensajes

Ir a la versión completa