Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- {
- AUTOR:
- FICHERO:
- DESCRIPCION:
- }
- PROGRAM almacen(input, output);
- CONST
- FIL = 4;
- COL = 6;
- TYPE
- tpAlmacen = ARRAY[1..FIL,1..COL] OF boolean;
- tpSolucion = RECORD
- fila,columna:integer;
- { ... }
- end;
- VAR
- a : tpAlmacen;
- tam : integer;
- resultado: tpSolucion;
- solucion_fila, solucion_columna:integer;
- FUNCTION buscasitios(M:tpAlmacen; tamano:integer):tpSolucion;
- VAR
- resultado:tpSolucion;
- x,y,contador:integer;
- hueco:boolean;
- solucion_fila, solucion_columna:integer;
- BEGIN
- x:=1;
- hueco:=false;
- while (x <= FIL) and (not hueco) do
- begin
- y:=1;
- contador:=0;
- while (y <= COL) and (not hueco) do
- begin
- if M[x,y]=true
- then contador:= 0
- else begin
- contador:= contador + 1;
- if contador=tamano
- then begin
- hueco:= true;
- solucion_fila:=x;
- solucion_columna:=y-tamano+1;
- end;
- end;
- y:=y+1;
- end;
- x:=x+1;
- end;
- if not hueco
- then begin solucion_fila:=0; solucion_columna:=0
- end;
- buscasitios:=resultado;
- end;
- {Funcion que busca en cada fila si hay el numero de huecos necesarios para el paquete}
- BEGIN
- { write('Dame el tamaño del hueco que hay que buscar: '); }
- { readln(tam); }
- {En caso de querer modificar el tamano del paquete}
- tam:=3;
- { Tamaño de producto}
- { Matriz. true = ocupado, false = libre }
- a[1,1] := false;
- a[1,2] := false;
- a[1,3] := true;
- a[1,4] := true;
- a[1,5] := false;
- a[1,6] := false;
- a[2,1] := false;
- a[2,2] := false;
- a[2,3] := false;
- a[2,4] := false;
- a[2,5] := true;
- a[2,6] := false;
- a[3,1] := true;
- a[3,2] := true;
- a[3,3] := false;
- a[3,4] := true;
- a[3,5] := false;
- a[3,6] := true;
- a[4,1] := true;
- a[4,2] := true;
- a[4,3] := false;
- a[4,4] := false;
- a[4,5] := false;
- a[4,6] := false;
- { Llamada a la función y salida de datos }
- resultado:= buscasitios(a,tam);
- if( solucion_fila > 0) and (solucion_columna > 0)
- then begin writeln('el hueco que buscamos comenzara en la columna',solucion_columna,' de la fila',solucion_fila, ' y ocupara ',tam, 'sitios');
- end
- else
- writeln('no hay huecos suficientes consecutivos en el almacen para el paquete dado');
- readln;
- { Comprobacion de que hay suficientes huecos en la matriz para el paquete}
- end.
Add Comment
Please, Sign In to add comment